(2018 -NIPS)SimplE embedding for link prediction in knowledge
本文为阅读论文过程中的个人总结加上翻译内容构成。
摘要
介绍知识图谱,知识图谱补全(链接预测),并说明了张量分解方法(Tensor factorization approaches)对于这类问题有着显著的效果,其中正则多元分解( Canonical Polyadic (CP))是最早的张量分解方法,但CP是有局限性的,它学习了每个实体的两个独立的嵌入向量,而它们实际上是绑定的。我们提出了一个简单的CP增强(我们称之为simpIE),以允许独立地学习每个实体的两个嵌入。简单算法的复杂度随嵌入的大小线性增长。通过simpleare学习到的嵌入是可解释的,某些类型的背景知识可以通过权重绑定被纳入这些嵌入。我们证明了simple是完全表达的,并为充分表达推导了其嵌入的大小的界限。我们通过经验证明,尽管simplet很简单,但它的性能优于几种最先进的张量分解技术。
GitHub地址:https://github.com/Mehran-k/SimplE.
相关介绍:
1. 介绍
第一段介绍,知识图谱补全是在统计关系学习(SRL)的框架下,看成在现有三元组的基础上预测新的三元组的过程。
第二段介绍张量分解被证明是一种有效的SRL方法,预测的评判标准是将三元组作为输入,输出一个概率代表该三元组是否正确的概率。
张量分解的第一种方法是正则多元(CP)分解。该方法为每个关系学习一个嵌入向量,为每个实体学习两个嵌入向量,当实体是头时使用一个,当实体是尾时使用一个。一个实体的头部嵌入是独立于(并且与)其尾部嵌入无关的。这种独立性导致CP在KG补全中表现不佳。本文提出了一种基于CP的张量分解方法,解决了实体的两个嵌入向量之间的独立性问题。由于模型的简单性,我们称其为simple (SimpleEmbedding)。
本文证明了:
- 可以被认为是一个双线性模型
- 是完全表达的
- 能够通过参数共享将背景知识编码到它的嵌入中
- 尽管原理很简单,但在经验上表现得非常好。我们还讨论了其他现有方法的几个缺点
- 证明了现有的一些编码方法并不能完全表达,并找出了表达的严格限制
- 证明了ComplEx是一种最先进的链路预测方法,涉及到冗余计算
2. 背景和符号
定义了一些符号,例如:(具体定义建议看原文,更清楚,这里只列出定义了哪些)
- 小写字母表示向量,大小字母表示矩阵,向量拼接的公式,向量乘积的公式: ⟨ v h , v r , v t ⟩ \left\langle v_{h}, v_{r}, v_{t}\right\rangle ⟨vh,vr,vt⟩
- 知识图谱头实体、尾实体、关系的集合定义、正确三元组集合、错误三元组集合
- 定义对称关系、非对称关系以及传递关系、以及关系的倒数
3. 相关工作
普通嵌入方法
定义:头实体为简单向量 v e ∈ R d v_{e} \in \mathbb{R}^{d} ve∈Rd ,尾实体为 v r ∈ R d ′ v_{r} \in \mathbb{R}^{d^{\prime}} vr∈Rd′以及两个矩阵: P r ∈ R d ′ × d P_{r} \in \mathbb{R}^{d^{\prime} \times d} Pr∈Rd′×d 和 Q r ∈ R d ′ × d Q_{r} \in \mathbb{R}^{d^{\prime} \times d} Qr∈Rd′×d。
同时得分函数的定义为: ∥ P r v h + v r − Q r v t ∥ i \left\|P_{r} v_{h}+v_{r}-Q_{r} v_{t}\right\|_{i} ∥Prvh+vr−Qrvt∥i ( P r v h + v r ≈ Q r v t ) \left.P_{r} v_{h}+v_{r} \approx Q_{r} v_{t}\right) Prvh+vr≈Qrvt))
例如:
- TransE中: d = d ′ , P r = Q r = I d d=d^{\prime}, P_{r}=Q_{r}=\mathcal{I}^{d} d=d′,Pr=Qr=Id
- TransR中: P r = Q r . P_{r}=Q_{r} . Pr=Qr.
- STransE中:对矩阵没有限制
- FTransE中:定义得分函数为 ∥ P r v h + v r − α Q r v t ∥ i \left\|P_{r} v_{h}+v_{r}-\alpha Q_{r} v_{t}\right\|_{i} ∥Prvh+vr−αQrvt∥i
本文中采用FSTransE代替FTransE,结合两者的优点。
相乘嵌入方法
Multiplicative Approaches 是什么意思
DistMult:(最简单的方法之一)
- 定义实体和关系的嵌入为 v e ∈ R d v_{e} \in \mathbb{R}^{d} ve∈Rd 和 v r ∈ R d v_{r} \in \mathbb{R}^{d} vr∈Rd
- 定义得分函数为: ⟨ v h , v r , v t ⟩ \left\langle v_{h}, v_{r}, v_{t}\right\rangle ⟨vh,vr,vt⟩
- DistMult不区分头尾关系,所以只能模拟对称关系
ComplEx:(在DistMult基础上扩充,考虑复数)
- r e e ∈ R d r e_{e} \in \mathbb{R}^{d} ree∈Rd 和 i m e ∈ R d i m_{e} \in \mathbb{R}^{d} ime∈Rd 代表实体的实部和虚部
- r e r ∈ R d r e_{r} \in \mathbb{R}^{d} rer∈Rd 和 i m r ∈ R d i m_{r} \in \mathbb{R}^{d} imr∈Rd 代表关系的实部和虚部
- 相似函数为: Real ( ∑ j = 1 d ( r e h [ j ] + i m h [ j ] i ) ∗ ( r e r [ j ] + i m r [ j ] i ) ∗ ( r e t [ j ] − i m t [ j ] i ) ) \operatorname{Real}\left(\sum_{j=1}^{d}\left(r e_{h}[j]+i m_{h}[j] i\right) *\left(r e_{r}[j]+\right.\right.\left.\left.i m_{r}[j] i\right) *\left(r e_{t}[j]-i m_{t}[j] i\right)\right) Real(∑j=1d(reh[j]+imh[j]i)∗(rer[j]+imr[j]i)∗(ret[j]−imt[j]i)) Real ( α + β i ) = α \operatorname{Real}(\alpha+\beta i)=\alpha Real(α+βi)=α
- ⟨ r e h , r e r , r e t ⟩ + ⟨ r e h , i m r , i m t ⟩ + ⟨ i m h , r e r , i m t ⟩ − ⟨ i m h , i m r , r e t ⟩ . \left\langle r e_{h}, r e_{r}, r e_{t}\right\rangle+\left\langle r e_{h}, i m_{r}, i m_{t}\right\rangle+\left\langle i m_{h}, r e_{r}, i m_{t}\right\rangle-\left\langle i m_{h}, i m_{r}, r e_{t}\right\rangle . ⟨reh,rer,ret⟩+⟨reh,imr,imt⟩+⟨imh,rer,imt⟩−⟨imh,imr,ret⟩.
RESCAL:
- 定义实体嵌入为: v e ∈ R d v_{e} \in \mathbb{R}^{d} ve∈Rd
- 定义关系嵌入为: v r ∈ R d × d v_{r} \in \mathbb{R}^{d \times d} vr∈Rd×d
- 得分函数为: v r ⋅ vec ( v h ⊗ v t ) v_{r} \cdot \operatorname{vec}\left(v_{h} \otimes v_{t}\right) vr⋅vec(vh⊗vt) ⊗ \otimes ⊗表示外积 vec ( . ) \operatorname{vec}(.) vec(.)对输入矩阵进行矢量化
深度学习方法
E-MLP:
- 定义实体嵌入: v e ∈ R d v_{e} \in \mathbb{R}^{d} ve∈Rd,
- 定义关系嵌入: M r ∈ R 2 k × m M_{r} \in \mathbb{R}^{2 k \times m} Mr∈R2k×m 和 v r ∈ R m . v_{r} \in \mathbb{R}^{m} . vr∈Rm.
- 拼接头尾实体: [ v h ; v t ] ∈ R 2 d \left[v_{h} ; v_{t}\right] \in \mathbb{R}^{2 d} [vh;vt]∈R2d,神经网络第一层参数为 M r ∈ R 2 k × m M_{r} \in \mathbb{R}^{2 k \times m} Mr∈R2k×m 、神经网络第二层参数为 v r ∈ R m . v_{r} \in \mathbb{R}^{m} . vr∈Rm.
- 输入 [ v h ; v r ; v t ] ∈ R 3 d \left[v_{h} ; v_{r} ; v_{t}\right] \in \mathbb{R}^{3 d} [vh;vr;vt]∈R3d 到两层的神经网络模型中.
4. SimpIE:完全表达模型
在正则多元分解(CPD)中,每个实体有两个嵌入 h e , t e ∈ R d h_{e}, t_{e} \in \mathbb{R}^{d} he,te∈Rd,得分函数为: ⟨ h e 1 , v r , t e 2 ⟩ . \left\langle h_{e_{1}}, v_{r}, t_{e_{2}}\right\rangle . ⟨he1,vr,te2⟩.。同时两个嵌入向量是相互独立的,更新也是单独更新。
示例 1
解释了同一个实体的两个嵌入向量是如何单独更新的。
SimpLE利用关系的逆来解决CP中每个实体的两个向量的独立性。关系的逆已经用在许多地方,但用在解决CP实体向量的独立性还是首次提出。
模型定义
- 实体定义: h e , t e ∈ R d h_{e}, t_{e} \in \mathbb{R}^{d} he,te∈Rd
- 关系定义: v r , v r − 1 ∈ R d v_{r}, v_{r^{-1}} \in \mathbb{R}^{d} vr,vr−1∈Rd 为关系的逆矩阵
- 得分函数定义: 1 2 ( ⟨ h e i , v r , t e j ⟩ + ⟨ h e j , v r − 1 , t e i ⟩ ) \frac{1}{2}\left(\left\langle h_{e_{i}}, v_{r}, t_{e_{j}}\right\rangle+\left\langle h_{e_{j}}, v_{r^{-1}}, t_{e_{i}}\right\rangle\right) 21(⟨hei,vr,tej⟩+⟨hej,vr−1,tei⟩)
同时考虑SimpLE-ignr变体:
- 训练阶段:更新嵌入,使得正确三元组的嵌入更大,错误三元组的嵌入更小
- 测试阶段:忽略关系的逆,定义得分函数为: ⟨ h e i , v r , t e j ⟩ \left\langle h_{e_{i}}, v_{r}, t_{e_{j}}\right\rangle ⟨hei,vr,tej⟩
SimpLE模型学习过程
- 采用小批量随机梯度下降
- 迭代的获取正三元组,同时将正三元组转换为负三元组
- 具体方法为,如果破坏的是头实体,则从 E − { h } \mathcal{E}-\{h\} E−{h}中选取一个实体作为代替。如果破坏的是尾实体,则从 E − { t } \mathcal{E}-\{t\} E−{t}中选取一个实体作为代替。
- 定义损失函数为:
min
θ
∑
(
(
h
,
r
,
t
)
,
l
)
∈
L
B
\min _{\theta} \sum_{((h, r, t), l) \in \mathbf{L B}}
minθ∑((h,r,t),l)∈LBsoftplus
(
−
l
⋅
ϕ
(
h
,
r
,
t
)
)
+
λ
∥
θ
∥
2
2
(-l \cdot \phi(h, r, t))+\lambda\|\theta\|_{2}^{2}
(−l⋅ϕ(h,r,t))+λ∥θ∥22
- PS:最外层喊是最小化函数,求和所有三元组包括正三元组和负三元组,softplus函数是激活函数,l表示三元组标签(正还是负), ϕ ( h , r , t ) ) \phi(h, r, t)) ϕ(h,r,t))为得分函数, + λ ∥ θ ∥ 2 2 +\lambda\|\theta\|_{2}^{2} +λ∥θ∥22为正则化超参数。
- softplus ( x ) = log ( 1 + exp ( x ) ) \operatorname{softplus}(x)=\log (1+\exp (x)) softplus(x)=log(1+exp(x)) 激活函数(这里不用基于边际的损失函数是因为,认为基于边际的损失函数更容易过拟合。)
5. 理论分析
本阶段对SimpLE以及其他嵌入模型进行理论分析。(具体证明过程看原文)
5.1 完全表达
命题1
-
对于所有的关于实体和关系的真实事实,存在一个SimpLE模型用有限维的嵌入向量 min ( ∣ E ∣ ⋅ ∣ R ∣ , γ + 1 ) \min (|\mathcal{E}| \cdot|\mathcal{R}|, \gamma+1) min(∣E∣⋅∣R∣,γ+1)来表示事实。
-
证明过程:
- 首先证明 ∣ E ∣ ⋅ ∣ R ∣ |\mathcal{E}| \cdot|\mathcal{R}| ∣E∣⋅∣R∣有界
- 然后证明 γ + 1 \gamma+1 γ+1有界
DistMult并不是完全表达的,因为他强制关系是对称的,ComplEx是完全表达的,嵌入长度最多为 ∣ E ∣ ⋅ ∣ R ∣ |\mathcal{E}| \cdot|\mathcal{R}| ∣E∣⋅∣R∣,同时有证明表明TransE也并不是完全表达的。
命题2
- FSTransE并不是完全表达的,他有着以下限制:
- 如果一个关系r是reflexive,r必须是对称的
- 如果一个关系r是reflexive,r必须是可传递的
- 如果实体 e 1 e_{1} e1和一个集合中所有实体都有关系r,而实体 e 2 e_{2} e2与集合中的一个实体有关系r,那么 e 2 e_{2} e2必须与集合中的所有实体都有关系r。
推论 1
- 其他嵌入变体如:TransE, FTransE, STransE, TransH和TransR 都有着命题2的限制
5.2 将背景知识融入嵌入
在SimplE中,实体的嵌入向量的每个元素都可以被视为实体的一个特征,而关系的对应元素可以被视为该特征对关系的重要性的度量。这种可解释性允许通过SimplE学习到的嵌入内容可以潜在地转移到其他领域。它还允许通过固定观察值的嵌入向量的一个元素,将观察到的实体特征纳入嵌入。Nickelet al.[30]表明,结合这些特征有助于减小嵌入物的大。
近年来,将背景知识融入张量因子分解方法已成为众多研究的焦点。为了达到这一目标,许多现有的方法依靠后处理步骤或在损失函数中添加额外的项来惩罚违反背景知识的预测[34,42,45,13,9]。Minerviniet al.[25]展示了如何通过参数绑定将等价和反演方面的背景知识整合到几个张量分解模型中。通过参数绑定结合背景知识的优点是保证所有嵌入的预测都遵循背景知识。在本节中,我们将展示如何将三种类型的背景知识,即对称、反对对称和反对称,通过绑定参数3(我们忽略了两个关系之间的等价性,因为它是微不足道的)整合到SimplE的嵌入中。
命题3
- 建立这样的一个关系,对于两个实体,我们有他们的关系r是对称的,那么这个关系r可以和关系r的逆来联系起来
命题4
- 建立这样的一个关系,对于两个实体,我们有他们的关系r是反对称的,那么这个关系r可以和关系r的逆来联系起来
命题5
- 对于两个关系r1与r2,有(实体1,关系r1,实体2)、(实体2,关系r2,实体1),则关系r1与关系r2的逆联系起来,关系r2与关系r1的逆联系起来
5.3 时间复杂度和参数增长
模型要扩展到当前KGs的大小并跟上它们的增长,关系模型必须具有线性时间和内存复杂度。此外,设计张量分解模型的一个重要挑战是表达性和模型复杂性之间的权衡。参数多的模型通常会过拟合,性能较差。而TransE的时间复杂度是O(d),其中d为嵌入向量的大小,添加STransE中的投影(通过两个关系矩阵)增加了时间复杂度为 O ( d 2 ) O(d^2) O(d2)。除了时间复杂度外,从数据中学习的参数数量也随着d呈二次增长。二次时间复杂度和参数增长可能会产生两个问题:
- 1-可扩展性问题,
- 2-过拟合问题。
同样的问题也存在于具有二次或更高时间复杂性和参数增长的模型,如RESCAL和NTNs。DistMult和ComplEx具有线性时间复杂度,它们的参数数随d线性增长。
5.4 双线性模型族
双线性模型对应于模型族,其中每个实体的嵌入是 ∈ R d \in \mathbb{R}^{d} ∈Rd,每个关系是 ∈ R d × d \in \mathbb{R}^{d \times d} ∈Rd×d(有一定的限制),对于一个三重(h,r,t)的相似函数定义为vthmrvt。这些模型在知识图[31]中的链接预测方面表现出了良好的性能。众所周知,DistMult、ComplEx和RESCAL属于双线性模型家族。我们表明SimplE(和CP)也属于这个家族。
- 如图2(a)所示,DistMult可以被认为是一个限制矩阵为对角线的双线性模型。
- 对于ComplEx,如果我们认为每个实体的嵌入是一个单一的向量 [ r e e ; i m e ] ∈ R 2 d \left[r e_{e} ; i m_{e}\right] \in \mathbb{R}^{2 d} [ree;ime]∈R2d,那么它可以被认为是一个双线性模型,其受到了图2(b)的约束。
- RESCAL可以被认为是一个双线性模型,它对矩阵没有约束。考虑到每个实体的嵌入是单个向量 [ h e ; t e ] ∈ R 2 d \left[h_{e} ; t_{e}\right] \in \mathbb{R}^{2 d} [he;te]∈R2d,
- CP可以看作是一个双线性模型,其 M r M_{r} Mr受到了约束,如图2©所示。对于三元组 ( e 1 , r , e 2 ) \left(e_{1}, r, e_{2}\right) (e1,r,e2),将 [ h e 1 ; t e 1 ] \left[h_{e_{1}} ; t_{e_{1}}\right] [he1;te1] 与 M r M_{r} Mr相乘得到一个 v e 1 r v_{e_{1} r} ve1r ,其前半部分为零,后半部分对应于 h e 1 h_{e_{1}} he1与 M r . M_{r} . Mr.中的参数的元素乘积。将 v e 1 r v_{e_{1} r} ve1r到 [ h e 2 ; t e 2 ] \left[h_{e_{2}} ; t_{e_{2}}\right] [he2;te2]相乘相当于忽略 h e 2 h_{e_{2}} he2(因为 v e 1 r v_{e_{1} r} ve1r的前半部分是零),然后取 v e 1 r v_{e_{1} r} ve1r与 t e 2 t_{e_{2}} te2的后半部分的点积。
- SimplE可以看作是一个类似于CP的双线性模型,除了 M r M_{r} Mr受到如图2(d)所示的约束。与CP相比,在矩阵中加入的额外参数对应于关系逆的参数。
SimplE中的矩阵约束与DistMult中的约束非常相似。SimplE和DistMult都可以被认为是参数的元素乘积,除了简单中的 M r M_{r} Mr交换结果向量的前半部分和后半部分。与ComplEx相比,SimplE去掉了 M r M_{r} Mr主对角线上的参数。请注意其他几个限制在矩阵上等价于SimplE,例如,限制矩阵在除反对角线外的所有地方为零。将SimplE视为每个实体的单向量模型,使其易于与其他嵌入模型(在知识图补全、计算机视觉和自然语言处理中)集成(或兼容),如[35,47,36]。
5.5ComplEx模型的冗余
如前所述,在参数数量相同的情况下,ComplEx中的计算数量比SimplE-ignr和SimplE多4x和2x。这里我们展示了ComplEx进行预测的部分计算是多余的。
6. 实验和结果
数据集:WN18、FB15k
基线
我们将SimplE与现有的几种张量分解方法进行了比较。我们的基线包括正则多元(CP)分解、transse、TransR、DistMult、NTN、strse、ER-MLP和ComplEx。鉴于我们使用与ComplEx相同的数据分割和目标函数,我们报告了来自[39]的CP、TransE、DistMult和ComplEx的结果。我们报道了[27]的TransR和NTN以及[32]的ER-MLP的结果,以作进一步的比较。
评价指标:MRR与Hit@K
实现细节
这里就不详细说了,具体参数看原文
6.1 实体预测结果
实验表明我们的结果是最好的
6.2 结合背景知识
在有背景知识的情况下,我们可能会认为知识图中不包含冗余信息,因为冗余信息是由背景知识隐含的,所以不包含背景知识的方法永远无法学习冗余信息。在第5.2节中,我们展示了如何将可以用三种类型规则表示的背景知识整合到简单嵌入中。为了检验这一点,我们在WN18上进行了一个实验,在实验中,我们将几个这样的规则合并到命题3、4和5所概述的嵌入中。
规则见表2。从表2中可以看出,大多数规则的形式为∀ei, ej∈E: (ei,r1,ej)∈ζ try try (ej,r2,ei)∈ζ。对于像r1andr2这样的(可能相同的)关系参与到这样的规则中,如果(ei,r1,ej)和(ej,r2,ei)都在训练集中,其中一个是冗余的,因为一个可以从另一个推导出来。我们根据背景规则,将训练集中的两个可以从另一个推导出来的三元组中的一个随机剔除,从而去除训练集中的冗余三元组。去除冗余三元组将训练集中三元组的数量从(约)141k减少到(约)90K,几乎减少了36%。注意,这个实验提供了一个上限,在多大程度上背景知识可以提高SimplE模型的性能。
结果表明,背景知识可以有效地融入到SimplE嵌入中,从而提高SimplE嵌入的性能。
7. 总结
我们提出了一个简单的可解释的全表达双线型知识图补全模型。叫做SimplE,在实验上表现得非常好,并且有几个有趣的特性。例如,通过绑定嵌入,可以将三种类型的背景知识整合到SimplE中。在未来,SimplE可以通过以下几种方式进行改进或帮助改善关系学习:
- 1-像[18]为DistMult所做的那样构建SimplE模型的集合,
- 2-将SimplE添加到[44]的关系级集合中,
- 3-显式地建模[23]中类似的关系结构,使用[8]的1-N评分方法为一个正三元组生成多个负三元组([39]表明生成更多的负三元组提高了准确性)将SimplE与其他类别的关系学习技术相结合(或将SimplE作为子组件使用),就像[33]处理ComplEx一样。