查看原文
其他

NAACL 2019开源论文:基于胶囊网络的知识图谱完善和个性化搜索

王文博 PaperWeekly 2022-03-17


作者丨王文博

学校丨哈尔滨工程大学硕士生

研究方向丨知识图谱、表示学习




动机


尽管大规模的知识图谱已经包含了数十亿级别的三元组数据,但是仍然不是十分完备的。其中仍然存在未被发掘出的真实有效的三元组。因此,本文提出许多嵌入模型用于学习实体和关系的向量表示,以达到通过预测三元组是否有效来完善知识图谱的目的,同时本文作者发现也可以利用上述模型,以(submitted query, user profile, returned document) 的形式作为三元组,解决个性化搜索问题。故本文编写的动机基于以下两点:


之前对于三元组建模的有效性的研究仅仅单独关注于知识图谱的完备性或个性化搜索的准确性。但是本文将模型同时用于上述两个问题,来衡量本模型的有效性。


传统嵌入模型如 TransE、DISTMULT 和 ComplEx 都只是通过向量间的加法、减法以及乘法运算,故只能捕捉到向量之间的线性关系。尽管现在越来越多的研究集中于运用深度神经网络来解决三元组的预测问题,如 ConvE,假设通过对三元组向量同一维度上的数据进行分析,可以捕捉到该三元组中头实体与尾实体在某一特定关系下的特定属性信息。因此,大多此类模型采用对三元组同一维度信息进行建模的方法。但是还没有一个模型对同一维度的三元组信息采用深度结构进行建模

CapsE模型


ζ 表示真实三元组的集合,其中三元组以 (s,r,o) 形式表示。构建嵌入模型的目的是定义一个得分函数,对每一个三元组进行打分,使得真实的三元组的得分高于虚假三元组的得分。


分别用独立地表示 s、r 和 o 的嵌入向量。在 CapsE 模型中将三元组的嵌入向量组合成的形式,并将其看作一个矩阵。用符号表示矩阵 A 的第 i 行。用一个过滤器作用于卷积层,并且将这个过滤器重复地作用于矩阵 A 的每一行以形成一个形式的特征映射。其中:



· 表示点乘,b∈R 是一个偏倚项,g 是一个如 ReLU 一样的非线性激活函数。


CapsE 模型中运用多个过滤器以产生多个特征映射。用 Ω 表示过滤器的集合,并用 N=|Ω| 表示集合中过滤器的数量。因此可以得到 N 个 k 维的特征映射,这其中每一个特征映射都通过从三元组的相同维度上进行映射得到一个特有的特征。


作者通过使用两个独立的胶囊层的简化架构来构建 CapsE 模型。在第一个胶囊层,作者构建了 k 个胶囊,使得所有特征映射向量同一维度上的数据构成一个胶囊。因此,每个胶囊可以捕获嵌入三元组中相应维数的条目之间的许多特征。这些特征被传递到第二层的一个胶囊中来产生一个输出向量,这个输出向量的长度(可以理解为 L1f 范数)就表示这个三元组的得分。


第一个胶囊层由 k 个胶囊组成。每一个胶囊  i∈{1,2,…,k} 有一个输出向量将输出向量  与权重矩阵相乘,并将所有得到的向量加和得到一个向量,将其作为第二个胶囊层中胶囊的输入。在此之后胶囊采用一个非线性压缩函数产生一个输出向量



其中表示耦合系数,是由算法一的路由过程决定的。本文在胶囊层的前一层与后一层之间采用 softmax。算法一如图所示:




如图一所示,在本文提出的模型中,嵌入尺寸 k=4;过滤器数量 N=5;胶囊中第一层的胶囊中的神经元数与 N 相等;第二胶囊层胶囊中的神经元个数为 2:d=2。输出向量 e 的长度作为输入三元组 (s,r,o) 的得分。最终本文定义三元组的得分函数 f 如下:



* 表示卷积操作,capsnet 表示一个胶囊网络操作。本文中采用 Adam 优化器来训练 CapsE 模型以使得损失函数值达到最小。损失函数具体如下:



若 (s,r,o)∈ζ 则 t(s,r,o)=1 若 (s,r,o)∈ζ' 则 t(s,r,o)=-1。


其中 ζ 和 ζ' 分别独立地表示正确的三元组与虚假的三元组。ζ' 是表示由 ζ 中正确的三元组通过打乱结构,随机替换其头实体或者尾实体构成的新的三元组集合。


实验


知识图谱完善评估


数据集


本文中的实验采用数据集 WN18RR 和 FB15k-237。这两个数据集因为剔除了包含可逆关系的三元组,故使这两个数据集更加真实,同时也增大了在这两个数据集上进行实验的难度。




评价方案


