资源 | OpenHINE:异质信息网络嵌入开源工具包

2020 年 7 月 8 日 图与推荐

为了方便大家对异质信息网络表示学习(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

亮点:

  • 易于训练和评估
  • 能够扩展到新的/您的数据集和模型
  • 可用的最新模型:HAN,HeGAN 等

贡献者:

北京邮电大学 DMGroup 成员:赵天宇,朱美琪,刘佳玮,刘念,楚贯一,刘佳玥,王啸,杨成,胡琳梅,石川

1 开始

配置需求:

  • Python version >= 3.6
  • PyTorch version >= 1.4.0
  • TensorFlow version >= 1.14
  • Keras version >= 2.3.1

使用:

输入参数:

python train.py -m model_name -d dataset_name

例如,使用 Metapath2vec 模型训练 ACM 数据请输入:

python train.py -m Metapath2vec -d acm

模型设置:

可以在文件(./src/config.ini)中修改模型参数。

  • 通用参数

    ……

    • alpha: 学习率
    • dim: 输出维度
    • epoch: 迭代次数
  • 特定参数

    ……

    • metapath: 选择的元路径
    • neg_num: 负采样的个数

数据集:

如果想用自己的数据集进行训练,请创建文件(./dataset/your_dataset_name/edge.txt),数据格式如下:

  • input: edge

src_node_id dst_node_id edge_type weight

例如:

19	7	p-c	219	7	p-a	111	0	p-c	10       11	c-p	1
-输入图是有向图,无向图需要转换为有向图。
  • Input: feature

number_of_nodes embedding_dim

node_name dim1 dim2

例如:

11246	2a1814 0.06386946886777878 -0.04781734198331833a0 ... ...

2 模型

DHNE AAAI 2018

Structural Deep Embedding for Hyper-Networks

源代码:

https://github.com/tadpole/DHNE

HAN WWW 2019

Heterogeneous Graph Attention Network

-将feature.txt添加到输入文件夹中或者设置参数["featype": "adj"],以使用邻接矩阵作为特征。

源代码:

https://github.com/Jhy1993/HAN

DGL 实现:

https://github.com/dmlc/dgl/tree/master/examples/pytorch/han

HeGAN KDD 2019

Adversarial Learning on Heterogeneous Information Network

源代码:

https://github.com/librahu/HeGAN

HERec TKDE 2018

Heterogeneous Information Network Embedding for Recommendation

源代码:https://github.com/librahu/HERec

-特定参数["metapath_list": "pap|psp"] (元路径用"|"划分)

HIN2Vec CIKM 2017

HIN2Vec: Explore Meta-paths in Heterogeneous Information Networks for Representation Learning

源代码:

https://github.com/csiesheep/hin2vec

metapath2vec KDD 2017

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 PAKDD 2018

MetaGraph2Vec: Complex Semantic Path Augmented Heterogeneous Network Embedding

源代码:

https://github.com/daokunzhang/MetaGraph2Vec

RHINE AAAI 2019

Relation Structure-Aware Heterogeneous Information Network Embedding

源代码:

https://github.com/rootlu/RHINE

3 输出

测试

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

输出格式如下:

  • output: embedding

number_of_nodes embedding_dim

node_name dim1 dim2

例如:

11246	2a1814 0.06386946886777878 -0.04781734198331833a0 ... ...

4 评估

-这里HAN使用的是没有节点特征的数据集

4 未来工作

目前 OpenHINE 仅为 0.1 版本,仍在积极开发中,欢迎您随时提供反馈意见以及您的问题。

未来我们将包含更多模型和任务。目前我们使用了多种深度学习框架,今后我们想使用 PyTorch 统一所有模型。如果您使用 PyTorch 进行了上述模型的代码实现,或者想将您的方法添加到我们的工具包中,请与我们联系。

点击 “阅读原文”,即刻进入 OpenHINE 的世界。


登录查看更多
3

相关内容

异质信息网络是一种信息网络,包含了节点和边,并且该节点和边具有一种或多种类型,异质信息网络包含了更更丰富的语义信息。

信息网络被定义为一个有向网络图G=(V,E),其中,V是所有实体结点的集合,E是所有关系边的集合。并且存在着一个结点类型的映射函数φ:V→A和一个边类型的映射函数Ψ:E→R,对于每个对象v∈V属于一种特殊的对象类型φ(v)∈A,每个链接e∈E属于一种特殊的关系类型Ψ(e)∈R,那么这种网络类型就是信息网络。当对象类型的种类|A|>1或者关系类型的种类|R|>1时,这种信息网络是异质信息网络,否则,它是一种同质信息网络

系列教程GNN-algorithms之六:《多核卷积拓扑图—TAGCN》
专知会员服务
50+阅读 · 2020年8月8日
TensorFlow Lite指南实战《TensorFlow Lite A primer》,附48页PPT
专知会员服务
70+阅读 · 2020年1月17日
Github 项目推荐 | PyTorch 实现的 GAN 文本生成框架
AI研习社
35+阅读 · 2019年6月10日
深度文本匹配开源工具(MatchZoo)
机器学习研究会
10+阅读 · 2017年12月5日
推荐|Google最热门31款开源项目资源
全球人工智能
4+阅读 · 2017年11月24日
开源|基于tensorflow使用CNN-RNN进行中文文本分类!
全球人工智能
11+阅读 · 2017年11月12日
资源 | 清华大学开源OpenKE:知识表示学习平台
机器之心
10+阅读 · 2017年11月4日
Knowledge Based Machine Reading Comprehension
Arxiv
4+阅读 · 2018年9月12日
Arxiv
10+阅读 · 2018年2月4日
Arxiv
3+阅读 · 2017年8月15日
VIP会员
相关资讯
Github 项目推荐 | PyTorch 实现的 GAN 文本生成框架
AI研习社
35+阅读 · 2019年6月10日
深度文本匹配开源工具(MatchZoo)
机器学习研究会
10+阅读 · 2017年12月5日
推荐|Google最热门31款开源项目资源
全球人工智能
4+阅读 · 2017年11月24日
开源|基于tensorflow使用CNN-RNN进行中文文本分类!
全球人工智能
11+阅读 · 2017年11月12日
资源 | 清华大学开源OpenKE:知识表示学习平台
机器之心
10+阅读 · 2017年11月4日
Top
微信扫码咨询专知VIP会员