研究问题
在学习知识图谱上的嵌入时对关系的层次结构(RHS)进行建模,训练一个向量和一个球(sphere),用向量差和球的相对位置关系表示关系的层级结构。
背景动机
- 之前基于聚类的方法由于固定了层数,不能充分反映知识图谱上关系的复杂性
- 之前考虑关系层次的方法会改变关系嵌入,对于trans模型也会改变实体的嵌入,这会改变原始模型并降低效果。
问题定义
由于关系 athLedTeam_是 _athPlaysForTeam_的子关系,因此在观察到最下面的三元组之后,就可以推断存在上面的三元组,记作 (athLedTeam, subRelationOf, athPlaysForTeam)_
多个相关联的子关系构成的树状层次结构如下,其中根节点为r r r,r j ( i ) r_{j}^{(i)}r j (i )为第i i i层的第j j j个子关系,n i n_i n i 是第i i i层的子关系的个数。如果使用r ( k ) r^{(k)}r (k )表示第k k k层的子关系,从根节点到该节点的路径表示为P r k = { r , r ( 1 ) , r ( 2 ) , … , r ( k ) } P_{r}^{k}=\left{r, r^{(1)}, r^{(2)}, \ldots, r^{(k)}\right}P r k ={r ,r (1 ),r (2 ),…,r (k )}。
将 subRelationOf_简写为 _sro,则知识图谱的关系集合可以定义为R = { s r o } ∪ R l R={s r o} \cup R_{l}R ={s r o }∪R l ,三元组集合T T T可分为T r = { ( r , s r o , p ) ∣ r , p ∈ R l } T_{r}={(r, s r o, p) \mid r, p \in R_{l}}T r ={(r ,s r o ,p )∣r ,p ∈R l }及T e = { ( h , r , t ) ∣ h , t ∈ E ∧ r ∈ R } T_{e}={(h, r, t) \mid h, t \in E \wedge r \in R}T e ={(h ,r ,t )∣h ,t ∈E ∧r ∈R }。假设正三元组的集合为Δ \Delta Δ,则有( h , r , t ) ∈ T e ∧ ( r (h, r, t) \in T_{e} \wedge(r (h ,r ,t )∈T e ∧(r, sro, p ) ∈ T r → ( h , p , t ) ∈ Δ p) \in T_{r} \rightarrow(h, p, t) \in \Delta p )∈T r →(h ,p ,t )∈Δ及( r , s r o , p ) ∈ T r ∧ ( p , s r o , p p ) ∈ T r → ( r , s r o , p p ) ∈ Δ (r, s r o, p) \in T_{r} \wedge(p, s r o, p p) \in T_{r} \rightarrow(r, s r o, p p) \in \Delta (r ,s r o ,p )∈T r ∧(p ,s r o ,p p )∈T r →(r ,s r o ,p p )∈Δ
; 模型方法
给定三元组( h , r , t ) ∈ T e (h, r, t) \in T_{e}(h ,r ,t )∈T e 以及( r , s r o , p ) ∈ T r (r, s r o, p) \in T_{r}(r ,s r o ,p )∈T r ,TransRHS为实体和关系学习嵌入h , t , r , p ∈ R d \mathbf{h}, \mathbf{t}, \mathbf{r}, \mathbf{p} \in \mathbb{R}^{d}h ,t ,r ,p ∈R d,并为p p p学习一个以m 1 m_{1}m 1 为半径的球s 1 s_{1}s 1 ,为r r r学习一个以m 2 m_{2}m 2 为半径的球s 2 s_{2}s 2 。定义距离d 1 = ∥ h + p − t ∥ 2 d_{1}=\|\mathbf{h}+\mathbf{p}-\mathbf{t}\|{2}d 1 =∥h +p −t ∥2 及d 2 = ∥ h + r − t ∥ 2 d{2}=\|\mathbf{h}+\mathbf{r}-\mathbf{t}\|{2}d 2 =∥h +r −t ∥2 。
理想情况下,满足如下条件:
不满足假设的可能情况有如下几种:
针对几种情况来定义损失函数以校正
将上述两层的RHS进行推广,假设存在两个子关系三元组( r , s r o , p ) (r, s r o, p)(r ,s r o ,p ) 和 ( p , s r o , p p ) (p, s r o, p p)(p ,s r o ,p p ),s 1 , s 2 s{1}, s_{2}s 1 ,s 2 和 s 3 s_{3}s 3 分别是p p , p p p, p p p ,p和r r r对应的球,理想情况下,满足以下条件,所谓的层次结构指的就是越靠近根节点,球的半径越小,范围越精确,关系的误差距离要处于本层球和上层球之间,这里的球半径实质上是一种误差容忍范围。
存在的一个问题是,当关系的层次过深时,球的半径会过大,可能不满足TransE模型的基本假设即h + r ≈ t \mathbf{h}+\mathbf{r} \approx \mathbf{t}h +r ≈t。为解决这一问题,论文提出了球半径差异成比例下降的策略:m ( i ) − m ( i − 1 ) : m ( i + 1 ) − m ( i ) = η : ( 1 − η ) m_{(i)}-m_{(i-1)}: m_{(i+1)}-m_{(i)}=\eta:(1-\eta)m (i )−m (i −1 ):m (i +1 )−m (i )=η:(1 −η),其中η ∈ ( 0.5 , 1 ) \eta \in(0.5,1)η∈(0 .5 ,1 ),其实就是让不同层半径之间的差异呈等比数列减小。
最终损失函数定义为L = L O R I + L R H S L=L_{O R I}+L_{R H S}L =L O R I +L R H S ,其中
L O R I = ∑ ( h , r , t ) ∈ Δ ∑ ( h ′ , r , t ′ ) ∈ Δ ′ [ γ + f r ( h , t ) − f r ( h ′ , t ′ ) ] + L_{O R I}=\sum_{(h, r, t) \in \Delta} \sum_{\left(h^{\prime}, r, t^{\prime}\right) \in \Delta^{\prime}}\left[\gamma+f_{r}(h, t)-f_{r}\left(h^{\prime}, t^{\prime}\right)\right]{+}L O R I =(h ,r ,t )∈Δ∑(h ′,r ,t ′)∈Δ′∑[γ+f r (h ,t )−f r (h ′,t ′)]+
L R H S = ∑ ( r , s r o , p ) ∈ T r ∑ ( h , r , t ) ∈ T e f R H S ( h , r , t , p ) L{R H S}=\sum_{(r, s r o, p) \in T_{r}} \sum_{(h, r, t) \in T_{e}} f_{R H S}(h, r, t, p)L R H S =(r ,s r o ,p )∈T r ∑(h ,r ,t )∈T e ∑f R H S (h ,r ,t ,p )
实验
在两个很简单的数据集上做了实验,直接给出了关系层次结构
由于训练过程中需要生成负样本,论文采取了两种生成负样本的方式。第一种是
bern
,即随机破坏三元组,给定三元组( h , r , t ) (h, r, t)(h ,r ,t ),从实体集中随机采样得到( h ′ , r , t ′ ) \left(h^{\prime}, r, t^{\prime}\right)(h ′,r ,t ′) 或 ( h , r , t ′ ) \left(h, r, t^{\prime}\right)(h ,r ,t ′);第二种是 unif
,根据关系的映射性质如1-to-N, N-to-1, N-to-N分配头实体和尾实体的采样概率。; 评价
想法比较新颖,但数据集实在是太小了,不知道如果关系多一点的时候怎么预先获得关系层次结构,以及如果层数很深时效果还会不会这么好。
Original: https://blog.csdn.net/jining11/article/details/122251710
Author: 羊城迷鹿
Title: TransRHS: A Representation Learning Method for Knowledge Graphs with Relation Hierarchical Structure
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/556111/
转载文章受原作者版权保护。转载请注明原作者出处!