system: [SYSTEM]

user: 2. 基于知识指导的短文本情感分析胶囊模型 本节将介绍论文的主要创新点，一种全新的短文本情感分析模型——基于知识指导的短文本情感分析胶囊模型(guided Sentiment Analysis Model based on Capsule neural network， SAMCAT)。 SAMCAT采用胶囊神经网络关于胶囊神经元节点的设计思想，首次提出利用胶囊神经元的方向属性构建文本极性特征。该创新主要有两点优势：1) 继承胶囊神经网络的优点，保留文本中所有位置的方向信息，确保信息的完整性不被破坏；2) 将方向属性与明确特性相结合，便于引入文本极性知识对建模过程的指导，实现对参数学习空间的约束。SAMCAT模型可以显著提升情感建模能力，实现更好的建模效果。 以下小节将详细介绍SAMCAT的框架以及各个部分内容的设计。2.1小节将从整体介绍SAMCAT的实现架构；2.2小节介绍如何通过胶囊神经元表示极性特征空间，以及如何通过SAMCAT构建文本中的短语的胶囊神经元编码。2.3小节中介绍如何将短语编码汇总成句子编码，并提出了一种新型的胶囊神经元激活函数——阶梯函数。2.4小节主要介绍SAMCAT的损失函数设计，并回答如何引入文本极性知识实现对建模过程的指导。 2.1. SAMCAT框架设计 SAMCAT的设计包含从文本输入到情感分类结果输出的完整过程，如图2所示，整体框架由3个部分组成：1) 短语编码部分将文本中的短语编码成胶囊神经元向量形式；2) 句子编码将短语胶囊神经元向量由特征激活空间映射到极性特征空间，并通过矢量加和以及非线性激活运算得到句子胶囊神经元编码；3) 分类及极性指导部分将句子胶囊神经元作为输入，分别对其方向和编码内容与正确结果进行对比分析，计算预测结果的损失值，其中对句子编码内容通过构建简单分类器得到文本情感极性的概率分布，预测结果的损失值将最终指定模型的收敛方向。 图2. 句子极性示例 2.2. SAMCAT短语编码与极性特征空间 短语编码部分由三层神经网络组成，分别是词向量嵌入层、卷积压缩层和胶囊初始层。 SAMCAT使用中文词向量模型 [ 15 ] 初始化嵌入层参数 D ∈ R d × V ，通过查表将分好词的文本短语转化为向量列表 S = ( v 0 ， v 1 ， ⋯ ， v L − 1 ) ， S ∈ R d × L ， v ∈ R d ，其中d表示词向量的维度，V表示中文词向量的词汇数量，L表示模型最大输入短语长度。 卷积压缩层对词向量嵌入层输出的向量列表进行上下文信息收集和维度压缩处理，通过定义m维卷积核函数组 F = ( f 0 ， f 1 ， ⋯ ， f m − 1 ) 进行卷积运算可以得到m维的压缩向量编码，如式(1)所示。 p i = ∪ f c + ( v i : i + x c ) (1) 其中， f c 表示第c个卷积核函数， x c 表示第c个卷积核的上下文宽度，⨄运算符号表示将所有卷积计算结果级联在一起。卷积压缩层得到的压缩向量编码仍为多个传统的神经元表示，无法参与胶囊神经元运算。 SAMCAT设计胶囊初始层对压缩向量编码进行胶囊化，并可以根据胶囊个数进一步压缩特征空间维度。胶囊初始层通过卷积运算将m维压缩向量编码进一步投射到低维空间 q i = ∪ f c + ( p i ) ， q i ∈ R n ， ∀ n < m ，由相邻两个神经元组合构成一个胶囊神经元，最终得到多个胶囊神经元表示的短语编码 q i ̀ = ( ( q i ( 0 ) ， q i ( 1 ) ) ， ( q i ( 2 ) ， q i ( 3 ) ) ， ⋯ ， ( q i ( n − 2 ) ， q i ( n − 1 ) ) ) 。 以上我们提出极性特征空间的概念，极性特征空间可以用于描述各种极性特征，其本质为一个二维矢量空间。任意一种极性都可以通过空间中由原点出发指向任一方向的矢量进行描述，矢量的方向和模长分别表示极性方向和极性程度，因此可以通过胶囊神经元模拟极性空间中的矢量。 2.3. SAMCAT句子编码与阶梯函数 句子编码通过胶囊路由层完成，其中主要运用到动态路由算法，其主要运算单元为迁移矩阵单元和胶囊激活函数单元。句子编码的输入为展平后的短语编码，如式(2)所示。 Q ˜ = ( ( q 0 ( 0 ) ， q 0 ( 1 ) ) ， ⋯ ， ( q i − 1 ( n − 2 ) ， q i − 1 ( n − 1 ) ) ， ( q i ( 0 ) ， q i ( 1 ) ) ， ⋯ ， ( q L − 1 ( n − 2 ) ， q L − 1 ( n − 1 ) ) ) (2) 对 Q ˜ 中的所有胶囊神经元，并不属于真正意义上的胶囊神经元，通过2.2节中的构成方式可以得知，其本质仍为卷积运算后激活函数的产物，我们将这一激活函数的输出结果表示的空间称为特征激活空间。通过将特征激活空间变换为极性特征空间，需要引入空间变换矩阵，在胶囊神经网络中称为迁移矩阵。SAMCAT使用共享权重的迁移矩阵 W s ∈ R 2 × 2 将 Q ˜ 中的胶囊神经元映射至极性特征空间中，得到极性短语编码 A = ( a 0 ， a 1 ， ⋯ ， a z ) ， z = L ∗ n ，其中 u i ∈ ∪ 0 ≤ j < L ， 0 ≤ k < n ( q j ( k ) ， q j ( k + 1 ) ) 。句子编码过程直接采用短语编码的矢量加权平均完成，通过多次动态路由迭代逼近，最终句子编码将表现出主体短语极性的综合特征，为了得到极性程度的概率表示，我们约定极性程度的有效区间为(0， 1]。 胶囊激活函数可以将胶囊神经元的模长映射到有效区间内。胶囊激活函数的另一个作用是增加非线性运算，增加模型对非线性特征的抽取能力。传统胶囊神经网络采用压缩函数作为胶囊激活函数，压缩函数的确可以实现上述关于非线性和区间化的功能，然而压缩函数作为激活函数本身有两点明显的缺陷：1) 对于任意非零输入都有非零输出，通过求和操作会放大激活噪声；2) 需要输入为无穷大时才能实现准确激活( ‖ x ‖ = 1 )。上述两种缺陷限制了模型对数据的学习效果。 本文提出一种新型胶囊神经元激活函数——阶梯函数，如式(3)所示。 step ( x ) = min ( k ∗ max ( ‖ x ‖ − β ， 0 ) ， α ) x ‖ x ‖ ，     k = 1 1 − β (3) 其中 α 为激活状态上限， β 为激活触发点，k为激活斜率。 ( β ， < α k ] 为胶囊神经元的激活区间，当输入等于 α k 时，激活状态达到饱和。这一区间的另一特性是更新梯度为定值 。 ( 0 ， β ] 为未激活区间，胶囊神经元节点无法被激活，通过设定状态激活门限可以控制神经元激活状态的稀疏性，避免了非激活状态对结果的叠加影响。 为稳定激活区间，到达稳定激活区间表示该激活状态不会受到梯度更新的影响，加强模型的稳定性。 2.4. 分类器与极性导向损失函数 SAMCAT采用多层感知机结构作为分类器模型，输入句子胶囊神经元编码，输出情感极性分类分布，采用交叉熵损失函数计算分类输出结果，并最终通过后向传播优化所有模型参数。 极性导向损失函数是一种基于极性知识指导的损失计算函数，如式(4)所示，由两项构成：左项为余弦距离表达式，右项为 γ -交叉熵损失。通过余弦距离表达式可以计算出句子输出极性和真实情感极性的相似程度。输入 x ^ 为3.3节输出的句子编码， y ^ 为真实极性标签。 x 为极性预测分布， y 为真实极性分布。 loss ( x ^ ， y ^ ， x ， y ) = x ^ ⋅ y ^ / ‖ x ^ ‖ ‖ y ^ ‖ − γ x ⋅ log ( y ) (4) 我们可以合理假设积极情绪在极性空间中表示为(0， 1)，对应消极情绪在极性空间中的表示(0， −1)，利用正负极情感极性对立的知识完成极性建模指导。