CS224W课程(图神经网络)笔记:010-RGCN and Knowledge Graph Embeddings

356 阅读3分钟

RGCN and Knowledge Graph Embeddings

在本节我们主要了解以下内容:

  • GCN如何应用到异构图上
  • 知识图谱的节点嵌入模型

1 同构图(Homogeneous)和异构图(Heterogeneous)

  • 同构图定义:同构图中,node和edge种类只能有一种
  • 异构图定义:异构图中,node和edge种类可以有多种
  • 一个异构图定义为:G=(V,E,R,T)G=(V, E, R, T)
    • 其中VV为节点viVv_i\in V
    • 其中EE为连接关系三元组(vi,r,vj)E(v_i,r,v_j)\in E
    • 其中RR为连接关系种类rRr\in R
    • 其中TT为节点类型T(vi)T(v_i)

2 将GCN扩展到异构图上(RGCN)

2.1 想法

  • 想法:将每种关系都单独设置一个WW参数进行训练

image-20221121104220609.png

image-20221121104254806.png

2.2 具体模型

  • Relational GCN(RGCN)具体模型:
hv(l+1)=σ(rRuNvr1cv,rWr(l)hu(l)+W0(l)hv(l))\mathbf{h}_{v}^{(l+1)}=\sigma\left(\sum_{r \in R} \sum_{u \in N_{v}^{r}} \frac{1}{c_{v, r}} \mathbf{W}_{r}^{(l)} \mathbf{h}_{u}^{(l)}+\mathbf{W}_{0}^{(l)} \mathbf{h}_{v}^{(l)}\right)
  • 每个GNN模型都分两步走:Message和Aggregation
    • Message
      • 聚合邻居mu,r(l)=1cv,rWr(l)hu(l)\mathbf{m}_{u, r}^{(l)}=\frac{1}{c_{v, r}} \mathbf{W}_{r}^{(l)} \mathbf{h}_{u}^{(l)}
      • 加上本身的信息mu,r(l)=1cv,rWr(l)hu(l)\mathbf{m}_{u, r}^{(l)}=\frac{1}{c_{v, r}} \mathbf{W}_{r}^{(l)} \mathbf{h}_{u}^{(l)}
    • Aggregation
hv(l+1)=σ(Sum({mu,r(l),u{N(v)}{v}}))\mathbf{h}_{v}^{(l+1)}=\sigma\left(\operatorname{Sum}\left(\left\{\mathbf{m}_{u, r}^{(l)}, u \in\{N(v)\} \cup\{v\}\right\}\right)\right)

image-20221121104305635.png

2.3 存在的问题以及解决方法

  • 存在问题:对罕见关系(关系较少)收敛较快,导致过拟合

  • 解决方法(减少总体参数):

    • 块对角分解
    • 基数分解

2.3.1 块对角分解

  • 块对角分解:
Wr(l)=b=1BQbr(l)=diag(Q1r(l)QBr(l))W_{r}^{(l)}=\oplus_{b=1}^{B} Q_{b r}^{(l)}=\operatorname{diag}\left(Q_{1 r}^{(l)} \ldots \ldots Q_{B r}^{(l)}\right)
  • 效果:使得Wr(l)W_{r}^{(l)}的参数从d(l+1)×d(l)d^{(l+1)}\times d^{(l)}减少到B×d(l+1)B×d(l)BB \times \frac{d^{(l+1)}}{B} \times \frac{d^{(l)}}{B}

2.3.2 基数分解

  • 基数分解:
Wr(l)=b=1Barb(l)Vb(l)W_{r}^{(l)}=\sum_{b=1}^{B} a_{r b}^{(l)} V_{b}^{(l)}
  • 其中Vb(l)V_{b}^{(l)}是对所有连接都共享的,arb(l)a_{r b}^{(l)}是可学习的权重参数,每次训练只需要学习arb(l)a_{r b}^{(l)}Vb(l)V_{b}^{(l)}

2.4 下游任务

2.4.1 Node Classification

  • 直接利用最后一层输出即可。

image-20221122094349009.png

2.4.2 Link Prediction

  • Transductive在图上标记四种边
    • Training message edges
    • Training supervision edges
    • Validation edges
    • Test edges
  • 设置映射函数fr:Rd×RdRf_{r}: \mathbb{R}^{d} \times \mathbb{R}^{d} \rightarrow \mathbb{R}

image-20221122094515752.png

  • 训练阶段,计算损失时候,加入不存在的边,定义损失函数:
=logσ(fr3(hE,hA))log(1σ(fr3(hE,hB)))\ell=-\log \sigma\left(f_{r_{3}}\left(h_{E}, h_{A}\right)\right)-\log \left(1-\sigma\left(f_{r_{3}}\left(h_{E}, h_{B}\right)\right)\right)

