ProjE: Embedding Projection for Knowledge Graph Completion阅读笔记
- background
- motivation
- model
- experiments
- conclusion
会议:Proceedings of the Thirty-First AAAI Conference on Artificial Intelligence (AAAI-17)
author :
Baoxu Shi and Tim Weninger
University of Notre Dame
Email: {bshi, tweninge}@nd.edu
background
1.图谱的发展,验证信息有效性和填补信息图谱缺失是很重要的
2.已有方法分成两类
2.1 表示学习,使用嵌入到低维向量,如tans系列(transE,transR),使用的是margin-based pairwise ranking loss fuction这个损失函数体现三元组的关系
2.2. 神经网络模型,如(Neural Tensot Network、the Compositional Vector Space Model)组合多层神经网络到现有模型中
存在的主要问题:
1.上述模型只用了一个三元组,路劲单跳的图谱。有个别扩展模型(RTransE,Usunier)实现了2-3跳。但是这些模型都依赖于丰富的输入数据。最重要的是随着路径的增长,模型大小指数型增长。加剧了模型参数已经很高的可伸缩性问题
2.上述模型大部分都不是一个self-contained model,他们或需要预训练的图谱嵌入(RTransE,CVSM),或需要预选择路径(PTransE,RTransE),或需要预计算的每个节点的内容嵌入(DKRL)。虽然TransE和TransH是self-contained的,但是论文的实验也只是用了预训练的TransE的嵌入作为输入
motivation
为解决上述的问题,本文的相关工作提出了四个亮点
提出一个project embedding model for KGC,四部分分别为:
1.将实体的候选集投影到输入数据的目标向量表示
2.使用可学习的组合算子将表示输入数据的嵌入向量组合成目标向量
3.集体优化了候选实体(关系)的集合,使用候选采样解决大数据集合。
4.本模型是一个self-contained 模型在长度为1的边上
对比了几个模型的参数量,本文模型排到了第五位。
model
首先从一个图看下本文提出的模型,本文将补全任务视作排名任务并优化候选实体列表的集体分数。需要将所有的候选实体投影到同一嵌入向量中,为此学习了一个组合运算符,从输入数据中创建目标向量
1.ProjE框架
从图中我们可以看出来,同时输入实体嵌入和关系嵌入,本文将预测任务视作排名问题,将排名top的视作正确实体。为了生成排序列表,将每个实体投影到目标向量中通过两个输入向量组合运算符
现有模型中都是定义一个特定的矩阵运算符联合实体和(或)关系,本文认为在早期不同维度之间的特征没有必要交互,为此本文的组合元素运算符是对角矩阵,其定义为:
其中 DeD_{e}De? 和DrD_{r}Dr?都是k?kk *kk?k的对角矩阵,作为全局实体和关系的权重,bc∈Rkb_{c}\in{R^k}bc?∈Rk,是偏置。
使用了上述组合运算符,我们可以定义为嵌入投影函数为
其中fff和ggg 都是激活函数,Wc∈Rs×kW^c \in{R^{s \times k}}Wc∈Rs×k 候选实体矩阵,bpb_{p}bp?是投影偏置,sss是候选实体的数量,h(e,r)h(e,r)h(e,r) 是分数向量 ,每个元素表示WcW_{c}Wc?中某些候选实体与组合输入嵌入e?re \oplus re?r之间的相似性。
虽然sss相对来说是一个大的数,由于共享了参数,WcW_{c}Wc?是包含实体嵌入矩阵WeW_{e}We?中存在的sss行的候选实体矩阵,简单的说候选实体矩阵没有引入新的变量参数,和TransE,TransR等类似,参数少。
ProjE可以看作神经网络包括组合层和投影层(输出层),举个例子,有一个尾实体lllinois和关系CityOf,我们的任务就是计算么个头实体的分数。
2.损失函数
传统有两种方法获得排序列表,一个是pointwise,一个是listwise。Trans家族使用的是pairwise ranking loss function。因为他们的排名分数是独立计算的,在本质上是pointwise方法,本文提出了两种方法,分别是ProjE_pointwise和ProjE_listwise通过使用不同的激活函数。
2.1 ProjE_pointwise
由于实体的相对顺序和预测无关,为此生成二进制标签向量,其中E?E_{-}E??的分数为0,E+E_{+}E+?分数为1,因为我们最大化似然函数在分数向量h(e,r)h(e,r)h(e,r)和二进制标签向量,凭直觉将本任务视为多分类问题,为此损失函数定义为如上所示。
在式中e,re,re,r是SSS中训练实例的输入嵌入向量,y∈Rsy\in{R^s}y∈Rs是二进制标签向量,yi=1y_{i}=1yi?=1说明候选iii是候选标签,mmm是从负候选分布中的候选采样数目,由于视作了多分类问题,使用sigmoid和tanh激活函数作为g(?)g(·)g(?)和f(?)f(·)f(?)
2.2 ProjE_listwise
使用的是softmax和tanh激活函数
3.候选集采样
虽然限制了参数的数量,但是投影操作还是由于大量的候选实体而花销巨大,为了减少在训练阶段的候选实体数目,需要采样。本文采用Word2Vec中的负采样方法。
对于实体e和关系r以及二进制标签向量y,本文使用所有正候选人计算投影和只有来自PyP_{y}Py?的负候选人的抽样子集,为了简单起见,可以用二项分布替换PyP_{y}Py?。B(1,py)B(1,p_{y})B(1,py?)被所用训练实例共享,pyp_{y}py?是负实体被采样的概率。对于yyy中的每个负候选,我们从B(1,py)B(1,p_{y})B(1,py?)中采样一个值,以确定我们是否将该候选包含在候选实体矩阵WcW_{c}Wc?中。
experiments
做了两个实验,分别是实体预测和关系预测。实验结果从下面两张图可以看出来
conclusion
本文的主要贡献归纳为如下几点
1.将图谱补全工作视为排序问题并将候选实体映射到一个向量上,该向量表示输入的三元组已知部分的组合嵌入,并按降序排列分数向量
2.通过使用listwise ProjE variation 集体优化排名分数向量,可以得到更好的预测表现
3.训练时只采用了路径为1,层数为2的简单结构就将预测结果优于复杂模型
4.当前模型不需要预训练的嵌入和更少的参数量