Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

DGL更新报告:异构图神经网络

什么是异构图?

传统同构图(Homogeneous Graph)数据中只存在一种节点和边,因此在构建图神经网络时所有节点共享同样的模型参数并且拥有同样维度的特征空间。而异构图(Heterogeneous Graph)中可以存在不只一种节点和边,因此允许不同类型的节点拥有不同维度的特征或属性。

这一特点使得异构图的应用十分广泛。事实上,如果用图来描述我们和周围事物的关系就会发现所产生的图都是天然异构的。比如我今天看了电影《流浪地球》,那“我”作为观众和电影《流浪地球》之间就建立了“看了”这一关系。异构图可以用来描述这种交互关系的集合。这个图分“观众”和“电影”两类节点,以及“看了”这一类边。“我”作为观众,和电影所具有的属性一定是不同的,需要用不同的模型或者不同的特征维度来表达。这张图就天然具有了异构性。

再比如我去豆瓣上给《流浪地球》评了8分,那“我”和《流浪地球》之间就又建立了“评分”这一关系。“评分”和“看了”的属性也一定是不同的,如前者包含评分分数,后者则包含票价等。

因此,很多用于机器学习的数据都可以用异构图来建模,而需要解决的任务也可以通过学习图上的点和边,或是整张图的表示来解决。这里举几个例子。

推荐系统

图一:使用异构图建模推荐系统

