Advertisement

(ConvE)Convolutional 2D Knowledge Graph Embeddings

阅读量:


论文地址:https://arxiv.org/pdf/1707.01476.pdf


一、研究领域

知识图谱受限于知识构建方式的不足,常常伴随着不完备的特点,因此需要知识推理和补齐技术,来根据已有的事实来合理推断出新的事实以补充知识图谱,使其更完备。链路预测任务是知识推理和补齐技术的主要手段,用于预测知识图谱中的实体之间是否存在缺失的关系边,从而达到扩充知识图谱的目的。 本文提出的正是应用于知识推理链路预测任务的学习模型——ConvE。


二、论文动机

知识图谱可以包含百万数量级的事实三元组,因此为了应用到实际的生活场景上,链路预测器应该能以合理的方式扩展规模并且保持合适的参数量和计算复杂度。为了解决大规模应用的问题,链路预测模型总是由简单的操作组成,如内积和嵌入空间上的矩阵乘法,以及使用有限的参数,DistMult就是这样一种模型。使用这种简单、浅、快的模型使得其可以扩展到大规模知识图谱上,但付出了模型表达力不足、学习特征能力不足的代价。

在浅层模型中增加特征数量使得模型更具表达力的唯一方法就是增加embedding的维度,但是这样做又会使得其不能扩展到大规模知识图谱上, 因为嵌入参数的总数与知识图谱中实体和关系的数量是成正比的。例如,像DistMult这样的浅模型,当embedding的维度为200时,会使得应用到Freebase时需要33GB的内存来储存它的参数。

为了学习到更多的特征而又不增加embedding的大小需要使用多层的模型,然而,先前的多层知识图谱嵌入架构通常使用全连接层,这使得它们容易过拟合。解决以上问题的方法是使用可以组成深度网络的参数高效、快速的算子。 现在考虑卷积(convolution) 这个操作,常见于CV领域,它具有参数高效、计算快速的优点,并且由于其广泛的使用,当训练一个多层卷积网络的时候,有效解决它过拟合问题的方法也很多。因此,本文希望提出一个在embedding上使用二维卷积来实现链路预测的模型。


三、方法设计

1. 1D vs 2D

首先,选用二维卷积而不是一维卷积的原因是,对于知识图谱而言,二维卷积比一维卷积更具表达力,通过捕获嵌入之间额外的交互点可以获得更多的信息。例如,考虑以下的例子:

我们连接两行一维的嵌入,维度n=3 的 a,b

显然,我们使用一维卷积操作,对嵌入之间交互信息的捕捉显得不足。当使用1×3 的窗口时,得到的结果维度为 1×4 ,并且某些时刻窗口内的交互效果不好。

我们再来考虑二维卷积,考虑连接(如堆叠)两行二维嵌入,维度为m×n ,当 m=2,n=3 时得到,

当采用二维卷积时,假设窗口大小为3×3 ,则得到的结果为 2×1 的结果,并且直观地可以感受到交互效果更好,特别地将其扩展到交互模式时:

在这种情况下,一个二维卷积操作能够模拟更多的嵌入之间的交互。因此,与一维卷积相比,二维卷积能够提取两个嵌入之间更多的特征交互。同时这种原理可以扩展到更高维度的卷积, 但是本文只考虑二维卷积操作。


2. 神经链路预测器

神经链路预测模型可以被看作是一个包含编码部分和打分部分的多层神经网络 ,给定输入的三元组**(s,r,o)** ,编码部分会将实体分别映射成相对于的表示嵌入e_{s} ,e_{o} 。而对于打分部分,两个实体的嵌入会被打分函数进行打分以调整训练。下图总结了几种链路预测模型的打分函数:


3. 二维卷积知识图谱嵌入

在此,我们提出一个神经链路预测模型,其中输入实体和关系之间的交互信息是由卷积和全连接层建模的,这个模型主要特征是打分函数是由二维嵌入上的卷积定义的, 架构图如下:

直观地,打分函数定义如下:

其中,r_{r}n R^{k}是一个依赖于关系 r 的关系参数, ar{e_{s}},ar{r_{r}} 代表 e_{s},r_{r} 的二维reshape,相应地,如果 e_{s},r_{r}n R^{k},那么 ar{e_{s}},ar{r_{r}}n R^{k_{w}imes k_{h}} ,此时 k=k_{w}imes k_{h} ; ∗ 表示卷积操作。

如上图和打分函数所示,模型连接 ar{e_{s}},ar{r_{r}}使其作为二维卷积层的输入,卷积层的滤波器为 ω ,这一层回返回一个特征图张量 au n R^{cimes mimes n},这个 c 表示维度为 m 和 n 的 2D 特征图的数量。这个张量随后被reshape成一个向量 vec n R^{c m n} 。然后该向量通过矩阵 Wn R^{kimes cmn}参数化的线性变换将其投影到 k 维空间中,并通过内积匹配对象嵌入 e_{o}

