基于翻译的嵌入模型——TransE


多元关系数据及其表示形式

多元关系数据是经常会用到的关系型数据,由结点和联结结点的边组成,知识图谱就是一种多元关系数据库,如图所示。

结点表示了实体,联结结点的边表示实体与实体之间存在的关系。这样形成的网络通常可以拆解为多个三元组形式(head,relation,tail),称为一个事实(fact)。

其中,headtail表示实体,relation表示二者关系,当headtail之间的关系并非向量(有向关系,如同学,即等价关系时)时,(head,relation,tail)=(tail,relation,head)。

模型思想及简介

本篇文章的目的就是构建一个嵌入模型,将这样的数据关系网络简洁高效地嵌入到数学模型中,并提供自动添加事实的功能,而不需要人工提供额外的知识。主要思想是通过提取已有数据关系中的模式,利用该模式对已存在的实体与关系(两者没有对应关系)进行预测。最简单的推导过程如:(张,同学,李)+(张,同学,王)=>(李,同学,王)。

TransE模型以关系relation为核心,选用关系模型中的关系的一个低维向量来表示关键关系(key),是一种嵌入到低维模型的平移转换,头尾实体的嵌入依赖于该关系所产生的低维向量,因此关系可以看做嵌入转换过程中的翻译,也称为翻译模型。一开始这个模型是为具有层次结构的知识图谱服务的,实际应用后对大部分结构都适用,且能应用于大规模的实体-关系图上。

若有三元组(h, l, t)成立,h, l, t 均为向量形式。定义一个距离函数 d (h + l, t) 度量 h + l t 之间的距离,那么训练出来的模型需要满足两个条件:

(1)对于已存在的(h, l, t) h + l t ;

(2)对于不存在的(h, l, t),则要使得 h + l t 间隔相当远。

该距离函数d通常使用L1范数或L2范数。

对于条件1,样本是容易找到的,但是条件2呢?作者提供了一种构造不存在的三元组的办法,在模型训练的损失函数中有所体现。

损失函数

在训练该模型的过程中,为了同时满足以上两个条件,定义一个损失函数L:

 其中,S 表示事实数据集,(h, l, t)表示一个数据集中已存在的事实。S‘ 集合如下所示:

其中 E 表示实体数据集。由 S的定义可知,S’ 表示的是未知的存疑的事实(不存在于 S 中),它的每一项是由 S 中的某项通过替换头或尾的实体得来的,且头尾实体不可同时替换。因此,S' 称为 S 的对照三元组集,或损坏三元组集。

再来看损失函数,最小化 L 的途径就是使得已存在的事实 d(h, l, t) 尽可能小,而存疑的伪事实 d( h'+ l, t') 尽可能大。

[x]+为合页损失函数表示取 x 的非负部分,若 x ≤ 0,则[x]+ = 0。

超参数 γ 是一个正数,提供了实现上述思想中对“尽可能”程度的调节范围。已知损失函数最终都会取得非负数,当γ+d(h,l,t)-d(h'+l,t')为正数时,超参数作用无法凸显,任意两个正数同时加上超参数后的差是相同的;但当γ+d(h,l,t)-d(h'+l,t')为负数时,合页损失函数都将把该负数变为0,而不管这个负数多大。负数越大,表示两个 d 之间差距越大,当差距超过了超参数时,则认为超参数为距离上界。因此,超参数可以看做一个标准尺度,只要距离差达到该标准尺度,那损失函数就达到了最小值0。超参数取值越大,训练越严格,可能过拟合;取值越小,训练条件越易满足,可能欠拟合。

模型训练 

训练模型是通过最小化损失函数完成的,采用随机梯度下降法。额外的约束条件是,实体嵌入的L2范数会正则化为1,而关系嵌入的范数则没有任何正则化或范数的约束(但也可以正则化)。因为要考察的是实体之间的距离,需要减小实体本身的范数对计算距离函数所产生的影响(即避免实体间相同有r却得到不同d的情况)。

具体训练算法如图所示:

所有实体和关系都经过随机化得到,并且都经过归一化处理。每一次都选取一批三元组放入训练,同时对应每一个三元组又选一个损坏三元组放入。该算法将根据其在验证集上达到的效果选择是否停止。

距离函数定义

相关的模型还有 SE 和 Neural Tensor Modal。

SE将实体映射到 k 维实数空间,将关系的表达映射成两个 k×k 维矩阵L1L2。距离函数用 d(L1h, L2h) 表示。基本思想仍然是使得损坏三元组的距离度量尽可能大,否则尽可能小。用两个不同矩阵的原因是,考虑到头部和尾部实体之间的关系或许存在不对称的情况。TransE在实现上比 SE 更简洁,但取得的效果却更好,SE 容易产生欠拟合情况。

Neural Tensor Modal的一个特殊例子是:

其中L,l1,l2均与l有关。这个函数中,若三元组为破坏三元组,则函数值较小。

对于TransE,若以欧氏距离的平方作为度量函数,有如下定义:

已知 h t 的范数均为1。由于l的范数对破坏三元组没有意义,因此添上了括号中的项。括号内取的是Neural Tensor Modal中 s(h, l, t)的特殊例子,L取单位矩阵,l1=-l2=l。因此,对于同样一个关系 l 的原始三元组 (h, l, t) 与破坏三元组 (h, l', t),前三项都是一样的,最后一项却能够保证使得破坏三元组的距离度量更大。

相比Neural Tensor Modal,TransE所使用的的参数更少,这不仅简化了训练,也能防止欠拟合,补偿了表达能力过于简单的问题。

嵌入的低维空间维数 k、超参数 γ、梯度下降优化方法中的梯度均为可调整参数。

评价指标

对于一个三元组(h,l,t),通过更换头部或尾部得到损坏三元组,每次只能替换头部或只能替换尾部。例如,头部和尾部的集合是固定个数的(若待替换项有n-1项),对生成的三元组集合(n-1个)计算距离,按照距离从小到大排列。

第一个评价指标——hit@10

hit@10的初始值为0。在这个排好序的n-1元素中,我们从第一个开始遍历,看从第一个到第十个是否能够遇到真实三元组,如果遇到了就将hit@10计数加1。hit@10表示算法能够正确表示三元组关系的能力。

第二个评价指标——mean rank

表示在这n-1个排序中,平均排到多少位才能得到真实三元组。

 

 
————原文《Translating Embeddings for Modeling Multi-relational Data
 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM