作者丨王文博
学校丨哈尔滨工程大学硕士生
研究方向丨知识图谱、表示学习
动机
尽管大规模的知识图谱已经包含了数十亿级别的三元组数据,但是仍然不是十分完备的。其中仍然存在未被发掘出的真实有效的三元组。因此,本文提出许多嵌入模型用于学习实体和关系的向量表示,以达到通过预测三元组是否有效来完善知识图谱的目的,同时本文作者发现也可以利用上述模型,以(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} 有一个输出向量。将输出向量