【胶囊网络-CapsNet】Investigating Capsule Networks with Dynamic Routing for Text Classification

版权声明:本文为博主原创文章,转载请注明出处:http://blog.csdn.net/shine19930820 https://blog.csdn.net/shine19930820/article/details/88832920

Investigating Capsule Networks with Dynamic Routing for Text Classification

发表在EMNLP 2018

  1. CNN 在对空间信息进行建模时,需要对特征检测器进行复制,降低了模型的效率
  2. CNN 空间不敏感的方法不可避免地受限于丰富的文本结构(比如保存单词的位置信息、语义信息、语法结构等),难以有效地进行编码且缺乏文本表达能力

Capsule Network 由hinton提出,用神经元向量代替传统神经网络的单个神经元节点,以 Dynamic Routing 的方式去训练这种全新的神经网络,有效地改善了上述两类方法的缺点。

本文是capsNet在文本分类上的应用,并针对文本分类任务提出了三个策略减少背景或者噪音胶囊对网络的影响。

  1. Orphan Category:在胶囊网络的最后一层,引入 Orphan 类别,它可以捕捉一些背景知识,比如停用词。在视觉任务加入 Orphan 类别效果比较有限,因为图片的背景在训练和测试集里往往是多变的。然而,在文本任务,停用词比较一致,比如谓词和代词等。
  2. Leaky-Softmax:除了在最后一层引入 Orphan 类别,中间的连续卷积层也需要引入去噪机制。对比 Orphan 类别,Leaky-Softmax 是一种轻量的去噪方法,它不需要额外的参数和计算量。
  3. 路由参数修正:传统的路由参数,通常用均与分布进行初始化,忽略了下层胶囊的概率。相反,我们把下层胶囊的概率当成路由参数的先验,改进路由过程。

在 6 个 benchmarks 上进行了实验,Capsule Network 在其中 4 个中取得了最好结果。

同事,在多标签迁移的任务上(fromsingle-label to multi-label text classification),Capsule Network 的性能远远地超过了 CNN 和 LSTM

Model

模型包含四层,

  1. N-gram convolutional layer
  2. primary capsule layer
  3. convolutional capsule layer
  4. fully connected capsule layer

N-gram convolutional layer

这是标准的卷积层,对于每一个卷积,窗口大小 K 1 × v K_1\times v
m i a = f ( x i : i + K 1 1 W a + b 0 ) m^a_i = f(x_{i:i+K_1-1} \circ W^a + b_0)
其中, x R L V , x i R V , W a R K 1 v , m a R L K 1 + 1 x \in R^{L*V}, x_i \in R^V, W^a \in R^{K_1*v}, m^a \in R^{L-K_1+1} ,V是词向量维度。

卷积核通道数为B,卷积层输出:
M = [ m 1 , m 2 , . . . m B ] R ( L K 1 + 1 ) × B M = [m_1, m_2,... m_B] \in R^{(L-K_1+1) \times B}

primary capsule layer

第一层胶囊网络。
p i = g ( W b M i + b 1 ) g ( s j ) = s j 2 1 + s 2 s j s j p_i = g(W^bM_i + b_1) \\ g(s_j) = \frac{||s_j||^2}{1+||s||^2} \frac{s_j}{||s_j||}
其中: W b R B × d , M i R B , i ( 1 , L K 1 + 1 ) W^b \in R^{B \times d}, M_i \in R^{B}, i \in (1, L-K_1+1) ,g是squash函数。

通道数设置为C,即:
P = [ p 1 , p 2 , . . . P C ] R ( L K 1 + 1 ) × C × d P = [p_1, p_2, ...P_C] \in R^{(L-K_1+1) \times C \times d}
最终输出为 ( L K 1 + 1 ) × C (L-K_1+1) \times C 个维度为d的胶囊。

Child-Parent Relationships

在胶囊网络层之间就会存在Child-Parent关系,本文尝试了两种transformation。

  • 共享权重,对于每一个parent胶囊,共享权重 W j t 1 W^{t_1}_j
    • u ^ = W j t 1 u i + b j i \hat{u} = W_j^{t_1} u_i + b_{j|i} ,其中 u i u_i 是每个child-capsule。
    • 参数量: N d d N*d*d
  • 非共享权重,对于每一个parent胶囊j,child胶囊i,有
    • u ^ = W j i t 1 u i + b j i \hat{u} = W_{j|i}^{t_1} u_i + b_{j|i}
    • 参数量: H N d d H*N*d*d ,parent胶囊N个,child胶囊H个。

Dynamic Routing

通过动态路由算法学习获得child胶囊对parent胶囊的权重,动态的加强或减弱权重,优于会丢失位置信息的max pooling算法。同事本文针对文本分类任务提出了三个策略优化CapsNet:

  1. Orphan Category:在胶囊网络的最后一层,引入 Orphan 类别,它可以捕捉一些背景知识,比如停用词。在视觉任务加入 Orphan 类别效果比较有限,因为图片的背景在训练和测试集里往往是多变的。然而,在文本任务,停用词比较一致,比如谓词和代词等。

  2. Leaky-Softmax:除了在最后一层引入 Orphan 类别,中间的连续卷积层也需要引入去噪机制。对比 Orphan 类别,Leaky-Softmax 是一种轻量的去噪方法,它不需要额外的参数和计算量。

  3. 路由参数修正:传统的路由参数,通常用均与分布进行初始化,忽略了下层胶囊的概率。相反,我们把下层胶囊的概率当成路由参数的先验,改进路由过程。

在这里插入图片描述

原始Dynamic Routing:

在这里插入图片描述

convolutional capsule layer

fully connected capsule layer

猜你喜欢

转载自blog.csdn.net/shine19930820/article/details/88832920