知识图谱的表示学习(1)

1 背景

典型的网络包括用户关系网络,知识图谱。而知识图谱的表示学习将网络中的每个节点、关系都使用一个d维向量来表示。这d维向量通常隐含了节点在网络的位置信息。目前已经应用于:(1)链接补全,对知识图谱中的缺失关系进行补全;(2)链接分类,识别知识图谱中错误的链接;(3)关系抽取,从非结构化的文本中抽取关系。

网络表示学习的典型思路是:先构建一个关于节点、关系表示的目标函数(能量函数或者损失函数),然后使用SGD等优化算法进行优化。最典型的算法是TransE[1],从TranE算法中又延伸出来了众多其他的算法,包括:TransH[2]、TransR[3]、PTransE[4]、TransSparse[5]、TransD[6]。

清华大学公布了这些算法的代码:https://github.com/thunlp/KB2E

2 TransE

TransE的算法使用了一个简单的线性运算构建目标函数,但是实验效果表明,TransE比之前一些涉及大量矩阵运算、非线性函数的方法效果更好。
假设网络图中的边表示为三元组(h,r,t),其中h、r、t分别是起始节点、关系、末尾节点的向量表示。TransE的学习目标是使得,h+r\approx t。使用d(h+r,t)=|h+r-t|_p,这里p可以取1或者2,也就是使用L_1范数或者L_2范数来表示损失。

TransE目标函数为:

    \[L= \sum_{(h,r,t)\in S}\sum_{(h',r,t')\in S'}{[\gamma+d(h+r,t)-d(h'+r,t')]_+})\]

S’是通过对原来的三元组随机替换h或者t得到的噪声三元组。优化过程中采用了NCE(Noise Contrastive Estimation)思想,尽量使得噪声三元组的损失大于正确三元组的损失加上一个margin \gamma

为了防止训练过程通过增大实体表示的norm大小来减少损失函数,这里限制所有的向量模长为1。

3 TransH

TransE使用同一个向量来表示同一种关系,难以体现1对多、多对多、多对1的关系中的多样性。因此TransH将关系表示为超平面(hyperplane,比整体空间少一个维度的子空间,例如三维空间中的二维平面)上的一个向量。

具体的,对于的一个向量,

在超平面上,尽量使得。因此,损失函数设置为:

整体的目标函数为:

这里的优化方法与TransE相同,通过随机产生噪声三元组,并且优化目标设置为噪声三元组的损失函数大于正确三元组的损失函数加上一个margin。

为了保证关系的向量表示在一个超平面上,限定:(1) ,来保证学习到的向量模长不会太大;(2),保证正交性;(3)。

将这三个条件加入到目标函数中得到:

TransH中的噪声三元组不再是均匀采样的,而是使用一个伯努利分布决定是对h还是对r进行随机采样。对于一个关系r,假设tph为平均每个h对应的t的个数(number of tails per head),hpt表示平均每个t所对应的h的个数。在产生噪声三元组的时候,以tph/(tph+hpt)的概率替换h为一个随机采样的实体,以hpt/(tph+hpt)的概率替换t。

3 TransR

TransE和TransH将实体和关系都用同一个空间中的向量进行表示,TransR中实体和关系的表示位于两个空间。在计算损失函数的时候,先使用一个线性变化将实体的表示映射到关系表示空间,在计算损失函数。

具体地,每一个关系r都有相应的一个映射矩阵。损失函数为:

整体的目标函数为:

另外,论文中还提出了一个CTransR。每个关系r对应于多个向量和映射矩阵,从而保证表示多样化的关系。先对关系r所连接的实体对进行聚类,每个类别c对应于一个向量表示,损失函数为:

式子中前一项与普通的TransR相同,而后一项保证了类别c的向量表示与原始的关系向量表示不会相差太大。

4 PTransE

PTransE在学习向量表示的时候,不仅考虑了单独的关系,还考虑了路径信息。路径信息在某些情况下对于知识库的补全非常有用,例如从可以推测出关系。

假设一个三元组的损失函数为:

综合考虑三元组与路径的损失函数为:

其中,

这里Z是一个归一化函数,是一个信赖函数,使用path-constraint resource allocation(PCRA)算法进行计算。该算法采用一种随机游走的方式,对于路径集合,,首先对h节点赋予权重1,然后使用

进行不断迭代,获得t的权重。其中表示路径上的关系所连接的首端节点集合,而表示所连接的尾端节点集合。表示节点n分配到的权重。最后得到,。

路径的向量表示为路径上所有的关系的综合,可以是关系向量的和、乘积、RNN函数的输出。

最后,目标函数为:

其中,

与TransE、TransH不同,PTransE还通过随机选取r’替换r来得到噪声三元组,而TransE、TransH都只采样h’与t’。文章中还加入考虑了反向关系,不仅学习关系本身的向量表示,还学习反向关系的向量表示。

5总结

这些知识网络表示的方法,全部都使用了translation的思想,即h的向量表示通过与r的向量表示进行一个操作可以近似得到r的向量表示。相比TransE方法,后续的一些改进主要考虑了一对多、多对一以及多对多关系、路径信息。在链接预测、链接分类、关系抽取任务上有所提升。

参考文献

[1] Bordes, Antoine, et al. “Translating embeddings for modeling multi-relational data.” Advances in neural information processing systems. 2013.

[2]?Wang, Zhen, et al. “Knowledge Graph Embedding by Translating on Hyperplanes.”?AAAI. 2014.

[3] Lin, Yankai, et al. “Learning Entity and Relation Embeddings for Knowledge Graph Completion.”?AAAI. 2015.

[4] Lin, Yankai, et al. “Modeling relation paths for representation learning of knowledge bases.”?arXiv preprint arXiv:1506.00379?(2015).

[5] Ji, Guoliang, et al. “Knowledge Graph Embedding via Dynamic Mapping Matrix.”?ACL . 2015.

[6] Ji, Guoliang, et al. “Knowledge graph completion with adaptive sparse transfer matrix.”?AAAI. 2016.

发表评论