[图神经网络论文]PLNLP:Pairwise Learning for Neural Link Prediction

论文地址

http://arxiv.org/abs/2112.02936

现有的问题

现有的图神经网络过度重视神经网络的 架构 来增加其表达能力,但是忽略了在链接预测问题上的一些基本特性。例如,把链接预测问题建模成二分类问题并且使用交叉熵损失函数,由于

  • 由于大多数图的自然稀疏性,链接分类是极不平衡的,也就是邻接矩阵是稀疏的,大多数节点之间都没有真正的链接(正样本)
  • 大多数链接预测优化的目标不是将正对标记为1,将负对标记为0,而是要求正对的排名高于负对,这并不是直接求解链接预测问题,而是间接优化
    采用交叉熵函数对链路预测任务的目标似乎并不那么直接

相关工作

  1. 新的链接预测框架: 逐对链接预测(pair-wise,这样翻译是对标element-wise,逐元素)
  2. 根据不同的目标/图的结构,使用不同的评分函数
  3. 几种对于不同问题的负采样策略
  4. 使用有效排序损失(近似直接优化AUC)进行优化(对标解决第二个问题)
  5. 使用Random walk 进行图增强

提出的方法

新的链接预测框架

如图所示,该链接预测框架主要由三部分组成:Negative Sampler,Neighborhood Encoder,Link Predictor。

在这里插入图片描述

Negative Sampler

考虑到不同的图需要学习的图表示不一样,因此负采样策略也应该对应选择不用的策略

  1. Global Sample: 全局采样是在整个图上进行均匀采样,这采样策略适用于需要学习图的全局信息,例如,在蛋白质相互作用中,我们感兴趣的是所有可能的节点对中的潜在节点对,这些节点对值得进一步分析(进行卷积/池化)
  2. Local Sample: 局部采样是从局部子图中进行采样生成负样本,由于是从局部进行的,因此可以采样除了均匀分布以外的其他分布进行采样,例如基于节点度的采样策略(作者这里没有继续阐述,基于我的理解 ,应该是与伯努利采样相反,如果一个节点的度越大,那么采样的概率就越大,因为节点的度很大意味着该节点的特征很典型,需要模型区分),这种策略适用于对单个节点进行良好排序的情况
  3. Adversarial Sample: 类似于GAN(生成对抗网络),该采样策略生成的负样本是由一个模型生成的,该负样本生成模型会和一个判别模型进行对抗,链路预测模型和负样本生成模型进行对抗博弈。通过不断提供高质量的阴性样本,对抗性抽样比随机抽样更具稳健性
  4. Negative Sample Sharing: 由于该框架的 逐对进行预测的,如果每次训练都重新生成负样本,那么时间复杂度就会非常高。因此该采样策略是一次性生成 m m m个负样本,然后每次训练时对负样本进行随机排序(重新计算下标),随机排序。超参数 n u m n e g − 1 num_{neg}-1 numneg1表示机制将随机排列 ( n u m n e g − 1 ) (num_{ neg}-1) numneg1次负样本。对于逐对链接预测框架,这种采样方式可以有效减少计算量共享负样本采样

Neighborhood Encoder

邻居编码器主要由两个部分组成:Node neighborhood encoder(NNE)和Node-pair Neighborhood encoder(或者是Edge level Neighborhood Encoder (ENE))

NNE

对于一对输入的节点 v i , v j v_{i},v_{j} vi,vj(在架构图中是A,B),在采样后生成负样本,使用GNN(例如GCN,GraphSAGE,GAT)对正负样本,进行学习编码,提取正样本和负样本周围的结构信息和周围节点的信息,
在这里插入图片描述

其中, x i x_i xi一般是节点 v i v_i vi的输入特征(例如对节点的属性进行编码), N h ( v i ) \mathcal{N}^h(v_{i}) Nh(vi)是在节点 v i v_i vi周围提取的子图,节点 v j v_{j} vj同理。由于该框架只考虑同质图(hemogenous graph,所有节点的类型都是一致的),因此,所有节点共享用一个GNN网络参数。经过GNN后,会得到一些节点的嵌入

