TransC:Differentiating Concepts and Instances for Knowledge Graph Embedding

引言

传统方法:

  • 基于翻译的方法:如TransE、TransD、TransH、TransR等
  • 使用外部信息,如:
    • 实体类型
    • 文本描述
    • 逻辑规则

这些传统方法的缺点是:忽视了概念与实例之间的区别,这导致了以下问题:

  • 概念表示不足:大多数方法将概念和实例都编码为向量,这无法明确表示概念和实例之间的差异
  • 对于isA关系的敏感性不足:instanceOfsubClassOf(通常称为isA)是知识图谱中的两种特殊关系。

动机

层次概念:人们心中的概念是按层次组织的。因此,实例应该靠近它们所属的概念。
在TransC中,概念被编码为一个球体,实例作为向量在同一语义空间中,采用相对位置来模拟概念和实例之间的关系。

符号与概念

  • 关系集合 R = { r e , r c } ∪ R l \mathcal{R}=\{r_e,r_c\}\cup\mathcal{R}_l R={re,rc}Rl,其中 R l R_{l} Rl是实例之间的关系, r e r_e reinstanceOf关系, r c r_c rcsubClassOf关系。

  • InstanceOf三元组集合 S e = { ( i , r e , c ) k } k = 1 n e , \mathcal{S_{e}} =\{(i,r_{e} ,c)_{k}\}^{n_{e}}_{k=1}, Se={(i,re,c)k}k=1ne,
    其中 i ∈ I , c ∈ C , n e i \in \mathcal{I}, c \in C, n_{e} iI,cC,ne S e S_{e} Se的大小

  • SubClassOf三元组集合 S c = { ( c i , r c , c j ) k } k = 1 n c , \mathcal{S_{c}}=\{(c_{i},r_{c},c_{j})_{k}\}^{n_{c}}_{k=1}, Sc={(ci,rc,cj)k}k=1nc,

  • 关系三元组 S l = { h , r , t } k = 1 n l \mathcal{S_{l}}=\{h,r,t\}_{k=1}^{n_{l}} Sl={h,r,t}k=1nl
    其中 h , t ∈ I h,t \in \mathcal{I} h,tI, r ∈ R l r \in \mathcal{R_{l}} rRl

  • 概念:对于 c ∈ C c \in \mathcal{C} cC,我们学习一个球体 s ( p , m ) s(\mathbf{p},m) s(p,m),其中 p \mathbf{p} p是球心, m m m表示半径。

  • 传递性

    • InstanceOf-subClassOf的传递性关系可以表示为下列等式 ( i , r e , c 1 ) ∈ S e ∧ ( c 1 , r c , c 2 ) ∈ S c → ( i , r e , r 2 ) ∈ S e (i,r_{e},c_{1})\in S_{e} \wedge (c_{1},r_{c},c_{2})\in S_{c} \rightarrow (i,r_{e},r_{2})\in S_{e} (i,re,c1)Se(c1,rc,c2)Sc(i,re,r2)Se
    • SubClassOf-subClassOf的传递性可以表示为: ( c 1 , r c , c 2 ) ∈ S c ∧ ( c 2 , r c , c 3 ) ∈ S c → ( c 1 , r c , c 3 ) ∈ S c (c_{1},r_{c},c_{2})\in S_{c} \wedge (c_{2},r_{c},c_{3})\in S_{c}\to (c_{1},r_{c},c_{3})\in S_{c} (c1,rc,c2)Sc(c2,rc,c3)Sc(c1,rc,c3)Sc

方法

不同概念的关系

作者提出了新的损失函数来衡量嵌入空间中的相对位置,并基于翻译模型共同表示概念、实例和关系。

  • InstanceOf三元组表示:对于InstanceOf三元组 ( i , r e , s ) (i,r_e,s) (i,re,s),如果为真,则 i \mathbf{i} i应该在球体 s s s内部,以表示它们之间的instanceOf关系。因此,损失函数定义为 f e ( i , c ) = ∥ i − p ∥ 2 − m f_{e}(i,c)=\Vert \mathbf{i}-\mathbf{p}\Vert_{2}-m fe(i,c)=ip2m
  • SubClassOf三元组表示:对于三元组 ( c i , r c , c j ) (c_{i},r_{c},c_{j}) (ci,rc,cj),概念 c i , c j c_{i},c_{j} ci,cj被编码

