Contrastive Multi-View Representation Learning on Graphs
最后更新于
这有帮助吗?
最后更新于
这有帮助吗?
对比图的结构视图来学习节点和图级表示的自监督方法
heat kernel
Personalized PageRank
要求保留原始数据尽可能多的重要信息。
第一想法:传统自编码器,用隐藏向量还原原始数据,即训练目标为output拟合原始数据
进一步想法:变分自编码器,为每个样本构造专属的正态分布,然后采样获得隐藏向量来重构。隐藏向量的分布尽量能接近高斯分布,能够随机生成隐含变量喂给解码器,也提高了泛化能力。
但是,对于数据集和任务来说,完成任务所需要的特征并不一定要能完成图像重构。例如,辨别百元假钞不一定要能完整复刻出百元假钞。
好特征的基本原则应当是**“能够从整个数据集中辨别出该样本出来”**,也就是说,提取出该样本(最)独特的信息。
熵H(Y)与条件熵H(Y|X)之差称为互信息,决策树学习中的信息增益等价于训练数据集中类与特征的互信息。
互信息:变量间相互依赖性的量度。不同于相关系数,互信息并不局限于实值随机变量。它能度量两个事件集合之间的相关性。
用 X 表示原始图像的集合,用 x∈X 表示某一原始图像。
Z 表示编码向量的集合,z∈Z 表示某个编码向量。
p(z|x) 表示 x 所产生的编码向量的分布,我们设它为高斯分布。这是我们要找的编码器。
p̃(x) 原始数据的分布,p(z) 是在 p(z|x) 给定之后整个 Z 的分布
好的特征编码器,应该要使得互信息尽量地大:
H是信息熵,I是互信息。
I(X, Z) = H(Z) - H(Z|X) :熵 H(Z) 看作一个随机变量不确定度的量度,那么 H(Z|X) 就是 X 没有涉及到的 Z 的部分的不确定度的量度。总的Z的不确定度,减去知道X而剩下的Y的不确定度,所以可以直观地理解互信息是Z变量提供给Y的信息量
增强机制:对图的结构进行增广,然后对相同的节点进行子采样。类似于CV中的裁剪。
两个专用的GNN:即图编码器。对应原数据和增强后的数据。
使用GCN。σ(AXΘ) and σ(SXΘ), X为初始节点的特征,Θ为学习参数。
一个共享的MLP(靠左):用于学习图的节点表示。具有两个隐藏层和PReLU激活函数。
一个图池化层P:即readout函数,而后传入共享MLP(结构同上)中,得出图表示。
每个GCN层中的节点表示的总和,连接起来,然后将它们馈送到一个单层前馈网络。
分别求和作为下游任务的 图表示 和 节点表示
鉴别器D:图的节点表示和另一个图的图形表示进行对比。并对它们的一致性进行评分。
损失函数:最大化互信息
T是广义转移矩阵。从一个状态转移到下一个。
Θ是权重系数,表示全局和局部信息的比例。所有θ之和为1。
heat kernel : 带入T = AD-1, θk = α(1-α)k。α是随机游走的传送概率,t是
Personalized PageRank : 带入T = D-1/2AD-1/2, θk = e-ttk/k!
从一个图中随机采样节点及边,然后再从另一个图(扩散后)中确定对应的节点和边。
图的对比学习与视觉对比学习不同:
扩充view的数量超过两个不会改善性能,最好的效果是邻接矩阵和传播矩阵进行对比学习。
对比节点和视图的表示达到更好的效果,优于,图-图表示对比学习,不同长度的编码对比学习。
**简单的图读出层(求和)**比differentiable pooling(DiffPool)效果更好。
预训练时候,应用正则化(提前停止除外)或规范化层会对性能产生负面影响。