相关博客:
【自然语言处理】【知识图谱】利用属性、值、结构来实现实体对齐
【自然语言处理】【知识图谱】基于图匹配神经网络的跨语言知识图谱对齐
【自然语言处理】【知识图谱】使用属性嵌入实现知识图谱间的实体对齐
【自然语言处理】【知识图谱】用于实体对齐的多视角知识图谱嵌入
【自然语言处理】【知识图谱】MTransE:用于交叉知识对齐的多语言知识图谱嵌入
【自然语言处理】【知识图谱】SEU:无监督、非神经网络实体对齐超越有监督图神经网络?
一、简介
知识图谱以结构化的形式表示人类的知识,并成功应用到了许多自然语言处理任务中。但是,知识图谱通常是单语言的。为了能够将不同语言的知识图谱链接起来,交叉语言知识图谱对齐任务被提了出来。
近些年研究者提出了许多实体对齐的方法,这些方法将三元组中的知识编码至低维向量空间中。但是,不同语言知识图谱中的实体,其所属的三元组可能并不相同,这将进一步提高对齐的难度。
图1中的两个实体 e 0 e_0 e0和 e 0 ′ e'_0 e0′为对齐的实体,但是其邻居中仅有一对是对齐的实体,其他均不对齐。由于先前的嵌入方法不能将描述实体的文本信息(例如实体的name)进行编码,而结构又无法提供充分的信息用于对齐。
为了解决上面的问题,论文提出了 topic entity graph \text{topic entity graph} topic entity graph来表示一个实体的上下文。并且不同于先前使用实体嵌入进行对齐的方法,论文将实体对齐问题转换为 topic entity graph \text{topic entity graph} topic entity graph的图匹配问题。具体来说,首先利用 GCN \text{GCN} GCN将两个图 G 1 G_1 G1和 G 2 G_2 G2编码为两个包含实体嵌入向量的列表。然后,通过一个注意力匹配方法将两个图中的实体进行两两匹配。最后,使用生成的两两匹配向量进行分类。
二、Topic Entity Graph
直觉上,知识图谱中实体的局部上下文信息对于实体对齐任务非常的重要。因此,论文提出了 topic entity graph \text{topic entity graph} topic entity graph,其能够表示给定实体的上下文关系。 topic entity graph \text{topic entity graph} topic entity graph的构建步骤如下:
- 收集给定实体的1跳邻居实体,得到实体集合 { e 1 , … , e n } \{e_1,\dots,e_n\} {e1,…,en};
- 将集合 { e 1 , … , e n } \{e_1,\dots,e_n\} {e1,…,en}中的实体作为 topic entity graph \text{topic entity graph} topic entity graph中的节点,若实体对 ( e i , e j ) (e_i,e_j) (ei,ej)在原始知识图谱中存在关系 r r r,那么在 topic entity graph \text{topic entity graph} topic entity graph中添加一条连接这两个实体的有向边;
- topic entity graph \text{topic entity graph} topic entity graph中的边并不保留原始边的类型,只保留方向。
三、图匹配方法
本方法会为每对待对齐的实体创建对应的 topic entity graph \text{topic entity graph} topic entity graph,即 G 1 G_1 G1和 G 2 G_2 G2。
1. 输入表示层
该层的目标是通过 GCN \text{GCN} GCN来学习出现在 topic entity graph \text{topic entity graph} topic entity graph中实体的嵌入向量。下面以实体 v v v为例子展示嵌入向量的生成过程:
- (1) 利用单词级别的 LSTM \text{LSTM} LSTM将实体 v v v的名称转换为初始特征向量 a v \textbf{a}_v av;
- (2) 根据边的方向,将实体 v v v的邻居分类为输入邻居 N ⊢ ( v ) \mathcal{N}_{\vdash}(v) N⊢(v)和输入层邻居 N ⊣ ( v ) \mathcal{N}_{\dashv}(v) N⊣(v);
- (3) 利用多层 GCN \text{GCN} GCN将实体 v v v的输入邻居的向量 { h u ⊢ k − 1 , ∀ u ∈ N ⊢ ( v ) } \{\textbf{h}_{u\vdash}^{k-1},\forall u\in\mathcal{N}_{\vdash}(v)\} {hu⊢k−1,∀u∈N⊢(v)}聚合为单一向量 h N ⊢ ( v ) k \textbf{h}_{\mathcal{N}_{\vdash}(v)}^k hN⊢(v)k,其中 k k k是迭代聚合的当前索引;
- (4) 将实体 v v v当前的输入表示 h v ⊢ k − 1 \textbf{h}_{v\vdash}^{k-1} hv⊢k−1与新生产的邻居聚合向量 h N ⊢ ( v ) k \textbf{h}_{\mathcal{N}_{\vdash}(v)}^k hN⊢(v)k进行合并,并将合并的向量输入至全连接层,从而获得实体 v v v的新输入表示 h v ⊢ k \textbf{h}_{v\vdash}^{k} hv⊢k;
- (5) 采用类似的方式获得实体 v v v的输出表示 h v ⊣ k \textbf{h}_{v\dashv}^k hv⊣k;
- 重复(3)-(5) K次,并将最终的输入表示和输出表示进行拼接,获得实体 v v v的最终向量表示。
- 通过该层最终能得到两个实体嵌入向量的集合 { e 1 1 , … , e ∣ G 1 ∣ 1 } \{\textbf{e}_1^1,\dots,\textbf{e}_{|G_1|}^1\} {e11,…,e∣G1∣1}和 { e 1 2 , … , e ∣ G 2 ∣ 2 } \{\textbf{e}_1^2,\dots,\textbf{e}_{|G_2|}^2\} {e12,…,e∣G2∣2}。
2. 节点级别(局部)匹配层
本层会对两个
topic entity graph
\text{topic entity graph}
topic entity graph中所有实体嵌入向量进行两两匹配。具体来说,这里使用了一种基于注意力的匹配方式。首先,计算图
G
1
G_1
G1中实体
e
i
1
e_i^1
ei1与
G
2
G_2
G2中所有实体
{
e
j
2
}
\{e_j^2\}
{ej2}在表示空间中的
cosine
\text{cosine}
cosine相似度,
α
i
,
j
=
c
o
s
i
n
e
(
e
i
1
,
e
j
2
)
j
∈
{
1
,
…
,
∣
G
2
∣
}
\alpha_{i,j}=cosine(\textbf{e}_i^1,\textbf{e}_j^2)\quad j\in\{1,\dots,|G_2|\}
αi,j=cosine(ei1,ej2)j∈{1,…,∣G2∣}
将得到的相似度作为图
G
2
G_2
G2中每个实体的权重进行加权求和
e
ˉ
i
1
=
∑
j
=
1
∣
G
2
∣
α
i
,
j
⋅
e
j
2
∑
j
=
1
∣
G
2
∣
α
i
,
j
\bar{\textbf{e}}_i^1=\frac{\sum_{j=1}^{|G_2|}\alpha_{i,j}\cdot\textbf{e}_j^2}{\sum_{j=1}^{|G_2|}\alpha_{i,j}}
eˉi1=∑j=1∣G2∣αi,j∑j=1∣G2∣αi,j⋅ej2
这里的操作类似文本匹配模型
ESIM
\text{ESIM}
ESIM的操作,
e
ˉ
i
1
\bar{\textbf{e}}_i^1
eˉi1是
e
i
1
\textbf{e}_i^1
ei1与
G
2
G_2
G2中所有实体的相似性加权向量。
在为图
G
1
G_1
G1和
G
2
G_2
G2中所有实体计算出相似加权向量后,通过一种多视角
cosine
\text{cosine}
cosine匹配函数
f
m
f_m
fm来计算最终的匹配向量
m
i
a
t
t
=
f
m
(
e
i
1
,
e
ˉ
i
1
)
m
j
a
t
t
=
f
m
(
e
j
2
,
e
ˉ
j
2
)
\begin{aligned} &\textbf{m}_i^{att}=f_m(\textbf{e}_i^1,\bar{\textbf{e}}_i^1)\\ &\textbf{m}_j^{att}=f_m(\textbf{e}_j^2,\bar{\textbf{e}}_j^2) \end{aligned}
miatt=fm(ei1,eˉi1)mjatt=fm(ej2,eˉj2)
其中,函数
f
m
f_m
fm形式较为简单,详见原始论文附录。
3. 图级别(全局)匹配层
直觉上,匹配向量 m a t t \textbf{m}^{att} matt捕获了图 G 1 ( G 2 ) G_1(G_2) G1(G2)中每个实体如何匹配另一个图中所有实体的信息。然而,这样的匹配仅保留局部匹配信息,并没有充分利用全局信息。例如,在在 G 1 G_1 G1和 G 2 G_2 G2共现的实体中有许多实体仅有很少的邻居。对于这些实体,利用局部匹配信息会有很高概率的不正确。为了克服这个问题,论文利用另一个 GCN \text{GCN} GCN来将局部匹配信息传播至全图。
直觉上,局部匹配向量中保存了两个 topic entity graph \text{topic entity graph} topic entity graph如何匹配的信息,那么在整个知识图谱上使用 GCN \text{GCN} GCN将能够编码两个图的全局匹配信息。最后,论文将匹配向量表示输入全连接层中,并利用max pooling和mean pooling来生成固定长度的图匹配向量表示。
4. 预测层
将最终的匹配向量表示输入两层全连接层网络,并使用 softmax \text{softmax} softmax来输出匹配结果。
四、训练及推理
为了模型训练,为每个正样本 ⟨ e i 1 , e j 2 ⟩ \langle e_i^1,e_j^2\rangle ⟨ei1,ej2⟩随机的构造20个负样本:
- 使用将实体名称的预训练词向量求和的方式为 G 1 G_1 G1和 G 2 G_2 G2中的每个实体生成一个初始的嵌入向量;
- 然后找出与实体 e i 1 e_i^1 ei1(或 e j 2 e_j^2 ej2)在嵌入空间最近的10个实体,用于构造负样本
在推理时,给定一个 G 1 G_1 G1中的实体,将 G 2 G_2 G2中的实体按照模型输出的匹配概率进行降序排序;