通过以下过滤设置进行链路预测:将每一个测试三元组与其他所有未出现在训练集、验证集、测试集中且由该三元组生成的候选三元组进行排名。其中候选三元组通过用实体集合中的其他实体替三元组中原有的换头尾实体生成的三元组。并使用平均排名(MR)、平均到数排名(MRR) 与  Hits@10 作为评价标准。


试验方案


该文章运用 100 维的 Glove 词嵌入模型进行预训练,再在数据集 WN18RR 上训练一个 TransE 模型。并将该 TransE 模型的训练结果作为模型 convKB 与 CapsE 的初始化值。


对于 ConvE 模型参数设置如下:选择 Adam 优化器,学习率设置为过滤器的数量 N 设置为 {50,100,200,400}。当模型获得最高的 Hits@10 时,在数据集 WN18RR 上,N=400,学习率初始值为在数据集 FB15k-237 上,N=400,学习率初始值为


对于 CapsE 模型,进行参数设置如下:嵌入向量维度设为 100;批量尺寸设置为 128,胶囊中的第二层胶囊的神经元个数 d 设为 10;路由算法的迭代次数设置为 {1,3,5,7}。当模型获得最高的 Hits@10 时,在数据集 WN18RR 上,m=1, N=400, 学习率初始值为在数据集 FB15k-237 上,m=1,N=50,学习率初始值为


主要实验结果



CaspE 模型在数据集 WN18RR 上获得了最好的 MR,在数据集 FB15k-237 上获得了最好的 Hits@10。以下主要分析了在数据集 FB15k-237 上模型 ConvKB 与模型 CapsE 分别对头尾实体进行预测时 MRR 和 Hits@10 的值。


在本文中作者通过如下方法对关系进行分类:


将给定关系 r 上的每个尾实体对应的头实体个数的平均值记为将给定关系 r 上每个头实体对应的尾实体个数的平均值记为


  • <1.5 且 <1.5,r 为 1-1 关系

  • <1.5 且 <1.5,r 为 1-M 关系

  • <1.5 且 <1.5,r 为 M-1 关系

  • <1.5 且 <1.5,r 为 M-M 关系


从上述结果图中可以得出如下实验结论CapsE 在对 M 端实体进行预测时会得到比 ConvKB 更好的实验结果;ConvKB 在对 1 端实体进行预测时会得到比 CapsE 更好的实验结果。


对此结果进行分析,由于第一层中每一个胶囊的方向和长度有助于对处于相同维度的数据条目进行建模的,使得 CapsE 模型在对实体出现频率较低的 M 端进行预测时效果优于实体出现频率较高的 1 端。而现有模型 DISTMULT,ComplEx 与 ConvE 在对实体出现频率较高的 1 端具有较好的预测效果。以上便是 CapsE 模型能够在数据集 FB15k-237 与数据集 WN18RR 上取得更好预测效果的原因。


路由迭代的实验结果:本文作者还研究了路由迭代次数对模型效果的影响。得出在其他参数不变的情况下将迭代次数设置为 1 时,可以使得对应模型得到最佳的实验结果。


这表明了知识图谱与图像问题的不同。在图像分类任务中,将迭代次数 m 设置为大于 1 的数有助于更准确地捕捉图像中实体的相对位置。但是相反,由于知识图谱中同种关系不同实体间变化的多样性,这种基于图像的思想仅仅对知识图谱中的 1-1 关系可以进行正确的处理,但并不适用于处理 1-M,M-1 和 M-M 关系。


个性化搜索应用


个性化搜索:指在给定一个用户(user),一个该用户的查询关键词(query)后搜索系统对与该查询关键词相关的文件进行重排序所返回的结果文件(document)。并且,在上述排序过程中与该用户和该用户给出的查询关键词越相关的文档越应该获得更好的排序结果。基于下述两点原因使得 CapsE 模型可以用于完成个性化搜索任务:

  • 上述问题转化为用三元组 (query,user,document) 的形式来捕捉在给出一个查询关键词的情况下用户对返回文档的感兴趣程度。

  • 由于 CapsE 在对 M 端实体进行预测时,具有极佳表现的特点,使得该模型在预测三元组(query,user,document) 的多端,即 document 端也可以获得更好的预测结果。


数据集


作者运用一个由大规模 web 搜索引擎中 106 个用户查询日志集合(SEARCH17)作为实验数据集。该数据集中包含对于一个用户,一条查询返回的 10 个最优结果,以及用户对于这些结果的停延时间。将这些返回的文档中用户点击过的文档,或者停留超过 30 秒的文档打上标签 relevant, 并将返回的最优的 10 个文档中剩余的其他文档打上标签 irrelevent。通过具有标签 relevent 的文档的位置来对搜索结果进行评价。


将数据集并将数据集分割成训练集、验证集、测试集,以达到运用训练集中的历史数据对测试集中的新数据进行预测的目的。训练集、验证集和测试集分别由 5658,1184 和 1210 个相关三元组构成,由 40239,7882,8540 个不相关三元组构成。


