知识表示学习 (一) —— Point-Wise Space之1
文章目录
零、表示学习
知识表示学习(knowledge graph representation learning, KRL)也称之为图嵌入(knowledge graph embedding, KGE),是知识图谱的核心也是基础。
表示学习:学习一系列低维稠密向量来表征语义信息。知识表示学习是面向知识库中实体和关系的表示学习。
大规模知识库(知识图谱)的构建为许多NLP任务提供了底层支持,但由于其规模庞大且不完备——目前网络上存在的大量知识库:如OpenCyc、WordNet、Freebase、Dbpedia等,因不同目的建成,因此很难用到其他系统上。
为了发挥知识库的图(graph)的特性,并且能够高效存储和补全知识库,需要依托于知识表示学习,将知识库嵌入(embedding)到一个低维空间里。获得向量后,就可以运用各种数学工具进行分析。
表示学习的关键问题是学习实体和关系低维分布式嵌入空间。主要采用的是point-wise space、complex vector space、Gaussian space、Manifold and Group space。
一、TransE(2013)
原文链接:Translating Embeddings for Modeling Multi-relational Data
这是最早的一种知识图谱嵌入方法,作者的思路是将知识图谱中多元关系数据的实体和关系嵌入到低维度的向量空间。
其基本模型是基于Multi-relational data(多元关系数据),有向图中包括头实体 h h h、尾实体 t t t以及两者之间的关系类 l l l,表示为三元组 h , r , t h,r,t h,r,t。
TransE原理
TransE的直观含义:基于实体和关系的分布式向量表示,将每个三元组实例
(
h
e
a
d
,
r
e
l
a
t
i
o
n
,
t
a
i
l
)
(head, relation, tail)
(head,relation,tail)中的关系
r
e
l
a
t
i
o
n
relation
relation看做从实体
h
e
a
d
head
head到实体
t
a
i
l
tail
tail的翻译,即对于一个真爱而的三元组,在模型中应该存在
h
+
r
=
t
h+r=t
h+r=t。
表示学习没有明显的监督信号,因此添加负采样,采用最大间隔方法,尽可能对正样本中最小化 d ( h , r , t ) d(h,r,t) d(h,r,t),负样本中则尽可能最大化 d ( h ′ , r , t ′ ) 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 ′ ) ] + \mathcal{L}=\sum_{(h, r, t) \in S} \sum_{\left(h^{\prime}, r, t^{\prime}\right) \in S.^{\prime}}\left[\gamma+d(h,r, t)-d\left(h^{\prime},r, t^{\prime}\right)\right]_{+} L=(h,r,t)∈S∑(h′,r,t′)∈S.′∑[γ+d(h,r,t)−d(h′,r,t′)]+
其中, γ \gamma γ为距离因子,一般设置为1, d ( h , l , t ) d(h,l,t) d(h,l,t)为距离函数,采用2-norm,其定义如下:
d ( h , r , t ) = ∥ h + r − t ∥ 2 2 = ∑ i = 1 N ( h i + r i − t i ) 2 d(h,r,t)=\|\bold{h}+\bold{r}-\bold{t}\|_{2}^{2}=\sqrt{\sum_{i=1}^N (h_i+r_i-t_i)^2} d(h,r,t)=∥h+r−t∥22=i=1∑N(hi+ri−ti)2
[ x ] + [x]_+ [x]+表示 x x x中正例的部分,即 x + = max ( 0 , x ) x_+=\max(0,x) x+=max(0,x)(ps. 就是用ReLU激活); S ( h , r , t ) ′ = { ( h ′ , r , t ) ∣ h ′ ∈ E } ∪ { ( h , r , t ′ ) ∣ t ′ ∈ E } S'_{(h,r,t)}=\{(h',r,t)|h' \in E\} \cup \{(h,r,t')|t' \in E\} S(h,r,t)′={(h′,r,t)∣h′∈E}∪{(h,r,t′)∣t′∈E}。
具体过程
论文中给出的具体实现过程:
- 首先使用均匀分布初始化Embedding层的权重参数,边界为 6 k \frac{6}{\sqrt{k}} k6,并对关系 r r r的权重矩阵归一化: r = r / ∥ r ∥ r=r/\|r\| r=r/∥r∥
- 循环每一个epoch:
- 对实体 e e e的权重矩阵归一化: e = e / ∥ e ∥ e=e/\|e\| e=e/∥e∥
- 从所有样本中划分batch形成 S b a t c h S_{batch} Sbatch
- 初始化 T b a t c h T_{batch} Tbatch保存正负样本的三元组
- 对 S b a t c h S_{batch} Sbatch中的每一个样本,进行负采样并合并进 T b a t c h T_batch Tbatch
- 利用梯度下降进行训练,并调整相应权重参数
二、TransH(2014)
论文地址:Knowledge Graph Embedding by Translating on Hyperplanes
TransE的不足之处
TransE模型由于高效简单取得了很大的突破,但是TransE对复杂关系的建模效果不够理。在处理自反关系,以及一对多、多对一、多对多关系时存在一些不足。
TransE算法的核心思想是对于一个三元组 ( h , r , t ) ∈ S (h,r,t)\in S (h,r,t)∈S,应该有 h + r = d h+r=d h+r=d。于是可以从TransE模型中得到两个结论:
- 如果 ( h , r , t ) ∈ S (h,r,t)\in S (h,r,t)∈S,并且 ( t , r , h ) ∈ S (t,r,h) \in S (t,r,h)∈S,即 l l l是自反的,则 r = 0 , h = t r=0,h=t r=0,h=t
- 对 ∀ i ∈ { 0 , 1 , 2 , ⋯ , m } \forall i \in \{0,1,2,\cdots,m\} ∀i∈{0,1,2,⋯,m},有 ( h i , r , t ) ∈ S (h_i,r,t) \in S (hi,r,t)∈S,即 r r r是 m − 1 \bold{m-1} m−1映射,则有 h 0 = h 1 = ⋯ = h m h_0=h_1=\cdots=h_m h0=h1=⋯=hm。同理,对 ∀ j ∈ { 0 , 1 , 2 , ⋯ , m } \forall j \in \{0,1,2,\cdots,m\} ∀j∈{0,1,2,⋯,m},有 ( h , r , t j ) ∈ S (h,r,t_j) \in S (h,r,tj)∈S,即 r r r是 1 − m \bold{1-m} 1−m映射,则有 t 0 = t 1 = ⋯ = t m t_0=t_1=\cdots=t_m t0=t1=⋯=tm。
因此,TransE在处理自反关系,以及多对一、一对多、多对多关系中,会使得一些不同的实体具有相同或者相似的向量。其根本原因在于:出现在多个关系中的同一个实体的表示是相同的。
TransH的原理
TransH模型则对这种问题进行处理,对每一个关系定义一个超平面
W
r
W_r
Wr,和一个关系向量
d
r
d_r
dr。
h
⊥
,
t
⊥
h_{\perp},t_{\perp}
h⊥,t⊥,是
h
,
t
h,t
h,t在
W
r
W_r
Wr上的投影。三元组满足
h
r
+
d
r
=
t
r
h_r+d_r=t_r
hr+dr=tr。从而同一个实体在不同关系中的意义不同;不同实体,在同一关系中的意义,也可以相同。
对于任意关系 l l l,对应一个超平面,将实体 h , t h,t h,t通过关系映射矩阵 w r \bold{w}_r wr映射到超平面上。对应的映射关系为:
h ⊥ = h − w r T h w r t ⊥ = t − w r T t w r \begin{aligned} h_{\perp} &=h-\mathbf{w}_{r}^\mathrm{T} h \mathbf{w}_{r} \\ t_{\perp} &=t-\mathbf{w}_{r}^\mathrm{T} t \mathbf{w}_{r} \\ \end{aligned} h⊥t⊥=h−wrThwr=t−wrTtwr
得分函数定义为:
d ( h , r , t ) = ∥ h ⊥ + d r − t ⊥ ∥ 2 2 = ∥ h − w r T h w r + d r − t + w r T t w r ∥ 2 2 d(h,r,t)=\|\bold{h}_\perp+\bold{d}_r-\bold{t}_\perp\|_{2}^{2}=\|\bold{h} - \mathbf{w}_{r}^\mathrm{T} \bold{h} \mathbf{w}_{r}+\bold{d}_r-\bold{t} + \mathbf{w}_{r}^\mathrm{T} \bold{t} \mathbf{w}_{r}\|_{2}^{2} d(h,r,t)=∥h⊥+dr−t⊥∥22=∥h−wrThwr+dr−t+wrTtwr∥22
损失函数与TransE类似,采用负采样,并最小化正确的三元组得分,最大化错误的三元组得分:
L = ∑ ( h , r , t ) ∈ S ∑ ( h ′ , r , t ′ ) ∈ S ′ [ γ + d ( h , r , t ) − d ( h ′ , r , t ′ ) ] + \mathcal{L}=\sum_{(h, r, t) \in S} \sum_{\left(h^{\prime}, r, t^{\prime}\right) \in S^{\prime}}\left[\gamma+d(h,r, t)-d\left(h^{\prime},r, t^{\prime}\right)\right]_{+} L=(h,r,t)∈S∑(h′,r,t′)∈S′∑[γ+d(h,r,t)−d(h′,r,t′)]+
TransH在原有的损失函数基础上增加了几个约束条件:
∀ e ∈ E , ∥ e ∥ 2 ≤ 1 , (1) ∀ r ∈ R , ∣ w r T d r ∣ / ∥ d r ∥ 2 ≤ ϵ , (2) ∀ r ∈ R , ∥ w r ∥ 2 = 1 , (3) \begin{array}{l} \forall e \in E,\|\mathrm{e}\|_{2} \leq 1,\quad &\text{(1)}\\ \forall r \in R,\left|\mathrm{w}_{r}^\bold{T} \mathrm{d}_{r}\right| /\left\|\mathrm{d}_{r}\right\|_{2} \leq \epsilon,\quad &\text{(2)}\\ \forall r \in R,\left\|\mathrm{w}_{r}\right\|_{2}=1,\quad &\text{(3)} \end{array} ∀e∈E,∥e∥2≤1,∀r∈R,∣∣wrTdr∣∣/∥dr∥2≤ϵ,∀r∈R,∥wr∥2=1,(1)(2)(3)
其中(1)保证所有实体都归一化,(2)保证关系向量 d r d_r dr在超平面上,(3)确保平面的法向量为单位向量。
将无约束的损失函数调整为软约束的损失函数:
L = ∑ ( h , r , t ) ∈ S ∑ ( h ′ , r , t ′ ) ∈ S ′ [ γ + d ( h , r , t ) − d ( h ′ , r , t ′ ) ] + + C { ∑ e ∈ E [ ∥ e ∥ 2 2 − 1 ] + + ∑ r ∈ R [ ( w t T d r ) 2 ∥ d r ∥ 2 2 − ϵ 2 ] + } \mathcal{L}=\sum_{(h, r, t) \in S} \sum_{\left(h^{\prime}, r, t^{\prime}\right) \in S^{\prime}}\left[\gamma+d(h,r, t)-d\left(h^{\prime},r, t^{\prime}\right)\right]_{+} + C\left\{\sum_{e \in E}\left[\|\mathbf{e}\|_{2}^{2}-1\right]_{+}+\sum_{r \in R}\left[\frac{\left(\mathbf{w}_{t}^{T} \mathbf{d}_{r}\right)^{2}}{\left\|\mathbf{d}_{r}\right\|_{2}^{2}}-\epsilon^{2}\right]_{+}\right\} L=(h,r,t)∈S∑(h′,r,t′)∈S′∑[γ+d(h,r,t)−d(h′,r,t′)]++C{e∈E∑[∥e∥22−1]++r∈R∑[∥dr∥22(wtTdr)2−ϵ2]+}
其中 C C C为软约束的超参数权重,其中约束条件(3)利用对 w r \bold{w}_r wr进行L2-norm处理。
TransH中提出了两种负采样的生成办法。为了减少假负例(即替换了一个节点后的三元组,恰好是整个知识图谱中存在的另一个三元组)的出现,需要根据头尾节点关系,进行节点替换:
(1)即TransE中所采用的均匀分布的替换方式unif。
第二种是采用伯努利采样bern:对于一个关系
r
r
r, 首先计算
r
r
r每个头结点平均对应的尾节点数
t
p
h
tph
tph;以及这个关系每一个尾节点平均对应的头节点数
h
p
t
hpt
hpt。最后计算
p
=
t
p
h
t
p
h
+
h
p
t
p=\frac{tph}{tph+hpt}
p=tph+hpttph来表示头结点被替换的概率,而尾节点替换的概率为
1
−
p
1-p
1−p。
三、TransM(2014)
论文地址:TransM: Transition-based Knowledge Graph Embedding with Relational Mapping Properties
TransM针对的问题:TransE中无法处理一对多、多对一、多对多和自反关系问题。
TransM原理
TransM对三元组
(
h
,
r
,
t
)
(h,r,t)
(h,r,t)中的每一个关系
r
r
r分配特定的关系权重
w
r
w_r
wr,表示映射的程度。通过对一对多、多对一和多对多分配较小的权重,使得
t
\mathbf{t}
t在复杂关系中离
h
+
r
\mathbf{h}+\mathbf{r}
h+r更远。
权重系数 w r w_r wr的计算方式如下:
w r = 1 l o g ( h r p t r + t r p h r ) w_r=\frac{1}{log(h_rpt_r+t_rph_r)} wr=log(hrptr+trphr)1
其中 h r p t r = # ( Δ r ) # ( d i s t i n c t ( t r ) ) h_rpt_r=\frac{\#(\Delta_r)}{\#(distinct(t_r))} hrptr=#(distinct(tr))#(Δr), t r p h r = # ( Δ r ) # ( d i s t i n c t ( h r ) ) t_rph_r=\frac{\#(\Delta_r)}{\#(distinct(h_r))} trphr=#(distinct(hr))#(Δr), t r t_r tr和 h r h_r hr表示与关系 r r r相连的尾实体和头实体个数, Δ r \Delta_r Δr表示训练集中包含关系 r r r的三元组总个数。
模型的得分函数添加上系数 w r w_r wr后可以表示为:
d ( h , r , t ) = w r ∥ h + r − t ∥ 2 2 d(h,r,t)=w_r\|\bold{h}+\bold{r}-\bold{t}\|_{2}^{2} d(h,r,t)=wr∥h+r−t∥22
损失函数为:
L = ∑ ( h , r , t ) ∈ S ∑ ( h ′ , r , t ′ ) ∈ S ′ [ γ + d ( h , r , t ) − d ( h ′ , r , t ′ ) ] + s . t . ∀ e ∈ E , ∣ ∣ e ∣ ∣ 2 = 1 \mathcal{L}=\sum_{(h, r, t) \in S} \sum_{\left(h^{\prime}, r, t^{\prime}\right) \in S^{\prime}}\left[\gamma+d(h,r, t)-d\left(h^{\prime},r, t^{\prime}\right)\right]_{+} \\ s.t.\forall{e}\in{E},||e||_2=1 L=(h,r,t)∈S∑(h′,r,t′)∈S′∑[γ+d(h,r,t)−d(h′,r,t′)]+s.t.∀e∈E,∣∣e∣∣2=1
具体实现过程如下:
四、TransR(2015)
论文地址:Learning Entity and Relation Embeddings for Knowledge Graph Completion
TransR方法的提出是在TransE和TransH的基础之上。TransR是指将实体和关系映射到不同的语义空间,并且关系不再是单一的,而是多个关系空间,头尾实体的翻译也是在相应的关系空间中完成。
TransR提出的目标
TransE和TransH的实体和关系映射在同一语义空间中,然而实体包含多种属性,不同的关系对应不同的实体属性。在实体空间中,有些实体是相似的,因而彼此接近;但这些实体的属性有可能差异巨大,因而在相关的关系空间中彼此相距很远。
TransH模型是为每个关系假定一超平面,将实体投影到超平面上进行翻译;而TransR模型是为每个关系假定一语义空间 R m \mathbb R^m Rm,将实体映射到语义空间上进行翻译。
TransR与TransH的最大区别在于,由于之前的Trans*模型都是定义在同一个空间中,因此entity_embedding和relation_embedding的维度必须要相同,才能够进行向量之间的映射。而TransR定义在不同的空间中,二者的维度可以不同,通过映射矩阵 M r M_r Mr从实体空间向关系空间映射时,转化为相同的维度即可。
TransR的原理
首先为每一个关系意义映射矩阵 M ∈ R k × d \bold{M} \in \mathbb{R}^{k \times d} M∈Rk×d,其中 k k k为实体向量维度, d d d为关系向量维度。对于给定的三元组 ( h , r , t ) (h,r,t) (h,r,t),先将实体通过关系 r r r的映射矩阵 M r \bold{M}_r Mr,将其从实体空间转换到关系空间
h r = h M r , t r = t M r \mathbf{h}_{r}=\mathbf{h} \mathbf{M}_{r}, \quad \mathbf{t}_{r}=\mathbf{t} \mathbf{M}_{r} hr=hMr,tr=tMr
根据实体在向量空间的映射定义得分函数:
d ( h , r , t ) = ∥ h r + r − t r ∥ 2 2 d(h,r,t)=\|\bold{h}_r+\bold{r}-\bold{t}_r\|_{2}^{2} d(h,r,t)=∥hr+r−tr∥22
其中, ∀ h , r , t \forall h,r,t ∀h,r,t,都有 ∥ h ∥ 2 ≤ 1 , ∥ r ∥ 2 ≤ 1 , ∥ t ∥ 2 ≤ 1 , ∥ h M r ∥ 2 ≤ 1 , ∥ t M r ∥ 2 ≤ 1 \|\bold{h}\|_2 \leq 1, \|\bold{r}\|_2 \leq 1, \|\bold{t}\|_2 \leq 1, \|\bold{hM_r}\|_2 \leq 1, \|\bold{tM_r}\|_2 \leq 1 ∥h∥2≤1,∥r∥2≤1,∥t∥2≤1,∥hMr∥2≤1,∥tMr∥2≤1
TransR的变体CTransR
CTransR的核心思想:作者认为之前的TransE、TransH、TransR对每一个关系学习唯一的向量表示,其代表性较差,不适用于其下所有实体对。
作者在TransR的基础上,
- 首先将输入示例分为多个组。对于特定的关系 r r r,所有的实体对 ( h , t ) (h,t) (h,t)可被聚类到多个簇中,每个簇中的实体对可被认为与关系 r r r有关。
- 为每个簇学习对应的关系向量 r c r_c rc,得到对应的 M r \bold{M}_r Mr。
- 将每个簇中的头实体和尾实体映射到对应关系空间中。
CTransR的得分函数定义为:
d ( h , r , t ) = ∥ h r , c + r c − t r , c ∥ 2 2 + α ∥ r c − r ∥ 2 2 d(h,r,t)=\|\bold{h}_{r,c}+\bold{r}_c-\bold{t}_{r,c}\|_{2}^{2} + \alpha \|\bold{r}_c-\bold{r}\|_{2}^{2} d(h,r,t)=∥hr,c+rc−tr,c∥22+α∥rc−r∥22
后面一项是要保证每个簇的向量与原始的关系向量尽可能接近。
TransR & CTransR模型将原来的单个语义空间分离为实体空间和关系空间,提高了模型的表示能力。
五、TransD(2015)
论文链接:Knowledge Graph Embedding via Dynamic Mapping Matrix
TransD针对的TransR的问题:
- 在同一关系
r
r
r下, 头尾实体共用相同的投影矩阵。然而,一个关系的头尾实体存在很大的差异,如
(美国,总统,奥巴马)
,美国
是一个实体,代表国家,奥巴马
是一个实体,代表的是人物。 - TransR仅仅让给投影矩阵与关系有关是不合理的,因为投影矩阵是头尾实体与关系的交互过程,应该与实体和关系都相关。
- TransR模型的参数急剧增加,计算的时间复杂度大大提高。
TransD的原理:
给定一个三元组
(
h
,
r
,
t
)
(h, r, t)
(h,r,t),其中
h
,
t
∈
R
n
\bold{h},\bold{t} \in \mathbb{R}^{n}
h,t∈Rn,
r
∈
R
m
\bold{r} \in \mathbb{R}^{m}
r∈Rm分别定义对应的投影向量
h
p
h_p
hp,
r
p
r_p
rp,
t
p
t_p
tp,
p
p
p表示投影。然后将头尾实体分别投影到关系空间得到投影矩阵
M
r
h
\bold{M}_{rh}
Mrh和
M
r
t
\bold{M}_{rt}
Mrt。获取投影矩阵之后,在利用TransR的思想,计算头尾实体的投影向量。
M r h = r p h p T + I m × n M r t = r p t p T + I m × n \begin{aligned} \mathbf{M}_{r h} &=\mathbf{r}_{p} \mathbf{h}_{p}^T+\mathbf{I}^{m \times n} \\ \mathbf{M}_{r t} &=\mathbf{r}_{p} \mathbf{t}_{p}^T+\mathbf{I}^{m \times n} \end{aligned} MrhMrt=rphpT+Im×n=rptpT+Im×n
h ⊥ = M r h h , t ⊥ = M r t t \mathbf{h}_{\perp}=\mathbf{M}_{r h} \mathbf{h}, \quad \mathbf{t}_{\perp}=\mathbf{M}_{r t} \mathbf{t} h⊥=Mrhh,t⊥=Mrtt
将 h ⊥ h_\perp h⊥、 t ⊥ t_\perp t⊥展开后可以得到:
h ⊥ = M r h h = h + r p h p T h = h + h p T h r p t ⊥ = M r t t = t + r p t p T t = t + t p T t r p \begin{aligned} \mathbf{h}_\perp = \mathbf{M}_{rh} \mathbf{h} &= \mathbf{h} + \mathbf{r}_p \mathbf{h}_p^T \mathbf{h} = \mathbf{h} + \mathbf{h}_p^T \mathbf{h} \mathbf{r}_p \\ \mathbf{t}_\perp = \mathbf{M}_{rt} \mathbf{t} &= \mathbf{t} + \mathbf{r}_p \mathbf{t}_p^T \mathbf{t} = \mathbf{t} + \mathbf{t}_p^T \mathbf{t} \mathbf{r}_p \end{aligned} h⊥=Mrhht⊥=Mrtt=h+rphpTh=h+hpThrp=t+rptpTt=t+tpTtrp
可以看出,TransD中的投影向量不仅与关系有关,还与实体有关。并且TransD中公式经过展开之后没有矩阵-向量乘法操作,相比于TransR降低了计算复杂度。
得分函数为:
d ( h , r , t ) = ∥ h ⊥ + r − t ⊥ ∥ 2 2 d(h,r,t)=\|\bold{h}_\perp+\bold{r}-\bold{t}_\perp\|_{2}^{2} d(h,r,t)=∥h⊥+r−t⊥∥22
其中, ∀ h , r , t \forall h,r,t ∀h,r,t,都有 ∥ h ∥ 2 ≤ 1 , ∥ r ∥ 2 ≤ 1 , ∥ t ∥ 2 ≤ 1 , ∥ h ⊥ ∥ 2 ≤ 1 , ∥ t ⊥ ∥ 2 ≤ 1 \|\bold{h}\|_2 \leq 1, \|\bold{r}\|_2 \leq 1, \|\bold{t}\|_2 \leq 1, \|\bold{h}_\perp\|_2 \leq 1, \|\bold{t}_\perp\|_2 \leq 1 ∥h∥2≤1,∥r∥2≤1,∥t∥2≤1,∥h⊥∥2≤1,∥t⊥∥2≤1
六、TransA(2015)
论文链接:TransA: An Adaptive Approach for Knowledge Graph Embedding
TransA模型针对的问题:
- 之前的Trans*模型损失函数中的距离度量太过简单,不具备灵活性
- 由于损失函数过于简单,实体和关系向量的每一维都等同对待,但是不同维度的重要度不一样,有些维度效果好,有些维度可能是噪音。
TransA的解决思路:更换度量函数,区别对待向量表示中的各个维度,增加模型表示能力。
TransE等之前的模型的距离函数采用的是欧式空间的距离度量方法,其图形对应的是一个圆;TransA采用基于马氏距离的模型,其PCA降维图形是一个椭圆。
文中作者给出了一个例子,对于关系
h
a
s
p
a
r
t
haspart
haspart而言,TransE模型根据欧氏距离计算方法生成了
R
o
o
m
−
h
a
s
−
G
o
n
i
f
f
Room-has-Goniff
Room−has−Goniff这样的三元组,而正确的结果却是
R
o
o
m
−
h
a
s
−
W
a
l
l
Room-has-Wall
Room−has−Wall。对
x
,
y
x,y
x,y轴进行分解,发现
R
o
o
m
Room
Room在
x
x
x轴上距离
W
a
l
l
Wall
Wall更为相近,因此可以认为该图在
x
x
x轴维度上更加重要。TransA模型通过引入加权矩阵,赋给每一维度权重。
TransA的原理
TransA模型首先对基础的得分函数进行了分解:
d ( h , r , t ) = ∥ h + r − t ∥ 2 2 = ( h + r − t ) T ( h + r − t ) \begin{aligned} d(h, r, t) &=\|\mathbf{h}+\mathbf{r}-\mathbf{t}\|_{2}^{2} \\ &=(\mathbf{h}+\mathbf{r}-\mathbf{t})^{\mathbf{T}}(\mathbf{h}+\mathbf{r}-\mathbf{t}) \end{aligned} d(h,r,t)=∥h+r−t∥22=(h+r−t)T(h+r−t)
然后引入 W r \bold{W_r} Wr权重矩阵,对不同维度的向量进行加权:
d ( h , r , t ) = ( ∣ h + r − t ∣ ) T W r ( ∣ h + r − t ∣ ) d(h,r,t) = (|\mathbf{h}+\mathbf{r}-\mathbf{t}|)^{\mathbf{T}} \bold{W_r} (|\mathbf{h}+\mathbf{r}-\mathbf{t}|) d(h,r,t)=(∣h+r−t∣)TWr(∣h+r−t∣)
其中, ∣ h + r − t ∣ = ( ∣ h 1 + r 1 + t 1 ∣ , ∣ h 2 + r 2 + t 2 ∣ , … , ∣ h n + r n + t n ∣ ) |\mathbf{h}+\mathbf{r}-\mathbf{t}| = (|h_1+r_1+t_1|,|h_2+r_2+t_2|,\ldots,|h_n+r_n+t_n|) ∣h+r−t∣=(∣h1+r1+t1∣,∣h2+r2+t2∣,…,∣hn+rn+tn∣),并利用LDL方法将 W r \bold{W_r} Wr分解为对角阵 D r \bold{D_r} Dr,即 W r = L r T D r L r \mathbf{W_r} = \mathbf{L_r^T} \mathbf{D_r} \mathbf{L_r} Wr=LrTDrLr。其中 D r = diag ( w 1 , w 2 , … , w n ) \mathbf{D_r}=\textbf{diag}(w_1,w_2,\ldots,w_n) Dr=diag(w1,w2,…,wn)是对角矩阵, w i w_i wi是每个维度的权重。
最后得分函数可以表示为:
d ( h , r , t ) = ( ∣ h + r − t ∣ ) T W r ( ∣ h + r − t ∣ ) = ( L r ∣ h + r − t ∣ ) T D r ( L r ∣ h + r − t ∣ ) \begin{aligned} d(h,r,t) &= (|\mathbf{h}+\mathbf{r}-\mathbf{t}|)^{\mathbf{T}} \bold{W_r} (|\mathbf{h}+\mathbf{r}-\mathbf{t}|) \\ &=(\mathbf{L_r}|\mathbf{h}+\mathbf{r}-\mathbf{t}|)^{\mathbf{T}} \bold{D_r} (\mathbf{L_r}|\mathbf{h}+\mathbf{r}-\mathbf{t}|) \end{aligned} d(h,r,t)=(∣h+r−t∣)TWr(∣h+r−t∣)=(Lr∣h+r−t∣)TDr(Lr∣h+r−t∣)
损失函数为:
L = ∑ ( h , r , t ) ∈ S ( h ′ , r ′ , t ′ ) ∈ S ′ [ d ( h , r , t ) + γ − d ( h ′ , r ′ , t ′ ) ] + + λ ( ∑ r ∈ R ∥ W r ∥ F 2 ) + C ( ∑ e ∈ E ∥ e ∥ 2 2 + ∑ r ∈ R ∥ r ∥ 2 2 ) \mathcal{L} = \sum_{(h, r, t) \in S \left(h^{\prime}, r^{\prime}, t^{\prime}\right) \in S^{\prime}}\left[d(h,r,t)+\gamma-d\left(h^{\prime}, {r^{\prime}}, t^{\prime}\right)\right]_{+} + \lambda\left(\sum_{r \in R}\left\|\mathbf{W}_{\mathbf{r}}\right\|_{F}^{2}\right)+C\left(\sum_{e \in E}\|\mathbf{e}\|_{2}^{2}+\sum_{r \in R}\|\mathbf{r}\|_{2}^{2}\right) L=(h,r,t)∈S(h′,r′,t′)∈S′∑[d(h,r,t)+γ−d(h′,r′,t′)]++λ(r∈R∑∥Wr∥F2)+C(e∈E∑∥e∥22+r∈R∑∥r∥22)
七、TranSparse(2016)
论文地址:Knowledge Graph Completion with Adaptive Sparse Transfer Matrix
TranSparse针对的问题
知识表示学习的两个难题——实体库中实体和关系的异质性(heterogeneous)和不平衡性(unbalanced)。
作者统计了FB15k中数据的异质性和不平衡性的问题:
- 异质性(heterogeneous):关系链接实体的数量不一致,有的很多,关系复杂;有的很少,关系简单。
- 不平衡性(unbalanced):某些关系头尾实体的种类和数量差别较大。
TranSparse的思路:针对异质性,使用不同稀疏程度的矩阵(不同数量的参数)来进行表征,从而防止对复杂关系欠拟合或者对简单关系过拟合;针对不平衡性,对头尾两种实体采用不同的投影矩阵,解决头尾实体数目不对等的问题。针对异质性问题提出TranSparse(share),针对不平衡性提出TranSparse(separate)。
TransSparse的原理
1.异质性的处理:
TranSparse模型是在TransR的模型基础之上,采用可变的稀疏矩阵代替了TransR中的稠密矩阵:关系连接的实体数量越多,关系越复杂,矩阵约稠密;反之矩阵越稀疏。
TranSparse(share):对于每一个关系 r r r,定义翻译向量 r \mathbf{r} r和稀疏转移矩阵 M r \mathbf{M_r} Mr,稀疏度为 ( θ r ) (\theta_r) (θr)。 N r N_r Nr为关系 r r r所链接的实体对的数量, N r ∗ N_{r^*} Nr∗为关系链接的实体最大数。设置 M r ∗ \mathbf{M_{r^*}} Mr∗的稀疏度为 θ min , ( 0 ≤ θ min ≤ 1 ) \theta_{\min},(0 \leq \theta_{\min} \leq 1) θmin,(0≤θmin≤1)。则得出一般情况下的稀疏度:
θ r = 1 − ( 1 − θ min ) N r / N r ∗ \theta_{r}=1-\left(1-\theta_{\min }\right) N_{r} / N_{r^{*}} θr=1−(1−θmin)Nr/Nr∗
利用稀疏因子和转移矩阵。将头尾实体分别映射到关系空间中:
h p = M r ( θ r ) h , t p = M r ( θ r ) t \mathbf{h}_{p}=\mathbf{M}_{r}\left(\theta_{r}\right) \mathbf{h}, \quad \mathbf{t}_{p}=\mathbf{M}_{r}\left(\theta_{r}\right) \mathbf{t} hp=Mr(θr)h,tp=Mr(θr)t
2.不平衡性的处理:
对于每个三元组 ( h , r , t ) (h,r,t) (h,r,t),头尾实体的映射矩阵对应两个不同的稀疏矩阵:涉及到的实体越多,矩阵越稠密,反之越稀疏。
TranSparse(Separate):头尾实体分别映射到不同的关系空间中。 M r h \mathbf{M_r^h} Mrh、 M r t \mathbf{M_r^t} Mrt分别为头尾实体的映射矩阵, N r h N_r^h Nrh、 N r t N_r^t Nrt为关系 r r r所对应的头尾实体数。
稀疏因子的定义为:
θ r l = 1 − ( 1 − θ min ) N r l / N r ∗ l ∗ ( l = h , t ) \theta_{r}^{l}=1-\left(1-\theta_{\min }\right) N_{r}^{l} / N_{r^{*}}^{l^{*}} \quad(l=h, t) θrl=1−(1−θmin)Nrl/Nr∗l∗(l=h,t)
头尾实体相应的映射方式为:
h p = M r h ( θ r h ) h , t p = M r t ( θ r t ) t \mathbf{h}_{p}=\mathbf{M}_{r}^{h}\left(\theta_{r}^{h}\right) \mathbf{h}, \quad \mathbf{t}_{p}=\mathbf{M}_{r}^{t}\left(\theta_{r}^{t}\right) \mathbf{t} hp=Mrh(θrh)h,tp=Mrt(θrt)t
最后定义得分函数:
d ( h , r , t ) = ∥ h p + r − t p ∥ 2 2 d(h,r,t)=\|\bold{h}_p+\bold{r}-\bold{t}_p\|_{2}^{2} d(h,r,t)=∥hp+r−tp∥22
损失函数为:
L = ∑ ( h , r , t ) ∈ S ∑ ( h ′ , r , t ′ ) ∈ S . ′ [ γ + d ( h , r , t ) − d ( h ′ , r , t ′ ) ] + \mathcal{L}=\sum_{(h, r, t) \in S} \sum_{\left(h^{\prime}, r, t^{\prime}\right) \in S.^{\prime}}\left[\gamma+d(h,r, t)-d\left(h^{\prime},r, t^{\prime}\right)\right]_{+} L=(h,r,t)∈S∑(h′,r,t′)∈S.′∑[γ+d(h,r,t)−d(h′,r,t′)]+
其中, ∀ h , r , t \forall h,r,t ∀h,r,t,都有 ∥ h ∥ 2 ≤ 1 , ∥ r ∥ 2 ≤ 1 , ∥ t ∥ 2 ≤ 1 , ∥ h p ∥ 2 ≤ 1 , ∥ t p ∥ 2 ≤ 1 \|\bold{h}\|_2 \leq 1, \|\bold{r}\|_2 \leq 1, \|\bold{t}\|_2 \leq 1, \|\bold{h}_p\|_2 \leq 1, \|\bold{t}_p\|_2 \leq 1 ∥h∥2≤1,∥r∥2≤1,∥t∥2≤1,∥hp∥2≤1,∥tp∥2≤1
具体实现过程: