《Translating Embeddings for Modeling Multi-relational Data》
TransE:基于能量的模型,用于学习实体的低维嵌入。
关系作为向量空间转变的桥梁:如果三元组(h,l,t)成立,则头实体embedding和关系embedding相加约等于尾实体的embedding。
h + l ≈ t h+l ≈ t h+l≈t
利用空间传递不变形,找到一个实体和向量空间,使得整关系三元组之间的势能差值最小。
m i n ( t − ( h + l ) ) min(t − ( h + l )) min(t−(h+l))
模型
给定一个训练集 S ,三元组表示为 ( h , l , t ) ( h , l , t ) (h,l,t),其中 h , t ∈ E , l ∈ L h , t ∈ E ,l ∈ L h,t∈E,l∈L ,实体和关系的嵌入维度设为 k,希望 h + l h + l h+l 与 t t t能够尽可能的相似,因此定义一个能量函数: d ( h + l , t ) = [ ( h + l ) − t ] 2 = ∣ ∣ h ∣ ∣ 2 2 + ∣ ∣ l ∣ ∣ 2 2 + ∣ ∣ t ∣ ∣ 2 2 − 2 ( h T t + l T ( t − h ) ) d ( h + l , t ) = [ ( h + l ) − t ]^2 = ∣∣h∣∣^2_2 + ∣∣ l ∣∣^2_2 + ∣ ∣ t ∣ ∣_2^2 − 2 ( h^T t + l^ T ( t − h ) ) d(h+l,t)=[(h+l)−t]2=∣∣h∣∣22+∣∣l∣∣22+∣∣t∣∣22−2(hTt+lT(t−h))
欧式距离
为了训练实体embedding和关系embedding,需要引入负样本。目标是尽可能对正样本中最小化 d ( h + l , t ) d ( h + l , t ) d(h+l,t) ,负样本中则尽可能最大化 d ( h ′ + l , t ′ ) d ( h ′ + l , t ′ ) d(h′+l,t′) 。 h ′ , t ′ 。h',t' 。h′,t′ 表示不属于某个三元组的实体。因此可以得出基于间距排序标准目标优化函数(损失函数):
L = ∑ ( h , ℓ , t ) ∈ S ∑ ( h ′ , ℓ , t ′ ) ∈ S ( h , ℓ , t ) ′ [ γ + d ( h + ℓ , t ) − d ( h ′ + ℓ , t ′ ) ] + L=\sum_{(h,ℓ,t)∈S}\sum_{(h′,ℓ,t′)∈S_{(h,ℓ,t)}^′}[γ+d(h+ℓ,t)−d(h′+ℓ,t′)]_+ L=∑(h,ℓ,t)∈S∑(h′,ℓ,t′)∈S(h,ℓ,t)′[γ+d(h+ℓ,t)−d(h′+ℓ,t′)]+
其中 [ x ] + [x]_+ [x]+表示 x x x 中正例的部分, γ > 0 γ > 0 γ>0 表示距离因子。
通过最小化正样本的损失,最大化负样本的距离,达到优化嵌入表示的目的。
错误三元组生成:将正确三元组的头或者尾替换成其他的(每次只能选择头或者尾进行替换,不同时替换),得到错误的三元组。
S ( h , l , t ) ′ = ( h ′ , l , t ) ∣ h ′ ∈ E ∪ ( h , l , t ′ ) ∣ t ′ ∈ E S_{(h,l,t)}^′={(h′,l,t)∣h′∈E}∪{(h,l,t′)∣t′∈E} S(h,l,t)′=(h′,l,t)∣h′∈E∪(h,l,t′)∣t′∈E
FreeBase
WordNet
raw:原始数据
filtered:移除错误三元组
某些错误的三元组会变成有效的三元组。在测试中,可能会出现某些错误三元组排序比测试集三元组靠前的情况,但是这些三元组都是真实的。为了解决这个缺陷对评价指标带来的影响,从数据集中删除错误的三元组。
在原始数据集和去除错误的三元组之后的数据集上,TransE均具有较低的平均排名和较高的hits@10排名。
TransE在1-1的情况下预测效果较好。
给定一个头部和一个标签,排在最高位的尾部被预测出来。
TransE模型可以使用最小的参数量得到知识图谱的实体和关系向量表示。
TransE模型的参数较少,计算的复杂度显著降低,并且在大规模稀疏知识库上也同样具有较好的性能与可扩展性。
在测试过程中,对于一个三元组,我们将头实体或尾实体替换成任意一种其他的实体,得到(n-1)个新的关系三元组,然后对这些三元组计算实体关系距离,将这n-1个三元组按照距离从小到大排列。
对Mean Rank的理解
在测试集里,求真实的实体在n-1个元素中的排名,得出平均到第多少个才能匹配到正确的结果。
对hit@10的理解
在这个排好序的n-1元素中,从第一个开始遍历,看从第一个到第十个是否能够遇到真实的实体,如果遇到了就将 h i t @ 10 + 1 hit@10 +1 hit@10+1。