简要总结一篇关于知识图谱嵌入的综述

本文介绍了知识图谱补全的重要性,特别是对于链接预测任务。通过词向量的例子展示了词嵌入如何表达词汇间的相似关系,进而引出TransE模型。TransE利用向量距离来建模实体和关系,用于知识图谱的链接预测。损失函数确保了事实三元组的得分高于非事实三元组,以实现知识图谱的补全。
摘要由CSDN通过智能技术生成

综述链接

引言

回顾word2vec,一个典型的例子:
v k i n g − v m a n ≈ v q u e e n − v w o m a n v_{king}-v_{man}\approx v_{queen}-v_{woman} vkingvmanvqueenvwoman
需要知道的是,king和man之间的关系是皇室(royal),queen和woman之间的关系也是royal。
可以看出,从大规模语料中学习得到的词向量可以建模单词之间的相似关系,这种关系体现在词嵌入空间中的翻译(translations)。

同样的,国家和城市之间也存在这种相似的关系。如:
v J a p a n − v T o k y o ≈ v G e r m a n y − v B e r l i n v G e r m a n − v B e r l i n ≈ v C h i n a − v B e i j i n g v_{Japan}-v_{Tokyo}\approx v_{Germany}-v_{Berlin} \\ v_{German}-v_{Berlin}\approx v_{China}-v_{Beijing} vJapanvTokyovGermanyvBerlinvGermanvBerlinvChinavBeijing

我们将上述的国家名、城市名看作实体,而不仅仅是单词。上述公式如果成立,那么可以认为在嵌入空间中,国家实体的向量和首都城市的向量之间存在一种操作,或者说存在一种相似关系,这个相似关系用一个国家的向量减去这个国家的首都的向量来表达,也就是is_capital_of关系(用大白话说:国家a的向量-国家a的首都城市的向量==国家b的向量-国家b的首都城市的向量,所以国家和首都城市之间存在一种相似关系)。因此我们有:
v T o k y o + v i s _ c a p t i a l _ o f − v J a p a n ≈ 0 v_{Tokyo}+v_{is\_captial\_of}-v_{Japan}\approx 0 vTokyo+vis_captial_ofvJapan0
这就是TransE模型的启发。

知识图谱的主要问题就是缺失实体和关系,尤其是开放域知识图谱,对一些应用任务(如问答)就会造成负面影响,因为KGQA就是根据用户问题中的实体和关系从KG中查找满足当前实体和关系的实体(也就是说找到某个实体与用户问题的实体和关系构成事实三元组)。

知识图谱补全,也称为链接预测,即预测一个不在KG中的三元组是否是事实三元组,或者给定头实体和关系,从KG中找出尾实体,构成事实三元组。可以看出链接预测任务可以增加KG中triplet的数量,达到补全KG的目的。

有很多方法可以做链接预测,基于嵌入的方法已经被证实是非常有效且效果最好的方法。

符号说明

符号说明
E \mathcal{E} E所有实体的集合
R \mathcal{R} R所有关系的集合
( h , r , t ) (h,r,t) (h,r,t) ( h , r , t ) ∈ E × R × E (h,r,t)\in \mathcal{E}\times\mathcal{R}\times\mathcal{E} (h,r,t)E×R×E
G \mathcal{G} G所有三元组的集合,也就是知识图谱
f ( h , r , t ) f(h,r,t) f(h,r,t)得分函数,定义一个事实三元组的得分
G ( h ′ , r , t ′ ) ′ = { ( h ′ , r , t ) ∥ h ′ ∈ E ∪ ( h , r , t ′ ) ∥ t ′ ∈ E } G_{(h',r,t')}'=\{(h',r,t)\|h'\in E\cup(h,r,t')\|t'\in E\} G(h,r,t)={(h,r,t)hE(h,r,t)tE}要么取代头实体,要么取代尾实体构成负例三元组。不是同时取代头尾实体

嵌入模型

嵌入模型的目的就是学习得分函数,使得正例(事实)三元组的得分一定要大于负例三元组的得分

