实体对齐5.ACL 2019(NMN)Neighborhood Matching Network for Entity Alignment
关键词:Neighborhood Matching,GCN,Attention
介绍
1、问题提出
实体对齐是将不同KG中具有相似含义但表现形式不同的实体匹配的一种技术。但由于KG通常是不完整的,而且不同的KG通常是异构的,因此实体对齐实现较为困难。目前比较主流有效的方法是基于嵌入的方法,基于嵌入的方法利用一组种子对齐对KG结构建模,自动学习如何将不同KG之间的等价实体映射到一个统一的向量空间中,通过测量两个实体嵌入之间的距离来实现实体对齐。
问题1:但在这个方向的绝大多数研究都是建立在一个假设之上——实体和来自其他KG的对应实体应具有相似的邻域结构,只有这样,对应的等价实体才能生成相似的嵌入,但由于前面提到的KG的不完整性和异构性,这一假设不能总适用于现实场景。如下图:

左右两个图的中心实体“布鲁克林区”和“Brooklyn”是等价的,但它们的邻域大小和拓扑尺寸都是不同的,这会使得它们生成的嵌入也会有较大的差别。
问题2:即便不考虑邻域大小不同的问题,我们还有一个问题需要考虑。由于大多数共同的邻居将是受欢迎的实体,它们将是许多其他实体的邻居。因此,要使这些实体保持一致仍颇具挑战性。为了详细说明这一点,让我们现在考虑下图 (b)。

这里的两个中心实体(都表示城市利物浦)有相似大小的邻域和三个共同的邻居。然而,三个共同的邻域(分别是英国、英格兰和工党)却没有足够的区别。这是因为英格兰有很多城市实体在其邻近地区也有这三个实体,例如伯明翰实体。对于这样的实体对,除了共同的邻居之外,还必须考虑其他信息邻居——比如那些与中心实体紧密相关的邻居。由于现有的基于嵌入的方法无法选择正确的邻居,我们需要一个更好的方法。
2、论文的贡献
(1)采用一种新的图采样策略来识别信息最丰富的邻域以实现实体对齐
(2)利用基于注意的跨图匹配机制联合比较两个实体的判别子图,实现具有鲁棒性的实体对齐
方法
流程大体分为四步:
(1)利用多层GCN建模KG拓扑信息,生成KG结构嵌入;
(2)使用邻域采样选择信息更丰富的邻居;
(3)跨图邻域匹配;
(4)邻域聚集。
示意图如下:

1、知识图谱嵌入表示


2、邻居采样
关键依据:一个邻居和其中心实体出现在同一上下文中的次数越多,这个邻居对于该中心实体而言信息越丰富。




3、候选实体选择


4、交叉图邻居匹配

注意力图示化

5、邻居聚合

实体对齐与训练
1、预训练:
计算两个实体之间的距离:
损失函数:
2、总体训练:
预训练阶段在实体对齐表现一收敛时就停止。在这个阶段,GCN给出的试题表示已经足够支持邻居采样和匹配模块了。
因此,这时候要将损失函数替换成:

注意,由于采样过程是不可微的,这会影响到前面邻居采样阶段Ws的训练,因此在训练Ws时,并不是直接采样,而是将所有邻居信息通过直观的加权求和进行聚合:
,目标函数是
。
总的来说,在预训练之后,模型是端到端训练的。
实验部分


DBP15K:抽取了DBpedia的数据,做了中英,日英,法英三个数据集,每个数据集有两个规模(15k和100k匹配实体)使用谷歌翻译将所有非英语实体翻译成英语,再使用预训练的英语单词向量 glove.840B.300d 构建知识图谱的初始化节点特征。
glove.840B.300d:Common Crawl (840B tokens, 2.2M vocab, cased, 300d vectors, 2.03 GB download)
DWY100K:直接用预先训练好的词向量来初始化节点。

使用实体名称初始化节点特征的模型GMNN和RDGCN显著优于其他基于结构的模型,说明实体名称在实体对齐中会提供重要信息
虽然RDGCN使用对偶关系图来建模复杂的关系信息,但它没有解决邻域异构的问题。GMNN收集所有的单跳邻居来为每个实体构建主题实体图,但由于并非所有的单跳邻居都有利于实体对齐,其策略可能会引入噪声。



在-SDBP15KZH−EN上,所有模型都表现出更低的性能。因为该数据集的邻域质量可能较差,较大的采样规模会引入更多的噪声。另一方面,JA-EN和FR-EN数据集中的邻居可能提供更多的信息。因此,NMN对这两个数据集的抽样大小不敏感。
实验复现
硬件环境:
CPU:Intel i7-8700K
软件环境:
Ubuntu 16.04
Python 3.5
Tensorflow 1.14.0
| 迭代次数 | 300 | 300 | 300 | 300 | 300 |
|---|---|---|---|---|---|
| 最大邻居数 | 25 | 20 | 50 | 50 | 50 |
| 实体嵌入维度 | 300 | 300 | 300 | 300 | 300 |
| 激活函数 | ReLU | ReLU | ReLU | ReLU | ReLU |
| 每个实体的负例数 | 30 | 25 | 25 | 50 | 50 |
| 种子集比例 | 30% | 30% | 30% | 30% | 30% |
| 候选实体个数 | 5 | 5 | 5 | 5 | 5 |
| 学习率 | 0.01 | 0.01 | 0.001 | 0.001 | 0.005 |
| 采样邻居个数 | 5 | 5 | 4 | 4 | 4 |
| β | 0.1 | 0.1 | 0.1 | 0.1 | 0.1 |
| 大致收敛代数 | 60~70 | 150 | 280 | 未收敛 | 100 |
| Hits@1 | 71.02% | 68.93% | 69.92% | 70.07% | 71.54% |
| Hits@10 | 84.65% | 84.24% | 82.73% | 82.91% | 84.91% |
