本文介绍了TransE,TransH,TransR,TransD,RotatE知识表示嵌入模型的基本概念和评价函数。
TransE
论文标题:Translating Embeddings for Modeling Multi-relational Data (2013)
TransE将relation看作head到tail的翻译,目的在于训练出正确的三元组使[公式] ,即头实体的embedding加上关系embedding近似于尾实体embedding,如图所示。其中设d(h+r,t)为h+r与t之间的距离。
-
score function:
fr(h,t)=∥h+r−t∥22f_{r}(h,t)=∥h+r-t∥_{2}^{2}fr(h,t)=∥h+r−t∥22
h+r与t越接近,fr(h,t)f_{r}(h,t)fr(h,t)越小,反之越大。
-
loss function:
L=∑(h,r,t)∈S∑(h′,r′,t′)∈S′[γ+d(h+r,t)−d(h′+r′,t′)]+L=\sum_{(h,r,t)\in S}^{}{\sum_{(h',r',t')\in S'}^{}{[\gamma + d(h+r,t)-d(h'+r',t')]_{+}}}L=∑(h,r,t)∈S∑(h′,r′,t′)∈S′[γ+d(h+r,t)−d(h′+r′,t′)]+
其中S是正确triple,S’是从S中替换h或t得到的错误triple,γ\gammaγ是超参数>0,[x]+=max{0,x}\left[ x \right]_{+}=max\left\{ 0 ,x\right \}[x]+=max{0,x}。
但是TransE只在1-to-1关系中效果出色,在1-to-N、N-to-1,N-to-N等复杂关系中效果并不好。比如h={h0,h1,...,hn}h = \left\{ h_{0},h_{1},...,h_{n} \right\}h={h0,h1,...,hn},在关系(hi,r,t)\left( h_{i},r,t \right)(hi,r,t)中得到h0=h1=...=hnh_{0}=h_{1}=...=h_{n}h0=h1=...=hn ,这与事实不符。
TransH
论文标题:Knowledge Graph Embedding by Translating on Hyperplanes (2014)
为了解决复杂关系嵌入的问题,TransH思想在于每一个关系r,都有一个超平面WrW_{r}Wr 和关系向量 drd_{r}dr表示,关系r与h、t在不同的嵌入空间。在每个triple(h,r,t)中,h、t投影在超平面,对应于h⊥h_{\bot}h⊥,t⊥t_{\bot}t⊥。其中:
h⊥=h−wrh⊤wrh_{\bot}=h-w_{r}h^{\top}w_{r}h⊥=h−wrh⊤wr,
t⊥=t−wrt⊤wrt_{\bot}=t-w_{r}t^{\top}w_{r}t⊥=t−wrt⊤wr
(∥wr∥2=1∥ w_{r}∥_{2} =1∥wr∥2=1)
训练目的:h⊥+dr≈t⊥h_{\bot}+d_{r}\approx t_{\bot}h⊥+dr≈t⊥,如图所示。
-
score function:
fr(h,t)=∥(h−wrh⊤wr)+dr−(t−wrt⊤wr)∥22f_{r}(h,t)=∥(h-w_{r}h^{\top}w_{r})+d_{r}-(t-w_{r}t^{\top}w_{r})∥_{2}^{2}fr(h,t)=∥(h−wrh⊤wr)+dr−(t−wrt⊤wr)∥22
-
loss function:(和TransE类似)
L=∑(h,r,t)∈S∑(h′,r′,t′)∈S′[γ+d(h+r,t)−d(h′+r′,t′)]+L=\sum_{(h,r,t)\in S}^{}{\sum_{(h',r',t')\in S'}^{}{[\gamma + d(h+r,t)-d(h'+r',t')]_{+}}}L=∑(h,r,t)∈S∑(h′,r′,t′)∈S′[γ+d(h+r,t)−d(h′+r′,t′)]+
不同关系有不同的超平面,同一实体在不同关系中有不同含义。个人认为,对于N-1,1-N关系,例如关系location,北京(A)位于中国(B),天津大学(C)位于中国(B),同一关系连接不同实体,在TransH中只要确保(A,B)和(C,B)的超平面投影相同即可,下图是自己画的示意图。
TransR
论文标题:Learning Entity and Relation Embeddings for Knowledge Graph Completion (2015)
TransE和TransH仍存在问题:实体和关系都嵌入在同一空间内,但一个实体具有多个“方面”,因此有多个关系。有些实体相似,所以在实体空间内相近;在某些特定方面实体之间有差别,所以在相应的关系空间中相距较远。为了”一个关系对应一个关系空间“,在TransR中,实体空间(h,t)∈Rk(h,t)\in R^{k}(h,t)∈Rk,关系空间 r∈Rdr\in R^{d}r∈Rd ,对于每一个关系有一个投影矩阵 Mr∈Rk×d,(k≠d)M_{r}\in R^{k\times d},(k\ne d)Mr∈Rk×d,(k=d),将h和r投影在 RdR^{d}Rd中。
hr=h⋅Mrh_{r}=h\cdot M_{r}hr=h⋅Mr,tr=t⋅Mrt_{r}=t\cdot M_{r}tr=t⋅Mr
特定的投影矩阵MrM_{r}Mr使同一关系的实体对(图中为圆圈)靠近,不具备此关系的实体对(图中为三角形)更加远离,如下图所示。
-
score function:
fr(h,t)=∥hr+r−tr∥22f_{r}(h,t)=∥h_{r}+r-t_{r}∥_{2}^{2}fr(h,t)=∥hr+r−tr∥22
其中, ∥h∥2≤1∥h∥_{2}\leq 1∥h∥2≤1,∥r∥2≤1∥r∥_{2}\leq 1∥r∥2≤1,∥t∥2≤1∥t∥_{2}\leq 1∥t∥2≤1,∥hMr∥2≤1∥hM_{r}∥_{2}\leq 1∥hMr∥2≤1,∥tMr∥2≤1∥tM_{r}∥_{2}\leq 1∥tMr∥2≤1。投影之后的训练方法与TransE一样。
在论文中,作者还提出了变体CTransR,其中C是Cluster聚类。为什么会有这样一个变体?因为之前的模型一个关系对应唯一向量,不能表示一种关系的多样性。如关系(X-位于-Y),有“北京大学-位于-中国”,“北京大学-位于-亚洲”,“北京大学-位于-北京”等多种含义。
所以对特定关系r,所有实体对(h,t)以偏移量(h-t)为依据被聚类为多组,每个组实体对有相似的r。每一类关系有一个映射矩阵MrM_{r}Mr和向量rcr_{c}rc 。由此可以得到CTransR的流程:先聚类,再投影到各个关系空间进行训练。
CTransR score function:
fr(h,t)=∥hr,c+rc−tr,c∥22+α∥rc−r∥22f_{r}(h,t)=∥h_{r,c}+r_{c}-t_{r,c}∥_{2}^{2}+\alpha∥r_{c}-r∥_{2}^{2}fr(h,t)=∥hr,c+rc−tr,c∥22+α∥rc−r∥22
TransD
论文标题:Knowledge Graph Embedding via Dynamic Mapping Matrix (2015)
TransR仍存在问题。
- 头、尾实体不应共用一个投影矩阵MrM_{r}Mr,因为头、尾实体通常是截然不同的含义。
- 投影矩阵不应只与关系有关,还应与实体有关。
- 计算量大且参数多。
∴改进思路: MrM_{r}Mr应由r和h、t决定,同时 MrM_{r}Mr也应分为头实体 MrM_{r}Mr和尾实体 MrM_{r}Mr 。
在TransD中,每一个triple(h,r,t)由2种向量表示。第一种向量表示语义,第二种向量用来组成投影矩阵。对于一个(h,r,t),有 hhh , hph_{p}hp ,rrr , rpr_{p}rp , ttt , tpt_{p}tp ,其中p表明该向量是用于组成投影矩阵的。h,hp,t,tp∈Rnh,h_{p},t,t_{p}\in R^{n}h,hp,t,tp∈Rn,r,rp∈Rmr,r_{p}\in R^{m}r,rp∈Rm,Mrh,Mrt∈Rm×nM_{rh},M_{rt}\in R^{m\times n}Mrh,Mrt∈Rm×n,(MrhM_{rh}Mrh是头实体投影矩阵,MrtM_{rt}Mrt是尾实体投影矩阵)。
头实体投影矩阵:Mrh=rphp⊤+Im×nM_{rh}=r_{p}h_{p}^{\top}+I^{m\times n}Mrh=rphp⊤+Im×n
尾实体投影矩阵:Mrt=rptp⊤+Im×nM_{rt}=r_{p}t_{p}^{\top}+I^{m\times n}Mrt=rptp⊤+Im×n
这样 MrM_{r}Mr 由实体、关系共同决定,解决了问题2;并且 MrM_{r}Mr 被分成了 MrhM_{rh}Mrh 和 MrtM_{rt}Mrt ,满足了头、尾实体不同投影矩阵,解决了问题1。如图所示。因为 MrhM_{rh}Mrh 、 MrtM_{rt}Mrt 是由单位矩阵进行初始化,所以加上 Im×nI^{m\times n}Im×n (可能是保持线性?ax+b?)。然后进行TransR的投影操作:
h⊥=Mrhhh_{\bot}=M_{rh}hh⊥=Mrhh , t⊥=Mrttt_{\bot}=M_{rt}tt⊥=Mrtt
-
score function:
fr(h,t)=∥h⊥+r−t⊥∥22f_{r}(h,t)=∥h_{\bot}+r-t_{\bot}∥_{2}^{2}fr(h,t)=∥h⊥+r−t⊥∥22
同样的, ∥h∥2≤1∥h∥_{2}\leq 1∥h∥2≤1 , ∥r∥2≤1∥r∥_{2}\leq 1∥r∥2≤1 , ∥t∥2≤1∥t∥_{2}\leq 1∥t∥2≤1 , ∥h⊥∥2≤1∥h_{\bot}∥_{2}\leq 1∥h⊥∥2≤1 , ∥t⊥∥2≤1∥t_{\bot}∥_{2}\leq 1∥t⊥∥2≤1 。
-
loss function(都一样):
L=∑(h,r,t)∈S∑(h′,r′,t′)∈S′[γ+d(h+r,t)−d(h′+r′,t′)]+L=\sum_{(h,r,t)\in S}^{}{\sum_{(h',r',t')\in S'}^{}{[\gamma + d(h+r,t)-d(h'+r',t')]_{+}}}L=∑(h,r,t)∈S∑(h′,r′,t′)∈S′[γ+d(h+r,t)−d(h′+r′,t′)]+
RotatE
论文标题:RotatE: Knowledge Graph Embedding by Relational Rotation in Complex Space (2019)
RotatE(Rotation:旋转)提供了一种全新的嵌入思路。受欧拉公式 eiθ=cosθ+isinθe^{i\theta}=cos\theta +isin\thetaeiθ=cosθ+isinθ 启发,该模型设头、尾实体 hhh,t∈Rkt\in R^{k}t∈Rk ,每个关系r是从头实体h到尾实体t的旋转(不同于Trans系列的“平移”)。即:
t=h∘rt = h\circ rt=h∘r, ∥ri∥=1∥r_{i}∥=1∥ri∥=1
其中 ∘\circ∘ 是哈德曼积(Hadmard),对每一个元素都有 ti=hirit_{i}=h_{i}r_{i}ti=hiri 。因为h,r,t均在同一空间内,因此 r∈Rkr\in R^{k}r∈Rk 。RotatE的旋转操作下图所示。
-
score function:
dr(h,t)=∥h∘r−t∥d_{r}(h,t)=∥h\circ r-t∥dr(h,t)=∥h∘r−t∥
-
loss function:
与Trans系列不同,该论文借鉴了Mikolov在2013年提出的Word2vec模型的loss function构造。与TransE相比,RotatE也有负采样,但此处的负采样按照一定概率进行的采样。p(hj′,r,tj′∣{hi,ri,ti})=expαfr(hj′,tj′)∑iexpαfr(fi′,ti′)p(h_{j}',r,t_{j}'|\left\{ h_{i},r_{i},t_{i} \right\}) = \frac{exp\alpha f_{r}(h_{j}',t_{j}')}{\sum_{i}^{}{exp \alpha f_{r}(f_{i}',t_{i}')}}p(hj′,r,tj′∣{hi,ri,ti})=∑iexpαfr(fi′,ti′)expαfr(hj′,tj′)
其中α\alphaα 是采样系数。
L=−logσ(γ−dr(h,t))−∑i=1np(hi′,r,ti′)logσ(dr(hi′,ti′)−γ)L=-log\sigma (\gamma -d_{r}(h,t))-\sum_{i=1}^{n}{p(h_{i}',r,t_{i}')log \sigma (d_{r}(h_{i}',t_{i}')-\gamma)}L=−logσ(γ−dr(h,t))−∑i=1np(hi′,r,ti′)logσ(dr(hi′,ti′)−γ)