ENE

ENE是对子图进行编码,使用(SEAL,NIAN等用于解决链接预测问题的其他框架/架构),例如:SEAL[[Link Prediction Based on Graph Neural Networks]]:

  1. 从目标节点对提取到达目标节点对的距离小于 k k k的节点组成封闭子图
  2. 使用DRNL(doubel-radius node label)对封闭子图中的节点进行位置编码,获取结构信息
  3. 负样本注入
  4. 使用node2vec生成嵌入
  5. 把节点本身的元数据(例如用户的年龄、性别、兴趣点等)加入到特征矩阵中
  6. 使用GNN训练
    通过SEAL框架训练后得到一对节点的嵌入,这些节点嵌入包含了目标节点对,负样本对的元数据特征,结构特征,以及周围邻居的。由于ENE是对 节点对进行编码,因此可以视作为这两个节点之间的边的特征 h i j = E N E ( x i , x j , { x i ∣ v k ∈ G h ( v i , v j ) } ) h_{ij}=ENE(x_{i},x_{j},\{\mathbf{x_{i}}|v_{k\in \mathcal{G^h}(v_{i},v_{j})}\}) hij=ENE(xi,xj,{xivkGh(vi,vj)})其中 G h \mathcal{G^h} Gh是提取的子图

Link Score Predictor

链接分数预测器的主要作用是把上述Neighborhood encoder的结果进行融合,充分考虑节点(通过NNE编码)和边(通过ENE编码)的特征。融合的方式有:

  1. Dot:直接把两个向量进行点乘 s i j = h i ⋅ h j s_{ij}=\mathrm{h}_i\cdot\mathrm{h}_j sij=hihj
  2. Bilinear Dot:双线性点乘,由于点乘操作只适用于无向图(因为点乘时对称的, a ⋅ b = b ⋅ a a\cdot b=b \cdot a ab=ba),在面对有向图时,使用双线性点乘来大批对称性质 s i j = h i W h j s_{ij}=h_{i}Wh_{j} sij=hiWhj其中 W W W是可学习的参数
  3. MLP:使用多层感知机把两个编码后的特征进行降维 s i j = M L P ( h i j ) s_{ij}=MLP(h_{ij}) sij=MLP(hij),在进入MLP之前,还可以先对两个特征进行一些预处理,例如哈达玛积或者是把两个向量连接起来 s i j = M L P ( h i ⊙ h j ) s_{ij}=MLP(h_{i}\odot h_{j}) sij=MLP(hihj) s i j = M L P ( h i ∣ ∣ h j ) s_{ij}=\mathrm{MLP}(\mathbf{h}_i||\mathbf{h}_j) sij=MLP(hi∣∣hj)
    Link Score Predictor也就是评分模型,输出的结果是分数

目标函数

