CS224W 图机器学习08:知识图的学习

1 知识图基本介绍

知识图(Knowledge graph):以图的形式存储知识

  • 节点表示实体(entitles),节点的标签可以是实体类型
  • 节点之间的边表示两个实体之间的关系
  • 所以知识图是异构图的一种特殊情况

知识图示例:生物知识图(蛋白质/药物/疾病/不良事件)

知识图应用:信息检索服务、问答和对话

常见的开源 KG :0_life/精品资源/数据资源/知识图数据资源

这类知识图一般是百万级别的,存在很多边的缺失(考虑补齐)

比如 Freebase 中 93.8%的人没有出生地、78.5%的人没有国籍

2 知识图嵌入表示

定义知识图中的三元组:(h,r,t)->(头,关系,尾)

知识图嵌入表示的主要思想:

  • 先将实体和实体间的关系转化到 $d$ 维的嵌入空间
  • $(h,r)$ 的嵌入表示应该尽可能接近 $t$ 的嵌入表示
  • 定义相似性得分 $f_r(h,t)$ 来表示三元组 (h,r,t) 存在的可能性

知识图嵌入表示的核心是知识补齐:能根据 $(h,r)$ 预测 $t$

主流的知识图嵌入表示方法:

不同方法间的区别主要在于:(1)不同的几何直觉(2)不同的表达能力/关系类型

本节课主要涉及以下四种常见的知识图嵌入表示方法:

  • Score(相似度得分):欧式距离度量(前两个),余弦相似度(后两个)
  • Sym(对称性):A 是 B 的朋友 -> B 也是 A 的朋友
  • Antisym(反对称性):A 是 B 的父亲 -> B 不是 A 的父亲
  • Inv(逆关系):A 是 B 的父亲 -> B 是 A 的孩子
  • Compos(复合关系):B 是女的,A 是 B 的父亲 -> B 是 A 的女儿
  • 1-to-N(一对多关系):A 是 B 的父亲 -> A 也可以是 C 的父亲

经验总结:(1)不同 KG 的关系模型差异很大,不存在适用于所有 KG 的统一嵌入方法,需要因图制宜(2)当 KG 中不存在太多对称关系时,可考虑先用 TransE 快速实现;然后再使用其他更具表现力的模型,比如 CompIEx、RotatE(复数空间版的 TransE)

3 知识图嵌入表示:TransE

TransE 的算法步骤:

  1. 基于均匀分布初始化实体 $e$ 和实体关系 $r$,其中 $k$ 表示嵌入表示维度
  2. 每次迭代时,从训练集 $S$ 中随机筛选 $b$ 个三元组 $(h,r,t)$,并分布构建对应的负样本 $(h',r,t')$ ,即在实际的 KG 中不存在的三元组;然后将正负样本纳入一个训练批次的集合 $T_{batch}$ 中
  3. TransE 算法使用对比损失函数指导参数的更新;该损失函数的目的是尽可能提高正样本的得分并降低负样本的得分;其中得分函数为三元组的距离评估函数:$-||h+r-t||$

TransE 的算法分析:

  • TransE 可以建模反对称性:$h+r=t,but\ t+r\neq h$
  • TransE 可以建模逆关系:$(h,r_2,t)->(t,r_1,h),when \ r_1=-r_2$
  • TransE 可以建模复合关系:$r_1(x,y)\land r_2(y,z)\Rightarrow r_3(x,z) ,when \ r_3= r_1+r_2$
  • TransE 不支持建模对称性和一对多关系

4 知识图嵌入表示:TransR

TransR 算法在 TransE 基础上的改进:

  • 为实体关系构建单独的嵌入表示空间,并与实体区分
  • 更新评分函数为:$-||M_rh+r-M_rt||$

实体 $e$ 和关系 $r$ 处于不同的嵌入表示空间,所以需要额外的线性投影 $M_r$

TransR 的算法分析:

  • TransR 算法继承了 TransE 算法的所有建模能力
  • TransR 可以建模对称性:不同的关系 $r$ 有不同的投影 $M_r$
  • TransR 可以建模一对多关系:通过 $M_r$ 学习实现 $M_rt_1=M_rt_2$

5 知识图嵌入表示:DistMult

