TransE,知识图谱嵌入(KGE)论文精读
作者:互联网
TansE
写作目的:
在学习论文时,参考查阅许多博客,我认为大多在照搬原文翻译中的话,另外,按此顺序的写作手法,对于我或其他读者仍旧晦涩难懂,甚至这些博客中出现很多错误的理解,我想以更偏Chinese的表达和直观的图示来讲明自己的理解,同时做好记录,方便日后的查阅,也分享出来,共同学习,个人能力极其有限,因为加入许多主观理解,本文可能会有出错的地方,因此不完全代表原论文中作者的意思,诚恳希望大家在评论区纠错指正和补充完善,万分感激!
本文相关:
1.机器学习中正则化项L1和L2的直观理解
2.论文笔记(一):TransE论文详解及代码复现
3.如何理解随机梯度下降(stochastic gradient descent,SGD)
4.batch GD, mini-batch GD, SGD的理解
5.机器学习:SVM(目标函数推导:Hard Margin SVM、Soft Margin SVM)
6.基于TransE的表示学习方法研究综述
资源下载:
TransE: Translating Embedding,将实体与关系(KG)嵌入到低维向量空间中,并对向量空间中的三元组(h,r,l)进行操作,把关系 r 视为“翻译”来进行建模的知识表示方法
Motivation: 处理在低维向量空间中嵌入的实体和多关系数据的关系的问题【知识图谱是其中的重要的研究对象】
Advantage: 相比之前存在的诸多三元组的训练表示方法,更易于训练,且包含较少的参数,可以扩展到非常大的数据库,并且,在现实世界中存在的知识图谱上的链接预测方面可以显著优于最先进的方法
Paper: Antoine Bordes等人2013年发表在NIPS上的文章
一. TransE 向量空间假设
TransE 对三元组(h,r,t)中的实体和关系映射到向量空间作了一些假设:
每一个三元组(h,r,t)都能表示为(h,r,t),其中,h是指头实体的向量表示,r是指关系的向量表示,t是指尾实体的向量表示
通过不断调整来构建三元组(其中三元组的实体和关系都来自源知识图谱),来发现向量空间中,头实体向量 h加上关系 r等于尾实体向量 t的三元组,这个过程称为翻译,如果在向量空间这种关系成立,就说明三元组(h,r,t)所代表的知识表示可以看作是正确的,以此来发现实体间新的关系,如下图所示:
用我自己的理解,TransE带来的改变有两层含义:
① 通过词向量表示知识图谱中已存在的三元组(所以TansE可以看作知识表示方法)
② 扩大知识图谱中的关系网,扩充构建多元关系数据。其中,关系数据包括单一关系数据(single-relational data)和多元关系数据(multi-relational data)(单一关系通常是结构化的,可以直接进行简单的推理,多元关系则依赖于多种类型的实体和关系,因此需要一种通用的方法能够同时考虑异构关系)(所以TansE可以看作“活的”或“更高级的”的知识表示方法,因为可以做知识图谱上的链接预测,或作为媒介完善知识图谱)
原文设置:
论文中的训练:Given a training set S of triplets (h, l, t)
composed of two entities h, t ∈ E (the set of entities) and a relationship l ∈ L (the set of relationships)
训练集中头实体向量和尾实体向量都来源于原知识图谱中的实体集,l来自于知识图谱现有的关系集
TansE使用的训练集使用的是知识图谱中的实体集和关系集进行构造:
知识图谱(KG)中现存的关系构成关系集,实体构成实体集,我们抽取两个集合来构造三元组,让知识图谱(KG)中的成对的实体与每个关系做向量的运算,如果近似达到要求,就连接两个实体来补充完善知识图谱,从而挖掘并发现实体间的多元关系,扩大知识图谱实体间的关系网,同时也可用作链接预测
二. TransE 原理分析
我们接着对上面提到的两层含义的具体实施进行分析:
① 对知识图谱中的现有关系进行表示
按照自己理解画图如下:
② 分析TansE的算法原理
把算法伪代码放在了最后,从头到尾分析设计流程,再去看就容易理解很多
在知识图谱的实体向量集中,随机取得头实体向量 或 尾实体向量并对初始三元组的对应向量进行替换(一次替换一个,另一种设计方案,替换关系 r ,也可以,原理一样),得到若干三元组d ( h’ + r,t’ ),构成训练集进行训练。损失函数 L 在后边介绍(此处先不过多关注)
因为要划分出两类样本,即使正样本三元组和负样本三元组,我按照自己理解进行介绍,写的有些啰嗦:
正样本三元组: 翻译关系成立的三元组称为正样本三元组(KG中原本存在的关系一定满足,另外,新构建的三元组一部分也满足翻译关系),这些样本从某种程度可以看作一类样本,可用于完善知识图谱或做链接预测表明两个实体存在这种关系。
负样本三元组: 通过替换KG中现有的三元组中的头实体向量或尾实体向量构建的样本,在这些三元组样本中,部分样本的翻译关系是不成立的,表明三元组中两个实体不存在这种关系,对应的三元组称为负样本三元组,这是另一类样本。
有个细节,头尾实体向量在一个集合中,我在①中画的矩阵那张图和此案例也表达有这样的含义。这是因为 h + r 和 r + h 是等价的,所以头实体和尾实体向量都在一个集合,即实体向量集合中。如果 h + r ≈ t 代表 h 和 t 有这样的关系,比如父子关系,但对于谁父谁子并没有体现,作者提到知识图谱中可能没有箭头指向,更多关注这种存在的关系,我是这样理解的。
基于翻译的模型的设计与分析:
得分函数的设计 :
注:d ( h + r,t ) = || h + r - t ||,距离公式 d ( h + r,t ) 可以取 L1 或 L2 范数,论文中的设置是 d ( h + r,t ) = || h + r - t ||( L1 / L2 可自行选择 ) = f (h,r,t),这是个小细节,我们可以看到正样本三元组距离函数值几乎为 0,负样本三元组的距离函数值较大,经过 L1 或 L2正则化确定最终的得分函数值,正则化后的值最终用于损失函数(这样可以避免训练出现过拟合),通过梯度下降更新参数(正样本的d越来越小,负样本的d原来越大),直至模型收敛,使得损失函数值最小,从而达到理想的精度。
对 L1 或 L2正则化有疑惑可以参考文首的本文相关和资源下载对应内容,以下是回忆旧知,以平方误差函数作为损失函数,分别加入L1正则项和L2正则项举例,目标是让损失函数最小,同时使得最终训练的模型避免过拟合现象,关键原理如下:
同理可得,对 r 和 t 的梯度
参数更新:
使用 minibatch SGD,如下图所示,可以参考文首链接的博客写的比较细,点进去查漏补缺,此处不进行赘述了…
损失函数更新的参数,是所有entities和relations的Embedding数据,包括h、r、t,每一次SGD更新的参数就是一个Batch中所有embedding的值,总参数是最初我们画的那俩矩阵的所有元素的个数之和
损失函数的设计:
公式理解:
[x]+ 指的是 max (0 , x)
γ 指的是损失函数中的间隔,γ > 0,这个参数按论文,写的模糊,看其他博客,各有各的理解法,我写下自己的理解:
类似于Soft Margin SVM,下图摘自一篇博客的讲解,链接放在文首了,我把重点截图放下边:
首先,我们可以观察哪个分类边界更好,如何去取舍某些样本点?
我对 γ 的理解: 最终使得最相近的正负样本三元组的样本距离最大化
容错机制
要求 h + r ≈ t 其实是一种理想状态,比如学校对学生的成绩期望是80分以上,难免有能力强的学生,失误没达到标准,我们认为这种机制太严格了,于是设定60分为合格,容错区间长度达到20,这没话说了,即使你考试失误,能失误到20分,把你挂科也不亏(比如你有90分的专业水平,我们放宽给了20分的允许失误的范围(容错范围),60-80就算过,可是你却考出了50分的水平,把你分为差生,你也别怪谁,这个机制已经很宽容了。比如你有50分的专业水平,但你考到70分,你在60这个及格边界构建的容错范围内,恭喜你,不把你当差生看待)。这样区分课程考核是否合格的机制较为人性化,也具有普适性。
主观理解,不严谨的地方,恳请评论区指正…
Soft Margin SVM要表达的意思,即使有些样本现实中明明是A类,但在B类的容错范围内,为了整体模型的泛化性能,仍然将其划分为B类
这种设计具有合理性,比如,人们见到金典两字时会想到它是牛奶的品牌,可是确实有小伙伴的名字叫金典,当你认识到这个事实时,是否会加大它在你脑海中的印象,下次见到金典两字时,也理直气壮的说金典是人的名字?当然不会,我们会自动忽略这样的小概率事件,再次见到金典两字时,依旧认为金典是牛奶品牌。当然你会更理性,说金典也有概率是人的名字,可对于机器而言,它没有感性认识,只有理性的错觉,当下,大数据等技术为人工智能发展提供了丰富的数据资源,协助训练出更加智能化的算法模型,大量的算法都是基于概率的,训练集中存在“金典是人名”这样的现实世界中真实存在的数据时(当然很少),机器在大数据中学习到的模型在真正遇到金典本人时依然大概率判断错误,不仅如此,在遇到金典牛奶品牌时,有极小概率也判断错误,这脱离了或超出了机器本身是机器的界限…我们只能尽可能完善判别机制,而不可能达到完全的准确,正如没有绝对的100%,因此我们不为难机器了,我们设定容错范围来解决这个问题,对训练集中关于“金典(真实label:人名)”的数据,如果这条数据在“金典(真实label:牛奶品牌)”的分类边界构建的容错范围内,认为“金典是牛奶品牌”,【对训练集中关于“金典(真实label:牛奶品牌)①”的数据,如果这条数据在“金典(真实label:牛奶品牌) ②”的分类边界构建的容错范围内,认为“金典是牛奶品牌 ①”, 说明:① 虽然在整体数据分布的最外侧,但不构成分类边界,分类边界 ② 是经过多次训练得到的最佳支持向量所在直线,可以和异类进行最大的间隔划分】,这样,模型具有普适性(更好的泛化性能和判断精度),为此需要进行模型参数的调整…
个人认为 γ 是一种容错机制,下边我结合课程考核成绩与绩点的对应关系来介绍:
与之类似,来理解本论文中 γ 的含义
比如原三元组的 d ( h + r,t ), 经正则化后为85分,关系 r 代表绩点3.7以上
① 替换头实体或尾实体向量后的d ( h’ + r,t’ ),经正则化后为95分,那么此三元组是否具备关系r呢
两式差值为-10,γ 的设置在(1,10)区间,不用太多修正,最后三个式子加起来为负数, max (负数 , x)作用后为0,即损失 L 为0
这说明很容易判定你是绩点为3.7以上的学生,模型一般不会出错
② 替换头实体或尾实体向量后的d ( h’ + r,t’ ),经正则化后为87分,那么此三元组是否具备关系 r 呢
两式差值为-2,85是个界,这已经说明被分类的三元组在临界区域中了
γ 具体设置,按照我的理解:
- 如果 γ 太小,损失值接近于0,说明在临界区域,即使分类错误的样本损失值也几乎可以忽略,代表容错空间相对更大,这是我们期望的,也是合理的
- 如果 γ 太大,损失值大,说明在临界区域,三元组分类正确或是错误的都不会被原谅,代表容错空间相对苛刻,这显然会降低泛化性能
TransE 通过不断训练、算法的优化,可以使损失函数 L 达到最小值
三. 实验部分
数据集:WordNet 和 FreeBase
评估:
1.在测试集中,不断从实体向量集中【原知识图谱中正确的三元组】替换头实体向量,我们可以通过损失函数的大小来判断新构建的三元组关系成立的可能性,给替换后的三元组的打分并升序排列,并保存可使得三元组关系成立的实体的得分。替换尾实体向量也是这个原理。
2.预测得分的平均值和和排在前10位的三元组中,关系成立的三元组的占比。
3.移除所有的训练集和验证集或者测试集中不成立的三元组,保证它们不属于数据集。
这相当于对头实体向量和尾实体向量做了预测,实验结果如图所示:
Baselines就不多介绍了,因为TransE的提出已有近十年的时间,之前的知识表示模型更早,研究价值相对较小
如果有兴趣了解,可以点击进入论文或了解TansE之前的研究现状
按照元组中关系的类型,将测试集的按结果分类更细,或者将关系细化(都可以,怎么说都行),作者展示了结果:
我针对尾实体预测中的1-TO-M,按自己理解写了一个例子:
作者给出的例子:
在划分好的测试集中验证泛化性能,左边是输入头实体和关系向量【来自于知识图谱中对应的向量或矩阵表示】,右侧的尾实体向量是在训练集中按照排名规则,最有可能是真实的一些尾实体(top 10)。加粗的尾实体是测试集中与头实体和关系向量真正对应或者真实的尾实体,由此可验证模型的质量如何。
在少量样本中,给定头实体向量和关系,预测尾实体向量,左图表示测试集的平均排名情况(Loss),右图表示测试集Hits@top10中正确的比例(Accuracy)。可以发现当训练集越大,测试集中TransE的平均排名(或者说预测的平均损失值)下降的最快,右图表明,TansE模型的学习速度很快,在只有10个新关系的例子中,hits@10已经是达到约18%,并且随着训练集中提供的样本数量的增加,效果改善明显。
TansE 的实验设置:
不多介绍了,这里直接看论文直观,实验中可以灵活调整:
再来看整个算法,就相对清晰多了:
四. TransE 方法的优缺点
优点
① 解决多关系数据的处理问题,是一种简单高效的KG表示学习方法
② 能够完成多种关系的链接预测任务,能够自动且很好地捕捉推理特征
③ 适合在大规模复杂的KG上推广,是一种有效的KG推理手段
缺点
表达能力不足,不能够有效充分的捕捉实体对间语义关系,无法有效处理一对多、多对一、多对多的关系以及自反关系。
处理图像信息效果差、负样本三元组的质量低、嵌入模型不能快速收敛、泛化能力差、边缘识别能力…
五. TransE的变体
TransE是知识图谱的向量化表示的基础,衍生出来了很多变体:
1、TransH,AAAI2014,Knowledge graph embedding by translating on hyperplanes。
2、TransD,ACL2015,Knowledge graph embedding via dynamic mapping matrix。
3、TransA,arXiv2015,An adaptive approach for knowledge graph embedding。
4、TransG,arxiv2015,A Generative Mixture Model for Knowledge Graph Embedding)
5、KG2E,CIKM2015,Learning to represent knowledge graphs with gaussian embedding。
6、TranSparse,AAAI2016,Knowledge graph completion with adaptive sparse transfer matrix。
写到这里吧…
自我批评:
- 能力有限,部分内容,可能理解并不到位,另外,表述上或逻辑上还有很多不足,或许大家看的不是很懂?是我的错没跑了,诚恳道歉…
- 补救起见,可以在评论区多提问题,我会及时关注和回复,修改完善对本篇论文的理解,希望大家多提建议,多批评,多交流…
标签:关系,精读,图谱,实体,三元组,KGE,样本,TransE,向量 来源: https://blog.csdn.net/qq_40506723/article/details/122223457