TransE
1 TransE的作用
TransE 作用就是把三元组翻译成embedding词向量的方法
三元组,也就是(头实体,关系,尾实体)的形式,头实体和尾实体统称为实体。为了简化起见,我们用(h,r,t)来表示三元组。其中
h表示头实体
r表示关系
t表示尾实体
我们的目标是将知识库中所有的实体、关系表示成一个低维的向量。我们把三元组(h,r,t)对应的向量表示为(h,r,t)。
h 表示头实体对应的向量
r 表示关系对应的向量
t 表示尾实体对应的向量
这样,“姚明”这个实体就不再是一个孤立的符号了,而是一个低维的稠密的向量。它看起来就像下面这样:
[0.01, 0.04, 0.8, 0.32, 0.09, 0.18]
上面这个向量的维度是6维,真实情况下向量的维度会比这个大,但具体取多大并没有一个统一的标准,一般取为50~200左右。
2 TransE的基本思想
TransE模型认为一个正确的三元组的embedding向量会满足公式:(头实体embedding加上关系embedding会等于尾实体embedding)
如果是一个错误的三元组,那么它们的embedding之间就不满足这种关系。
3.TransE的目标函数
目标是学得所有实体和关系的embedding。
TransE的直观含义,就是TransE基于实体和关系的分布式向量表示,将每个三元组实例(head,relation,tail)中的关系relation看做从实体head到实体tail的翻译。通过不断调整、和 使 尽可能与相等,理想情况下,一个正确的三元组的embedding之间会有的关系,而错误的三元组之间不会有这个关系。
因此我们定义如下的势能函数,通过和之和与t之差的二范数来表示这个三元组的势能。
二范数,即Euclid范数(欧几里得范数,常用计算向量长度),即向量元素绝对值的平方和再开方。
对于一个正确的三元组,我们希望势能越低越好,而对于一个错误的三元组,我们希望势能越高越好。这样我们就很容易给出目标函数了:其中:
- 表示正确的三元组集合
- 表示错误的三元组集合
- 表示正负样本之间的间距,是一个常数,表示margin,通常取1
表示max(0,x)
对于上面说的错误的三元组 ,TransE采取的生成负例三元组的方法是,将正确的三元组的头实体、尾实体、关系三者之一随机替换为其他实体或关系,从而构成负例集合 ,这种方法称为均匀采样(与后面的伯努利采样相对比)。整体算法为:
显然,TransE模型在处理复杂关系建模(一对多、多对一、多对多关系)时会遇到困难,例如,对于一对多关系(美国,总统,奥巴马)和(美国,总统,特朗普),TransE模型会使得尾实体向量奥巴马和特朗普的表示非常相似。事实上,这是由于对于不同的关系,实体向量的表示总是相同的.
3.1注: 负样本(错误三元组)的产生
通常我们得到的知识库是三元组的集合,所有在知识库中出现了的三元组都被看作是正例,那我们如何产生负例呢?我们通常使用替换法来获取负例。
对于三元组,我们随机用知识库中的某个实体来替换,或者用某个实体来替换,这样我们就得到了两个负例和。
为了避免出现生成的负例其实已经早就存在于知识库里的情况,我们可以对生成的负例进行过滤,如果它是知识库中的正例,那我们就不把它作为负例,而是重新生成一个负例。
TransH:
TransH:将知识嵌入到超平面,克服TransE模型的上述缺陷,将实体和关系嵌入到同一的向量空间,但实体在不同关系中有不同的表示。
TransH模型对于每一个关系,假设一个对应的超平面,关系落在该超平面上,其法向量为,且
类似于TransE模型的翻译在该超平面上进行,具体地,首先将头实体h和尾实体t投影到该超平面上得到和,如果我们限制则有
定义势能函数为:
TransE与TransH的对比:
考虑之前总统的例子,也就是一个一对多的问题。将关系表示成超平面后,这种问题得到了解决。如下图所示,如果分别用和表示两个总统,那么将三元组映射到超平面之后,和都能满足
这个三元组(如下图所示)。并且两个向量在向量空间还是不同的。多对一,多对多的情况也可以这样解决。
TransH的评价函数变为:
其中表示的就是TransE公式中的,即对于中括号中的值,返回0和它之间的最大值。
上式还得满足三个限制。其中,
- 限制(1)保证每个向量的模都小于1。
- 限制(2)是到的投影长度除以的长度所得到的值要非常小,保证了确实在投影平面上。
- 限制(3)规定投影平面的法向量的模为1,这样做是为了简化公式。否则这个公式的形式就会更为复杂。
值得一提的是,在本篇TransH论文中除了提出了TranH模型,另一贡献是提出了基于伯努利分布的采样方法。在原来的均匀采样中,容易将错误的负例引入到训练过程中来,例如,对于正例(美国,总统,奥巴马),随机替换奥巴马为罗斯福构成(美国,总统,罗斯福)作为负例,实际上由于罗斯福也是总统,这并不是一个负例。新的采样方法的动机是,对于一对多关系,我们以更大的概率来替换其头实体,对于多对一关系,我们以更大的概率来替换其尾实体。具体地,对于包含关系的所有三元组,我们定义两个统计量:
- 平均每个头实体对应多少个尾实体
- $hpt: $平均每个尾实体对应多少个头实体
进而,取伯努利分布的参数为即以概率替换三元组的头实体,以概率替换三元组的尾实体。实际上, 反映了一对多关系的失衡程度。
虽然TransH模型使得同一实体在不同关系下通过投影有了不同的表示,但投影之后仍然处于原来的空间 中,表示实体向量和关系向量均为维。换言之,TransH模型假设实体和关系处于相同的语义空间中,这在一定程度上限制了它的表示能力。下面的TransR模型改进了这一缺陷,提高了模型的表示能力
TransR&&CTransR:实体和关系分开嵌入
1 TransR
一个实体是多种属性的综合体,不同关系关注实体的不同属性。直觉上一些相似的实体在实体空间中应该彼此靠近,但是同样地,在一些特定的不同的方面在对应的关系空间中应该彼此远离。
在TransR中,模型将实体和关系嵌入到不同的空间中,在对应的关系空间中实现翻译。因此不同的关系应有不同的语义空间。
TransH模型是为每个关系假定一超平面,将实体投影到这个超平面上进行翻译;而TransR模型是为每个关系假定一语义空间 ,将实体映射到这个语义空间上进行翻译。这里表示关系向量的维度为 。
TransR的基本思想如图1所示。对于每个元组,首先将实体空间中的实体通过向关系投影得到和,然后使。特定的关系投影(彩色的圆圈表示)能够使得头/尾实体在这个关系下真实的靠近彼此,使得不具有此关系(彩色的三角形表示)的实体彼此远离。
Reference
http://aiblog.top/2019/07/08/Trans%E7%B3%BB%E5%88%97%E6%A8%A1%E5%9E%8B%E8%AF%A6%E8%A7%A3/
来源:CSDN
作者:NERV_Dyson
链接:https://blog.csdn.net/qq_38382642/article/details/103482471