DistMult 算法在 TransE 基础上的改进:

  • 用矩阵 $A$ 来包含关系信息,追求 $hA$ 尽可能接近 $t$
  • 评分函数不再使用 L1/L2 距离,而是改用余弦相似度
  • 限制矩阵 A 为对角矩阵,抑制矩阵 A 的表达(避免过拟合)
  • 因此 DistMult 的得分函数为:$h\cdot A \cdot t=\Sigma_i(h_i\cdot r_i \cdot t_i)=<h,r,t>$

DistMult 的算法分析:

  • 因为点积是可交换的,所以 DistMult 不区分头实体和尾实体
  • DistMult 算法可以建模对称性:$<h,r,t>=<t,r,h>$
  • DistMult 算法可以建模一对多关系:$<h,r,t_1>=<h,r,t_2>$
  • DistMult 算法不可以建模反对称性、逆关系、复合关系

6 知识图嵌入表示:CompIEx

CompIEx 算法在 DistMult 基础上的改进:

  • 将实体和关系共同嵌入表示在一个复数向量空间
  • CompIEx 算法的评分函数为:$\mathrm{Re}\left (\sum_i\mathbf{h}_i\cdot\mathbf{r}_i\cdot\bar{\mathbf{t}}_i\right)$

$\mathrm{Re}(u)$ 表示 $u$ 的实部;$\mathrm{Im}(u)$ 表示 $u$ 的虚部;$\bar{\mathbf{u}}$ 表示 $\mathbf{u}$ 的共轭

CompIEx 评分函数的化简: $$\begin{aligned} f_r(h,t)&=\mathrm{Re}\left(\sum_i\mathbf{h}_i\cdot\mathbf{r}_i\cdot\bar{\mathbf{t}}_i\right) =\sum_i\mathrm{Re}(\mathbf{h}_i\cdot\mathbf{r}_i\cdot\overline{\mathbf{t}}_i) \\ &=\sum_i\mathrm{Re}((\mathrm{Re}(\mathbf{h}_i)+i\mathrm{Im}(\mathbf{h}_i))\cdot(\mathrm{Re}(\mathbf{r}_i)+i\mathrm{Im}(\mathbf{r}_i))\cdot(\mathrm{Re}(\mathbf{t}_i)-i\mathrm{Im}(\mathbf{t}_i))) \\ &=\sum_i[\mathrm{Re}(\mathbf{h}_i)\mathrm{Re}(\mathbf{r}_i)\mathrm{Re}(\mathbf{t}_i)+ \mathrm{Re}(\mathbf{h}_i)\mathrm{Im}(\mathbf{r}_i)\mathrm{Im}(\mathbf{t}_i)+ \mathrm{Im}(\mathbf{h}_i)\mathrm{Re}(\mathbf{r}_i)\mathrm{Im}(\mathbf{t}_i)+ \mathrm{Im}(\mathbf{h}_i)\mathrm{Im}(\mathbf{r}_i)\mathrm{Re}(\mathbf{t}_i)] \\ &=\langle\mathrm{Re}(\mathbf{h}_i),\mathrm{Re}(\mathbf{r}_i),\mathrm{Re}(\mathbf{t}_i)\rangle+ \langle\mathrm{Im}(\mathbf{h}_i),\mathrm{Re}(\mathbf{r}_i),\mathrm{Im}(\mathbf{t}_i)\rangle+ \langle\mathrm{Im}(\mathbf{h}_i),\mathrm{Im}(\mathbf{r}_i),\mathrm{Re}(\mathbf{t}_i)\rangle- \langle\mathrm{Im}(\mathbf{h}_i),\mathrm{Im}(\mathbf{r}_i),\mathrm{Re}(\mathbf{t}_i)\rangle \end{aligned}$$

CompIEx 的算法分析:

  • 通过复共轭的不对称建模, CompIEx 可以建模反对称性
  • CompIEx 可以建模对称性:$f_r(h,t)=\mathrm{Re}\left (\sum_i\mathbf{h}_i\cdot\mathbf{r}_i\cdot\bar{\mathbf{t}}_i\right)=\mathrm{Re}\left (\sum_i\mathbf{r}_i\cdot\bar{\mathbf{h}}_i\cdot\mathbf{t}_i\right)=f_r(t,h)$
  • CompIEx 可以建模逆关系:$r_2(h,t)\rightarrow r_1(t,h)\ when \ r_1 = \bar{r_2}$
  • CompIEx 可以建模一对多关系,不可以建模复合关系(和 DistMult 算法一致)

往年同期文章