综述 | 知识图谱向量化表示

本文作者:窦洪健,2016级研究生,目前研究方向为推荐系统、文本生成,来自中国人民大学大数据管理与分析方法研究北京市重点实验室。

本文收录于RUC AI Box专栏,为该专栏特供稿件(https://zhuanlan.zhihu.com/RucAIBox)。



前言:知识图谱主要的目标是用来描述真实世界中间存在的各种实体和概念,以及它们之间的关联关系。知识图谱常被应用于以下几个方面:(1)搜索(2)聊天机器人和问答系统。近年来一部分学者尝试将知识图谱引入到推荐系统中,并且取得了不错的结果。本文选择了八篇知识图谱向量表示的论文进行介绍。


《Translating embeddings for modeling multi-relational data》

Bordes A, Usunier N, Weston J, et al. NIPS. 2013.


一、写作动机


之前像single layer model以及NTN等传统方法,存在着训练复杂和不易拓展等问题。本文提出了一种将实体与关系嵌入到低维向量空间中的简单模型TransE。该模型已经成为了知识图谱向量化表示的baseline,并衍生出不同的变体。

二、模型



目标函数算法流程



正如目标函数所述,算法核心是令正例的h+r-l趋近于0,而负例的h+r-l趋近于无穷大,这里的d表示L1或L2范式, \gamma 表示边际距离。整个TransE模型的训练过程比较简单,首先对头尾节点以及关系进行初始化,然后每对一个正例取一个负例样本(本文负例选取方式为固定中间的relation,头尾节点任意替换一个),然后利用hinge loss function尽可能使正例和负例分开,最后采用SGD方法更新参数。



《Knowledge Graph Embedding by Translating on Hyperplanes》

Wang Z, Zhang J, Feng J, et al. AAAI. 2014.


一、写作动机


虽然TransE模型具有训练速度快、易于实现等优点,但是它不能够解决多对一和一对多关系的问题。以多对一关系为例,固定r和t,TransE模型为了满足三角闭包关系,训练出来的头节点的向量会很相似。而本文提出一种将头尾节点映射到关系平面的TransH模型,能够很好地解决这一问题。以下图为例,对于多对一关系,TransH不在严格要求h+r-l=0,而是只需要保证头结点和尾节点在关系平面上的投影在一条直线上即可,因此能够得到图中头结点向量(红线)正确的表示。


二、模型


本文的模型其实比较简单,首先通过上述公式1分别将head和tail节点映射到关系r所对应的平面,之后整个训练方式同TransE一致。虽然TransH比TransE增加了一步向量转换,但其实整体参数只增加了 \omega_r 一项,整体的算法效率还是很高的。


此外,不同于TransE模型随机替换head和tail节点作为负例的方法,本文分别赋给头结点和尾节点一个采样概率,具体计算公式计算如下:

即对于多对一的关系,替换尾节点,对于一对多的关系,替换头节点。


《Learning Entity and Relation Embeddings for Knowledge Graph Completion》

Lin Y, Liu Z, Zhu X, et al. AAAI. 2015.


一、写作动机


TransE和TransH都假设实体和关系嵌入在相同的空间中。然而,一个实体是多种属性的综合体,不同关系对应实体的不同属性,即头尾节点和关系可能不在一个向量空间中。为了解决这个问题,本文提出了一种新的方法TransR。

二、模型


TransR的基本思想如上图所示。对于每个元组(h,r,t),首先将实体空间内的实体通过 M_r 矩阵投影到关系r所在的空间内,得到 h_r 和 t_r, 然后使得 h_r+t \approx t_r。特定的关系投影(彩色的圆圈表示)能够使得头/尾实体在这个关系下靠近彼此,使得不具有此关系(彩色的三角形表示)的实体彼此远离。


此外,仅仅通过单个的关系向量还不足以建立从头实体到尾实体的所有转移,即对于同一条关系r来讲,r具有多种语义上的表示。本文提出对不同的头尾实体进行聚类和并且学习到关系在不同聚类簇的表示。作者这里首先利用TransE预训练(h,r,t)三元组,并且对t-h(也就是关系r)进行聚类,这样对于关系r来讲,头尾节点会被分到相应的簇中,并且利用下面的公式进行训练,该方法也被称为CTransR。


《Knowledge graph embedding via dynamic mapping matrix》

Ji G, He S, Xu L, et al. ACL.


一、写作动机


之前的TransE、TransH和TransR都认为每种关系只对应一种语义表示,而在实际情况中,关系r可能代表不同的含义。如下图所示,对于关系location来讲,它既可以表示山脉-国家之间的关系,又可以表示为地区-国家之间的关系,因此本文提出一种基于动态矩阵的TransD模型来解决这一问题。


二、模型


TransD模型同CTransR模型一样,都是为了解决关系的多种语义表示。相比较CTransR采用聚类的方式,TransD提出一种动态变化矩阵的方法。具体公式如下图所示:

对于(h',r',t')两个实体和一种关系来讲,它们分别有两种表示,一种是构建映射矩阵的表示(h_p,r_p,t_p),另外一种是自身的语义表示(h,r,t)。h和t的动态转移矩阵分别由其自身的映射矩阵和关系r的映射矩阵所决定,而不是像TransR一样映射矩阵只和关系r相关。


此外,该模型的一个亮点在于它将TransR的矩阵运算转换成了向量间的运算,运算速度会大幅提升,具体公式如下:


《TransA:An Adaptive Approach for Knowledge Graph Embedding》

Xiao H, Huang M, Hao Y, et al. Computer Science. 2015.


一、写作动机


TransE从根本上讲是一种欧式距离的计算,其图形对应的是一个圆,从下图可知蓝色部分为正例,红色部分为负例,TransE模型划分错了七个点。而本文提出了一种基于马氏距离的TransA模型,其PCA降维图形对应的是一个椭圆,该模型只分错了三个点。此外,之前的方法将等价对待向量中的每一维,但实际上各个维度的重要性是不同的,只有一些维度是有效的,而某些维度被认为是噪音,会降低效果。如下图2所示,对于关系haspart而言,TransE模型根据欧氏距离计算方法生成了像Room-has-Goniff这样的三元组,而正确的结果却是Room-has-Wall。我们对x,y轴进行分解,发现Room在x轴上距离Wall更为相近,因此我们可以认为该图在x轴维度上更加重要。TransA模型通过引入加权矩阵,赋给每一维度权重。


二、模型


其实TransA模型总体来看比较简单,相比较TransE模型,本文引入了 W_r 矩阵为不同维度的向量进行加权,并利用LDL方法对 W_r 进行分解,D_r 是一个对角阵,对角线上的元素表示不同维度上的权重。本篇文章的一个亮点在于通过图像来描述不同的损失度量函数,给人直观的感觉。



《TransG : A Generative Mixture Model for Knowledge Graph Embedding》

Xiao H, Huang M, Zhu X. TransG. ACL. 2016.


一、写作动机


本文提出的TransG模型同CTransR、TransD一致,都是为了解决关系的多种语义表达问题。作者首先做了一个比较有意思的实验,首先对预训练好的t-h进行聚类(也就是关系r),发现对于每种关系r来讲,会得到不同的簇。从现实意义来看也不难理解,对于关系Country,我们可以聚类得到美国、欧洲和其他国家这三个簇,表示电影所属的不同国家。


二、模型


TransG利用贝叶斯非参数混合模型对一个关系生成多个表示,其实TransG的本质同CTransR一致,都是利用聚类方法生成r的不同种表示。不同点在于CTransR利用预训练的TransE向量进行聚类,而TransG采用边训练边聚类的方法。具体公式如下:

M表示聚类的数目, \pi_{r,m} 表示关系r的第m中表示的权重。


《Knowledge Graph Completion with Adaptive Sparse Transfer Matrix》

Ji G, Liu K, He S, et al. AAAI. 2016.


一、写作动机


knowledge graph中面临的两个主要问题,分别是heterogeneous(异构性)和unbalanced(不平衡性)。异构性表示知识图谱中关系所连接的节点数目差异较大,不平衡性表示关系所连接的头尾节点数目不同。如果只用一个模型处理所有关系的话可能会导致对简单关系过拟合,对复杂关系欠拟合。本文提出两种模型Transparse(share)和Transparse(separate)分别解决这两个问题。


二、模型


Transparse模型本质是TransR模型的扩展,区别在于对于那些复杂的关系令其转移矩阵稠密,而对于简单的关系令其转移矩阵稀疏。这个稀疏程度由 \theta_r 控制,具体计算公式如下:



\theta_{min} 表示0-1之间的一个控制变量,N_r 表示关系r连接实体对的数量,N_{r^*} 表示其中连接的最大值,同理 N_r^l 表示关系r连接的头\尾实体数,N_{r^*}^{l^*} 表示其中的最大值。share和separate的区别在于separate模型为head和tail提供了两种不同的转移矩阵,而share模型head和tail的转移矩阵相同,具体公式如下所述:


该篇文章的亮点在于针对知识图谱存在的异构性和不平衡性问题,作者分别提出两种不同的模型来解决,但缺陷是作者并没有将这两种模型进行融合,最后在triplet classification和link prediction上的结果并没有比TransD提升很多。


《Locally Adaptive Translation for Knowledge Graph Embedding》

Jia Y, Wang Y, Lin H, et al. AAAI, 2016.


一、写作动机


之前所有模型的margin都是固定不变的,但局部不同的margin是否能够提升模型的效果呢?作者为了证明,首先做了一组实验,将FB15K分成两个子集,在不同数据集上分别得到达到最优效果的margin,发现局部最优的margin不尽相同。从理论来讲,Margin变大,更多的数据被训练,容易导致过拟合。相反,margin越小,容易欠拟合。所以也证明了margin对最终结果的影响。


二、模型


本文将margin分为entity和relation两部分,并利用线性插值进行组合。实体部分的margin应保证内层圆包含更多的正例,外层圆的外部应尽可能是负例。对于relation部分,本文利用relation的长度,即L2范式来衡量相似度关系。具体公式如下图所示:

R_{h,r} 是除了关系r之外的所有关系的集合,它使得所有与关系r不相近的关系远离r。本篇文章比较巧妙地利用局部margin的方式,在link prediction和triple classification结果上有了明显提升。


最后用一张图表总结下这8篇论文的9种模型。


参考:

TransE算法(Translating Embedding): http://blog.csdn.net/u011274209/article/details/50991385


一周论文 | 基于翻译模型(Trans系列)的知识表示学习:http://www.sohu.com/a/116866488_465975




OpenKG.CN


中文开放知识图谱(简称OpenKG.CN)旨在促进中文知识图谱数据的开放与互联,促进知识图谱和语义技术的普及和广泛应用。

点击阅读原文,进入 OpenKG 博客。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/481022.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

强化学习扫盲贴:从Q-learning到DQN

本文转载自知乎专栏「机器学习笔记」,原文作者「余帅」,链接https://zhuanlan.zhihu.com/p/358829371 本文学习目标1. 复习Q-Learning;2. 理解什么是值函数近似(Function Approximation);3. 理解什么是DQN&…

肖仰华 | 基于知识图谱的可解释人工智能:机遇与挑战

本文转载自公众号知识工场,整理自 2017 年 10 月 13 日肖仰华教授在 CIIS2017 中国智能产业高峰论坛上所做的报告。 肖仰华:很高兴有机会跟大家一起分享《基于知识图谱的可解释人工智能:机遇与挑战》。 刚才刘总的报告中提到了机器和人类将来…

对话系统的设计艺术(完结)

Motivation对话是一个很大的概念,有非常非常多的子问题,刚入坑的小伙伴很可能迷失在对话的一小块区域里无法自拔,本文就是为解决这一类问题的。希望读者在看完本文后,可以理清楚对话的每个概念为什么而存在,以及它在整…

2018届校招面经精选

https://www.zhihu.com/question/23259302 牛客网​已认证的官方帐号819 人赞同了该回答最好的办法就是看看别人是怎么准备的,通过别人的面经来反思自己如何准备。针对应届生校招面试 “机器学习” 相关岗位的情况,牛妹为大家整理了一批面经&#xff0c…

白硕 | 知识图谱,就是场景的骨架和灵魂

本文转载自公众号恒生技术之眼 知识图谱,目前已在全世界得到了重视和应用,成为当下人工智能热的一个重要组成部分。它究竟是怎样的一种技术?它的应用场景在哪里?未来国内企业该如何发展?让我们一起来聊聊。 从知识图谱…

您的DST大礼包请查收

本文转载自刘冲大佬(知乎id:呜呜哈)的知乎文章,链接:https://zhuanlan.zhihu.com/p/40988001除本文外,作者还写了很多对话相关的良心好文!做对话的小伙伴千万不要错过这位良心答主噢(&#xffe…

LSTM长短记,长序依赖可追忆(深度学习入门系列之十四)

摘要:如果你是一名单身狗,不要伤心,或许是因为你的记忆太好了。有时,遗忘是件好事,它让你对琐碎之事不再斤斤计较。然而每当自己记不住单词而“问候亲人”时,也确实气死个人。于是你懂得了如何控制好什么信…

技术动态 | 清华大学开源OpenKE:知识表示学习平台

本文转载自公众号机器之心,选自 THUNLP。 清华大学自然语言处理实验室近日发布了 OpenKE 平台,整合了 TransE、TransH、TransR、TransD、RESCAL、DistMult、HolE、ComplEx 等算法的统一接口高效实…

多任务学习时转角遇到Bandit老虎机

注:本文的正文干货转载并少量修改自大佬覃含章(知乎id同名,知乎必关的数值优化大佬啊啊)的一篇知乎回答,链接https://www.zhihu.com/question/53381093/answer/562235053一个转角事情是这样的,最近小夕在做…

NLP13-LDA引发的一系活动

摘要: 目标是想了解也学习LDA,寻找学习LDA相关资料,学习LDA相关的概率基础,对于LSI,pLsa,LDA作为主题模型的对比;然后到LDA本身,对LDA相关的概率基础进行学习。把相关资料疏理与集合起来。

王昊奋 | 从聊天机器人到虚拟生命:AI技术的新机遇

本文转载自公众号中国人工智能学会。 10月12-13日,第七届中国智能产业高峰论坛在佛山开幕,在NLP与服务机器人专题论坛上,深圳狗尾草CTO王昊奋发表了主题为《从聊天机器人到虚拟生命:AI技术的新机遇》的精彩演讲。 以下是王昊奋老师…

【Java】如何理解Java中的异常机制?

1 异常的概念 程序在执行过程中出现非正常线性,导致JVM非正常停止异常不是语法错误 2 异常的分类 Throwable是所有错误或异常的超类Exception是编译期间异常(写代码时IDE会报错)RuntimeException时运行期异常,程序运行时出现的…

文本匹配相关方向总结(数据,场景,论文,开源工具)

Motivation 前不久小夕在知乎上写了一个回答《NLP有哪些独立研究方向》,于是有不少小伙伴来问分类和匹配的参考资料了,鉴于文本分类的资料已经超级多了,就不写啦(不过分类相关的tricks可以看之前写的这篇文章《文本分类重要tricks…

机器学习】LDA线性判别分析

【机器学习】LDA线性判别分析1. LDA的基本思想2. LDA求解方法3. 将LDA推广到多分类4. LDA算法流程5. LDA和PCA对比【附录1】瑞利商与广义瑞利商线性判别分析 (Linear Discriminant Analysis,LDA)是一种经典的线性学习方法,在二分类问题上因为最早由[Fish…

科普 | 动态本体简介

本文转载自知乎专栏知识图谱和智能问答。 1 近年来,随着语义Web的兴起,本体技术受到了广泛关注。很多大型跨国公司都开始研究本体技术。谷歌于2012年提出了知识图谱的项目,旨在利用本体技术来提高搜索的精度和更智能化的知识浏览。国内的互联…

文本匹配相关方向打卡点总结

Motivation前不久小夕在知乎上写了一个回答《NLP有哪些独立研究方向》[1],于是有不少小伙伴来问分类和匹配的参考资料了,鉴于文本分类的资料已经超级多了,就不写啦(不过分类相关的tricks可以看之前写的这篇文章《文本分类重要tric…

深入理解K-Means聚类算法

版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不得转载。 https://blog.csdn.net/taoyanqi8932/article/details/53727841 </div><link rel"stylesheet" href"https://csdnimg.cn/release/phoenix/template/css/ck_htmledit…

刘挺 | 从知识图谱到事理图谱

本文转载自 AI科技评论。 在“知识图谱预见社交媒体”的技术分论坛上&#xff0c;哈尔滨工业大学刘挺教授做了题为“从知识图谱到事理图谱”的精彩报告。会后AI科技评论征得刘挺教授的同意&#xff0c;回顾和整理了本次报告的精彩内容。 刘挺教授 刘挺教授的报告内容分为四部分…

我对JVM的理解

一、JVM简介 JVM总体上是由类装载子系统&#xff08;ClassLoader&#xff09;、运行时数据区、执行引擎、内存回收这四个部分组成。 其中我们最为关注的运行时数据区&#xff0c;也就是JVM的内存部分则是由方法区&#xff08;Method Area&#xff09;、JAVA堆&#xff0…

【LeetCode】4月4日打卡-Day20-接雨水

描述 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图&#xff0c;在这种情况下&#xff0c;可以接 6 个单位的雨水&#xff08;蓝色部分表示雨水&a…