Neural Bellman-Ford Networks A General Graph Neural Network Framework for Link Prediction
概
一种通用的 inductive 的图推理方式, 可用于 homogeneous graph 或 multi-relational graphs (如 knowledge graph).
符号说明
- , multi-relational graph;
- , node (entity) set;
- , edge (relation) type set;
- , edge (relation) set, 其中的元素表示为 , ;
- 表示结点 (实体) 的一阶邻居
- , 邻接矩阵
Motivation
-
本文讨论的主要任务是, 判断两个实体 是否存在某个关系 (query relation) , 通俗地将就是 link prediction 任务, 在知识图谱中便是常闻的知识图谱补全任务.
-
以往的方法主要涉及三种主要的技术路线: Path-based methods, Embedding methods, GNNs.
- 其中 Embedding 的方法如 DeepWalk, TransE, RotatE 等, 往往局限在 transductive 的常见下, 对于未知的结点就难以做出判断了.
- Path-based 的方法由于往往是基于图的拓扑结构信息的, 所以 inductive setting 下发挥的比较好. 不过有一个问题是, 显式地计算这些图的性质是非常耗时的.
- GNN 的方法, 对于不使用 node features (如 SEAL, GraIL) 的情况下, 就是 inductive 的, 虽然之前的方法的效率也并不太高.
-
Path Formulation: 之前的基于 Path 的方法, 往往是通过编码头实体 和尾实体 见的不同的 walks 的数量来得到最后的 pair representation , 本文将这些方法统一为如下的形式:
其中 表示 的 paths 的集合, 表示 edge 的向量表示. 是可交换的 summation operator, 表示 muliplication operator (但是并不一定满足交换律), 不同的指标这两个符号会有具体的形式.
-
(1) 可以简写为:
- Katz index: , 且 .
proof:
Katz index 的定义为:
其中 是一个 attenuation factor, 为 one-hot 向量, 仅在 处为 1. 因为 表示 间长度为 的 path 的数目, 所以 Katz index 整体是统计 间所有 path 的数目的指标.
根据条件我们有:
的时候就完全退化为了 Katz.
- Personalized PageRank: , 且 .
proof:
PPR 的定义为:
其中 表示 degree matrix.
根据条件我们有
- Graph distance: , 且 .
proof:
Graph distance 定义为 间的最短路径长度.
根据条件, 我们有
- Widest path: , 且 .
proof:
Widest path 定义为
即找到 间最大化 minimum edge weight 的 path.
根据上面的条件, 我们有
- Most reliable path: , 且 .
Most reliable path 指的是 间概率最大的 path:
根据上面的条件, 我们有
NBFNet
-
尽管公式 (1) 能够统一多种 path 的指标, 但是这些指标的计算复杂度都是很高的 (path 的数量随着长度增加而指数级地膨胀). 故而作者建议采取一种更加一般化的 Bellman-Ford algorithm:
为 edge 的表示,
此外 为一 indicator function:注意到 分别是 summation identity 和 multiplication identity. 如果整个系统满足半环的性质, 则上述的一些 path 的指标都可以通过 (2) 来解决 (证明请回看原文).
-
如果我们放松半环的要求, 我们可以得到一个一般信息传播形式:
对比 (2) 和 (3) 可以发现:
其实总体来说, 和一般的 MPNN 的结构还是很像的, 只是:
1. 特殊的 Indicator function, 而不是结点的特征;
2. 最后得到的是 在 query relation 下的 pair representation, 而不是某个结点的表示.
其实 (3) 可以这样理解, 给了一个起始的条件 (通常是只有结点 处有非零的向量表示), 然后这些信息在传播过程中确定 query 下的合适的 target . -
一些建议的设计方案:
- Message function: 可以设计成知识图谱中的 relational operators (比如 scaling, translation 等);
- Aggregatie function: 可以是普通的 summation, max, min, 作者建议在其后跟随 'a linear transformation' + 'a non-linear activation';
- Indicator function: 用 , 且令为可训练的向量, 而 (作者发现这样的效果比较好).
- 关于 edge 的建模方式, 作者建议如果关系数目 比较多, 可以设定为如果很少, 为了避免过拟合, 可以
-
最后的 link prediction, 作者通过如下方式计算概率
如果是 undirected graph (对于 homogeneous graph) 可以
-
最后通过 BCE 进行训练.
代码
[official]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
2023-03-02 Diffusion-LM Improves Controllable Text Generation
2021-03-02 Chapter 7 Confounding