Post

【论文笔记】R-GCN

Modeling Relational Data with Graph Convolutional Networks

2018 ESWC

论文链接:https://arxiv.org/pdf/1703.06103

代码:

1.引言

将GCN应用到异构网络的连接预测和实体分类任务

统计关系学习(statistical relational learning, SRL):预测知识库中缺少的信息

该论文考虑两种基本的 SRL任务:

  • 连接预测:恢复缺少的三元组
  • 实体分类:给实体赋予类别属性

知识库示例

实体分类模型使用R-GCN学习顶点表示,将顶点表示输入分类器预测标签 连接预测模型可以看做一个自编码器,编码器:R-GCN,产生顶点表示;解码器:使用顶点表示和打分函数预测边

2.神经关系建模

定义:多关系图G = (V, E, R),顶点(实体)vi∈V,有标签的边(关系)(vi, r, vj)∈E,r∈R是关系类型

2.1 关系图卷积网络(R-GCN)

多关系图中顶点vi的消息传递模型:

公式(2)

其中 $N_i^r$ 表示顶点vi在关系r下的邻居集合, $c_{i, r}$ 是问题相关的归一化常数(例如 $\vert N_i^r \vert$ )

上式将GCN扩展到多关系图上,每种关系下的邻居分别聚集,最后再求和 这个图编码模型叫做关系图卷积网络(R-GCN),如图2所示

R-GCN结构图

2.2 正则化

(2)式的一个主要问题是参数数量(权重矩阵)会随着关系数量的增加而快速增长,很容易导致出现次数很少的关系上的过拟合以及模型过大等问题

该论文引入了两种不同的正则化方法:基分解(basis-decomposition)和块对角分解(block-diagonal-decomposition)

基分解将 $W_r^{(l)}$ 分解为B个基变换的线性组合:

公式(3)

块对角分解将 $W_r^{(l)}$ 视为块对角矩阵:

公式(4)

整体模型是堆叠了L个(2)式定义的层,第一层的输入是one-hot ID向量(也可以是其他预定义的特征向量,如与定点相关的文档的词袋表示)

3.实体分类

堆叠R-GCN层,对最后一层的输出计算softmax作为类别概率,最小化交叉熵损失

模型结构图

4.连接预测

连接预测用于预测新的三元组,给定的不是完整的边集合,而是一个子集,任务是为可能的边(三元组)(s, r, o)计算得分f(s, r, o),从而确定这些边是否存在

为解决该问题,该论文引入了图自编码器模型,由实体编码器(R-GCN)和打分函数(解码器)组成

该论文的实验中使用DistMult作为打分函数:

公式(6)

其中 $e_s$ 和 $e_o$ 是使用R-GCN学习到的实体嵌入, $R_r$ 是关系r对应的对角矩阵(可学习参数)

使用负采样来训练模型,对每个正样本采样ω个负样本(将s或o替换为其他实体),通过优化交叉熵损失函数使模型给正样本的打分高于负样本:

公式(7)

其中T是正样本和负样本集合,l是sigmoid函数,y=1表示正样本,y=0表示负样本

5.实验评估

5.1 实体分类实验

数据集(来自 A collection of benchmark datasets for systematic evaluations of machine learning on the semantic web

实体分类数据集

实验设置

使用2个R-GCN层,50个epoch,Adam优化器,学习率为0.01,其他参数如表6所示

超参数

其中l2 penalty就是优化器的weight decay

结果

实体分类结果

5.2 连接预测实验

数据集

连接预测数据集

实验设置

评价指标:MRR和Hits@n(n=1, 3, 10),来自TransE论文

\[MRR=\frac{1}{N}\sum_i \frac{1}{ {rank}_i}\] \[Hits@n=\frac{\#({rank}_i \le n)}{N}\]

对于WN18和FB15k,使用基分解(B=2),使用1个R-GCN层,嵌入维数为200

对于FB15k-237,使用块对角分解(块大小为5×5),使用2个R-GCN层,嵌入维数为500

自环dropout为0.2,其他边为0.4,l2 penalty为0.01

使用Adam优化器,学习率为0.01

结果

连接预测结果1

连接预测结果2

This post is licensed under CC BY 4.0 by the author.