使用交叉熵损失函数优化模型是间接求解链接预测问题,此外,由于图中链接与非链接存在极大不平衡,因此作者采用了排序的思想来优化目标,具体是 s i j > s k l , ∀ ( v i , v j ) ∈ E   a n d   ∀ ( v k , v l ) ∈ E − s_{ij}>s_{kl},\forall(v_{i},v_{j})\in E\mathrm{~and~}\forall(v_{k},v_{l})\in E^{-} sij>skl,(vi,vj)E and (vk,vl)E其中 s s s是Link Score Predictor输出的分数, E − E^- E是生成的负样本(集),实际上,上述的目标函数优化的是正样本的分数大于样本的分数,这与AUC(Area Under the Curve)是一致的, A U C = ∑ ( v i , v j ) ∈ E ∑ ( v k , v l ) ∈ E − 1 [ f θ ( v i , v j ) > f θ ( v k , v l ) ] ∣ V × V ∣ \mathrm{AUC}=\sum_{\begin{array}{c}(v_i,v_j)\in E\\\end{array}}\sum_{\begin{array}{c}(v_k,v_l)\in E^-\\\end{array}}\frac{\mathbb{1}[f_{\boldsymbol{\theta}}(v_i,v_j)>f_{\boldsymbol{\theta}}(v_k,v_l)]}{|V\times V|} AUC=(vi,vj)E(vk,vl)EV×V1[fθ(vi,vj)>fθ(vk,vl)]
其中 f θ ( v i , v j ) = s i j f_{\theta}(v_{i},v_{j})=s_{ij} fθ(vi,vj)=sij 1 \mathbb{1} 1是指示函数,如果 f θ ( v i , v j ) > f θ ( v k , v l ) f_{\theta}(v_{i},v_{j})>f_{\theta}(v_{k},v_{l}) fθ(vi,vj)>fθ(vk,vl)则为1,否则为0。 V \mathbf{V} V是样本大小。由于该目标函数的偏导数要么为0,要不不存在,因此无法直接使用该函数进行反向传播优化模型,但是可以使用其他损失函数优化模型,例如逻辑损失,指数损失。还有一个选择是近似AUC, O A U C = min ⁡ θ ∑ ( v i , v i ) ∈ E , ( v i , v k ) ∈ E − ( 1 − f θ ( v i , v j ) + f θ ( v i , v k ) ) 2 + λ 2 ∣ ∣ θ ∣ ∣ 2 O_{\mathrm{AUC}}=\min_{\theta}\sum_{(v_i,v_i)\in E,(v_i,v_k)\in E^-}\left(1-f_{\theta}\left(v_i,v_j\right)+f_{\theta}\left(v_i,v_k\right)\right)^2+\frac\lambda2||\theta||^2 OAUC=θmin(vi,vi)E,(vi,vk)E(1fθ(vi,vj)+fθ(vi,vk))2+2λ∣∣θ2
λ 2 ∥ θ ∥ 2 \frac{\lambda}{2}\Vert \theta\Vert^2 2λθ2是正则项;在优化这个损失函数时,就是在强制要求正负样本评分距离为1。实际情况下如果正负样本的距离大于1也是可行的,因此可以改良为 O A U C = min ⁡ θ ∑ ( v i , v i ) ∈ E , ( v i , v k ) ∈ E − γ i j max ⁡ ( 0 , ( γ i j − f θ ( v i , v j ) + f θ ( v i , v k ) ) 2 ) + λ 2 ∣ ∣ θ ∣ ∣ 2 O_{\mathrm{AUC}}=\min_{\theta}\sum_{(v_i,v_i)\in E,(v_i,v_k)\in E^-}\gamma_{ij}\max(0,\left(\gamma_{ij}-f_{\theta}\left(v_i,v_j\right)+f_{\theta}\left(v_i,v_k\right)\right)^2)+\frac\lambda2||\theta||^2 OAUC=θmin(vi,vi)E,(vi,vk)Eγijmax(0,(γijfθ(vi,vj)+fθ(vi,vk))2)+2λ∣∣θ2这样优化的含义就是让正负样的分数距离大于等于1,其中 γ i j \gamma_{ij} γij为margin coefficient,可以调整正负样本分数的最小距离

通过随机游走增强数据

在一些图中:

  1. 高阶邻居的信息可能会很重要,需要对一些高阶邻居进行采样
  2. 缓解GNN过渡从局部邻居中聚合信息导致过平滑问题
  3. 一些高度节点的邻居太多导致计算效率低下

因此随机游走生成一些节点序列,从这个序列中节点聚合信息 R W ( v i ) = v k + 1 , ⋯   , v k + l RW(v_{i})={v_{k+1,\cdots,v_{k+l} }} RW(vi)=vk+1,,vk+l增强后的数据为 E a u g = E ∪ { ( v i , v j ) ∣ v j ∈ R W ( v i ) , ∀ v i ∈ V } E_{\mathbf{aug}}=E\cup\{(v_i,v_j)|v_j\in\mathrm{RW}(v_i),\forall v_i\in V\} Eaug=E{(vi,vj)vjRW(vi),viV}
然后就可以使用这些数据训练模型

实验结果

实验配置
实验配置

链接预测实验结果:
链接预测结果

  • 26
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值