评价方案


模型 CapsE 通过如下的方式对搜索引擎返回的原始文件列表进行重新排序:


1. 训练 CapsE 模型,并运用训练好的模型计算每一个三元组 (s,r,o) 的得分。

2. 将评分进行降序排列,以此作为新的返回文件列表中文件的顺序。


运用指标 MRR 与指标 Hits@1 作为评价标准。这两个指标数值越大,证明模型效果越好。


在本文中,作者将 CapsE 与以下五个模型进行对比:


  • SE: 搜索引擎最初采用的排序系统。

  • CI:将先前的点击事件返回的文件作为个性化引导的方法。

  • SP: 充分运用基于对话的用户画像的个性化搜索方法。

  • TransE: 在完成个性化搜索任务具备很强能力的模型。

  • ConvKB: 一个基于 CNN 的模型,并且与本文中的模型十分相似。


初始化嵌入


在查询日志中提取关于带有相关标签的文件的 200 个话题,用于训练一个 LDA 话题模型。运用训练好的 LDA 模型推断每一个返回文件的话题在所有话题中的概率分布。并运用每一个文件的话题占比向量作为每个文件的嵌入向量,对文件进行向量化表示(假设共 200 个话题,即 k=200, 文件 d 的嵌入向量中的第 z 个元素表示:在给定文件为 d 文件的情况下,主题是 z 的概率。)。


同时,作者也将每一次查询表示成一个与主题有关的概率分布向量。具体方法如下:


令集合表示用 q 进行查询时,返回的排名在前 n 的文件(此处 n=10)。


查询语句 q 的嵌入向量的第 z 维数值为:=。其中表示在集合 Dq 中排在第 i 个的文件的指数衰减系数。并且 б 是一个在 0 与 1 之间的衰减超参数(本文中采用 0.8)。


注:在本文实验中为了避免过拟合发生,在对用于模型 TransE、ConvKB 与 CaspE 进行训练的查询短语嵌入向量和文件嵌入向量在整个训练过程中保持不变。


除此之外,由于用户最近的点击事件往往可以反映出用户最近的兴趣的原因,采用对训练集中的被点击文件赋予暂时权重策略以初始化三个嵌入模型的用户画像的嵌入向量。


超参数调优


  • 批量:128

  • 胶囊中第二层胶囊的原子数:10

  • 旋转算法的迭代次数:1

  • 优化器:Adam

  • 学习率:{}

  • 激活函数:ReLU

  • 过滤器个数:{50,100,200,400,500}


当过滤器个数为 400,学习率为 5 时,CapsE 在验证集上的 MRR 的值达到最高;当间距(margin)为 5,l1 范数和 SGD 的学习率为 5 时,TransE 在验证集上 MRR 达到最高;当过滤器数量为 500,优化器 Adam 的学习率为 5 时,ConvKB 在验证集上 MRR 达到最高。


主要结果



与传统学习排序的个性化搜索模型 CI 和 SP 相比,嵌入模型 TransE,ConvKB 与 CapsE 都获得了更好的表现。因此,向搜索算法中扩充三元组嵌入模型可以提高个性化搜索系统的排序质量。如图所示,CapsE 方法获得的 MRR 与 Hits@1 均为五种模型所得结果中的最高值。


总结


这篇论文所采用的方法虽然与 ConvE 十分相似,但是其主要有以下两个亮点之处:


1. 作为第一篇将胶囊网络用于知识图谱完善和个性化搜索的文章,充分利用了胶囊网络可以捕捉到不同特征映射在同一维度上的深层特征的功能,首次针对同一维度信息进行深度结构建模。使得模型可以较好地用于多端预测。


2. 首次将个性化搜索任务与链路预测任务进行结合,将个性化搜索中的用户、查询关键词、返回结果文件转化成三元组的形式,对其进行链路预测问题研究。又由于该三元组属于 1-M 关系问题,所以 CapsE 模型仍然十分有效。



#活 动 推 荐#

 10.31-11.1 北京智源大会 



世界AI看中国,中国AI看北京! 
百位顶级专家,60+前沿报告,10+圆桌论坛与尖峰对话,为你带来内行的AI盛会。荟萃全球顶级学者:John Hopcroft(图灵奖),Michael Jordan(机器学习权威学者),Chris Manning(NLP权威学者),朱松纯(计算机视觉权威学者),张钹、高文、戴琼海和张平文院士等100多位专家。 扫码查看大会详细日程,注册参会时输入优惠码「PAPERWEEKLY」专享7折优惠学生票仅69元(数量有限,先到先得)。




🔍


现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧



关于PaperWeekly


PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。


▽ 点击 | 阅读原文 | 下载论文 & 源码

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存