知识表示学习 (一) —— Point-Wise Space之1
知识表示学习 (一) —— Point-Wise Space之1
文章目录
- 知识表示学习 (一) —— Point-Wise Space之1
- 零、表示学习
- 一、TransE(2013)
- 二、TransH(2014)
- 三、TransM(2014)
- 四、TransR(2015)
- 五、TransD(2015)
- 六、TransA(2015)
- 七、TranSparse(2016)
零、表示学习
知识表示学习(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(多元关系数据),有向图中包括头实体hhh、尾实体ttt以及两者之间的关系类lll,表示为三元组h,r,th,r,th,r,t。
TransE原理
TransE的直观含义:基于实体和关系的分布式向量表示,将每个三元组实例(head,relation,tail)(head, relation, tail)(head,relation,tail)中的关系relationrelationrelation看做从实体headheadhead到实体tailtailtail的翻译,即对于一个真爱而的三元组,在模型中应该存在h+r=th+r=th+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∥22=∑i=1N(hi+ri−ti)2d(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]+表示xxx中正例的部分,即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层的权重参数,边界为6k\frac{6}{\sqrt{k}}k6,并对关系rrr的权重矩阵归一化:r=r/∥r∥r=r/\|r\|r=r/∥r∥
- 循环每一个epoch:
- 对实体eee的权重矩阵归一化:e=e/∥e∥e=e/\|e\|e=e/∥e∥
- 从所有样本中划分batch形成SbatchS_{batch}Sbatch
- 初始化TbatchT_{batch}Tbatch保存正负样本的三元组
- 对SbatchS_{batch}Sbatch中的每一个样本,进行负采样并合并进TbatchT_batchTbatch
- 利用梯度下降进行训练,并调整相应权重参数
二、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=dh+r=dh+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,即lll是自反的,则r=0,h=tr=0,h=tr=0,h=t
- 对∀i∈{0,1,2,⋯,m}\forall i \in \{0,1,2,\cdots,m\}∀i∈{0,1,2,⋯,m},有(hi,r,t)∈S(h_i,r,t) \in S(hi,r,t)∈S,即rrr是m−1\bold{m-1}m−1映射,则有h0=h1=⋯=hmh_0=h_1=\cdots=h_mh0=h1=⋯=hm。同理,对∀j∈{0,1,2,⋯,m}\forall j \in \{0,1,2,\cdots,m\}∀j∈{0,1,2,⋯,m},有(h,r,tj)∈S(h,r,t_j) \in S(h,r,tj)∈S,即rrr是1−m\bold{1-m}1−m映射,则有t0=t1=⋯=tmt_0=t_1=\cdots=t_mt0=t1=⋯=tm。
因此,TransE在处理自反关系,以及多对一、一对多、多对多关系中,会使得一些不同的实体具有相同或者相似的向量。其根本原因在于:出现在多个关系中的同一个实体的表示是相同的。
TransH的原理
TransH模型则对这种问题进行处理,对每一个关系定义一个超平面WrW_rWr,和一个关系向量drd_rdr。h⊥,t⊥h_{\perp},t_{\perp}h⊥,t⊥,是h,th,th,t在WrW_rWr上的投影。三元组满足hr+dr=trh_r+d_r=t_rhr+dr=tr。从而同一个实体在不同关系中的意义不同;不同实体,在同一关系中的意义,也可以相同。
对于任意关系lll,对应一个超平面,将实体h,th,th,t通过关系映射矩阵wr\bold{w}_rwr映射到超平面上。对应的映射关系为:
h⊥=h−wrThwrt⊥=t−wrTtwr\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⊥+dr−t⊥∥22=∥h−wrThwr+dr−t+wrTtwr∥22d(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,∣wrTdr∣/∥dr∥2≤ϵ,(2)∀r∈R,∥wr∥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)保证关系向量drd_rdr在超平面上,(3)确保平面的法向量为单位向量。
将无约束的损失函数调整为软约束的损失函数:
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[(wtTdr)2∥dr∥22−ϵ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]+}
其中CCC为软约束的超参数权重,其中约束条件(3)利用对wr\bold{w}_rwr进行L2-norm处理。
TransH中提出了两种负采样的生成办法。为了减少假负例(即替换了一个节点后的三元组,恰好是整个知识图谱中存在的另一个三元组)的出现,需要根据头尾节点关系,进行节点替换:
(1)即TransE中所采用的均匀分布的替换方式unif。
第二种是采用伯努利采样bern:对于一个关系rrr, 首先计算rrr每个头结点平均对应的尾节点数tphtphtph;以及这个关系每一个尾节点平均对应的头节点数hpthpthpt。最后计算p=tphtph+hptp=\frac{tph}{tph+hpt}p=tph+hpttph来表示头结点被替换的概率,而尾节点替换的概率为1−p1-p1−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)中的每一个关系rrr分配特定的关系权重wrw_rwr,表示映射的程度。通过对一对多、多对一和多对多分配较小的权重,使得t\mathbf{t}t在复杂关系中离h+r\mathbf{h}+\mathbf{r}h+r更远。
权重系数wrw_rwr的计算方式如下:
wr=1log(hrptr+trphr)w_r=\frac{1}{log(h_rpt_r+t_rph_r)} wr=log(hrptr+trphr)1
其中hrptr=#(Δr)#(distinct(tr))h_rpt_r=\frac{\#(\Delta_r)}{\#(distinct(t_r))}hrptr=#(distinct(tr))#(Δr),trphr=#(Δr)#(distinct(hr))t_rph_r=\frac{\#(\Delta_r)}{\#(distinct(h_r))}trphr=#(distinct(hr))#(Δr),trt_rtr和hrh_rhr表示与关系rrr相连的尾实体和头实体个数,Δr\Delta_rΔr表示训练集中包含关系rrr的三元组总个数。
模型的得分函数添加上系数wrw_rwr后可以表示为:
d(h,r,t)=wr∥h+r−t∥22d(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模型是为每个关系假定一语义空间Rm\mathbb R^mRm,将实体映射到语义空间上进行翻译。
TransR与TransH的最大区别在于,由于之前的Trans*模型都是定义在同一个空间中,因此entity_embedding和relation_embedding的维度必须要相同,才能够进行向量之间的映射。而TransR定义在不同的空间中,二者的维度可以不同,通过映射矩阵MrM_rMr从实体空间向关系空间映射时,转化为相同的维度即可。
TransR的原理
首先为每一个关系意义映射矩阵M∈Rk×d\bold{M} \in \mathbb{R}^{k \times d}M∈Rk×d,其中kkk为实体向量维度,ddd为关系向量维度。对于给定的三元组(h,r,t)(h,r,t)(h,r,t),先将实体通过关系rrr的映射矩阵Mr\bold{M}_rMr,将其从实体空间转换到关系空间
hr=hMr,tr=tMr\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)=∥hr+r−tr∥22d(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,∥hMr∥2≤1,∥tMr∥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的基础上,
- 首先将输入示例分为多个组。对于特定的关系rrr,所有的实体对(h,t)(h,t)(h,t)可被聚类到多个簇中,每个簇中的实体对可被认为与关系rrr有关。
- 为每个簇学习对应的关系向量rcr_crc,得到对应的Mr\bold{M}_rMr。
- 将每个簇中的头实体和尾实体映射到对应关系空间中。
CTransR的得分函数定义为:
d(h,r,t)=∥hr,c+rc−tr,c∥22+α∥rc−r∥22d(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的问题:
- 在同一关系rrr下, 头尾实体共用相同的投影矩阵。然而,一个关系的头尾实体存在很大的差异,如
(美国,总统,奥巴马)
,美国
是一个实体,代表国家,奥巴马
是一个实体,代表的是人物。 - TransR仅仅让给投影矩阵与关系有关是不合理的,因为投影矩阵是头尾实体与关系的交互过程,应该与实体和关系都相关。
- TransR模型的参数急剧增加,计算的时间复杂度大大提高。
TransD的原理:
给定一个三元组(h,r,t)(h, r, t)(h,r,t),其中h,t∈Rn\bold{h},\bold{t} \in \mathbb{R}^{n}h,t∈Rn,r∈Rm\bold{r} \in \mathbb{R}^{m}r∈Rm分别定义对应的投影向量hph_php,rpr_prp,tpt_ptp,ppp表示投影。然后将头尾实体分别投影到关系空间得到投影矩阵Mrh\bold{M}_{rh}Mrh和Mrt\bold{M}_{rt}Mrt。获取投影矩阵之后,在利用TransR的思想,计算头尾实体的投影向量。
Mrh=rphpT+Im×nMrt=rptpT+Im×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⊥=Mrhh,t⊥=Mrtt\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_\perph⊥、t⊥t_\perpt⊥展开后可以得到:
h⊥=Mrhh=h+rphpTh=h+hpThrpt⊥=Mrtt=t+rptpTt=t+tpTtrp\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⊥∥22d(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降维图形是一个椭圆。
文中作者给出了一个例子,对于关系 hasparthasparthaspart而言,TransE模型根据欧氏距离计算方法生成了Room−has−GoniffRoom-has-GoniffRoom−has−Goniff这样的三元组,而正确的结果却是Room−has−WallRoom-has-WallRoom−has−Wall。对x,yx,yx,y轴进行分解,发现RoomRoomRoom在xxx轴上距离WallWallWall更为相近,因此可以认为该图在xxx轴维度上更加重要。TransA模型通过引入加权矩阵,赋给每一维度权重。
TransA的原理
TransA模型首先对基础的得分函数进行了分解:
d(h,r,t)=∥h+r−t∥22=(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)
然后引入Wr\bold{W_r}Wr权重矩阵,对不同维度的向量进行加权:
d(h,r,t)=(∣h+r−t∣)TWr(∣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∣=(∣h1+r1+t1∣,∣h2+r2+t2∣,…,∣hn+rn+tn∣)|\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方法将Wr\bold{W_r}Wr分解为对角阵Dr\bold{D_r}Dr,即Wr=LrTDrLr\mathbf{W_r} = \mathbf{L_r^T} \mathbf{D_r} \mathbf{L_r}Wr=LrTDrLr。其中Dr=diag(w1,w2,…,wn)\mathbf{D_r}=\textbf{diag}(w_1,w_2,\ldots,w_n)Dr=diag(w1,w2,…,wn)是对角矩阵,wiw_iwi是每个维度的权重。
最后得分函数可以表示为:
d(h,r,t)=(∣h+r−t∣)TWr(∣h+r−t∣)=(Lr∣h+r−t∣)TDr(Lr∣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∥Wr∥F2)+C(∑e∈E∥e∥22+∑r∈R∥r∥22)\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):对于每一个关系rrr,定义翻译向量r\mathbf{r}r和稀疏转移矩阵Mr\mathbf{M_r}Mr,稀疏度为(θr)(\theta_r)(θr)。NrN_rNr为关系rrr所链接的实体对的数量,Nr∗N_{r^*}Nr∗为关系链接的实体最大数。设置Mr∗\mathbf{M_{r^*}}Mr∗的稀疏度为θmin,(0≤θmin≤1)\theta_{\min},(0 \leq \theta_{\min} \leq 1)θmin,(0≤θmin≤1)。则得出一般情况下的稀疏度:
θr=1−(1−θmin)Nr/Nr∗\theta_{r}=1-\left(1-\theta_{\min }\right) N_{r} / N_{r^{*}} θr=1−(1−θmin)Nr/Nr∗
利用稀疏因子和转移矩阵。将头尾实体分别映射到关系空间中:
hp=Mr(θr)h,tp=Mr(θ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):头尾实体分别映射到不同的关系空间中。Mrh\mathbf{M_r^h}Mrh、Mrt\mathbf{M_r^t}Mrt分别为头尾实体的映射矩阵,NrhN_r^hNrh、NrtN_r^tNrt为关系rrr所对应的头尾实体数。
稀疏因子的定义为:
θrl=1−(1−θmin)Nrl/Nr∗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)
头尾实体相应的映射方式为:
hp=Mrh(θrh)h,tp=Mrt(θrt)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)=∥hp+r−tp∥22d(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,∥hp∥2≤1,∥tp∥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
具体实现过程:
知识表示学习 (一) —— Point-Wise Space之1相关推荐
- 「知识表示学习」专题论文推荐 | 每周论文清单
本期论文清单来自清华大学博士生韩旭和北师大本科生曹书林,涵盖了近年知识表示学习方向的重要论文. [ 综述类 ] ■ 论文 | Representation Learning: A Review and ...
- 领域应用 | 小米在知识表示学习的探索与实践
转载公众号 | DataFunTalk 导读:知识表示是知识获取与应用的基础,贯穿了小米知识图谱的构建与应用.本文将结合小米知识图谱的构建及小爱问答场景,介绍融合文本和知识图谱的知识表示学习方法,以及 ...
- 论文浅尝 |「知识表示学习」专题论文推荐
本文转载自公众号:PaperWeekly. 本期论文清单来自清华大学博士生韩旭和北师大本科生曹书林,涵盖了近年知识表示学习方向的重要论文. [ 综述类 ] ■ 论文 | Representation ...
- 技术动态 | 清华大学开源OpenKE:知识表示学习平台
本文转载自公众号机器之心,选自 THUNLP. 清华大学自然语言处理实验室近日发布了 OpenKE 平台,整合了 TransE.TransH.TransR.TransD.RESCAL.DistMu ...
- 知识图谱最新权威综述论文解读:知识表示学习部分
知识图谱最新权威综述论文解读:知识表示学习部分 知识图谱表示学习 1 表示空间 1.1 Point-wise空间 1.2 复数向量空间 1.3 高斯分布 1.4 流形和群 2 打分函数 2.1 基于 ...
- 论文笔记--知识表示学习研究进展-2016
论文信息: 论文-知识表示学习研究进展-2016-刘知远 文末附6篇知识表示相关论文的下载地址 文章目录 前言 知识库的主要研究目标 基于网络形式的知识表示面临的困难点 表示学习&知识表示学习 ...
- 知识表示学习研究进展
知识表示学习研究进展 本博文来源于 Paper: 刘知远 2016 知识表示学习研究进展 计算机研究与发展 目前的产品 谷歌知识图谱 微软Bing Satori 百度知心 搜狗知立方 IBM Wast ...
- 知识表示学习(KG Embedding)—— TransX系列
文章目录 前言 TransE TransH TransR TransD 总结 参考资料 前言 知识表示学习是针对于知识图谱三元组所做的word embedding,平常所做的都是基于完整的文本表述比如 ...
- 知识图谱文献综述(第二章 知识表示学习)
第二章 知识表示学习 1. 任务定义.目标和研究意义 知识表示是知识获取与应用的基础,因此知识表示学习问题,是贯穿知识库 的构建与应用全过程的关键问题.人们通常以网络的形式组织知识库中的知识, 网络中 ...
最新文章
- java 获取字符串长度_ava练习实例:java字符串长度与Java String charAt() 方法 (建议收藏)...
- 鸿蒙系统今日发布 中国人自己的操作系统,鸿蒙系统今日发布,中国人自己的操作系统...
- TF之AE:AE实现TF自带数据集数字真实值对比AE先encoder后decoder预测数字的精确对比—daidingdaiding
- SAP CRM的user status和system status
- Windows7+VS2012下OpenGL 4的环境配置
- wind 下装mysql,windows 下安装MySQL
- php文本文件操作,文本文件操作的php类
- 使用keras进行深度学习_如何在Keras中通过深度学习对蝴蝶进行分类
- 给button加href
- java最常见的runtime_Java常见runtime exception
- 84-java版spark2.x读取es6.x
- WebFlux系列(十)WebClient 异常处理
- PTA—比较大小(C语言)
- 递归装饰器正则运算模块
- PRD之道:4个撰写PRD的关键思路
- solidworks_adams_simuilink联合仿真简易教程
- Google Guice依赖注入框架使用
- 风尚云网学习篇-介绍chrome 浏览器的几个版本
- 使用 vlmcsd 部署 KMS 服务器
- Lua_第28章 资源管理(下)