论文链接:http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.447.6132&rep=rep1&type=pdf
代码链接:https://github.com/Anery/transE

导读

表示学习旨在学习一系列低维稠密向量来表征语义信息,而知识表示学习是面向知识库中实体和关系的表示学习。当今大规模知识库(或称知识图谱)的构建为许多NLP任务提供了底层支持,但由于其规模庞大且不完备,如何高效存储和补全知识库成为了一项非常重要的任务,这就依托于知识表示学习。

transE算法就是一个非常经典的知识表示学习,用分布式表示(distributed representation)来描述知识库中的三元组。想象一下,这类表示法既避免了庞大的树结构构造,又能通过简单的数学计算获取语义信息,因此成为了当前表示学习的根基。

1、TransE算法原理

我们知道知识图谱中的事实是用三元组 (h,l,t)(h,l,t)(h,l,t) 表示的,那么如何用低维稠密向量来表示它们,才能得到这种依赖关系呢?transE算法的思想非常简单,它受word2vec平移不变性的启发,希望h+l≈th+l≈th+l≈t(此为归纳偏差?)。

光有这一个约束可不够。想让h+l≈th+l≈th+l≈t,如何设置损失函数是个关键。我们发现表示学习都没有明显的监督信号,也就是不会明确告诉模型你学到的表示正不正确,那么想要快速收敛就得引入“相对”概念,即相对负例来说,正例的打分要更高,方法学名“negative sampling”。损失函数设计如下:L=∑(h,l,t)∈S∑(h′,l,t′)∈S(h,l,t)′[γ+d(h+l,t)−d(h′+l,t′)]+\mathcal{L}=\sum_{(h,l,t)\in S}\sum_{(h',l,t')\in S'_{(h,l,t)}}[\gamma+d(h+l,t)-d(h'+l,t')]_+L=(h,l,t)∈S∑​(h′,l,t′)∈S(h,l,t)′​∑​[γ+d(h+l,t)−d(h′+l,t′)]+​

其中(h′,l,t′)(h',l,t')(h′,l,t′)称为corrupted triplet,是随机替换头或尾实体得到(非同时,其实也可以替换relation)。γ\gammaγ为margin。这里,d(h+l,t)=∣∣h+l−t∣∣22d(h+l,t)=||h+l-t||_2^2d(h+l,t)=∣∣h+l−t∣∣22​。细看发现这就是SVM的soft margin损失函数,所以可以说,transE针对给定三元组进行二分类任务,其中负例是通过替换自行构造的,目标是使得最相近的正负例样本距离最大化。

论文中给出了详细的算法流程:

2、实验

2.1、实验设置

TransE的实验数据是从Wordnet和Freebase中抽取的,数据集信息如下表所示:

其中距离度量方式有L1L_1L1​范数和L2L_2L2​范数两种。在测试时,以一个三元组为例,用语料中所有实体替换当前三元组的头实体计算距离d(h′+l,t)d(h'+l,t)d(h′+l,t),将结果按升序排序,用正确三元组的排名情况来评估学习效果(同理对尾实体这样做)。度量标准选择hits@10和mean rank,前者代表命中前10的次数/总查询次数,后者代表正确结果排名之和/总查询次数。

还有一点值得一提,文中给了两种测试结果raw和filter,其动机是我们在测试时通过替换得到的三元组并不一定就是负例,可能恰巧替换对了(比如(奥巴马,总统,美国)被替换成了(特朗普,总统,美国)),那么它排名高也是正确的,把当前三元组挤下去也正常。(存疑:这样的话训练时是否也应当过滤corrupted triplet呢) 所以测试时在替换后要检查一下新三元组是否出现在训练集中,是的话就删掉,这就是filter训练方法(不检查的是raw)。

2.2、链接预测

下表为链接预测实验结果

总体结果 表3显示了所有数据集所有方法的比较。与预期结果一致,经过过滤设置的结果具有较低的平均排名和较高的hits@10,相信在链接预测方面对各种方法有一个清晰地性能评估。然而,raw和filtered的趋势是一样的。

2.3、关系聚类

下表为关系聚类的详细结果。我们比较了在FB15k上以过滤数据为评价比较TransE和参考方法的hits@10。

详细结果 表4展示了在FB15k上依据关系的几种类别的分类结果,并依此对几种方法进行预测。我们根据头和尾的基数参数把关系分为4类:1-1,1-多,多-1,多-多。如果一个头部至多对应一个尾部,那么它们的关系是1-1,如果一个头部对应多个尾部,那么它们的关系是1-多,如果很多头部对应同一个尾部,那么它们的关系是多-1,如果多个头部对应多个尾部,那么它们是多-多关系。通过下面的处理我们把关系分成这四类,给定一个序对(l,t)(同样地,序对(h,l),对每个关系l,计算头部h(同样地,尾部t)出现在FB15k数据集上的平均数。如果这个平均数小于1.5就被标记为1-多等等。例如,每个尾部平均有1.2个实体并且每个头部平均有3.2个尾部的关系被分类为1-多。我们得到在FB15k上有26.2%的1-1关系,22.7%的1-多关系,28.3%的多-1关系和22.8%的多-多关系。

表4中的详细结果考虑了一个更精确的评估并且了解了这些方法的行为。首先,它出现了期望的结果,它能够很容易的预测实体一方只有一个对应关系的元组的实体(也就是预测在关系1-多下预测头部,在多-1关系下预测尾部),也就是有多个实体指向它的时候。这些是有很好指向的例子。SME(双线性)被证明在处理这样的例子时时很精确的,因为这些例子是它们训练最多的样例。非结构化的方法在1-1关系上显示了良好的性能:这表明这样的关系的参数必须共享相同的隐藏类型,而非结构化的方法在嵌入空间上通过聚类把实体连接在一起能够发现这样的隐藏类型。但是这种策略在其它关系类型上是失败的。在嵌入空间增加翻译,通过其后的关系从一个实体聚类到另一个实体聚类。对这些指向性很好的例子这一点是非常惊人的。

下表给出了TransE在FB15k测试集上的样例预测。粗体是测试元组正确的尾部,斜体是训练集上其它正确的尾部。

举例说明 表5给出了TransE在FB15k测试集上的样例链接预测的结果。这举例说明了我们模型的能力。给定一个头部和一个标签,排在最高位的尾部被描述出来。这些样例来自FB15k的测试集。即使排在最高位的不总是最好的答案,但这个预测也反映了一般的常识。

2.4、用几个例子学习预测新关系

用FB15k,通过检查这些方法在学习新关系时的速度有多快来测试他们在泛化新的事实方面有多好。为了那个目的,我们随机选择40个关系并且分割成两个数据集:一个数据集(命名为FB15k-40rel)包含所有40个元组,另一个数据集(FB15k-rest)包含剩余的数据。我们确保它们包含所有的实体。FB15k-rest被分割成一个包含353,788个元组的训练集和一个包含53,266个元组的验证集。FB15-rel分成40,000元组的训练集和45,159的测试集。利用这些数据集,我们分析如下实验:(1)利用FB15k-rest的训练集和验证集训练和选择最好的模型,(2)随后在FB15k-40rel的训练集上训练并且只学习和新的40个关系相关的参数,(3)在FB15k-40rel的测试集(只包含(1)期间没有见过的关系)上进行连接预测评估。在(2)阶段,对每个关系我们用0,10,100和1000个样例重复这个过程。

图1展示了非结构化方法,SE,SME(线性),SME(双线性)和TransE的结果。但不提供已知关系时,非结构化方法取得的性能最好,因为它并不使用这些信息去预测。但是,当提供关系的例子时这种性能并没有得到提升。TransE是学习最快的方法:只有一个新关系的10个样子时,它的hits@10仍然有18%,并且随着提供样例的增加这个数据单调递增。我们相信TransE模型的简单性使它能够有较好的泛化能力,而不必修改任何已经训练好的嵌入。

3、总结

transE效果很好且非常简单,后续大量的工作都是在此基础上的改进(简称trans大礼包),传统方法已经基本不用了(有些思想还是值得借鉴的,比如矩阵分解、双线性模型)。改进大体针对以下几个问题:

  • 复杂关系建模效果差。对1-N,N-1,N-N关系,会出现冲突映射,一个实体在不同三元组内的表示融合,导致不明确甚至错误的语义信息。
  • 多源信息融合。 如何充分利用知识库中的额外信息(如实体类型、实体描述)。
  • 关系路径建模。 对relation之间的依赖进行建模。

TransE:Translating Embedding多元关系数据嵌入(知识图谱嵌入)2013 NIPS相关推荐

  1. 论文浅尝 | PairRE: 通过成对的关系向量实现知识图谱嵌入

    笔记整理:黎洲波,浙江大学硕士,研究方向为自然语言处理.知识图谱. 研究背景 知识图谱因其在问答.语义解析和命名实体消歧等任务取得了良好的效果而受到广泛关注,而大部分知识图谱都存在不全和缺失实体链接的 ...

  2. Ampligraph——基于tensorflow的python库,可用于知识图谱嵌入和链接预测

    目录 一.AmpliGraph 1.介绍 2.特点 3.模块 4.安装AmpliGraph 二.API接口 1.数据 2.模型 3.评估 4.发现 5.其他实用函数 三.实例代码 1.训练和评估嵌入模 ...

  3. ACL 2020 | 用于链接预测的开放知识图谱嵌入

    ©PaperWeekly 原创 · 作者|舒意恒 学校|南京大学硕士生 研究方向|知识图谱 当前大量的知识图谱都是通过文本直接构建的.由于当前的知识图谱构建方法的局限性,其中难免包含对同一实体或关系的 ...

  4. 论文浅尝 - ACL2020 | 用于链接预测的开放知识图谱嵌入

    本文转载自公众号:PaperWeekly. 作者:舒意恒,南京大学硕士,研究方向:知识图谱. 当前大量的知识图谱都是通过文本直接构建的.由于当前的知识图谱构建方法的局限性,其中难免包含对同一实体或关系 ...

  5. Translating Embeddings for Modeling Multi-relational Data 论文翻译:多元关系数据嵌入

    摘要 1简介 2transE模型 3相关工作 4实验 1数据集 2实验设置 3链接预测 4用几个例子学习预测新关系 5总结和展望 摘要: 考虑多元关系数据得实体和关系在低维向量空间的嵌入问题.我们的目 ...

  6. 知识图谱嵌入的Translate模型汇总(TransE,TransH,TransR,TransD)

    点击上方"AI公园",关注公众号,选择加"星标"或"置顶" 作者:Xu LIANG 编译:ronghuaiyang 导读 一文打尽图嵌入Tr ...

  7. 知识图谱嵌入的Translate模型汇总(TransE,TransH,TransR,TransD

    一文打尽图嵌入Translate模型,各种模型的动机,优缺点分析. 本文对知识图谱嵌入/知识表示的转换模型进行了简要的总结.你可以从TensorFlow-TransX中找到开源的TensorFlow代 ...

  8. TransE,知识图谱嵌入(KGE)源码阅读(一)

    TransE,知识图谱嵌入(KGE)源码阅读(一) Paper: Antoine Bordes等人在2013年发表于NIPS上的文章 Paper Understanding:TransE,知识图谱嵌入 ...

  9. 知识图谱嵌入模型之TransE算法

    知识图谱嵌入 知识图谱是一个三元组组成的集合,将头尾实体通过关系连接成一个图,而知识图谱存在一个问题,就是离散的图结构是不能够进行语义计算的,为帮助计算机对知识进行计算,解决数据稀疏性,可以将知识图谱 ...

最新文章

  1. 测试总监7天整理的那些高频而真实的软件测试面试题,速来get
  2. python做一个考试系统_请用 Python 语言编写一个简易的系统登录程序。
  3. 2021年度值得学习的100个案例榜单
  4. tensorflow学习笔记(三十二):conv2d_transpose (解卷积)
  5. adb server version(31) doesnt match this client(41)
  6. vue-router 快速入门
  7. java 精选选择题_Java生产率提示:社区精选
  8. AI助手智商测评Siri进步最大,无人驾驶打车服务已在美国试行
  9. DirectX9 ShadowMap例子学习笔记
  10. python decimal.quantize()参数rounding的各参数解释与行为
  11. 算法(2)计算出101-200之间的素数
  12. 苹果手机没声音了显示耳机模式_Airpods Pro 安卓苹果双机体验
  13. 软件工程笔记四__实体联系图(ER图)
  14. 怎么把mov转换为mp4?
  15. 草料二维码-免费的二维码生成工具
  16. oracle查询访问记录,oracle 访问 记录
  17. 【PBL项目实战】户外智慧农场项目实战系列——1.阿里云物联网平台的开通与云端可视化应用的新建
  18. 联想微型计算机m910q6,一台比较完美的黑苹果小主机 联想M910Q折腾记 opencore EFI分享...
  19. 嵌入式系统硬件构成-嵌入式系统硬件体系结构
  20. java 模拟登录58同城,Java项目实战之同城信息网站(类似58同城)开发

热门文章

  1. 陕西卫视《关中男人》观后感--女人之后是男人?
  2. 在使用 Elasticsearch 时要注意什么?
  3. BufferedInputStream的read()方法源码解析
  4. Android中Adapter的notifyDataSetInvalidated()和notifyDataSetChanged()的区别
  5. 框架源码专题:Spring的事件监听、发布机制 ApplicationListener
  6. 机器学习预测信贷风险
  7. 快速理解设计模式六大原则
  8. Eclipse离线安装Java Decompiler插件
  9. 那些用Go实现的分布式事务框架之DTM
  10. 学会用Go解析复杂JSON的思路