为了方便大家对异质信息网络表示学习(HINE)开展相关的实验或研究,北京邮电大学 DMGroup 的研究人员在 GitHub 上发布了 HINE 训练和测试框架 OpenHINE。
项目链接:
https://github.com/BUPTDM/OpenHINE
该项目还在持续开发中,今后将根据已公布的 HINE 论文持续实现更多有代表性的模型。欢迎其他研究者在该框架中构建 HINE 模型到这个工具包里,也会公布项目中的贡献内容。
OpenHINE 是一个用于异质信息网络嵌入的开源工具包。它统一了 HINE 模型输入/输出/评测接口,并且修订和复现了目前比较经典的异质信息网络表示学习模型,包括:DHNE、HAN、HeGAN、HERec、HIN2vec、Metapath2vec、MetaGraph2vec、RHINE。更多资料请访问 www.shichuan.org。
亮点:
贡献者:
北京邮电大学 DMGroup 成员:赵天宇,朱美琪,刘佳玮,刘念,楚贯一,刘佳玥,王啸,杨成,胡琳梅,石川
输入参数:
python train.py -m model_name -d dataset_name
例如,使用 Metapath2vec 模型训练 ACM 数据请输入:
python train.py -m Metapath2vec -d acm
模型设置:
可以在文件(./src/config.ini)中修改模型参数。
如果想用自己的数据集进行训练,请创建文件(./dataset/your_dataset_name/edge.txt),数据格式如下:
src_node_id dst_node_id edge_type weight
例如:
19 7 p-c 2
19 7 p-a 1
11 0 p-c 1
0 11 c-p 1
-输入图是有向图,无向图需要转换为有向图。
number_of_nodes embedding_dim
node_name dim1 dim2
例如:
11246 2
a1814 0.06386946886777878 -0.04781734198331833
a0 ... ...
Structural Deep Embedding for Hyper-Networks
源代码:
https://github.com/tadpole/DHNE
Heterogeneous Graph Attention Network
-将feature.txt添加到输入文件夹中或者设置参数["featype": "adj"],以使用邻接矩阵作为特征。
源代码:
https://github.com/Jhy1993/HAN
DGL 实现:
https://github.com/dmlc/dgl/tree/master/examples/pytorch/han
Adversarial Learning on Heterogeneous Information Network
源代码:
https://github.com/librahu/HeGAN
Heterogeneous Information Network Embedding for Recommendation
源代码:https://github.com/librahu/HERec
-特定参数["metapath_list": "pap|psp"] (元路径用"|"划分)
HIN2Vec: Explore Meta-paths in Heterogeneous Information Networks for Representation Learning
源代码:
https://github.com/csiesheep/hin2vec
metapath2vec: Scalable Representation Learning for Heterogeneous Networks
源代码:
https://ericdongyx.github.io/metapath2vec/m2v.html
DGL 实现:
https://github.com/dmlc/dgl/tree/master/examples/pytorch/metapath2vec
MetaGraph2Vec: Complex Semantic Path Augmented Heterogeneous Network Embedding
源代码:
https://github.com/daokunzhang/MetaGraph2Vec
Relation Structure-Aware Heterogeneous Information Network Embedding
源代码:
https://github.com/rootlu/RHINE
python test.py -d dataset_name -m model_name -n file_name
输出的嵌入文件在路径(./output/embedding/model_name/)中。
例如,使用 HAN 模型测试 DBLP 数据并输出到 node.txt 文件请输入:
python test.py -d dblp -m HAN -n node.txt
输出格式如下:
number_of_nodes embedding_dim
node_name dim1 dim2
例如:
11246 2
a1814 0.06386946886777878 -0.04781734198331833
a0 ... ...
-这里HAN使用的是没有节点特征的数据集