比如TransE中的得分函数定义为:
f ( h , r , t ) = − ∣ ∣ v h + v r − v t ∣ ∣ f(h,r,t)=-||v_h+v_r-v_t|| f(h,r,t)=vh+vrvt
其中 ∣ ∣ ⋅ ∣ ∣ ||\cdot|| 表示向量的范数,两个向量差的范数代表着两个向量的距离。
记住:得分函数必须使得正例(事实)三元组的得分一定要大于负例三元组的得分。因此一定要有:
f ( T o k y o , i s _ c a p a t i a l _ o f , J a p a n ) > f ( T o k y o , i s _ c a p t i a l _ o f , G e r m a n ) f(Tokyo,is\_capatial\_of,Japan)>f(Tokyo,is\_captial\_of,German) f(Tokyo,is_capatial_of,Japan)>f(Tokyo,is_captial_of,German)
即:
− ∣ ∣ v T o k y o + v i s _ c a p t i a l _ o f − v J a p a n ∣ ∣ > − ∣ ∣ v T o k y o + v i s _ c a p t i a l _ o f − v G e r m a n ∣ ∣ -||v_{Tokyo}+v_{is\_captial\_of}-v_{Japan}||>-||v_{Tokyo}+v_{is\_captial\_of}-v_{German}|| vTokyo+vis_captial_ofvJapan>vTokyo+vis_captial_ofvGerman

所以有:
∣ ∣ v T o k y o + v i s _ c a p t i a l _ o f − v J a p a n ∣ ∣ < ∣ ∣ v T o k y o + v i s _ c a p t i a l _ o f − v G e r m a n ∣ ∣ ||v_{Tokyo}+v_{is\_captial\_of}-v_{Japan}||<||v_{Tokyo}+v_{is\_captial\_of}-v_{German}|| vTokyo+vis_captial_ofvJapan<vTokyo+vis_captial_ofvGerman

v T o k y o + v i s _ c a p t i a l _ o f v_{Tokyo}+v_{is\_captial\_of} vTokyo+vis_captial_of v J a p a n v_{Japan} vJapan的距离要小于与 v G e r m a n v_{German} vGerman的距离。

f ( h , r , t ) f(h,r,t) f(h,r,t)是得分函数,TransE的损失函数如下:
L = max ⁡ ( 0 , γ − f ( h , r , t ) + f ( h ′ , r , t ′ ) ) L=\max(0,\gamma-f(h,r,t)+f(h',r,t')) L=max(0,γf(h,r,t)+f(h,r,t))
也就是说:正例三元组的得分一定要比负例三元组的得分大 γ \gamma γ。如果正例三元组的得分-负例三元组的得分< γ \gamma γ,那么就有:
γ − f ( h , r , t ) + f ( h ′ , r , t ′ ) > 0 \gamma-f(h,r,t)+f(h',r,t')>0 γf(h,r,t)+f(h,r,t)>0
此时loss>0,就会降低loss,也就是提升 f ( h , r , t ) f(h,r,t) f(h,r,t),减小 f ( h ′ , r , t ′ ) f(h',r,t') f(h,r,t)

上述的损失函数叫hinge-margin损失。也可以采用常用的负对数似然函数作为损失函数:

L = − ∑ ( h , r , t ) ∈ G ( exp ⁡ ( f ( h , r , t ) ) ∑ t ′ ∈ E { − t } exp ⁡ ( f ( h , r , t ′ ) ) + exp ⁡ ( f ( h , r , t ) ) ∑ h ′ ∈ E { − h } exp ⁡ ( f ( h ′ , r , t ) ) ) L=-\sum_{(h,r,t)\in\mathcal{G}}(\frac{\exp(f(h,r,t))}{\sum_{t'\in \mathcal{E}\{-t\}}\exp(f(h,r,t'))}+\frac{\exp(f(h,r,t))}{\sum_{h'\in \mathcal{E}\{-h\}}\exp(f(h',r,t))}) L=(h,r,t)G(tE{t}exp(f(h,r,t))exp(f(h,r,t))+hE{h}exp(f(h,r,t))exp(f(h,r,t)))
公式看着复杂,其实很简单,比如:传入给模型的是head和relation的embedding,都是长度为d的vector,经过模型后(不是TransE模型,比如DistMult模型,该模型的做法就是将将head和relation的embedding直接elementwise相乘)得到长度为d的vector,再将这个vector与KG中的每一个实体做内积然后softmax得到的就是上述公式中
exp ⁡ ( f ( h , r , t ) ) ∑ t ′ ∈ E { − t } exp ⁡ ( f ( h , r , t ′ ) ) \frac{\exp(f(h,r,t))}{\sum_{t'\in \mathcal{E}\{-t\}}\exp(f(h,r,t'))} tE{t}exp(f(h,r,t))exp(f(h,r,t))
这一部分。

未完待续。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值