我的博客链接
0. 导读
0.1 文章是关于什么的?(what?)
知识图谱,图神经网络,关系预测,链接预测,图注意力模型
0.2 要解决什么问题?(why?)
- 基于CNN的嵌入模型独立的处理三元组,导致无法覆盖在三元组周围的本地邻居中固有隐含的复杂和隐藏信息。
- 随着模型深度的增加,远方实体的贡献呈指数下降。
0.3 用什么方法解决?(how?)
- 将不同的权重(注意力)分配给附近的节点,并通过迭代方式通过层传播注意力。
- 提出的关系组合在n跳邻居之间引入辅助边,这样就很容易允许实体之间的知识流。
- 作者设计一个encoder-decoder模型(坐着的生成图注意力模型和ConvKB的组合)
0.4文章有什么创新?
- 作者是第一个学习新的基于图注意力的嵌入,这些嵌入专门针对KG的关系预测。
0.5 效果如何?
基于流行的Freebase(FB15K-237)数据集上Hits @ 1指标的最新方法,作者的方法实现了104%的改进。
0.6 还存在什么问题?
- 分步训练编解码器,容易产生错误传播
- 需要transE作为初始嵌入。
- 这明明是链接预测,咋整个关系预测,这里可能有笔误
- 该方法无法以自上而下的递归方式捕获信息
1 背景知识
2 模型
2.1 Graph Attention Networks (GATs) 图注意力网络
一个单一的GAT层可以表示为:
eij=a(Wxi,Wxj)
- 其中eij是边(ei,ej)的注意力值,W是线性变换矩阵(把输入特征映射到高维输出特征空间),a是注意力函数
节点ei的的GAT输出特征向量为:
xi′=σ⎝⎛j∈Ni∑αijWxj⎠⎞
- 其中αij是eij,其中a使用了softmax函数
作者使用了多头注意力的方式去加固学习过程:
xi′=∥k=1Kσ⎝⎛j∈Ni∑αijkWkxj⎠⎞
- 其中k代表第k个头,∥代表一个串联。(这是第一种连接方式)
最后的输出结果取得是多头注意力的平均值,即
xi′=σ⎝⎛K1k=1∑Kj∈Ni∑αijkWkxj⎠⎞
2.2 引入关系的重要性
GAT在处理过程中其实忽略了知识图谱中的关系,节点的关系十分重要。作者提出了一个整合节点特征和关系的注意力机制。(所以其实上面写的是GAT的流程,下面写的才是作者实际采用的方式,所以其实可以忽略上面写的直接看下面的也可以)
作者把尸体嵌入表示为一个矩阵H∈RNe×T,相似的关系嵌入表示为G∈RNr×P,T和P分别为实体特征和关系特征的维度。
作者把三元组tijk=(ei,rk,ej)表示为:
cijk→=W1[hi∥∥∥hj∥∥∥gk]
- 其中,hi,hj, and gk分别代表实体ei,ej,rk的嵌入表示。
作者参考Veliˇckovi´c et al., 2018)
的方式是,为三元组设计了一个值来表示三元组的重要性:
bijk= LeakyReLU (W2cijk)
同样,作者给予了不同关系一个注意力值:
αijk=softmaxjk(bijk)=∑n∈Ni∑r∈Rinexp(binr)exp(bijk)
图3展示了αijk的机制:
所以一个实体ei的新嵌入表示为:
hi′=σ⎝⎛j∈Ni∑k∈Rij∑αijkcijk⎠⎞
同样,作者采用多头注意力机制:
hi′=∥m=1Mσ⎝⎛j∈Ni∑αijkmcijkm⎠⎞
这就是图4中展示的图注意力层:
作者采用一个线性变化来获得关系嵌入矩阵:
G′=G.WR
- 其中,WR∈RT×T′。
- 这里是图4中2所示的部分。
- 感觉这里是因为关系嵌入在传播的过程中没有发生变化,强行线性变化使得发生变化。
在最后一层(Graph Attention Layer 2),作者作者将多头注意力进行取平均操作:
hi′=σ⎝⎛M1m=1∑Mj∈Ni∑k∈Rij∑αijkmcijkm⎠⎞
作者把初始的实体表示矩阵做了一个线性变换,如图4中3所示。即WEHt操作。
作者把图4中3和4连接在一起以一下灯饰表示:
H′′=WEHt+Hf
作者引入辅助关系路径

如图所示,作者强行建立了多跳关系实体的直接连接。
辅助关系的嵌入为有向路径中所有关系的嵌入和。
这里作者这个辅助边描述的不够清晰,弄得搞不懂这个辅助边在作者的数据集中是不是已经手动建立了,还是不存在。但是通过图中分配了权重说明作者是建立这个辅助边的。
2.3 训练目标
作者借鉴transE的思想hi+gk≈hj,使用L1距离计算方式得到:
dtij=∥∥∥hi+gk−hj∥∥∥1
- 其中tijk=(ei,rk,ej)
作者采用hinge-loss:
L(Ω)=tij∈S∑tij′∈S′∑max{dtij′−dtij+γ,0}
- 其中,γ>0是超参数,
- S′=replace head entity {ti′jk∣ei′∈E\ei}∪replace tail entity {tij′k∣ej′∈E\ej}
2.4 解码器
作者使用ConvKB作为一个解码器。卷积层的目的是分析每个维度上的三重tijk的全局嵌入特性,并概括模型中的过渡特性.
多特征图的分数函数写成:
f(tijk)=(∥m=1ΩReLU([hi,gk,hj]∗ωm)).W
- 其中,ωm是第m个卷积核,∗是卷积操作。W∈RΩk×1是线性变换来计算三元组最终分数。
最后模型被训练的损失函数为:
L=∑tijk∈{S∪S′}log(1+exp(ltijk.f(tijk)))+2λ∥W∥22 where ltijk={1−1 for tijk∈S for tijk∈S′
3 实验
3.1 数据集

3.2 训练协议
TransE产生的实体和关系嵌入(Bordes等,2013; Nguyen等,2018)用于初始化我们的嵌入。(用transE作为初始化嵌入,这个模型越来越有取巧的嫌疑了)
作者遵循两步训练过程:
- 即我们首先训练广义GAT以编码有关图实体和关系的信息,
- 然后训练诸如ConvKB(Nguyen等人,2018)的解码器模型以执行关系预测任务。
3.3 评估标准
这明明是链接预测,咋整个关系预测,我这里怀疑作者是否有好好的研究知识表示相关内容
3.4 实验结果


这图根本看不出来啥呀。
pagerank
这个接触过,不知道作用,

消融实验

这里作者对于两个消融实验也不多描述清楚一下:
- -PG这个不清楚是移除了啥,那个辅助关系本来也没搞懂。但这个我觉得本来传播模型的时候就带入了多跳传输。
- -Relation,这个应该是直接采用GAT的方式,没有考虑关系
参考链接