本文记载有关阅读《Translating Embeddings for Modeling Multi-relational Data》TransE论文的阅读笔记,如果有做相关工作的同学可以邮件和我沟通联系zhaoliang19960421@outlook.com
背景
知识图谱通常是用一个三元组(前件h,关系r,后件t)来表示一条知识,比如:(中国科学院大学,地点,北京),要使用向量表示的话,可以使用one-hot向量(实际使用中通常是mulit-hot向量)来表示。但是问题也来了,one-hot向量维数太高,而且无法表示相近的实体或关系之间的相似程度。所以类比词向量的表示方法,也想使用分布式表示(distributed representation)来表示知识图谱中的实体和关系,通过学习获得它们的低维稠密表示。
摘要
如何对于多关系类型的图结构数据,在一个低纬度空间中,对图上的实体和关系得到一个表征结果,换句话说就是构建一个算法,将图上的实体和关系用一个低微稠密向量来表示。
思想
TransE的思路其实很简单,就是利用了空间传递不变形,目的就是找到一个实体和向量空间,使得整体正例三元组(正例三元组就是在图谱中实际存在的三元组)之间的势能差值最小。
势能差的定义方法是 t − ( h + r ) t-(h+r) t−(h+r),其中h,r,t分别是头实体、关系、尾实体的表征结果,计算方法就利用向量计算即可。
基于这样的方法认为,在现实的图谱三元组中存在的表达内容(头实体可以通过关系到达尾实体)也可以在找到的向量空间中进行表达,语义空间发生了转变(由现实世界空间到了向量空间),但是语义内容没有发生改变,语义内容在空间传递上是不变的。和这个相似的例子就是在word2vec中提到的
q
u
e
e
n
−
w
o
m
a
n
+
m
a
n
=
k
i
n
g
queen-woman+man=king
queen−woman+man=king的公式,在现实空间中,四个实体的关系就是公式所表示的,如果我找打了一个向量空间,在向量空间中的四个实体仍然具有相同关系,这样就可以说找到的向量空间具有了语义内容空间传递的不变形。
原文中的这一段也可以看出来,Trans的思路就是把关系作为在向量空间的翻译功能,使得头实体通过这个翻译更加接近尾实体,
h
+
l
≈
t
h+l ≈ t
h+l≈t,使得这个不等式尽量的相等,这两个之间的差值被称为势能,最终找到使得整体的图谱势能最小的那个空间。
伪代码
论文中的伪代码写的很清楚了,首先随机初始化下实体和关系,在每次进行采样和计算势能差值的时候都要对实体进行归一化,然后计算势能差值
d
(
h
+
t
,
l
)
d(h+t,l)
d(h+t,l),同时在采样的时候采用了两种采样方法,先对正例采样(正例是在图谱中真实存在的三元组),然后对正例三元组进行改造,构造负例三元组,构造负例三元组的方式是随机的将正例三元组中的头或者尾实体替换一个,这样负例三元组是不在图谱中数据。
在计算损失函数时,采用的是合页损失函数,具体也就是使得正例的势能差尽量的小,使得负例的势能差尽量的大,正例负例样本势能差之间的区分度是margin,通过margin将两种样本区分开,两种样本的之间的距离的最大值是margin,大两个样本之间的距离更大时也不会获得更多的奖励。
势能差的计算方法是
在势能差的计算方法中,由于对实体、关系都作恶归一化,所以前三项都是1,只需要计算后面的距离即可
结论
TransE具有很好的解释性,将多种关系的图谱中的实体和关系在一个低微空间中进行表示,获得每个实体的表征结果
TransE的不足:在处理复杂关系(1-N,N-1,N-N)时,性能显著下降,比较适合处理1-1 的关系。