知识表示学习(一):TransE

一.摘要

我们考虑在低维向量空间中嵌入多关系数据的实体和关系的问题。 我们的目标是提出一个易于训练、包含减少的参数数量并且可以扩展到非常大的数据库的规范模型。 因此,我们提出了 TransE,这是一种通过将关系解释为在实体的低维嵌入上操作的翻译来对关系进行建模的方法。 尽管它很简单,但这个假设被证明是强大的,因为广泛的实验表明 TransE 在两个知识库上的链接预测中明显优于最先进的方法。 此外,它可以在具有 1M 实体、25k 关系和超过 17M 训练样本的大规模数据集上成功训练。

二.背景介绍

多关系数据是指有向图,其节点对应于实体和形式的边(head, label, tail)(记为(h, l, t)),每一个都表示存在着名为label的关系实体的头部和尾部。多关系数据模型在许多领域发挥着举足轻重的作用。示例是社交网络分析,其中实体是成员,边缘(关系)是友谊/社交关系链接,推荐系统,其中实体是用户和产品,关系是购买、评级、评论或搜索产品,或知识库 (KB)例如 Freebase 、 Google Knowledge Graph或 GeneOntology ,其中 KB 的每个实体代表一个抽象概念或世界的具体实体,而关系是表示涉及其中两个的事实的谓词。我们的工作重点是对来自 KB(本文中的 Wordnet 和 Freebase )的多关系数据进行建模,目的是提供一种有效的工具来通过自动添加新事实来完成它们,而无需额外的知识。

1.建模多关系数据

一般来说,建模过程归结为提取实体之间的局部或全局连接模式,并通过使用这些模式来概括特定实体与所有其他实体之间观察到的关系来执行预测。 单一关系的局部性概念可能是纯粹结构性的,例如我朋友的朋友是我在社交网络中的朋友,但也可以依赖于实体,例如喜欢星球大战 IV 的人也喜欢星球大战 V,但是 他们可能喜欢也可能不喜欢泰坦尼克号。 与在对数据进行一些描述性分析后可以做出临时但简单的建模假设的单一关系数据相比,关系数据的困难在于局部性的概念可能同时涉及不同类型的关系和实体, 因此,对多关系数据进行建模需要更通用的方法,这些方法可以同时考虑所有异构关系来选择适当的模式。

2.关系作为嵌入空间中的翻译

在本文中,我们介绍了 TransE,这是一种基于能量的模型,用于学习实体的低维嵌入。 在 TransE 中,关系表示为嵌入空间中的翻译:如果 (h, l, t) 成立,则尾部实体 t 的嵌入应该接近头部实体 h 的嵌入加上依赖于关系的一些向量 l。 我们的方法依赖于一组减少的参数,因为它只为每个实体和每个关系学习一个低维向量。

我们基于翻译的参数化背后的主要动机是层次关系在 KB 中极为常见,而翻译是表示它们的自然转换。 实际上,考虑到树的自然表示(即第 2 维中节点的嵌入),兄弟姐妹彼此靠近,并且给定高度的节点组织在 x 轴上,父子关系对应于 y 轴。由于空转换向量对应于实体之间的等价关系,因此模型也可以表示兄弟关系。因此,我们选择使用每个关系的参数预算(一个低维向量)来表示我们认为是 KB 中的关键关系。另一个次要的动机来自 [8] 最近的工作,其中作者从自由文本中学习词嵌入,以及不同类型实体之间的一些一对一关系,例如国家和城市之间的“首都”, 是(巧合而不是自愿)由模型表示为嵌入空间中的翻译。 这表明可能存在嵌入空间,其中不同类型实体之间的一对一关系也可以由翻译表示。 我们模型的目的是强制执行嵌入空间的这种结构。

三.基于翻译的模型

给定由两个实体 h、t ∈ E(实体集)和关系 l ∈ L(关系集)组成的三元组 (h, l, t) 训练集 S,我们的模型学习实体和关系的向量嵌入,嵌入采用 R^k 中的值(k 是模型超参数)并用相同的字母表示,粗体字符。我们模型背后的基本思想是,由 l 标记的边缘引起的函数关系对应于嵌入的平移,即当 (h, l, t) 成立时,我们希望 h + l ≈ t (t 应该是最近的 h + l) 的邻居,否则 h + l 应该远离 t 。遵循基于能量的框架,对于某些差异度量 d,三元组的能量等于 d(h + l, t),我们将其视为 L1 或 L2 范数。
在这里插入图片描述

这里的[x]+表示x部分大于0。
根据等式 (2) 构建的损坏三元组由训练三元组组成,其中头部或尾部被随机实体替换(但不能同时替换两者)。 引入损坏的三元组,有利于损失函数在训练三元组时取得更低的能量值,因此是符合预期的。
在这里插入图片描述

优化是通过随机梯度下降(在小批量模式下)在可能的 h、l 和 t 上执行的,附加约束是实体嵌入的 L2 范数为 1(没有给定正则化或范数约束 标签嵌入 l)。 这个约束对我们的模型很重要,就像以前的基于嵌入的方法 [3, 6, 2] 一样,因为它可以防止训练过程通过人为地增加实体嵌入范数来最小化 L。
Algorithm 1 中描述了详细的优化过程。实体和关系的所有嵌入首先按照随机过程进行初始化。 在算法的每次主要迭代中,首先对实体的嵌入向量进行归一化。 然后,从训练集中抽取一小部分三元组,作为小批量的训练三元组。 对于每个这样的三元组,我们然后采样一个损坏的三元组。 然后通过采用恒定学习率的梯度步骤来更新参数。 该算法根据其在验证集上的表现而停止。
在这里插入图片描述

算法的过程
第一步:随机初始化头实体、尾实体和关系向量,对随机初始化的向量作归一化处理;
第二步:对数据集中的三元组抽样,并对抽样的三元组进行实体替换,造成负例(生成错误的三元组);
第三步:优化目标函数,获得实体和关系的向量表示。

四.总结

简单来说,TransE就是将知识图谱中的实体和关系看成两个Matrix。实体矩阵结构为n x d,其中n表示实体数量,d表示每个实体向量的维度,矩阵中的每一行代表了一个实体的词向量;而关系矩阵结构为r x d,其中r代表关系数量,d表示每个关系向量的维度。TransE训练后模型的理想状态是,从实体矩阵和关系矩阵中各自抽取一个向量,进行L1或者L2运算,得到的结果近似于实体矩阵中的另一个实体的向量,从而达到通过词向量表示知识图谱中已存在的三元组 (h,l,t)的关系。
TransE的知识图谱表示方法采用函数思想,即|h + r| ≈ t,其中h, t分别表示知识图谱中的头实体和尾实体的向量表示,r表示为关系的向量表示。这个思路可以参考词向量的思路,词向量就是在语料文档的词向量空间寻找相同性质的词,即C(king) – C(queen) ≈ C(man) – C(woman)。词向量空间中的传递是存在不变性。|h + r| ≈ t,即若是三元组是正确的,则尾实体向量应该与头实体向量和关系向量的加和更为接近;反之,若是三元组是错误的,则尾实体向量应该与头实体向量和关系向量的加和更为远离。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/u013010473/article/details/126290725