引言
传统方法:
- 基于翻译的方法:如TransE、TransD、TransH、TransR等
- 使用外部信息,如:
- 实体类型
- 文本描述
- 逻辑规则
这些传统方法的缺点是:忽视了概念与实例之间的区别,这导致了以下问题:
- 概念表示不足:大多数方法将概念和实例都编码为向量,这无法明确表示概念和实例之间的差异
- 对于
isA
关系的敏感性不足:instanceOf
和subClassOf
(通常称为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 re是
instanceOf
关系, r c r_c rc是subClassOf
关系。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} i∈I,c∈C,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,t∈I, r ∈ R l r \in \mathcal{R_{l}} r∈Rl。概念:对于 c ∈ C c \in \mathcal{C} c∈C,我们学习一个球体 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)∈SeSubClassOf-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)=∥i−p∥2−m - 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=∥pi−pj∥2fc(ci,cj)=∣∣pi−pj∣∣2+mi−mjfc(ci,cj)=∣∣pi−pj∣∣2+mi−mjfc(ci,cj)=mi−mj(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+r−t∥22
训练方法
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=M1∪M2…Mn中随机挑选的,其中 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={a∣a∈I∧(a,re,ci)∈Se∧(t,re,ci)∈Se∧t=a},也就是从把头实体或者是尾实体换成相同概念的实体或者是不同概念的实体。
生成策略包括:
- 均匀采样
- 伯努利采样:基于链接头尾实体数目栏进行采样,数目多的实体被采样的概率更大。
实验
对链接预测和三元组分类进行实验