Advertisement

2019_NAACL_A Capsule Network-based Embedding Model for Knowledge Graph Completion and Search Persona

阅读量:

代码地址:https://github.com/daiquocnguyen/CapsE

摘要

该研究提出了一种嵌入模型CapsE,并利用胶囊网络对关系进行建模。具体而言,在每个由subject、relation和object组成的三元组被表示为一个包含三个元素(subject向量、relation向量和object向量)的矩阵后,在其基础上进行进一步处理:接着将此三维矩阵输入到卷积层中,在经过不同类型的卷积核提取出多样化的特征图后作为输入传递给capsule网络完成评估操作:最终实验结果表明具有显著意义的triple能够获得较高的评分值而相对不重要的triple则会得到较低的评分值

动机

大多数KG嵌入模型是针对三元组中各维度上的条目进行构建的,并且每个维度基本上都捕捉到了实体与关系之间的一些特性。然而,在现有模型中,并没有任何一种架构能够以同一维度对三元组中的各个条目进行深入建模。
The existing models, according to our understanding, do not incorporate any architecture that enables deep modeling of triple entries across all dimensions.

CapsE模型

符号描述

在CapsE模型中,默认地将每个嵌入三元组\left[v_{s}, v_{r}, v_{o}\right]作为一个矩阵\boldsymbol{A} = \left[v_{s}, v_{r}, v_{o}\right] \in \mathbb{R}^{k \times 3};其中,
\boldsymbol{A}_{i,:} \in \mathbb{R}^{1 \times 3}被定义为矩阵\boldsymbol{A}中的第i行;
接着,在卷积层中采用一个宽度为1且高度为3的一维卷积核(即权重向量)\omega = w, 其大小符合输入数据的高度维度要求;
随后利用该卷积核依次作用于矩阵\boldsymbol{A}中的每一行,
从而得到特征图\boldsymbol{q} = [q_1, q_2, ..., q_k]^\top \in \mathbb{R}^k, 其中每一个特征q_i = g(\omega \cdot \boldsymbol{A}_{i,:} + b)
这里,
点乘运算符"\cdot"用于计算内积,
b ∈ ℝ代表偏置项,
而函数"g"则被选作非线性激活函数(如ReLU)。
这样一来,
每一轮卷积操作都会生成一个k-维特征向量。
为了提高模型性能,
本文采用了多个不同参数配置下的卷积核集合Ω,
其总数量记作N=|Ω|;
由此可知,
整个网络架构最终会产出N个独立的k-维特征向量。

模型架构

在这里插入图片描述
卷积层:

输入 :矩阵A=[v_s, v_r, v_o]\in\mathbb{R}^{k\times3},此例中k=4
卷积核N个卷积核w\in\mathbb{R}^{1\times3},此例中N=5
激活函数 :ReLU,有q_i=g(w\cdot\mathbf{A}_{i,:}+b)
输出:一个feature map表示为 \mathbf{q}=[q_1,q_2,...,q_k]\in\mathbb{R}^{1\times k},此例中k=4,共4维,共5个fearture map。

第一层胶囊层:

由四个capsule构成
输入:共有五个特征图(feature maps),每个特征图均可表示为 \mathbf{q} = [q_1, q_2, \ldots, q_k] \in \mathbb{R}^k
输出:输出向量 \mathbf{u} = [u_1, u_2, \ldots, u_k] 满足条件:对于每个 i 来说,\mathbf{u}_i 属于 \mathbb{R}^{N \times 1} 空间

Routing process:

向量 \bm u 被定义为 [u_1, u_2, ..., u_k]^T
由矩阵 \bm W_i ∈ ℝ^{d×N} 与向量 \bm u_i ∈ ℝ^{N×1} 相乘得到的结果是一个新的 d × 1 列向量 \hat{\bm u}_i ∈ ℝ^{d×1}
通过加权求和得到的结果向量 \bm s = ∑c_i\hat{\bm u}_i 属于 ℝ^{d×1} 空间。

在这里插入图片描述
第二层胶囊层:

输入\mathbf{s}=\sum_ic_i\hat{\mathbf{u}}_i\mathbf{s}\in\mathbb{R}^{d\times1};
输出\mathbf{e}=squash(\mathbf{s})squash(\mathbf{s})=\frac{||\mathbf{s}||^2}{1+||\mathbf{s}||^2}\frac{\mathbf{s}}{||\mathbf{s}||},耦合系数 c_i 由路由过程决定;

打分函数 用于评估输入三元组的分数,并通过计算输出向量 \mathbf{e} 的长度来确定其得分。其中 f(s,r,o) 表示计算输入三元组 (s,r,o) 的得分。

损失函数 :对数损失函数,在KG embedding中很常见。

在这里插入图片描述

全部评论 (0)

还没有任何评论哟~