我的博客链接
知识图谱,图神经网络,关系预测,链接预测,图注意力模型
基于流行的Freebase(FB15K-237)数据集上Hits @ 1指标的最新方法,作者的方法实现了104%的改进。
一个单一的GAT层可以表示为:
e i j = a ( W x i → , W x j → ) e_{i j}=a\left(\mathbf{W} \overrightarrow{x_{i}}, \mathbf{W} \overrightarrow{x_{j}}\right) eij=a(Wxi,Wxj)
节点 e i e_i ei的的GAT输出特征向量为:
x i ′ → = σ ( ∑ j ∈ N i α i j W x j → ) \overrightarrow{x_{i}^{\prime}}=\sigma\left(\sum_{j \in \mathcal{N}_{i}} \alpha_{i j} \mathbf{W} \overrightarrow{x_{j}}\right) xi′=σ⎝⎛j∈Ni∑αijWxj⎠⎞
作者使用了多头注意力的方式去加固学习过程:
x i ′ → = ∥ k = 1 K σ ( ∑ j ∈ N i α i j k W k x j → ) \overrightarrow{x_{i}^{\prime}}=\|_{k=1}^{K} \sigma\left(\sum_{j \in \mathcal{N}_{i}} \alpha_{i j}^{k} \mathbf{W}^{k} \overrightarrow{x_{j}}\right) xi′=∥k=1Kσ⎝⎛j∈Ni∑αijkWkxj⎠⎞
最后的输出结果取得是多头注意力的平均值,即
x i ′ → = σ ( 1 K ∑ k = 1 K ∑ j ∈ N i α i j k W k x j → ) \overrightarrow{x_{i}^{\prime}}=\sigma\left(\frac{1}{K} \sum_{k=1}^{K} \sum_{j \in \mathcal{N}_{i}} \alpha_{i j}^{k} \mathbf{W}^{k} \overrightarrow{x_{j}}\right) xi′=σ⎝⎛K1k=1∑Kj∈Ni∑αijkWkxj⎠⎞
GAT在处理过程中其实忽略了知识图谱中的关系,节点的关系十分重要。作者提出了一个整合节点特征和关系的注意力机制。(所以其实上面写的是GAT的流程,下面写的才是作者实际采用的方式,所以其实可以忽略上面写的直接看下面的也可以)
作者把尸体嵌入表示为一个矩阵 H ∈ R N e × T \mathbf{H} \in \mathbb{R}^{N_{e} \times T} H∈RNe×T,相似的关系嵌入表示为 G ∈ R N r × P \mathbf{G} \in \mathbb{R}^{N_{r} \times P} G∈RNr×P, T T T和 P P P分别为实体特征和关系特征的维度。
作者把三元组 t i j k = ( e i , r k , e j ) t_{i j}^{k}=\left(e_{i}, r_{k}, e_{j}\right) tijk=(ei,rk,ej)表示为:
c i j k → = W 1 [ h ⃗ i ∥ h ⃗ j ∥ g ⃗ k ] c_{i j k}^{\rightarrow}=\mathbf{W}_{1}\left[\vec{h}_{i}\left\|\vec{h}_{j}\right\| \vec{g}_{k}\right] cijk→=W1[hi∥∥∥hj∥∥∥gk]
作者参考Veliˇckovi´c et al., 2018)
的方式是,为三元组设计了一个值来表示三元组的重要性:
b i j k = LeakyReLU ( W 2 c i j k ) b_{i j k}=\text { LeakyReLU }\left(\mathbf{W}_{2} c_{i j k}\right) bijk= LeakyReLU (W2cijk)
同样,作者给予了不同关系一个注意力值:
α i j k = softmax j k ( b i j k ) = exp ( b i j k ) ∑ n ∈ N i ∑ r ∈ R i n exp ( b i n r ) \begin{aligned} \alpha_{i j k} &=\operatorname{softmax}_{j k}\left(b_{i j k}\right) \\ &=\frac{\exp \left(b_{i j k}\right)}{\sum_{n \in \mathcal{N}_{i}} \sum_{r \in \mathcal{R}_{i n}} \exp \left(b_{i n r}\right)} \end{aligned} αijk=softmaxjk(bijk)=∑n∈Ni∑r∈Rinexp(binr)exp(bijk)
图3展示了 α i j k \alpha_{i j k} αijk的机制:
所以一个实体 e i e_i ei的新嵌入表示为:
h i ′ → = σ ( ∑ j ∈ N i ∑ k ∈ R i j α i j k c i j k ) \overrightarrow{h_{i}^{\prime}}=\sigma\left(\sum_{j \in \mathcal{N}_{i}} \sum_{k \in \mathcal{R}_{i j}} \alpha_{i j k} c_{i j k}\right) hi′=σ⎝⎛j∈Ni∑k∈Rij∑αijkcijk⎠⎞
同样,作者采用多头注意力机制:
h i ′ → = ∥ m = 1 M σ ( ∑ j ∈ N i α i j k m c i j k m ) \overrightarrow{h_{i}^{\prime}}=\|_{m=1}^{M} \sigma\left(\sum_{j \in \mathcal{N}_{i}} \alpha_{i j k}^{m} c_{i j k}^{m}\right) hi′=∥m=1Mσ⎝⎛j∈Ni∑αijkmcijkm⎠⎞
作者采用一个线性变化来获得关系嵌入矩阵:
G ′ = G . W R G^{\prime}=G . \mathbf{W}^{R} G′=G.WR
在最后一层(Graph Attention Layer 2),作者作者将多头注意力进行取平均操作:
h i ′ → = σ ( 1 M ∑ m = 1 M ∑ j ∈ N i ∑ k ∈ R i j α i j k m c i j k m ) \overrightarrow{h_{i}^{\prime}}=\sigma\left(\frac{1}{M} \sum_{m=1}^{M} \sum_{j \in \mathcal{N}_{i}} \sum_{k \in \mathcal{R}_{i j}} \alpha_{i j k}^{m} c_{i j k}^{m}\right) hi′=σ⎝⎛M1m=1∑Mj∈Ni∑k∈Rij∑αijkmcijkm⎠⎞
作者把初始的实体表示矩阵做了一个线性变换,如图4中3所示。即 W E H t \mathbf{W}^{E} \mathbf{H}^{t} WEHt操作。
作者把图4中3和4连接在一起以一下灯饰表示:
H ′ ′ = W E H t + H f \mathbf{H}^{\prime \prime}=\mathbf{W}^{E} \mathbf{H}^{t}+\mathbf{H}^{f} H′′=WEHt+Hf
如图所示,作者强行建立了多跳关系实体的直接连接。
辅助关系的嵌入为有向路径中所有关系的嵌入和。
这里作者这个辅助边描述的不够清晰,弄得搞不懂这个辅助边在作者的数据集中是不是已经手动建立了,还是不存在。但是通过图中分配了权重说明作者是建立这个辅助边的。
作者借鉴transE的思想 h ⃗ i + g ⃗ k ≈ h ⃗ j \vec{h}_{i}+\vec{g}_{k} \approx \vec{h}_{j} hi+gk≈hj,使用L1距离计算方式得到:
d t i j = ∥ h i → + g k → − h j → ∥ 1 d_{t_{i j}}=\left\|\overrightarrow{h_{i}}+\overrightarrow{g_{k}}-\overrightarrow{h_{j}}\right\|_{1} dtij=∥∥∥hi+gk−hj∥∥∥1
作者采用hinge-loss:
L ( Ω ) = ∑ t i j ∈ S ∑ t i j ′ ∈ S ′ max { d t i j ′ − d t i j + γ , 0 } L(\Omega)=\sum_{t_{i j} \in S} \sum_{t_{i j}^{\prime} \in S^{\prime}} \max \left\{d_{t_{i j}^{\prime}}-d_{t_{i j}}+\gamma, 0\right\} L(Ω)=tij∈S∑tij′∈S′∑max{dtij′−dtij+γ,0}
作者使用ConvKB作为一个解码器。卷积层的目的是分析每个维度上的三重 t i j k t_{i j}^{k} tijk的全局嵌入特性,并概括模型中的过渡特性.
多特征图的分数函数写成:
f ( t i j k ) = ( ∥ m = 1 Ω ReLU ( [ h ⃗ i , g ⃗ k , h ⃗ j ] ∗ ω m ) ) . W f\left(t_{i j}^{k}\right)=\left(\|_{m=1}^{\Omega} \operatorname{ReLU}\left(\left[\vec{h}_{i}, \vec{g}_{k}, \vec{h}_{j}\right] * \omega^{m}\right)\right) . \mathbf{W} f(tijk)=(∥m=1ΩReLU([hi,gk,hj]∗ωm)).W
最后模型被训练的损失函数为:
L = ∑ t i j k ∈ { S ∪ S ′ } log ( 1 + exp ( l t i j k . f ( t i j k ) ) ) + λ 2 ∥ W ∥ 2 2 where l t i j k = { 1 for t i j k ∈ S − 1 for t i j k ∈ S ′ \begin{array}{l}\mathcal{L}=\sum_{t_{i j}^{k} \in\left\{S \cup S^{\prime}\right\}} \log \left(1+\exp \left(l_{t_{i j}^{k} . f}\left(t_{i j}^{k}\right)\right)\right)+\frac{\lambda}{2}\|\mathbf{W}\|_{2}^{2} \\ \text { where } l_{t_{i j}^{k}}=\left\{\begin{array}{ll}1 & \text { for } t_{i j}^{k} \in S \\ -1 & \text { for } t_{i j}^{k} \in S^{\prime}\end{array}\right.\end{array} L=∑tijk∈{S∪S′}log(1+exp(ltijk.f(tijk)))+2λ∥W∥22 where ltijk={1−1 for tijk∈S for tijk∈S′
TransE产生的实体和关系嵌入(Bordes等,2013; Nguyen等,2018)用于初始化我们的嵌入。(用transE作为初始化嵌入,这个模型越来越有取巧的嫌疑了)
作者遵循两步训练过程:
这明明是链接预测,咋整个关系预测,我这里怀疑作者是否有好好的研究知识表示相关内容
这图根本看不出来啥呀。
这个接触过,不知道作用,
这里作者对于两个消融实验也不多描述清楚一下: