论文地址
http://arxiv.org/abs/2112.02936
现有的问题
现有的图神经网络过度重视神经网络的 架构 来增加其表达能力,但是忽略了在链接预测问题上的一些基本特性。例如,把链接预测问题建模成二分类问题并且使用交叉熵损失函数,由于
- 由于大多数图的自然稀疏性,链接分类是极不平衡的,也就是邻接矩阵是稀疏的,大多数节点之间都没有真正的链接(正样本)
- 大多数链接预测优化的目标不是将正对标记为1,将负对标记为0,而是要求正对的排名高于负对,这并不是直接求解链接预测问题,而是间接优化
采用交叉熵函数对链路预测任务的目标似乎并不那么直接
相关工作
- 新的链接预测框架: 逐对链接预测(pair-wise,这样翻译是对标element-wise,逐元素)
- 根据不同的目标/图的结构,使用不同的评分函数
- 几种对于不同问题的负采样策略
- 使用有效排序损失(近似直接优化AUC)进行优化(对标解决第二个问题)
- 使用Random walk 进行图增强
提出的方法
新的链接预测框架
如图所示,该链接预测框架主要由三部分组成:Negative Sampler,Neighborhood Encoder,Link Predictor。
Negative Sampler
考虑到不同的图需要学习的图表示不一样,因此负采样策略也应该对应选择不用的策略
- Global Sample: 全局采样是在整个图上进行均匀采样,这采样策略适用于需要学习图的全局信息,例如,在蛋白质相互作用中,我们感兴趣的是所有可能的节点对中的潜在节点对,这些节点对值得进一步分析(进行卷积/池化)
- Local Sample: 局部采样是从局部子图中进行采样生成负样本,由于是从局部进行的,因此可以采样除了均匀分布以外的其他分布进行采样,例如基于节点度的采样策略(作者这里没有继续阐述,基于我的理解 ,应该是与伯努利采样相反,如果一个节点的度越大,那么采样的概率就越大,因为节点的度很大意味着该节点的特征很典型,需要模型区分),这种策略适用于对单个节点进行良好排序的情况
- Adversarial Sample: 类似于GAN(生成对抗网络),该采样策略生成的负样本是由一个模型生成的,该负样本生成模型会和一个判别模型进行对抗,链路预测模型和负样本生成模型进行对抗博弈。通过不断提供高质量的阴性样本,对抗性抽样比随机抽样更具稳健性。
- Negative Sample Sharing: 由于该框架的 逐对进行预测的,如果每次训练都重新生成负样本,那么时间复杂度就会非常高。因此该采样策略是一次性生成 m m m个负样本,然后每次训练时对负样本进行随机排序(重新计算下标),随机排序。超参数 n u m n e g − 1 num_{neg}-1 numneg−1表示机制将随机排列 ( n u m n e g − 1 ) (num_{ neg}-1) (numneg−1)次负样本。对于逐对链接预测框架,这种采样方式可以有效减少计算量
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]]:
- 从目标节点对提取到达目标节点对的距离小于 k k k的节点组成封闭子图
- 使用DRNL(doubel-radius node label)对封闭子图中的节点进行位置编码,获取结构信息
- 负样本注入
- 使用node2vec生成嵌入
- 把节点本身的元数据(例如用户的年龄、性别、兴趣点等)加入到特征矩阵中
- 使用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,{ xi∣vk∈Gh(vi,vj)})其中 G h \mathcal{G^h} Gh是提取的子图
Link Score Predictor
链接分数预测器的主要作用是把上述Neighborhood encoder的结果进行融合,充分考虑节点(通过NNE编码)和边(通过ENE编码)的特征。融合的方式有:
- Dot:直接把两个向量进行点乘 s i j = h i ⋅ h j s_{ij}=\mathrm{h}_i\cdot\mathrm{h}_j sij