代码地址:https://github.com/daiquocnguyen/CapsE
摘要
本文提出一种嵌入模型,名为CapsE,用胶囊网络建模三元组关系。
用一个三列的矩阵表示每个三元组,每列表示三元组(subject, relation, object)中的一个元素。然后将这个三列的矩阵喂给卷积层,用不同的卷积核生成不同的feature map,输入胶囊网络进行打分操作。有效的三元组分数很高,无效的三元组分数很低。
动机
1.大多数KG embedding模型都是为给定三元组的相同维度上的条目建模而构造的,中每个维度几乎都捕获了实体的一些特定于关系的属性。然而,现有的模型中没有一个具有用于在相同维度上对三元组中的条目进行建模的“深度”结构。
To the best of our knowledge, however, none of the existing models has a “deep” architecture for modeling the entries in a triple at the same dimension.
CapsE模型
符号描述
v s , v r , v o v_s,v_r,v_o vs,vr,vo分别为(subject, relation, object)的k维embedding。
在CapsE中,将每个embedding三元组 [ v s , v r , v o ] [v_s,v_r,v_o] [vs,vr,vo]作为一个矩阵 A = [ v s , v r , v o ] ∈ R k × 3 \mathbf{A}=[v_s,v_r,v_o] \in \mathbb{R}^{k\times3} A=[vs,vr,vo]∈Rk×3;
A i , : ∈ R 1 × 3 \mathbf{A}_{i,:}\in\mathbb{R}^{1\times3} Ai,:∈R1×3表示矩阵 A A A的第 i i i 行;
卷积层使用 w ∈ R 1 × 3 w\in\mathbb{R}^{1\times3} w∈R1×3的卷积核,使用该卷积核重复对 A A A的每一行做卷积操作,生成feature map q = [ q 1 , q 2 , . . . , q k ] ∈ R k \mathbf{q}=[q_1,q_2,...,q_k]\in\mathbb{R}^k q=[q1,q2,