论文笔记 – Translating Embeddings for Modeling Multi-relational Data

Antoine Bordes, et al, “Translating Embeddings for Modeling Multi-relational Data”, NeuralIPS 2013

数据集 WordNet http://wordnet.princeton.edu/wordnet/download/
数据集 Freebase http://developers.google.com/freebase/
Code: https://github.com/thunlp/KB2E

TransE 是知识表示领域开创性的工作。他的做法与 Word2Vec 类似,也是将实体及其之间的多种关系嵌入到低维特征空间中。TransE 结构简单,参数少,适用于大规模的数据。作者将其应用于链接预测问题,在两个知识库都是 SOTA。

1 简介

多种关系的数据是用实体和边构成的图表示的,形式为 $(h,l,t)$ 或 $(head,label,tail)$,这样的一个三元组表示在 head 和 tail 之间有 label 的关系。

多关系数据建模:之前的方法是基于协同过滤或矩阵分解,都是去学习数据中潜在的属性。这些方法计算复杂度很高、可解释性差,且这种复杂模型不容易设计正则化项,容易过拟合;而且这些非凸优化问题可能有好多局部极值点,也可能导致欠拟合。因此,需要一个简单的方法。

将关系作为向量嵌入:TransE 的基本假设是如果存在 $(h,l,t)$ 的关系,那么 $h$ 的 embedding 加上某个向量就应该是 $t$ 的 embedding。文章中的 translation 并非“翻译”的意思,而是“the process of moving something from one place to another”,是向量空间中的平移变换过程。

2 基于 translation 的模型

思想这么朴素,模型也就非常简单。TransE 把实体和关系都 embedding 成形状为 $\mathbb{R}^k$ 的低维向量,全局的优化函数为:$$\mathcal{L} = \sum_{(h,l,t)\in S}\sum_{(h’,l,t’)\in S’_{(h,l,t)}}\big[\gamma+d(h+l,t)-d(h’+l,t’)\big]_+$$

其中 $d$ 是距离,是 l1 或者 l2 范数,$S$ 是正样本的集合,$E$ 是边集,$S’_{(h,l,t)} = \{(h’,l,t)|h’\in E\}\cup\{(h,l,t’)|t’\in E\}$ 是负样本集合(三元组,随机换 tail 或者 head)。目标函数也就是让正样本对的 embedding 近,负远。另外,还有个限制就是所有实体的 l2 范数为 1(normalize),否则 loss 的减小就变成 embedding 一直变小了。。。

下图是详细的算法步骤(很常规,没啥必要看)。

3 相关工作

SE 是把实体 embedding 成 $\mathbb{R}^k$ 大小的向量,把关系 embedding 成 $\mathbb{R}^{k\times k}$ 大小的两个向量 $L_1$ 和 $L_2$,对于成立的三元组 $(h,l,t)$,距离 $d(L_1h,L_2t)$ 很小,反例就远。它的想法是,如果三元组成立,那么在这个关系对应的特征空间中,head 和 tail 很近。这个算法的复杂度很高(有乘法),性能没 TransE 强。

另一个相关算法是 Neural Tensor Model,他是计算三元组 embedding 的分数:$$s(h,l,t) = h^TLt + l_1^Th + l_2^Tt$$

TransE 里面的 $d(·,·)$ 就是上面式子中 $L$ 取单位阵的结果。

作者这里还说,TransE 优缺点!用的三元损失,在小规模的 Kinship 数据集上,不如那种交叉熵损失函数的强,因为这个数据集上的三元关系更重要(?没太明白)。但是作者还是觉得,应该先找数据集里最有关系的个体。(我的理解就是,TransE 把关系和实体等价了(同样维度的向量),就只是把关系当做一个“用来表示关系的词语”,一切都按照 Word2Vec 的那种语义来了,因此就弱化了关系的作用)

4 实验结果

这里的实验评价指标比较奇怪,先具体描述一下:对于每一个测试集的三元组,把 head 依次替换成其他实体,然后计算这些负样本各自的距离(就是那个 $d(·,·)$),然后再计算原来三元组的距离,看这个正样本在所有负样本中从小到大的排名,再多次实验取平均,就是 mean rank,当然是越小越好。hits@10 是看预测的最有可能的 10 个实体之中存在正解,的比率。

  1. 总体上看,TransE 的 mean rank 更低,hits@10 更高。作者认为主要在于模型简单,适合 SGD。
  2. 作者对比了 TransE 和 Unstructured(不带 translation 的 TransE),Unstructured 就只是把相似的实体简单的聚类。Unstructured 跟 TransE 在 mean rank 差不多,但是 hits@10 弱了十倍。
  3. 关系可以分成一对一,一对多,多对多的(就是看这个关系的 head 和 tail 有没有可能有多种情况),TransE 在 一对X 效果比较好,多对多就不行了。
  4. 预测新关系的实验:Unstructured 性能最好(因为本来就没用关系),TransE 最快。

5 总结

以前都是用乘法,TransE 用加法 👍

6 引用与扩展阅读

[1] 一周论文 | 基于翻译模型(Trans系列)的知识表示学习

[mathjax]

Leave a Comment

电子邮件地址不会被公开。