system: [SYSTEM]

user: 3. 融合自注意力机制下的要素类特征的门控卷积神经网络模型 为了关注更多有价值的信息，本文在结合注意力机制的神经网络(Attention-based Aspect Extraction， ABAE)模型和基于门控机制的卷积神经网络(Gated Convolutional Neural Network with Aspect Embedding， GCAE)模型的基础上，联动要素类提取和要素类情感分类任务，提出了一种融合自注意力机制下的要素 图1. 融合自注意力机制下的要素类特征的门控卷积神经网络模型示意图 类特征的门控卷积神经网络模型(Gated Convolutional Neural Network with Self Attention-based Aspect Embedding， GCAE_SelfAtt)，由结合自注意力机制的神经网络和门控卷积神经网络构成。其中，要素类提取任务的最终目的是学习一组要素类嵌入，使得每个要素类可以通过词嵌入空间附近的代表性词语来解释。 模型的示意图如图1所示，由词向量层、句子表示层、句子重构层、卷积层、池化层和情感分类层构成。其中，词向量层作为中间层连接要素类提取任务和要素类情感分类任务，句子表示层通过基于自注意力机制的编码器构建句子的向量表示，句子重构层根据要素类嵌入矩阵的线性组合重构句子的向量表示。 3.1. 任务定义 对于一则长度为n的句子 s = { w 1 ， w 2 ， ⋯ ， w n } ，文本中可能存在一个或多个要素类，但要素类不一定显式地以词语或短语的方式出现在句子中，因此，要素类情感分类任务的目标是决定句子中的要素类以及预测相关文本在对应要素类上所反映的情感极性。本文在预定义要素类的个数的情况下，首先通过无监督学习为每个句子提取出相应要素类的向量表示，再通过与代表词对照，关联句子的真实要素类标签，进一步预测句子在该要素类上的情感极性。 3.2. 构建词向量输入层 由于词嵌入会将经常共同出现在同一上下文语境的词语映射在词嵌入空间中的相近位置上，本文将语料库中句子的每个词语都映射为低维的、连续的实值向量，即词向量，实现词共现分布的编码。所有的词向量构成了一个词向量矩阵，矩阵的行数表示词向量纬度，矩阵的列数表示词典中词语个数。 3.3. 句子表示层 本文通过注意力编码为每个词语赋予相应的注意力权重，过滤句子中的与要素类无关的词语，从而提高所提取的要素类的连贯性，并得到句子的向量表示 z s 。 如果采用一般的注意力机制，则句子中每个词语的注意力权重 a i 是通过计算每个词语的词向量和句子的平均词向量之间的相关性得到的。 y s = 1 n ∑ i = 1 n e w i (1) d i = e w i T ⋅ M ⋅ y s (2) a i = exp ( d i ) ∑ j = 1 n exp ( d j ) (3) z s = ∑ i = 1 n a i e w i (4) 其中，n表示句子长度， e w i 表示文本词向量， M ∈ ℝ d × d 是待学习的转化矩阵。 如果采用自注意力机制，则句子中每个词语的注意力权重 a i 是通过计算每个词语和句子中的其他词语之间的相关性得到的。 s ( Q i ， K j ) = Q i K j T d z = ( e w i W Q ) ( e w j W K ) T d z (5) α i j = exp ( s ( Q i ， K j ) ) ∑ j = 1 n exp ( s ( Q i ， K j ) ) (6) z i = ∑ j = 1 n α i j V j = ∑ j = 1 n α i j ( e w j W V ) (7) 由于查询状态和候选状态属于相同的序列，自注意力机制能够无视词语之间的距离直接计算词依赖关系，学习句子的内部结构。如图2所示，本文采用自注意力机制进行句子的向量表示，并以键值对的形式输出模块的示意图。 图2. 基于自注意力机制下的句子的向量表示示意图 具体地，首先使用大小均为 d x × d z 但数值不同的3个初始化矩阵 W Q ， W K ， W V ，对输入 X ∈ ℝ n × d x 进行线性变换，分别得到查询向量矩阵Q、键向量矩阵K、值向量矩阵V以增强模型的表示能力；然后以缩放点积函数作为对齐分数函数 s ( Q ， K ) 计算查询向量和键向量之间的相似度后，将对齐分数函数进行softmax归一化，得到注意力权重矩阵A；最后计算句子中各个词语的注意力权重与对应词向量的加权和，得到句子的向量表示 Z = [ z 1 ， z 2 ， ⋯ ， z n ] ∈ ℝ n × d z ，作为模块的输出。在本文中，令 d x = d z 。 Q = X W Q (8) K = X W K (9) V = X W V (10) Z = Attention ( Q ， K ， V ) = softmax ( s ( Q ， K ) ) V (11) 3.4. 句子重构层 本文首先通过对句子的向量表示 z s 进行降维处理和softmax处理，得到要素类的归一化权重向量 p t ，然后根据要素类的归一化权重向量 p t 和要素类嵌入矩阵T，将句子重新表示为要素类嵌入的线性组合，得到句子的重构表示 r s 。 p t = softmax ( W ⋅ z s + b ) (12) r s = T T ⋅ p t (13) 其中，W是权重矩阵，b是偏置向量，要素类的归一化权重向量 p t 的维度K表示预定义的要素类的数量，K个元素值表示句子分别属于这K个要素类的概率。 3.5. 卷积层与GTRU 在经过要素类提取实验之后，句子重构层的要素类嵌入矩阵T形成了基于上下文优化后的要素类词向量。考虑到要素类情感分类和要素类提取采用同一套数据集，保证词嵌入空间的一致性有利于模型的效果，因此本文采用优化后的文本词向量作为要素类情感分类的输入层。 本文在词向量输入层上配置了两个独立的卷积层，每个卷积层通过多个卷积核提取输入的不同特征，并分别与Tanh门控单元和ReLu门控单元连接，然后对门控单元输出的结果进行组合。相比于Tanh门控单元仅接收卷积层的输出，ReLu门控单元在接收卷积层的输出的同时，还接收特定要素类的词向量 v a 。Tanh-ReLU门控单元(Gated Tanh-ReLU Unit， GTRU)具有能够控制情感特征通往池化层的流动路径的特性，使得模型能根据给定的要素类有选择地输出情感特征。具体地，将激活函数为ReLU的卷积操作生成的要素类特征 a i 和激活函数为Tanh的卷积操作生成的情感特征 s i ，逐元素相乘可以得到特定要素类的情感特征 c i 。 a i = relu ( X i : i + k ∗ W a + V a v a + b a ) (14) s i = tanh ( X i : i + k ∗ W s + b s ) (15) c i = s i × a i (16) 其中， W a 、 V a 和 W s 是权重矩阵， b a 和 b s 是偏置向量。 如果文本中含有多个要素类，GTRU可以通过ReLU门自动忽略与给定要素类无关的其他要素类的情感信息。例如，在句子“这家的面包很不错，就是太远了”中，当给定的要素词为“食物”时，门控单元会自动忽略另一个分句中的要素词“距离”的情感极性，只输出“食物”所在分句的情感极性。这是因为，ReLU门可以根据给定的要素类信息 v a 和某位置处的要素类特征 a i 的相关性计算相似度得分，从而决定该位置处的情感特征 s i 是否能够通过Relu门控单元。 3.6. 池化层 除了门控机制外，池化层中的最大池化操作也可以有选择性地从文本中提取和给定的要素类相关的情感特征，从而实现对特定要素类的情感极性的预测。 对一则由n个词语组成的句子来说，用一个尺寸为k的卷积核对其进行卷积操作会产生 n − k + 1 个特征，并构成该句子的卷积特征图c。 c = [ c 1 ， c 2 ， ⋯ ， c n − k + 1 ] (17) 本文在池化层对卷积特征图c进行最大池化处理，形成一个维度固定的特征向量 c ^ ，即通过保留卷积特征图中的最大值来保留整个句子中最显著的基于特定要素类的情感特征，从而移除不重要的情感特征。 c ^ = max ( c ) (18) 3.7. 情感分类层 本文将N个卷积核在卷积层中得到的N个卷积特征图分别输入池化层进行最大池化操作，然后将池化层输出的N个特征向量 c ^ i 拼接为一个维度固定的特征向量 C ^ ，再将其输入全连接层并通过softmax分类器进行情感分类，输出文本在给定要素类上的预测情感极性 y ^ ： C ^ = [ c ^ 1 ， c ^ 2 ， ⋯ ， c ^ N ] (19) y ^ = softmax ( W ⋅ C ^ + B ) (20) 其中，W是全连接层权重矩阵，B是偏置。 3.8. 模型训练 本文采用端到端的反向传播算法对模型进行训练，以对比最大边际函数 J ( θ ) 作为第一目标函数，即最大化句子的重构表示 r s 和句子的目标表示 z s 之间的内积的同时，最小化句子的重构表示 r s 和随机采样的m个负样本句子的向量表示 n i 之间的内积，减少重构误差以在提取的要素类嵌入中尽可能多地保留要素类的信息。为鼓励要素类嵌入矩阵 T ∈ ℝ K × d 的行正交性，本文还引入正则项 U ( θ ) 。 J ( θ ) = ∑ s ∈ D ∑ i = 1 m max ( 0 ， 1 − r s z s + r s n i ) (21) U ( θ ) = ‖ T n ⋅ T n T − I ‖ (22) L ( θ ) = J ( θ ) + λ U ( θ ) (23) 其中，D表示数据集，s表示句子， T n 是对要素类嵌入矩阵T中的每一行标准化后的结果， λ 是正则项的权重参数， θ = { E ， T ， M ， W ， b } 表示待训练的参数。 本文以交叉熵损失函数 L 作为第二目标函数，即最小化在所有训练语料上的特定要素类的真实情感极性和预测情感极性之间的交叉熵损失和。 L = − ∑ i ∑ j y i j log y ^ i j (24) 其中，i表示句子的索引；j表示情感类别的索引，共分成positive、neutral和negative三类；y表示特定要素类的真实情感类别， y ^ 表示特定要素类的预测情感类别。