为了训练模型参数,我们使用逻辑递归sigmod函数 σ 来打分,即 p=igma ,并使用以下二元交叉熵损失来最小化 以训练模型:

上式中, 对于1-1的打分, t 是维度为 R^{1imes 1} 的标签向量,而对于1-N(后续会介绍)的打分,维度为 R^{1imes N}对于向量 t 的组成,如果实体之间存在关系则为1,否则0。 对于训练过程中使用的减少过拟合和优化训练的方法如dropout、Adam、标签平滑等等,不作叙述,详见论文。


4. 链路预测任务的快速评估

在我们的架构中,卷积消耗了大约75-90%的总计算时间,故最小化卷积操作量来尽可能的加快计算速度是很有必要的。对于链路预测模型而言,总是通过提高batch的大小来加快评估的速度。然而,这种操作在卷积模型中是不可行的,因为增加batch的大小会迅速超过当前的GPU内存容量可承受范围。

其他链路预测模型一般通常将一个预测表示为一个三元组(头实体,关系,尾实体),然后对其打分(1-1打分),而我们的模型跟它们不一样,我们取头实体和关系作为一对——(头实体,关系),然后同时让其与其他所有实体进行打分(1-N打分)。

在基准数据集上的测试表明,对于评估时间性能,采用1-N打分相较1-1打分提升了大概300倍,这是相当可观的提升。另外,这种方式可以扩展到大规模知识图谱并且提高收敛速度。如果我们不适用1-N打分,而是使用1-0.1N打分,即对百分10的实体进行打分,我们在前向-反向的过程计算性能可以提升百分25。然而,我们在训练集上的收敛速度大约慢了百分230!因此,1-N打分有个类似于batchnorm的作用,我们牺牲了一些计算性能来换取收敛速度的大量提升的同时也得到了更好的实验结果(见后续实验部分)。

同时,我们注意到这种1-N打分技术可以一般化地拓展到其他1-1打分模型上,这个加速训练和评估的trick可以应用到任何1-1打分模型上,比如大多数的链路预测模型。


四、实验验证

1. 数据集相关

一些研究者注意到数据集WN18和FB15K遭受了测试数据泄露——大量的测试三元组可以通过简单逆转训练集三元组来得到,例如当训练集中存在(o,r,s)三元组时,测试集中存在(s,r,o)三元组,并且这种例子的数量很大。 然而,他们没有注意到这个问题的严重性,这种测试机组成意味着可以通过简单的基于取逆三元组规则的模型来获得最好的实验结果,但是这些模型没有解决实际问题,仅仅通过简单取逆规则就可以达到SOTA水准,我们因此提出了这样一个基于取逆规则的简单模型来证明这个问题的严重性。 同时,之前的研究者只提出了FB15K的改进版——FB15K-237,所以我们也提出了一个改进版的WN18——WN18RR数据集,这个改进版的数据集无法通过简单的取逆规则来完成链路预测任务。


2. Inverse Model

如前文所述,测试集和训练集中的大量数据互为逆关系使得一些模型可能只是学习了这种相反的关系从而获得了最好的效果,而不是事实上真的建模了整个知识图谱的信息,因此为了验证这个问题的严重性,我们提出了一个简单的,基于规则的,只是仅仅将测试集中的数据取逆的一个模型— —我们称其为Inverse Model。并且使用这个模型一起进行后续相关实验。


3. 结果

同等效果时,ConvE相比DistMult具有更少的参数

原始数据集上的链路预测任务

改进后的数据集上的链路预测任务

可以看到,仅仅基于取逆规则的简单反向模型Inverse Model却在原始数据集上取得了非常好的效果,当应用到改进后的数据集后,Inverse Model的效果非常差。同时,总体上ConvE在两种数据集的实验上都取得了最好的效果。

ConvE在YAGO3-10数据集上取得了最好的效果,在国家数据集中完美解决了S1和S2任务,同时在S3任务上取得了最好的效果。


五、总结展望

本论文的贡献如下:

(1)提出了一个简单的,有竞争力的二维卷积链路预测模型——ConvE

(2)提出了1-N打分方法以加快训练速度3倍和评估速度300倍

(3)模型具有更好的参数效率,比DistMult和R-GCN都要好很多

(4)论文提出的模型与其他浅的模型的性能区别随着知识图谱复杂度的增加而成比例增加

(5)验证了测试数据集泄露的严重性,同时提出了一个改进版的数据集

(6)对ConvE和先前其他最好的模型做了评估,ConvE取得了SOTA效果

论文提出的二维卷积链路预测模型——ConvE的可解释性相比complEx那种由数学推导出来的模型显得不足,这也是深度学习的一个通病,模型主要是将当时在CV如日中天的CNN的东西拿来KG上用,这种”拿来主义“也是一种方向,特别是基于现在多模态的趋势。

全部评论 (0)

还没有任何评论哟~