作者:CHEONG
公众号:AI机器学习与知识图谱
研究方向:自然语言处理与知识图谱
本文介绍两篇基于互信息最大化的图谱预训练模型DGI(ICLR 2019)和InfoGraph(ICLR 2020),介绍模型核心点和模型思路,完整汇报ppt获取请关注公众号回复关键字:DGI & InfoGraph
一、背景知识
图谱预训练作用:图神经网络(GNNs)已被证明是建模图结构数据的强大工具。然而,训练GNN模型通常需要大量的特定任务的标记数据,而获取这些数据往往非常昂贵。利用自监督GNN模型对未标记图谱数据进行预训练是减少标记工作的一种有效方法,然后将预训练学习到的模型可用在只有少量标签图谱数据的下游任务。
大规模图谱预训练: 大规模知识图谱预训练方案都需要遵守以下几个套路:首先需要进行子图采样,使用子图进行模型训练;其次采用自监督学习模式,Mask图中的节点或边然后进行训练;计算Loss时需要进行负采样,图规模大无法基于全部负样例。
Mutual Information 互信息: 互信息是概率论和信息论中的概念,用于度量两个随机变量相互依赖性。互信息越大随机变量间的相关性越大,当两个随机变量相互独立时互信息为0。不同于相关系数,互信息并不局限于实值随机变量,更倾向于决定联合分布P(x,y)和边缘分布乘积P(x)P(y)之间的相似程度。互信息实际上是更广泛的相对熵的特殊情况两个随机变量X和Y之间的互信息定义如下:
对比学习VS生成式学习:请参考上一篇有详细解释【知识图谱系列】清华大学基于对比学习的图谱预训练模型。
二、DGI模型
DGI模型是对比学习预训练框架,依赖于Node Representation和Graph Representation之间互信息最大化。本文之前方法在构建图模型是大多依赖于Random Walk Objectives,例如GCN模型,Random Walk成立的一个前提假设就是当前节点和邻居节点是相似的。本文则是从互信息Mutual Information作为核心指标出发,通过对比学习Local Representation和Global Representation的互信息最大化来进行图学习。
明确点1: DGI模型是基于互信息最大化,计算的是节点表征和全图表征之间的互信息,对于大规模知识图谱肯定先需要进行子图采样,因此计算的是节点表征和当前节点所在子图表征之间的互信息;
明确点2: DGI模型采用的是对比学习,那么正样例和负样例如何定义?首先就是Node Representation对应的Sub-Graph Representation,而正样例就是当前Sub-Graph中的节点表征,而负样例就是当前子图之外的其他节点表征;
明确点3: 如何有Node Representation得到Sub-Graph Representation?使用Readout Function,公式如下所示,其中X是节点特征,s 是全局子图特征,R:R(N×F)→RF,R根据实际情况可自定义;
明确点4: 如何计算Local Representation和Global Representation之间相似度?用D(h_i,s)表示,D:RF×RF→R,D的具体实现就是利用互信息;
明确点5: 最后Scoring Function定义,最大化正样本节点和图之间的相似度,最小化负样本节点和图之间的相似度,公式如下所示:
三、DGI模型五个步骤
1、负采样获得负样本
2、通过Encoder模块计算Input Graph的Local Representation
3、通过Encoder模块计算负样本的Local Representation
4、通过Readout函数计算Global Representation
5、代入Scoring Function,最大化Scoring Function
四、DGI模型注意点
1、为什么选用互信息,而不用KL散度和JS散度?因为KL散度不满足对称性,JS散度容易出现空值;
2、Sub-Graph中的每个节点得到的Local Representation都要和该Sub-Graph的Global Representation之间去计算互信息;
3、Discrimination是最大化Node Representation和Sub-graph Representation之间的互信息,最小化负样本表征和该Sub-graph互信息;
4、DGI模型如何生成负样本:邻接矩阵不变,特征进行Shuffle操作;
5、为什么可以将Node Representation和Graph Representation之间计算互信息:考虑到GCN本身节点特征就是通过子图汇聚得到的,所以到底节点有没有学到邻接点信息即学习到子图信息,GCN本身汇聚方法是由Global得到Local,自然希望结果上Global也能去还原Local信息,所以解释了Local Representation和Global Representation之间计算互信息的合理性
6、总结Deep Infomax的重要前提:(1)深度特征不仅是复杂语义,还要尽量多的保留原始数据的重要信息,简单来说就是Global特征要尽可能还原Local特征,减少信息的丢失;(2)强化局部特征的传播特性。
五、DGI模型结论
结论:实验展示DGI模型在Transductive Learning和Inductive Learning上各种节点分类基准的竞争性性能,有的甚至超过了有监督学习模型的性能。
六、InfoGraph模型
本文基于DGI模型共提出了两个互信息最大化的模型:
1、InfoGraph:无监督学习,模型最大化整个图表征和不同粒度的子结构表征之间的互信息;
2、 〖 I n f o G r a p h 〗 ∗ 〖InfoGraph〗^∗ 〖InfoGraph〗∗:半监督学习,评估两个Model计算出来的Intermediate Representations之间的互信息,其中一个Model是无监督学习的InfoGraph模型,另一个模型使用的是有监督学习。
下面先介绍InfoGraph模型,再简单介绍一下 〖 I n f o G r a p h 〗 ∗ 〖InfoGraph〗^∗ 〖InfoGraph〗∗模型。InfoGraph模型图如下:
InfoGraph模型是基于DGI模型提出的,都是利用最大化Local Representation和Global Representation之间互信息,InfoGraph针对DGI模型的不足提出了一些改进方案。首先看一下InfoGraph模型运作流程:首先,图卷积神经网络基于局部子图汇聚公式如下所示,h_v^k代表k层网络迭代后得到节点v的表征:
为了得到Graph Representation,公式如下,其中 h ϕ i h_ϕ^i hϕi表示k层节点i表征的Concat总和, h ϕ ( G ) h_ϕ (G) hϕ(G)是经过Readout函数得到的Global表征
然后最大化Local Representation h ϕ i h_ϕ^i hϕi和Global Representation h ϕ ( G ) h_ϕ (G) hϕ(G)之间的互信息,公式如下:
七、InfoGraph相对于DGI的改进
1、Readout用Sum替代了Average,提取更多关于图大小的信息;
2、用GIN代替了GCN,更强的图特征Encoder,更加关注Graph-Level特征;
3、用Batch数据获取更多更好的负样本,全局和局部点特征的组合;
4、把K层GNN中的所有节点特征Concat起来,得到不同规模的子图信息,Global表征因此有了不同规模的子图信息;
5、把Discrimination换成了更复杂的三层神经网络,还用了Relu作为非线性层,两个Embedding过神经网络后做点积。
〖 I n f o G r a p h 〗 ∗ 〖InfoGraph〗^∗ 〖InfoGraph〗∗模型的损失函数如下公式所示,其中L_supervised代表监督学习的模型loss,L_unsupervised 代表InfoGraph无监督学习的损失函数loss,λ是超参控制二者之间的权重。而最后一项就是控制有监督模型和无监督模型预测结果之间的互信息最大化,〖InfoGraph〗^∗模型结构图。
八、InfoGraph结论
结论:InfoGraph模型在图分类任务上超过了最佳的无监督学习模型,并且获得了和使用半监督学习同样的性能
九、往期精彩
【知识图谱系列】探索DeepGNN中Over-Smoothing问题
【知识图谱系列】知识图谱表示学习综述 | 近30篇优秀论文串讲
【知识图谱系列】动态知识图谱表示学习综述 | 十篇优秀论文导读
Transformer模型细节理解及Tensorflow实现
GPT,GPT2,Bert,Transformer-XL,XLNet论文阅读速递
Word2vec, Fasttext, Glove, Elmo, Bert, Flair训练词向量教程+数据+源码
Word2vec, Fasttext, Glove, Elmo, Bert, Flair训练词向量教程+数据+源码
汇报完整版ppt可通过关注公众号后回复关键词:DGI & InfoGraph 来获得,有用就点个赞呗!