转自: https://blog.csdn.net/qq_36426650/article/details/103336589?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.control
TransE是一种经典的知识表示学习方法,其通过对头实体、尾实体及对应关系进行建模,设计 d ( h + l − t ) d(h+l-t)d(h+l−t) 的能量函数,并运用负采样和随机梯度下降的方法对待训练的向量进行调整,从而能够得到不错的低维向量。TransE模型在链接预测上达到的最优,对知识补充起到了最好的效果。
然而TransE模型结构非常简单,虽然可以在大量数据的条件下可以快速有效的进行训练,但由于模型过于简单,并不能够很好的表征实体对之间的语义关系。另外对于处理复杂关系数据(一对多、多对一和多对多)时,过于简单的假设可能导致错误的表征。例如对于一对多情况,即同一个头实体 h hh 和关系 l ll 可能对应多个尾实体 h 1 , h 2 , . . . h_1,h_2,...h1,h2,...,所以TransE模型训练后的结果是 h 1 ≈ h 2 ≈ . . . h_1\approx h_2 \approx ...h1≈h2≈...,这很明显是错误的。因此需要对其进行改进。TransH就是对TransE模型的改进。
序号 | 属性 | 值 |
---|---|---|
1 | 模型名称 | TransH |
2 | 所属领域 | 自然语言处理 |
3 | 研究内容 | 知识表示 |
4 | 核心内容 | knowledge embedding |
5 | GitHub源码 | https://github.com/thunlp/KB2E |
6 | 论文PDF | http://pdfs.semanticscholar.org/2a3f/862199883ceff5e3c74126f0c80770653e05.pdf) |
我们将大规模的知识图谱中的实体和关系嵌入到连续的向量空间中。TransE是最近提出的一种方法,它非常有效,同时可以获得最优的预测效果。我们讨论了许多关系映射的属性需要考虑被嵌入,包括自反性、一对多、多对一和多对多。我们指出TransE模型不能够处理这些特性。一些复杂的模型可以有效的保存这些映射属性,但需要牺牲一定的效率。为了能够在能力和效率之间保持平衡,本文我们提出TransH模型,其可以构建关系的超平面并执行翻译操作。这样我们可以很好的保存上面提到的关系映射特性,且模型复杂度与TransE相似。另外作为一种实用的知识图谱,往往是不完整的。在训练过程中如何构建负样本对于降低错误标签是非常重要的。利用一对多或多对一的关系映射属性,我们提出一种简单的策略来价格低错误标签的可能性。我们执行了额外的实验包括链接预测、三元组分类和知识抽取在标准数据集上,例如WordNet和FreeBase。实验表明,与TransE相比,TransH在预测精度方面有了显著的改进,并具有可比较的扩展能力。
知识图谱是一种多元的图,其包含一些实体(结点)和关系(不同类型的边)组成。一个边的示例代表一个事实,包含头实体、关系和尾实体,通常表示为 ( h , l , t ) (h,l,t)(h,l,t) 。构建知识图谱在过去有了很大的突破,但依然存在两个挑战:
(1)知识图谱是一种由符号和逻辑组成的系统,基于此的一些应用涉及到连续空间内大规模的计算;
(2)很难把全局信息聚集在图中。
传统 的方法是基于形式化逻辑推理的方法,但处理长范围的推理显得不那么容易处理,健壮性变低。最近一种新的方法被提出来处理这些问题,即将知识图谱嵌入在连续的空间中。方法是将头尾实体表示为空间中的点(即是坐标原点到这个点的向量),关系边表示为两个点之间的映射属性,通过最小化一个全局损失函数来训练这三个向量。
通常知识图谱表征中,实体被表示为一个 k kk 维度的向量 h , t h,th,t,定义一个得分函数 f l ( h , t ) f_l(h,t)fl(h,t) 表示三元组 ( h , l , t ) (h,l,t)(h,l,t) 的嵌入空间。TransE模型的得分函数是 f l ( h , t ) = ∣ ∣ h + l − t ∣ ∣ f_l(h,t)=||h+l-t||fl(h,t)=∣∣h+l−t∣∣。另外还有距离模型、单层线性模型、双线性模型、非线性神经网络模型等。
本文我们首先分析TransE存在的不能够有效的处理复杂关系的问题。因此我们提出TransH模型,将实体映射到关系所在的超平面上。每个关系包含两个向量 w r w_rwr 和 d r d_rdr ,分别表示超平面的法向量和在超平面内的翻译向量。关系对应的超平面确定,因此法向量 w r w_rwr 也是确定的;而三元组中的头实体个尾实体分别投影到这个超平面上形成的向量之间存在一定的映射关系, d r d_rdr 便是描述这个映射关系的翻译向量。
本文的相关工作包括:
(1)TransE模型:TransE模型旨在将头尾实体与关系边通过 f l ( h , t ) = ∣ ∣ h + l − t ∣ ∣ f_l(h,t)=||h+l-t||fl(h,t)=∣∣h+l−t∣∣ 函数进行建模,并达到最有效果,但其忽略了复杂关系问题;
(2)Unstructured(无结构模型):更为简单的一种建模方式,简单的讲 f l ( h , t ) = ∣ ∣ h − t ∣ ∣ f_l(h,t)=||h-t||fl(h,t)=∣∣h−t∣∣ ,即不考虑关系;
(3)Distant Model(距离模型/结构模型):引入两个相互不关联的投影矩阵,并分别与头实体和尾实体相乘,得分函数为 f l ( h , t ) = ∣ ∣ W h l h − W t l t ∣ ∣ f_l(h,t)=||W_{hl}h-W_{tl}t||fl(h,t)=∣∣Whlh−Wtlt∣∣ ;
(4)双线性模型:只用一个投影矩阵并同时与两个实体相乘, f l ( h , t ) = h T W h l t f_l(h,t)=h^{\mathbf{T}}W_{hl}tfl(h,t)=hTWhlt ;
(5)单层神经网络(SLM):分别对头实体和尾实体添加一个全连接网络,并映射到同一个维度的向量,最后添加非线性激活函数,得分函数可以表示为 f l ( h , t ) = U T g ( W h l h − W t l t ) f_l(h,t)=U^{\mathbf{T}}g(W_{hl}h-W_{tl}t)fl(h,t)=UTg(Whlh−Wtlt);
(6)张量神经网络(NTN):其改进了单层网络结构,得分函数为f l ( h , t ) = U T g ( h T W l t + W h l h + W t l t ) f_l(h,t)=U^{\mathbf{T}}g(h^{\mathbf{T}}W_{l}t+W_{hl}h+W_{tl}t)fl(h,t)=UTg(hTWlt+Whlh+Wtlt);
如上图所示,其抱哈词空间和实体空间,两个实体通过SLM映射到实体空间,而关系则通过双线性映射到实体空间中。下图罗列所有现有模型的得分函数即复杂度:
本文的符号表示分别为:
符号 | 表示 |
---|---|
h , r , t h,r,th,r,t | 头实体、关系、尾实体 |
h,r,t \textbf{h,r,t}h,r,t | 头实体、关系、尾实体的嵌入表征 |
△ , △ ′ \triangle,\triangle '△,△′ | 真实三元组、错误三元组 |
关系映射分析:
对于TransE模型来说,存在两个问题:
(1)如果关系 r rr 是自反性,即 ( h , r , t ) , ( t , r , h ) ∈ △ (h,r,t),(t,r,h)\in \triangle(h,r,t),(t,r,h)∈△,TransE会计算出 h = t , r = 0 \textbf{h}=\textbf{t},\textbf{r}=\textbf{0}h=t,r=0;
(2)如果是复杂关系(一对多,多对一,多对多),例如对于一对多情况,即同一个头实体 h hh 和关系 l ll 可能对应多个尾实体 h 1 , h 2 , . . . h_1,h_2,...h1,h2,...,所以TransE模型训练后的结果是 h 1 ≈ h 2 ≈ . . . \textbf{h}_1\approx \textbf{h}_2 \approx ...h1≈h2≈...。
假设一个三元组 ( h , r , t ) (h,r,t)(h,r,t) 对应的向量分别是 h , r , t \textbf{h},\textbf{r},\textbf{t}h,r,t,关系 r rr 的对应的投影矩阵设为 w r \textbf{w}_rwr,如图所示:
关系 r rr对应一个超平面,实体空间中的两个实体 h , t h,th,t 通过关系映射矩阵 w r \textbf{w}_rwr 投影到这个超平面上。这种投影机制并非普通的垂直投影,投影的方式则通过矩阵相乘形式,取决于对应的实体,投影后的向量分别为:
h ⊥ = h − w r T h w r \textbf{h}_{\perp}=\textbf{h}-\textbf{w}_r^{\textbf{T}}\textbf{h}\textbf{w}_rh⊥=h−wrThwr
t ⊥ = t − w r T t w r \textbf{t}_{\perp}=\textbf{t}-\textbf{w}_r^{\textbf{T}}\textbf{t}\textbf{w}_rt⊥=t−wrTtwr
于是得分函数定义为 f r ( h , t ) = ∣ ∣ h − w r T h w r + d r − t − w r T t w r ∣ ∣ 2 2 f_r(\textbf{h},\textbf{t})=||\textbf{h}-\textbf{w}_r^{\textbf{T}}\textbf{h}\textbf{w}_r+\textbf{d}_r-\textbf{t}-\textbf{w}_r^{\textbf{T}}\textbf{t}\textbf{w}_r||_2^2fr(h,t)=∣∣h−wrThwr+dr−t−wrTtwr∣∣22 。
训练的损失函数则于TransE一样,采用的负采样方法,最小化正确三元组的得分,最大化错误三元组的得分:
L = ∑ ( h , r , t ) ∈ △ ∑ ( h ′ , r ′ , t ′ ) ∈ △ ′ [ γ + f r ( h , t ) − f r ( h ′ , t ′ ) ] + L=\sum_{(h,r,t)\in \triangle}\sum_{(h',r',t')\in \triangle'}[\gamma + f_r(\textbf{h},\textbf{t})-f_r(\textbf{h}',\textbf{t}')]_+L=(h,r,t)∈△∑(h′,r′,t′)∈△′∑[γ+fr(h,t)−fr(h′,t′)]+
作者设计了几个约束条件,并修改了损失函数(由于公式过长,节省时间直接截图):
对于损失函数后面的解释:
(1)C CC 表示超参数,是一个权值;
(2)括号内前一个累和表示所有实体累计计算实体向量的长度的平方与1的差的最大值(与0比较),可知该项约束了实体向量长度小于等于1;
(3)后一个累和表示对于所有关系类映射向量正交分解,即保证每个关系类在一定程度上所表示的空间互不相关。
TransH依然使用随机梯度下降法进行更新参数
作者另外改进了TransE在负采样过程中可能导致引入错误标签的问题。首先设置一定的概率用于代替头实体或尾实体。当关系为一对多时,让头实体有更大的概率被替换;当关系为多对一时,让尾实体有更大的概率被替换。这种替换策略相比TransE的随机方式能够降低错误标签。
负采样机制:设 t p h tphtph 表示每个头实体对应的尾实体数量的平均值,h p t hpthpt 表示每个尾实体对应的头实体数量的平均值。给定的实体对 ( h , r , t ) (h,r,t)(h,r,t) ,然后以 t p h t p h + h p t \frac{tph}{tph+hpt}tph+hpttph概率替换头实体,以 h p t t p h + h p t \frac{hpt}{tph+hpt}tph+hpthpt概率替换尾实体。
通过约束负采样的策略,可以保证在负样本中依然保持原有的复杂关系,不至于产生不正确的负样本。
作者在三个任务上进行了验证,相比TransE模型更具有通用性和可扩展性。
(1)链接预测:这部分与TransE相同,链接预测的概念请参考【TransE】,具体的实验细节和参数设置省略,实验对比如图所示:
(2)三元组分类:这个任务主要是二分类,给定一个三元组 ( h , r , t ) (h,r,t)(h,r,t) ,判断这个三元组是否是正确的,即头尾实体 h , t h,th,t 是否属于关系 r rr。实验细节省略,实验对比图如图所示:
其中Hits@10表示对所有三元组中,预测结果在前10个中的占比。可参考【Hits@10理解】。
(3)文本关系抽取:这一部分正是TransE在总结部分的未来展望,TransH将其实现这个任务的对比。关系抽取任务可以通过知识表示来完成,也属于一种知识补充。作者使用基于远程监督的关系抽取,评价指标则为P-R曲线与对应的AUC面积。实验细节省略,实验对比如图所示:
上图一为精确度测试,即测试集中目标实体对关系被正确预测的比例;图二的两个图表示P-R曲线,这部分则是多类分类任务。左图表示基于Sm2r和TransE/TransH的两个得分函数共同训练,右图表示仅使用TransE/TransH的得分函数训练,可知TransE和TransH均比现有的模型效果好,TransE和TransH对比下可知TransH优于TransE。
这个模型TransE主要解决了TransE不能够很有效的进行复杂关系的建模,并提出一种关系映射方法解决了这个问题,在包括链接预测、三元组分类和关系抽取任务上表现最好,另外作者改进了负采样的策略,提出一种概率采样的办法,降低错误标签带来的问题。
当然TransH也存在一定的问题:头尾实体依然处于相同的语义空间,而每个三元组的关系可能关注头尾实体的不同属性,即每个关系对应的头尾实体应在不同的语义空间中表征,因此TransR模型由此诞生。