RGCN and Knowledge Graph Embeddings
在本节我们主要了解以下内容:
- GCN如何应用到异构图上
- 知识图谱的节点嵌入模型
1 同构图(Homogeneous)和异构图(Heterogeneous)
- 同构图定义:同构图中,node和edge种类只能有一种
- 异构图定义:异构图中,node和edge种类可以有多种
- 一个异构图定义为:
- 其中为节点
- 其中为连接关系三元组
- 其中为连接关系种类
- 其中为节点类型
2 将GCN扩展到异构图上(RGCN)
2.1 想法
- 想法:将每种关系都单独设置一个参数进行训练
2.2 具体模型
- Relational GCN(RGCN)具体模型:
- 每个GNN模型都分两步走:Message和Aggregation
- Message
- 聚合邻居
- 加上本身的信息
- Aggregation
- Message
2.3 存在的问题以及解决方法
-
存在问题:对罕见关系(关系较少)收敛较快,导致过拟合
-
解决方法(减少总体参数):
- 块对角分解
- 基数分解
2.3.1 块对角分解
- 块对角分解:
- 效果:使得的参数从减少到
2.3.2 基数分解
- 基数分解:
- 其中是对所有连接都共享的,是可学习的权重参数,每次训练只需要学习和
2.4 下游任务
2.4.1 Node Classification
- 直接利用最后一层输出即可。
2.4.2 Link Prediction
- Transductive在图上标记四种边
- Training message edges
- Training supervision edges
- Validation edges
- Test edges
- 设置映射函数
- 训练阶段,计算损失时候,加入不存在的边,定义损失函数:
3 知识图谱
- 本节讨论的目标是:知识图谱的补全
- 即给定(头节点,关系),我们需要补全尾节点,形成三元组(头节点,关系,尾节点),记为
3.1 几种关系
-
对称关系(Symmetric):
- ,即同时有
-
反对称关系(Antisymmetric):
- ,即同时有
-
反转关系(Inverse)
-
传递关系(Composition):
-
一对多关系(1-to-N):
3.2 TransE
- Translation Intuition(想法):对于所有的三元组,如果是真实存在的则有否则,得到模型如下:
- Note:TransE就是把关系和节点看成两个Embeddings矩阵,矩阵大小为其中为节点个数,为嵌入空间的维度,实际上就是一个Embeddings算法,和之前提过的"Shallow"Encoding想法差不多
- 缺点:无法应用到存在对称关系和一对多关系的图上
- 通用的模型框架如下
- 模型需要对三元组进行负采样
- 损失计算加入不存在的三元组,进行扰动
3.3 TransR
- TransE无法应用到一对多和对称关系的图上,因此TransR基于该缺点进行修改。
- 具体想法是:把关系和节点放在不同的Embeddings空间上,关系和节点的计算利用另一个矩阵进行过渡。
- 具体模型为:,
- 缺点:不支持传递关系
3.4 DistMult\ComplEx
-
TransR无法应用到传递关系的图上,因此DistMult基于该缺点进行修改。
-
具体想法是节点和关系都在同一个Embeddings空间,但计算方式改为点乘
-
具体模型为:
-
缺点:不支持存在反对称,传递,反转关系的图
-
ComplEx是基于DistMult的基础修改的,主要想法是将节点看为复平面上的点
-
具体模型:
3.5 不同模型的优缺点对比
- 不同的模型对应不同的知识图谱可以得到不一样的效果