所有文章 > 正文

图表示学习教程Part1 Node Representation Learning

作者: 徐家兴

时间: 2019-05-28 10:01

本系列将会介绍唐建教授在AAAI2019发表的教程Graph Representation Learning 该教程分为三个部分,本文介绍第一部分Node Representation Learning。

本系列将会介绍唐建教授在AAAI2019发表的教程Graph Representation Learning

该教程分为以下三个部分:

——节点嵌入:将节点编码为低维嵌入

——图神经网络(GNN):处理图结构数据的深度学习框架

——生成图模型:学习生成真实的图数据

本文介绍第一部分Node Representation Learning

什么是graph?

图是一种用于描述和建模复杂系统的通用语言

各种现实中的数据都可以表示成图

社交网络

经济网络

生物医学网络

信息网络:web&citations

互联网

神经网络

可以看出,图作为一种用于描述复杂数据的通用语言,能够更为准确的描述出科学、自然和技术的网络,并突出其主要特征。因此,图在计算机科学、社会科学、物理学、经济学、统计学和生物学的应用都十分广泛。

图+机器学习

传统的针对图的机器学习任务:

——节点分类:预测节点类型

——关系预测:预测两个节点是否存在关系

——社群检测:识别密集链接的节点集群

——网络相似度:两个网络的相似度计算

难点:

现代的深度学习工具是为简单的序列设计的,比如用于固定大小图片、矩阵的CNNs和用于文本、序列的RNNs。但图是非常复杂的,没有固定的节点顺序或者参考节点(例如同构问题),而且很多图是动态的,并且具有多模式的特点。

Part1 Node Representation Learning

1.1 节点表示方法

问题定义:节点嵌入

给定一个网络/图G=(V,E,W)其中V是节点的集合,E是节点间边的集合,W是边的权重的集合。节点嵌入的目的是用一个向量来表示节点,从而保存整个网络的结构。

相关工作

——经典的图嵌入算法

  • MDS, IsoMap, LLE, Laplacian Eigenmap, …
  • 难以扩展规模

——图因子分解(Ahmed et al. 2013)

不是专门为网络表示设计的

只适用于无向图

——神经词向量(Bengio et al. 2003)

神经语言模型

word2vec (skipgram), paragraph vectors, …

——LINE: Large-scale Information Network Embedding (Tang et al., Most Cited Paper of WWW 2015)

适用于任意网络结构:有向、无向、带权、不带权

明确的目标功能:保持一阶和二阶相似度

可扩展:异步随机梯度下降,百万级的节点数和十亿级的边只需要在一台机器上花费几个小时

一些优化:随机梯度下降+负抽样,根据权重对边进行采样

DeepWalk: Online Learning of Social Representations(Perozzi et al. 2014)

用学习词表示的方法学习节点表示(i.e., Skipgram),将网络上的随机游走视为句子

node2vec: Scalable Feature Learning for Networks (Grover and Leskovec, 2016)

使用混合策略查找节点上下文:深度优先采样(DFS)——结构等价,广度优先采样(BFS)——趋同性

LINE, DeepWalk 和 Node2Vec的对比

应用

节点分类:Perozzi et al. 2014, Tang et al. 2015a, Grover et al. 2015

节点可视化:Tang et al. 2015a

关系预测:Grover et al. 2015

推荐: Zhao et al. 2016

文本表示:Tang et al. 2015a, Tang et al. 2015b

更多扩展

利用全局结构信息(Cao et al.2015)

基于自动编码器的非线性方法(Wang et al.2016)

基于矩阵分解的方法(Qiu et al. 2018)

有向网络嵌入Ou et al.2016

带标签网络嵌入(Wang et al.2017)

多视图网络(Qu and Tang et al.2017)

具有节点属性的网络(Yang et al.2015)

异构网络(Chang et al.2015)

任务特定的网络嵌入(Chen et al.2017)

1.2 图和高维数据可视化

极低维度表示:2D / 3D用于可视化网络

Accelerating t-SNE using tree-based algorithms (Maarten and Hinton, 2008, 2014 )

由Tensorflow部署的用于高维数据可视化的最先进算法

Visualizing Large-scale and High-dimensional Data (Tang et al., Best Paper Nomination at WWW 2016)

高效KNN图构建算法:第一步先利用随机投影树得到一个空间划分,在此基础上寻找每个点的kk近邻,得到一个初步kNN图,这个kNN图不要求完全准确。第二步根据“邻居的邻居可能也是我的邻居”的思想,利用邻居搜索算法寻找潜在的邻居,计算邻居与当前点、邻居的邻居与当前点的距离并放入一个小根堆之中,取距离最小的k个节点作为k近邻,最终得到一个精确的kNN图。

低维空间可视化算法:随机抽样一些负边,通过异步随机梯度下降进行优化

从可视化效果上看,LargeVis与t-SNE是差不多的,在某些数据集上略胜一筹,但是从训练时间上看,LargeVis比t-SNE高效太多。

1.3 知识图谱嵌入

知识图谱是一种异构图,由(头实体,关系,尾实体)这样的事实三元组组成,可以应用在QA、搜索引擎、推荐系统、自然语言理解等很多方面

——任务:完善知识图谱

——基础任务:预测缺失的关系

——关键思想:根据观察到的知识事实对知识图中的关系模式进行建模和推断。

——关系模式:对称/反对称关系(婚姻、父子)、反义关系(丈夫和妻子)、组成关系(我母亲的丈夫是我的父亲)

现有方法不能建模和推断所有三种类型的关系模式

RotatE (Sun et al. 2019)

RotatE能够建模和推断所有三种类型的关系模式,每个关系作为复杂向量空间中从源实体到目标实体的元素旋转,使用高效且有效的负采样算法用于优化RotatE,刷新了知识图谱上关系预测SOTA的结果

1.4 一种高性能节点表示系统

A High-Performance CPU-GPU Hybrid System for Node Embedding (Zhu et al. 2019)

通过算法和系统协同设计为节点嵌入设计的特定系统

CPU:在线随机游走生成

GPU:训练节点嵌入

CPU和GPU之间高效且有效的协作策略,比现有系统快50倍。

Reference

Jian Tang, Meng Qu, Mingzhe Wang, Jun Yan, Ming Zhang and Qiaozhu Mei. LINE: Large-scale Information Network Embedding. WWW’15

Bryan Perozzi, Rami Al-Rfou, Steven Skiena. DeepWalk: Online Learning of Social Representations. KDD’14

Aditya Grover and Jure Leskovec. node2vec: Scalable Feature Learning for Networks. KDD’16

Jian Tang, Jingzhou Liu, Ming Zhang, and Qiaozhu Mei. Visualizing Large-scale and High-dimensional Data. WWW’16

Zhiqing Sun, Zhihong Deng, Jian-Yun Nie, and Jian Tang. “RotatE: Knowledge Graph Embedding by Relational Rotation in Complex Space.” to appear in ICLR’19.

Zhaocheng Zhu, Shizhen Xu, Meng Qu, and Jian Tang. “A High-Performance CPU-GPU Hybrid System for Node Embedding ”. To appear in WWW’19.

[关于转载]:本文为“AMiner”官网文章。转载本文请联系原作者获取授权,转载仅限全文转载并保留文章标题及内容,不得删改、添加内容绕开原创保护,且文章开头必须注明:转自“AMiner”官网。谢谢您的合作。

推荐阅读 更多