image-20221122095257850.png

3 知识图谱

  • 本节讨论的目标是:知识图谱的补全
    • 即给定(头节点,关系),我们需要补全尾节点,形成三元组(头节点,关系,尾节点),记为(h,r,t)(h,r,t)

3.1 几种关系

  • 对称关系(Symmetric):

    • r(h,t)r(t,h)r(h, t) \Rightarrow r(t, h),即(h,r,t)(h,r,t)同时有(t,r,h)(t,r,h)
  • 反对称关系(Antisymmetric):

    • r(h,t)¬r(t,h)r(h, t) \Rightarrow \neg r(t, h),即(h,r,t)(h,r,t)同时有(t,r,h)(t,-r,h)
  • 反转关系(Inverse)

    • r2(h,t)r1(t,h)r_{2}(h, t) \Rightarrow r_{1}(t, h)
  • 传递关系(Composition):

    • r1(x,y)r2(y,z)r3(x,z)x,y,zr_{1}(x, y) \wedge r_{2}(y, z) \Rightarrow r_{3}(x, z) \quad \forall x, y, z
  • 一对多关系(1-to-N):

    • r(h,t1),r(h,t2),,r(h,tn)r\left(h, t_{1}\right), r\left(h, t_{2}\right), \ldots, r\left(h, t_{n}\right)

3.2 TransE

  • Translation Intuition(想法):对于所有的三元组(h,r,t)(h,r,t),如果是真实存在的则有h+rt\mathbf{h}+\mathbf{r} \approx \mathbf{t}否则h+rt\mathbf{h}+\mathbf{r} \neq \mathbf{t},得到模型如下:
fr(h,t)=h+rtf_{r}(h, t)=-\|\mathbf{h}+\mathbf{r}-\mathbf{t}\|
  • Note:TransE就是把关系和节点看成两个Embeddings矩阵,矩阵大小为n×dn\times d其中nn为节点个数,dd为嵌入空间的维度,实际上就是一个Embeddings算法,和之前提过的"Shallow"Encoding想法差不多
  • 缺点:无法应用到存在对称关系和一对多关系的图上

image-20221122101613598.png

  • 通用的模型框架如下
    • 模型需要对三元组进行负采样
    • 损失计算加入不存在的三元组,进行扰动

image-20221122101705923.png

3.3 TransR

  • TransE无法应用到一对多和对称关系的图上,因此TransR基于该缺点进行修改。
  • 具体想法是:把关系和节点放在不同的Embeddings空间上,关系和节点的计算利用另一个矩阵进行过渡。
  • 具体模型为:rRk,MrRk×d,hRd,tRd\mathbf{r} \in \mathbb{R}^{k} ,\mathbf{M}_{r} \in \mathbb{R}^{k \times d},\mathbf{h}\in\mathbb{R}^{d},\mathbf{t}\in\mathbb{R}^{d}h=Mrh,t=Mrt\mathbf{h}_{\perp}=\mathbf{M}_{r} \mathbf{h}, \mathbf{t}_{\perp}=\mathbf{M}_{r} \mathbf{t}
fr(h,t)=h+rtf_{r}(h, t)=-\left\|\mathbf{h}_{\perp}+\mathbf{r}-\mathbf{t}_{\perp}\right\|

image-20221122102815648.png

  • 缺点:不支持传递关系

3.4 DistMult\ComplEx

  • TransR无法应用到传递关系的图上,因此DistMult基于该缺点进行修改。

  • 具体想法是节点和关系都在同一个Embeddings空间,但计算方式改为点乘

  • 具体模型为:h,r,tRk\mathbf{h}, \mathbf{r}, \mathbf{t} \in \mathbb{R}^{k}

fr(h,t)=<h,r,t>=ihiritif_{r}(h, t)=<\mathbf{h}, \mathbf{r}, \mathbf{t}>=\sum_{i} \mathbf{h}_{i} \cdot \mathbf{r}_{i} \cdot \mathbf{t}_{i}

image-20221122103208923.png

  • 缺点:不支持存在反对称,传递,反转关系的图

  • ComplEx是基于DistMult的基础修改的,主要想法是将节点看为复平面上的点

  • 具体模型:h,r,tCk\mathbf{h}, \mathbf{r}, \mathbf{t} \in \mathbb{C}^{k}

fr(h,t)=Re(ihiriti)f_{r}(h, t)=\operatorname{Re}\left(\sum_{i} \mathbf{h}_{i} \cdot \mathbf{r}_{i} \cdot \overline{\mathbf{t}}_{i}\right)

3.5 不同模型的优缺点对比

  • 不同的模型对应不同的知识图谱可以得到不一样的效果

image-20221122103724656.png