为球体 s i ( p i , m i ) s_{i}(p_{i},m_{i}) si(pi,mi)。如果 c i c_i ci c j c_{j} cj的子类,则它们的中心应该接近。但是,球体 s i s_{i} si s j s_{j} sj之间存在许多相对位置。因此,损失函数定义为 d = ∥ p i − p j ∥ 2 ( a ) f c ( c i , c j ) = ∣ ∣ p i − p j ∣ ∣ 2 + m i − m j ( b ) f c ( c i , c j ) = ∣ ∣ p i − p j ∣ ∣ 2 + m i − m j ( c ) f c ( c i , c j ) = m i − m j ( d ) \begin{align} &d=\Vert p_{i}-p_{j}\Vert_{2} & (a)\\ & f_c(c_i,c_j)=||\mathbf{p}_i-\mathbf{p}_j||_2+m_i-m_{j} &\qquad(b) \\ & f_c(c_i,c_j)=||\mathbf{p}_i-\mathbf{p}_j||_2+m_i-m_{j} &\qquad(c) \\ &f_c(c_i,c_j)=m_i-m_{j} &(d) \end{align} d=pipj2fc(ci,cj)=∣∣pipj2+mimjfc(ci,cj)=∣∣pipj2+mimjfc(ci,cj)=mimj(a)(b)(c)(d)

  • 关系三元组表示:对于 ( h , r , t ) (h,r,t) (h,r,t),损失函数如TransE,定义为 f r ( h , t ) = ∥ h + r − t ∥ 2 2 f_{r}(h,t)=\Vert h+r-t\Vert_{2}^{2} fr(h,t)=h+rt22

训练方法

instanceOf三元组

作者使用

  • ξ \xi ξ ξ ′ \xi' ξ表示正例和负例三元组。
  • S e \mathcal{S_{e}} Se S e ′ \mathcal{S_{e}'} Se表示正例和负例三元组集合
  • [ x ] + [x]_{+} [x]+表示 m a x ( 0 , x ) max(0,x) max(0,x)
  • γ e \gamma_{e} γe是正例和负例三元组之间的间隔
    L e = ∑ ξ ∈ S e ∑ ξ ′ ∈ S e ′ [ γ e + f e ( ξ ) − f e ( ξ ′ ) ] + , \mathcal{L}_e=\sum_{\xi\in\mathcal{S}_e}\sum_{\xi^{\prime}\in\mathcal{S}_e^{\prime}}[\gamma_e+f_e(\xi)-f_e(\xi^{\prime})]_+, Le=ξSeξSe[γe+fe(ξ)fe(ξ)]+,

subClassOf三元组

L c = ∑ ξ ∈ S c ∑ ξ ′ ∈ S c ′ [ γ c + f c ( ξ ) − f c ( ξ ′ ) ] + , \mathcal{L}_c=\sum_{\xi\in\mathcal{S}_c}\sum_{\xi^{\prime}\in\mathcal{S}_c^{\prime}}[\gamma_c+f_c(\xi)-f_c(\xi^{\prime})]_+, Lc=ξScξSc[γc+fc(ξ)fc(ξ)]+,

关系三元组

L l = ∑ ξ ∈ S l ∑ ξ ′ ∈ S l ′ [ γ l + f r ( ξ ) − f r ( ξ ′ ) ] + . \mathcal{L}_l=\sum_{\xi\in\mathcal{S}_l}\sum_{\xi^{\prime}\in\mathcal{S}_l^{\prime}}[\gamma_l+f_r(\xi)-f_r(\xi^{\prime})]_+. Ll=ξSlξSl[γl+fr(ξ)fr(ξ)]+.

总损失

L = L e + L c + L l \mathcal{L}=\mathcal{L_{e}}+\mathcal{L_{c}}+\mathcal{L_{l}} L=Le+Lc+Ll

训练集

对于一个真实的关系三元组 ( h , r , t ) (h,r,t) (h,r,t),通过替换 h h h t t t h ′ h' h t ′ t' t来生成负例,其中 h ′ h' h是从集合 M t = M 1 ∪ M 2 … M n \mathcal{M_{t}}=\mathcal{M_{1}} \cup \mathcal{M_{2}} \dots \mathcal{M_{n}} Mt=M1M2Mn中随机挑选的,其中 M i = { a ∣ a ∈ I ∧ ( a , r e , c i ) ∈ S e ∧ ( t , r e , c i ) ∈ S e ∧ t ≠ a } M_{i}=\{a|a\in I \wedge (a,r_{e},c_{i})\in \mathcal{S_{e}} \wedge (t,r_{e},c_{i}) \in \mathcal{S_{e}} \wedge t \neq a \} Mi={aaI(a,re,ci)Se(t,re,ci)Set=a},也就是从把头实体或者是尾实体换成相同概念的实体或者是不同概念的实体。

生成策略包括:

  • 均匀采样
  • 伯努利采样:基于链接头尾实体数目栏进行采样,数目多的实体被采样的概率更大。

实验

对链接预测和三元组分类进行实验
在这里插入图片描述

源代码

  • 27
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值