知识图谱中的embedding:entity prediction、link prediction(TransE&RTransE)

博文原地址:知识图谱中的embedding:entity prediction、link prediction,现在搬到CSDN上

欢迎关注我的公众号,微信搜 algorithm_Tian 或者扫下面的二维码~

现在保持每周更新的频率,内容都是机器学习相关内容和读一些论文的笔记,欢迎一起讨论学习~

知识图谱中的embedding:entity prediction、link prediction(TransE&RTransE)


embedding系列真的是很多呀~今天又是另一个与embedding相关的领域:知识图谱。

知识图谱是什么呢?

它是一种特殊网络,其中每个节点代表现实世界中的实体,而节点间的边表示实体之间的关系。知识图谱一般用三元组形式表示,每个三元组包括一个头实体、一个尾实体以及它们之间的关系

知识图谱中的embedding:entity prediction、link prediction(TransE&RTransE)

目前世界上有两种代表性的知识图谱,一个是语言知识图谱WordNet,包含了英语中词与词之间的同义、反义、上下位等关系,Wordnet是自然语言处理常用的语言知识库。

另外一种知识图谱Freebace是世界知识图谱,包含了现实世界中人、地点、机构等实体以及它们之间的关系。

知识图谱中的embedding:entity prediction、link prediction(TransE&RTransE)

好啦,那我们了解了知识图谱是什么,现在就介绍一个知识图谱中非常基础的TransE的prediction方法,可以通过它来预测一个实体与一个关系作用后最可能是什么。


1. entity prediction: TransE

Bordes A, Usunier N, Garcia-Duran A, et al. Translating Embeddings for Modeling Multi-relational Data[C] International Conference on Neural Information Processing Systems. Curran Associates Inc. 2013:2787-2795.

Entity Prediction(实体预测)。就是说,如果给出一个head entity,再给一个relation,那么可以利用刚才学到的向量表示,去预测它的tail entity可能是什么。思想非常简单,直接把h + r,然后去找跟h + r向量最相近的tail向量就可以了。

现在主要介绍知识表示学习的一个最简单也是最有效的方案,叫TransE。在这个模型中,每个实体和关系都表示成低维向量。那么如何怎么学习这些低维向量呢?我们需要设计一个学习目标,这个目标就是,给定任何一个三元组,我们都将中间的relation看成是从head到tail的一个翻译过程,也就是说把head的向量加上relation的向量,要让它尽可能地等于tail向量。在学习过程中,通过不断调整、更新实体和关系向量的取值,使这些等式尽可能实现。

那么这个想法是怎么来的呢?这就要提到之前的博文中讲过的Mikolov等人在2013年提出的word2vec词表示学习模型,他们发现词向量空间存在着平移不变现象,如

知识图谱中的embedding:entity prediction、link prediction(TransE&RTransE)

TransE的算法流程如下图所示:

知识图谱中的embedding:entity prediction、link prediction(TransE&RTransE)

各个参数的意义为:

知识图谱中的embedding:entity prediction、link prediction(TransE&RTransE)

流程中,首先初始化,然后选取要训练的batch(一直到endfor其实都是在取训练数据)。

然后最小化目标函数L,d是距离,γgamma是一个margin(类似SVM中的margin的作用)。

知识图谱中的embedding:entity prediction、link prediction(TransE&RTransE)

 

知识图谱中的embedding:entity prediction、link prediction(TransE&RTransE)

知识图谱中的embedding:entity prediction、link prediction(TransE&RTransE)

目标就是正例的h+l和t之间的距离尽可能小,负例的头+关系与尾之间的距离尽可能大。

通过梯度下降对embeddings进行更新。


2.link prediction: RTransE

García-Durán A, Bordes A, Usunier N. Composing Relationships with Translations[J]. 2015.

RTransE可以理解为是对entity或者说word的链式表示:

知识图谱中的embedding:entity prediction、link prediction(TransE&RTransE)

知识图谱中的embedding:entity prediction、link prediction(TransE&RTransE)

也就是说,对于两个三元组(h, l, t),(t, l’, t’)(第一个的头是第二个的尾,链式), 在embedding空间中我们应该有这样的关系: h+l+l’=t’ 。目标函数就可以写为:

知识图谱中的embedding:entity prediction、link prediction(TransE&RTransE)

知识图谱中的embedding:entity prediction、link prediction(TransE&RTransE)

其中,加号右边三项是三个正则项。比TransE多出来的就是这三个正则。

第一项是事实三元组距离的正则

第二项是创建出来的四元组的距离的正则,N是所有通过(h,l,t)创建了出来的(l1,l2)的四元组的路径总数

最后一项是每个entity(也就是要学的head和tail)的embedding。其中的距离公式如下:

知识图谱中的embedding:entity prediction、link prediction(TransE&RTransE)

知识图谱中的embedding:entity prediction、link prediction(TransE&RTransE)


OK,博主终于把之前看过的一些embedding的知识写的差不多啦。

今天的内容写的比较简略,依旧参考了很多大牛的博文,有什么写的不清楚的地方或者可以改进的地方期待各种建议和交流哦~

最后再来一波~

欢迎关注我的公众号,微信搜 algorithm_Tian 或者扫下面的二维码~

现在保持每周更新的频率,内容都是机器学习相关内容和读一些论文的笔记,欢迎一起讨论学习~

知识图谱中的embedding:entity prediction、link prediction(TransE&RTransE)

上一篇:如何使用POI从excel导出嵌入文件?


下一篇:论文笔记:Neural Graph Collaborative Filtering(SIGIR 2019)