1. 简介
题目:《COTSAE CO-Training of Structure and Attribute Embeddings for Entity Alignment》
来源:AAAI-2020
链接:论文链接
代码:Code和Dataset
关键字:Structure and Attribute Embeddings、Entity Alignment
2. Abstract
实体对齐是知识图构建和融合中的一项基本而重要的任务。以往的工作主要是通过学习关系三元组上的实体嵌入(entity embeddings)和预先对齐的种子实体来获取实体的结构语义(structural semantic)。有些工作还试图合并属性信息来帮助细化实体嵌入。然而,在实体对齐中仍存在许多未考虑到的问题,极大地限制了属性信息的利用。
不同的KGs可能有很多不同的属性类型,甚至相同的属性也可能有不同的数据结构和值粒度。最重要的是,属性对实体对齐可能有不同的贡献。为了解决这些问题,我们提出了COTSAE模型,分别通过联合训练(co-training)两个嵌入学习组件来结合实体结构信息和属性信息。并在模型中提出了一种联合注意(joint attention)方法,以协同学习属性类型和属性值的注意力。结构信息和属性信息可以相互补充,都有助于提高性能。
3. Related Work
这部分原文主要介绍了KG Embedding和Embedding-based entity alignment的研究情况,里面讲解了各种方法的特点以及缺点。这里就不具体介绍了,想了解其研究方法的历史情况的,可以详细看看。
4. Proposed Approach
4.1 Problem Definition
E 1 E_1 E1和 E 2 E_2 E2 分别表示 K G 1 KG_1 KG1和 K G 2 KG_2 KG2中的实体集,实体对齐的目的就是找出实体对 A = { ( e 1 , e 2 ) ∣ e 1 = e 2 , e 1 ∈ E 1 , e 2 ∈ E 2 } A=\{(e_1,e_2)|e_1=e_2,e_1\in E_1,e_2\in E_2\} A={(e1,e2)∣e1=e2,e1∈E1,e2∈E2},通常集合 P P P是 A A A的子集,作为种子实体对,剩下的就是要对齐的实体集合。
4.2 Approach Overview
COTSAE整体的框架如下图所示,其流程如下:
- 构建两个模型组件(TransE和PSN伪孪生网络)的基本训练数据集(BTD)。
- 在每一次迭代中,使用TransE组件来学习实体在结构上的嵌入,使用PSN在属性信息上学习实体嵌入。
- 通过计算实体对的嵌入相似性,并使用阈值 λ \lambda λ进行过滤,将所有候选对齐实体对以二分图的形式生成。
- 通过计算相似匹配度,使用二分图匹配算法确定新增的实体对,然后将其加入扩展训练数据集(ATD)
4.3 Iterative Co-training & Training Data Generation
TransE组件和PSNN组件的训练将交替地进行。在每次迭代中,组件模型轮流执行“训练-预测”过程。在每次迭代的训练过程中,两个组件在BDT和ADT上训练多个epoch,并且设置了早停防止过拟合。第一次迭代时ADT为空,经过训练后,模型将预测新的对齐实体并添加至ADT。两个组件交替进行上述的训练-预测过程,因此逐渐地增强实体对齐,直到两个组件不再预测新的对齐实体。
本文还采取了扩增对齐实体集的小技巧,就使用对齐的实体
P
=
{
(
e
1
,
e
2
)
∣
e
1
∈
E
1
,
e
2
∈
E
2
,
e
1
equales to
e
2
}
\mathcal{P}=\left\{\left(e_{1}, e_{2}\right) \mid e_{1} \in E_{1}, e_{2} \in E_{2}, e_{1} \text { equales to } e_{2}\right\}
P={(e1,e2)∣e1∈E1,e2∈E2,e1 equales to e2}去替换三元组中某个实体,进而扩充三元组,扩充的种子实体集为:
S
P
=
⋃
(
e
1
,
e
2
)
∈
P
S
(
e
1
,
e
2
)
\mathbb{S}^{\mathcal{P}}=\bigcup_{\left(e_{1}, e_{2}\right) \in \mathcal{P}} \mathbb{S}_{\left(e_{1}, e_{2}\right)}
SP=⋃(e1,e2)∈PS(e1,e2):
S
(
e
1
,
e
2
)
=
{
(
e
2
,
r
,
t
)
∣
(
e
1
,
r
,
t
)
∈
S
1
+
}
∪
{
(
h
,
r
,
e
2
)
∣
(
h
,
r
,
e
1
)
∈
S
1
+
}
∪
{
(
e
1
,
r
,
t
)
∣
(
e
2
,
r
,
t
)
∈
S
2
+
}
∪
{
(
h
,
r
,
e
1
)
∣
(
h
,
r
,
e
2
)
∈
S
2
+
}
(1)
\mathbb{S}_{\left(e_{1}, e_{2}\right)}=\left\{\left(e_{2}, r, t\right) \mid\left(e_{1}, r, t\right) \in \mathbb{S}_{1}^{+}\right\} \cup\left\{\left(h, r, e_{2}\right) \mid\left(h, r, e_{1}\right) \in \mathbb{S}_{1}^{+}\right\} \cup \\ \left\{\left(e_{1}, r, t\right) \mid\left(e_{2}, r, t\right) \in \mathbb{S}_{2}^{+}\right\} \cup\left\{\left(h, r, e_{1}\right) \mid\left(h, r, e_{2}\right) \in \mathbb{S}_{2}^{+}\right\} \tag {1}
S(e1,e2)={(e2,r,t)∣(e1,r,t)∈S1+}∪{(h,r,e2)∣(h,r,e1)∈S1+}∪{(e1,r,t)∣(e2,r,t)∈S2+}∪{(h,r,e1)∣(h,r,e2)∈S2+}(1)
其中
S
1
+
\mathbb{S}_{1}^{+}
S1+和
S
2
+
\mathbb{S}_{2}^{+}
S2+分别是
K
G
1
KG_1
KG1和
K
G
2
KG_2
KG2的关系三元组,所以整体的关系三元组就是
S
+
=
S
1
+
∪
S
2
+
∪
S
P
\mathrm{S}^{+}=\mathrm{S}_{1}^{+} \cup \mathrm{S}_{2}^{+} \cup \mathrm{S}^{\mathcal{P}}
S+=S1+∪S2+∪SP,同时本文中采用了
ϵ
\epsilon
ϵ-Truncated Uniform Negative Sampling的方法对其最近的
n
n
n 个邻居结点进行负采样。
对于属性三元组,作者使用是类似的方法进行扩增, A + = ⋃ ( e 1 , e 2 ) ∈ P A ( e 1 , e 2 ) \mathbb{A}^{+}=\bigcup_{\left(e_{1}, e_{2}\right) \in \mathcal{P}} \mathbb{A}_{\left(e_{1}, e_{2}\right)} A+=⋃(e1,e2)∈PA(e1,e2),其中 A ( e 1 , e 2 ) = { ( e 1 , a , v ) ∣ ( e 1 , a , v ) ∈ A 1 + } ∪ { ( e 2 , a , v ) ∣ ( e 2 , a , v ) ∈ A 2 + } \quad \mathbb{A}_{\left(e_{1}, e_{2}\right)}=\left\{\left(e_{1}, a, v\right) \mid\left(e_{1}, a, v\right) \in \mathbb{A}_{1}^{+}\right\} \cup\left\{\left(e_{2}, a, v\right) \mid\left(e_{2}, a, v\right) \in \mathbb{A}_{2}^{+}\right\} A(e1,e2)={(e1,a,v)∣(e1,a,v)∈A1+}∪{(e2,a,v)∣(e2,a,v)∈A2+} ,但是PSNN网络输入的是属性的类型以及值,而不是属性三元组。为了缓解语义漂移,不对数据集ATD进行负样本构造。
4.4 TransE Component
对于关系三元组的建模,参考了TransE的结构,这里加了两个超参数 γ 1 , γ 2 > 0 \gamma_1,\gamma_2>0 γ1,γ2>0作为
边缘参数,同时计算三元组之间的距离误差
d
(
h
+
r
,
t
)
=
∥
h
⃗
+
r
⃗
−
t
⃗
∥
2
2
d(h+r, t)=\|\vec{h}+\vec{r}-\vec{t}\|_{2}^{2}
d(h+r,t)=∥h+r−t∥22,则其损失函数为:
L
S
=
∑
(
h
,
r
,
t
)
∈
S
+
(
h
′
,
r
′
,
t
′
)
∈
S
−
[
d
(
h
+
r
,
t
)
−
γ
1
]
+
+
μ
1
[
γ
2
−
d
(
h
′
+
r
′
,
t
′
)
]
+
(2)
\begin{array}{r} \mathcal{L}_{S}=\sum_{(h, r, t) \in \mathbb{S}^{+}\left(h^{\prime}, r^{\prime}, t^{\prime}\right) \in \mathbb{S}^{-}}\left[d(h+r, t)-\gamma_{1}\right]_{+} +\mu_{1}\left[\gamma_{2}-d\left(h^{\prime}+r^{\prime}, t^{\prime}\right)\right]_{+} \end{array} \tag {2}
LS=∑(h,r,t)∈S+(h′,r′,t′)∈S−[d(h+r,t)−γ1]++μ1[γ2−d(h′+r′,t′)]+(2)
其中
[
.
]
=
max
(
0
,
.
)
[.]=\max (0, .)
[.]=max(0,.) ,而
μ
1
\mu_{1}
μ1是一超参数控制负样本的权重。
4.5 Pseudo-Siamese Neural Network
Siamese Network中文名为孪生网络,也叫作连体神经网络,该网络的特点是具有对称的网络结构,或者说由两个相同的网络组成,这两个网络共享权重。相对而言,伪孪生网络中的两个单独的网络可以拥有不一样的网络结构,一般不共享参数。(伪)孪生网络一般用于具有相同或者相似的输入,对两个输入进行特征提取映射到新的特征空间,形成新的向量表示,然后对两个新的向量表示进行相似度衡量、回归或者分类等。本文的网络中,只有Character Embedding部分采用共享的权重,或者说采用相同的字符向量表示。
总体结构如下图所示,本文的伪孪生网络在两个知识图谱的属性信息上学习实体嵌入表示,然后利用一些训练过的度量指标来评价实体之间的相似性。使用双向GRU单元来提取属性值字符层面的特征。使用共享的注意力矩阵作用于属性类型和属性值,称之为joint attention。采用欧式距离计算实体向量的相似度。网络的损失公式为:
L
a
=
1
2
K
∑
i
=
0
K
y
(
i
)
(
e
1
(
i
)
,
e
2
(
i
)
)
2
+
(
1
−
y
(
i
)
)
max
(
γ
3
−
d
(
e
1
(
i
)
,
e
2
(
i
)
)
)
2
(3)
\begin{array}{c} \mathcal{L}_{a}=\frac{1}{2 K} \sum_{i=0}^{K} y^{(i)}\left(e_{1}^{(i)}, e_{2}^{(i)}\right)^{2}+\left(1-y^{(i)}\right) \max \left(\gamma_{3}-d\left(e_{1}^{(i)}, e_{2}^{(i)}\right)\right)^{2} \end{array} \tag {3}
La=2K1∑i=0Ky(i)(e1(i),e2(i))2+(1−y(i))max(γ3−d(e1(i),e2(i)))2(3)
其中
d
(
e
⃗
1
,
e
⃗
2
)
=
∥
e
⃗
1
−
e
⃗
2
∥
2
d\left(\vec{e}_{1}, \vec{e}_{2}\right)=\left\|\vec{e}_{1}-\vec{e}_{2}\right\|_{2}
d(e1,e2)=∥e1−e2∥2,
K
K
K是训练样本数目,
γ
3
\gamma_3
γ3是超参数,
(
e
1
(
i
)
,
e
2
(
i
)
;
y
(
i
)
)
\left(e_{1}^{(i)}, e_{2}^{(i)} ; y^{(i)}\right)
(e1(i),e2(i);y(i))是第
i
i
i次的训练样本。
4.5.1 Character-Level Attribute Value Embedding
相同的属性值在不同的KG中可能展示不同的形式,如50.9989 vs 509988,因此作者在本文中采用双向GRU对属性值进行特征提取,其GRU单元的内部函数如下:
z
i
=
σ
(
W
z
[
c
i
,
h
i
−
1
]
)
(4)
z_{i}=\sigma\left(\mathbf{W}_{z}\left[c_{i}, h_{i-1}\right]\right) \tag {4}
zi=σ(Wz[ci,hi−1])(4)
r i = σ ( W r [ c i , h i − 1 ] ) (5) r_{i}=\sigma\left(\mathbf{W}_{r}\left[c_{i}, h_{i-1}\right]\right) \tag {5} ri=σ(Wr[ci,hi−1])(5)
h ~ i = tanh ( W h [ c i , r i ⊙ h i − 1 ] ) (6) \widetilde{h}_{i}=\tanh \left(\mathbf{W}_{h}\left[c_{i}, r_{i} \odot h_{i-1}\right]\right) \tag {6} h i=tanh(Wh[ci,ri⊙hi−1])(6)
h i = ( 1 − z i ) ⊙ h i − 1 + z i ⊙ h ~ i (7) h_{i}=\left(1-z_{i}\right) \odot h_{i-1}+z_{i} \odot \tilde{h}_{i} \tag{7} hi=(1−zi)⊙hi−1+zi⊙h~i(7)
h ⃗ f = GRU ( c n , h ⃗ f − 1 ) ; h ⃗ b = GRU ( c 0 , h ⃗ b + 1 ) (8) \vec{h}_{f}=\operatorname{GRU}\left(c_{n}, \vec{h}_{f-1}\right) ; \vec{h}_{b}=\operatorname{GRU}\left(c_{0}, \vec{h}_{b+1}\right) \tag {8} hf=GRU(cn,hf−1);hb=GRU(c0,hb+1)(8)
其属性嵌入表示为 v ⃗ = ( c ⃗ 0 , c 2 → , … , c n → ) \vec{v}=\left(\vec{c}_{0}, \overrightarrow{c_{2}}, \ldots, \overrightarrow{c_{n}}\right) v=(c0,c2,…,cn),然后通过前向和反向计算公式8得到两个向量,将其联合起来组成字符值的表示: v ⃗ = ⌊ h ⃗ f ; h ⃗ b ] \vec{v}=\left\lfloor\vec{h}_{f} ; \vec{h}_{b}\right] v=⌊hf;hb],然后实体 e 1 e_1 e1和实体 e 2 e_2 e2就可以得到对应的属性值表示: V → 1 = ( v ⃗ 0 1 , v ⃗ 1 1 , … , v ⃗ M 1 1 ) \overrightarrow{\mathcal{V}}^{1}=\left(\vec{v}_{0}^{1}, \vec{v}_{1}^{1}, \ldots, \vec{v}_{M_{1}}^{1}\right) V1=(v01,v11,…,vM11)和 V → 2 = ( v ⃗ 0 2 , v ⃗ 1 2 , … , v ⃗ M 2 2 ) \overrightarrow{\mathcal{V}}^{2}=\left(\vec{v}_{0}^{2}, \vec{v}_{1}^{2}, \ldots, \vec{v}_{M_{2}}^{2}\right) V2=(v02,v12,…,vM22)。
4.5.2 Joint Attention for Attribute types and Values
并非所有的属性对实体对齐的贡献都一样,可能存在许多无用的噪声属性。为了学习到不同属性的重要程度,以共享的注意力权重的形式作用于属性类型嵌入与属性值嵌入。实体的
M
M
M个属性类型嵌入表示为
A
=
(
a
⃗
0
,
a
⃗
1
,
…
,
a
⃗
M
)
\mathcal{A}=\left(\vec{a}_{0}, \vec{a}_{1}, \ldots, \vec{a}_{M}\right)
A=(a0,a1,…,aM),可以计算其不同属性类型的重要性:
α
i
=
softmax
(
A
T
W
a
a
⃗
i
)
(9)
\alpha_{i}=\operatorname{softmax}\left(\mathcal{A}^{T} \mathbf{W}_{a} \vec{a}_{i}\right) \tag {9}
αi=softmax(ATWaai)(9)
同时这里作者使用属性类别的权重共享去计算属性值最终的表示:
e
t
y
p
e
=
∑
i
=
0
M
α
i
a
⃗
i
;
e
v
a
l
u
e
=
∑
i
=
0
M
α
i
v
⃗
i
(10)
e_{t y p e}=\sum_{i=0}^{M} \alpha_{i} \vec{a}_{i} ; e_{v a l u e}=\sum_{i=0}^{M} \alpha_{i} \vec{v}_{i} \tag {10}
etype=i=0∑Mαiai;evalue=i=0∑Mαivi(10)
最终的实体表示为:
e
⃗
1
=
[
e
t
y
p
e
1
∥
e
v
a
l
u
e
1
]
\vec{e}_{1}=\left[e_{t y p e}^{1} \| e_{v a l u e}^{1}\right]
e1=[etype1∥evalue1] 和
e
⃗
2
=
[
e
t
y
p
e
2
∥
e
v
a
l
u
e
2
]
\vec{e}_{2}=\left[e_{t y p e}^{2} \| e_{v a l u e}^{2}\right]
e2=[etype2∥evalue2]。
4.6 Entity Alignment
文中通过前面讲述的两个模块去学习实体的嵌入表示,计算实体对之间的相似度,采用一个超参数 γ 4 \gamma_4 γ4去过滤实体对,然后通过在潜在的实体对之间添加边形成二分图,接下来使用全局的最佳图匹配算法进行优化结果,并将其结果作为下一轮的迭代数据,由于对齐过程中可能产生错误的实体对,而且这个可能会传播错误信息,所以本文中产生的实体对可以在后轮次的迭代中被纠正修改,数据集的情况如下所示:
5. Experiments
- Datasets
DWY15K包含DBP-WD-Norm、DBP-WD-Dense、DBP-YG-Norm、 DBP-YG-Dense四类数据集,DWY100K包含则是两个数据集。以30%作为种子实体对。
- Entity Alignment Results
- Discussion
作者在结果的实验基础上,进行分离部分模块的实验以及种子对比例的对比实验,其结果均表明其完整的COTSAE表现较优,而且比已有的方法提升较大。其考虑的属性类型和属性值分析部分的比较细节,将实体表示的获取比较全面,总体来说其方法具有高的优越性。
[参考] https://blog.youkuaiyun.com/qq_26623993/article/details/106736989