(图源:https://peterxugo.github.io/2017/09/28/推荐系统/)

常见的推荐系统数据由用户和商品的交互信息组成。这些交互信息可以用图来表示(图一)。由于用户节点可能包含用户的年龄、职业等个人信息,而商品节点则包含内容、价格等商品特有的信息,所以该图是一个异构图。

推荐系统可能感兴趣的内容包括:

  • 判断某个客户是否会观看某部电影,以及在什么样的促销下会购票。这个问题可以转化成链接预测(Link Prediction)问题:判断两个点之间是否会有连边。
  • 判断某个客户是否存在恶意刷分,或者某部电影是否遭到恶意刷分。根据标注是否存在,这个问题可以转化成半监督节点分类(Semi-supervised Node Classification)或者无监督的异常检测(Anomaly Detection)问题。

学术网络

学术网络的图结构更复杂一些。它可以包含“论文”、“作者”、“会议”和“机构”等节点类型。每个作者会隶属于某些机构,发表某些论文,而每篇论文又会被发表在某个会议上,也会引用其它的论文。每个节点同样可以有自己的特征——如论文可以用摘要当作特征等。同样,这些关系可以表示成一张异构图(图二)。

图二:学术网络

(图源:Dong et al., KDD 2017)

同样,链接预测节点分类问题也适用于学术网络中。例如预测某个作者的研究领域或所属的研究团队、一篇论文或者一个作者的影响力等等。

知识图谱

知识图谱由于包含不同种类的节点和边,是一张天然的异构图。如下图,“人物”、“职业”和“荣誉”等都可以作为节点类型,而节点之间的关系也有“就职”、“获得荣誉”等多种类别。

图三:Wikidata知识图谱示例

图嵌入学习知识图谱上也是一个很重要的任务。它的目标是对每一个节点和每一类关系学习一个高维向量表示。此外,知识图谱补全、基于知识图谱的推理以及将知识图谱与其他系统结合(比如推荐系统)等也是重要的任务。

有哪些针对异构图的图神经网络

针对异构图设计图神经网络还是个非常新的方向。虽然论文不多,但已经在一些场景中取得了很不错的效果。这里简单介绍两个模型。

Relational Graph Convolutional Network (RGCN)

文章链接:https://arxiv.org/abs/1703.06103

RGCN是一个在异构图上学习节点表示的早期工作。与Graph Convolutional Network(GCN)类似,它仍然基于消息传递(Message Passing)。但与GCN不同,每条边上的消息通过每类边独有的线性变换得到。

RGCN可以用于节点分类和链接预测等任务。

Graph Convolutional Matrix Completion (GCMC)

文章链接:https://arxiv.org/abs/1706.02263

GCMC是在异构图上做产品推荐任务的一个尝试。它在一个由观众和电影组成的二分图上训练。观众和电影有各自的特征,而且每一条边上有对应的观众对电影的评分。GCMC将每一种评分视为一类边。

图构建完成后,每个节点通过消息传递的形式,汇总从自己邻居传递来的消息,去更新自己的表示。与RGCN不同的是,GCMC只进行一层消息传递:

消息同样是由源节点的原表示通过线性变换得到。与RGCN类似,每类边都有自己线性变换的参数矩阵。不同之处在于多关系累和函数accum有各种灵活选择。

GCMC算出两类点的最终表示之后,再通过softmax得出某个交互下每种评分的概率:

除了以上模型外,今年WWW还有诸如Heterogeneous Graph Attention Network (HAN),Knowledge Graph Convolution Networks for Recommender Systems (KGCN) 等关于异构图的好工作。此外,在网络嵌入(network embedding)方向还有如metapath2vec等经典的工作。

  • Heterogeneous Graph Attention Network (WWW’19)
  • Knowledge Graph Convolution Networks for Recommender Systems (WWW’19)
  • HetGNN: Heterogeneous Graph Neural Network (KDD’19)
  • Metapath-guided Heterogeneous Graph Neural Network for Intent Recommendation (KDD’19)
  • KGAT: Knowledge Graph Attention Network for Recommendation (KDD’19)
  • metapath2vec: Scalable Representation Learning for Heterogeneous Networks (KDD’17)

想学习异构图神经网络怎么办?

DGL刚刚发布了0.4新版本,全面上线对于异构图的支持,复现并开源了相关异构图神经网络的代码:图四:DGL 0.4中基于异构图的RGCN层实现代码。在性能上,新的API也带来了显著加速:

  • GCMC:DGL的实现相比原作者实现在MovieLens-100K上有5倍加速,在MovieLens-1M上有22倍加速。DGL的内存优化支持在一块GPU上对MovieLens-10M进行训练(原实现需要从CPU动态加载数据),从而将原本需要24小时的训练时间缩短到了1个多小时
  • RGCN:使用全新的异构图接口重新实现了RGCN。新的实现大大减少了内存开销。原实现在AM数据集上(边数>5M)由于内存开销太大,只能在CPU上计算,而DGL能使用GPU进行加速并获得了291倍的速度提升!
  • HAN:提供了灵活的接口可以将一个异构图通过元路径(metapath)转变成同构图。
  • Metapath2vec:新的元路径采样实现比原作者的实现快两倍

此外,DGL也发布了训练知识图谱嵌入(Knowledge Graph Embedding)专用包DGL-KE,在许多经典的图嵌入模型上都获得了性能提升。比如,在单GPU上,DGL-KE能在7分钟内使用经典的TransE模型训练出FB15K的图嵌入。相比GraphVite(v0.1.0)在4块GPU上需要14分钟。

DGL-KE首个版本发布了TransE, ComplEx和Distmult模型,支持CPU训练、GPU训练、CPU和GPU混合训练以及单机多进程训练。DGL团队在未来也会发布更多模型和训练方式。

参考链接

DGL专栏
DGL专栏

DGL是一款全新的面向图神经网络的开源框架。通过该专栏,我们DGL团队希望和大家一起学习图神经网络的最新进展。同时展示DGL的灵活性和高效性。通过系统学习算法,通过算法理解系统。

理论异构图图神经网络
131
相关数据
机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

异常检测技术

在数据挖掘中,异常检测(英语:anomaly detection)对不符合预期模式或数据集中其他项目的项目、事件或观测值的识别。 通常异常项目会转变成银行欺诈、结构缺陷、医疗问题、文本错误等类型的问题。 异常也被称为离群值、新奇、噪声、偏差和例外。

知识图谱技术

知识图谱本质上是语义网络,是一种基于图的数据结构,由节点(Point)和边(Edge)组成。在知识图谱里,每个节点表示现实世界中存在的“实体”,每条边为实体与实体之间的“关系”。知识图谱是关系的最有效的表示方式。通俗地讲,知识图谱就是把所有不同种类的信息(Heterogeneous Information)连接在一起而得到的一个关系网络。知识图谱提供了从“关系”的角度去分析问题的能力。 知识图谱这个概念最早由Google提出,主要是用来优化现有的搜索引擎。不同于基于关键词搜索的传统搜索引擎,知识图谱可用来更好地查询复杂的关联信息,从语义层面理解用户意图,改进搜索质量。比如在Google的搜索框里输入Bill Gates的时候,搜索结果页面的右侧还会出现Bill Gates相关的信息比如出生年月,家庭情况等等。

推荐系统技术

推荐系统(RS)主要是指应用协同智能(collaborative intelligence)做推荐的技术。推荐系统的两大主流类型是基于内容的推荐系统和协同过滤(Collaborative Filtering)。另外还有基于知识的推荐系统(包括基于本体和基于案例的推荐系统)是一类特殊的推荐系统,这类系统更加注重知识表征和推理。

图神经网络技术

图网络即可以在社交网络或其它基于图形数据上运行的一般深度学习架构,它是一种基于图结构的广义神经网络。图网络一般是将底层图形作为计算图,并通过在整张图上传递、转换和聚合节点特征信息,从而学习神经网络基元以生成单节点嵌入向量。生成的节点嵌入向量可作为任何可微预测层的输入,并用于节点分类或预测节点之间的连接,完整的模型可以通过端到端的方式训练。

节点分类技术

节点分类任务是算法必须通过查看其邻居的标签来确定样本的标记(表示为节点)的任务。

推荐文章
请问可以出一个异构图的图分类教程么