论文笔记:Graph Attention Network with Memory Fusion for Aspect-levelSentiment Analysis
Graph Attention Networks incorporating Memory Fusion Mechanisms in Aspect-Level Sentiment Analysis(方面级情感分析中带有记忆融合机制的图注意力网络)
1 摘要
该研究旨在通过基于注意力机制的方法提升Aspect级情感分析的表现。然而,在现有的方法中存在一定的局限性:它们未能正确识别与目标相关联的词汇。为此,本研究提出了一种称为图卷积网络(GCN)的新解决方案;尽管如此,在实际应用中可能会出现这样的情况:该方案未能正确识别与目标相关联的词汇;在此研究中提出了一种增强型图注意力机制;通过动态调整边权重的方式实现了对不相关词汇的有效过滤;在实验结果表明这种方法较现有方法具有更好的性能水平
2 引言
本文提出的模型从两个方面扩展了图卷积网络的想法。首先, 图注意机制为边分配不同的权重, 并且可以施加语法约束以阻止那些与目标无关的单词传播到与目标无关的方面。第二, 在一个卷积操作中利用多词关系抽取局部信息,"not good", "far from perfect" 等表达式可以进一步提升性能水平。为了整合所有特性, 在模型中引入了一个记忆融合层(类似于记忆网络), 通过根据每个单词对最终分类贡献的不同权重进行调整来实现这一目标
Yao et al.(2019)将图卷积网络引入情绪分类任务并取得了良好表现。随后,Zhang et al.(2019)提出在句子依赖树上应用GCN以提取长距离语法规则信息
3 带有记忆融合的图注意网络
该算法主要包括四个关键模块:一种文本编码模块、一个图注意力机制模块、一种卷积操作模块以及一种记忆融合模块,请参考图2.

图2展示了具有记忆融合机制的图注意力网络的整体架构示意图。
该模型中的文本编码器采用了一个基础型双向长短期记忆网络(LSTM)来提取输入文本的关键特征。
其中包含了词嵌入层和双向LSTM层协同工作以生成完整的文本表示。
将此隐藏表示作为输入信号,在依赖树结构上应用图注意力机制(G-ATT)以捕捉单词间的显式语义关联。
通过卷积操作提取情感词附近局部语义特征。
为了整合多方面的语义信息,在编码器输出阶段引入了一种类似于记忆网络的记忆融合模块。
该模块能够根据每个词语对最终分类结果的重要程度动态分配权重系数,
从而实现更精细的情感分析效果。
3.1 文本编码器
该序列x = [x₁, x₂, ..., x_{τ+1}, ..., x_{τ+m}, ..., x_n]由n个单词组成。其中我们关注第(τ+1)个单词起始的目标方面,并设定长度为m。为了实现文本编码器的功能我们采用基于双向长短时记忆网络(BiLSTM)的方法作为文本编码器这样能够有效表达句子中的长距离依赖关系。通过融合前向与反向传播的结果来获取上下文表示具体定义如下:
对于前向传播:
(h→i, c→i) = LSTM(x_i, h→{i-1}, c→{i-1}) \tag{1}
对于反向传播:
(h←i, c←i) = LSTM(x_i, h←{i+1}, c←{i+1}) \tag{2}
最终的隐藏状态h_i则通过以下方式计算:
h_i = (h→_i ⊕ h←_i) / 2 \tag{3}
其中⊕代表矩阵相加操作。这里h→_i和h←_i分别代表前向和后向传播得到的特征信息而h_i则是综合考虑前后信息后的输出特征表示因此整个文本编码器能够有效提取并表达句子中的深层语义信息。
3.2 图注意层
图注意(G-ATT)层在依赖树上学习目标方面的语法相关词,这已经广泛应用于几种NLP任务,以有效地识别单词的关系及作用。在将给定的句子解析为依赖项树之后,根据树的拓扑结构建立起邻接矩阵。值得注意的是,依赖树是一个有向图。因此,我们考虑了图形注意机制的方向,但该机制可以适应于非定向感知的场景。因此,我们提出了一个变体适用于无向的依赖图。获取的隐藏状态HE∈Rn×dhH^E\in \Bbb{R}^{n \times d_h}注入堆叠G-ATT模型,这个模型以带有一个L图注意层的多层方式执行。
在实践中,在l-the层中的表征没有立即被送入G-ATT层。为了增强相应方面上下文单词的相关性,我们采用一个位置权重方法到l层中单词i的表征,这在以前的工作中是广泛使用的(Li et al.,2018; Zhang et al., 2019),定义如下,
qi={1−τ+1−in1≤i<τ+10τ+1≤i≤τ+m1−i−τ−mnτ+m<i≤n(4)q_i=\left{\right. \tag{4} hil=qihil(5)\hat{h}l_i=q_i h^l_i \tag{5} qi∈Rq_i\in \Bbb{R}是单词i的位置权重。
在每一层中,有一个注意力系数αijl\alphal_{ij}被用来衡量单词i和单词j之间的重要性,定义如下,αi,jl=exp(LeakyReLU(aT[Wαlhil∣∣Wαlhjl]))∑k∈Niexp(LeakyReLU(aT[Wαlhil∣∣Wαlhjl]))(6)\alphal_{i,j}=\frac{exp(LeakyReLU(aT[Wl_\alpha \hat{h}^l_i || W^l_\alpha \hat{h}^l_j]))}{\sum_{k\in N_i}exp(LeakyReLU(aT[Wl_\alpha \hat{h}^l_i || W^l_\alpha \hat{h}^l_j]))} \tag{6}其中NiN_i是单词i的邻接集合,Wαl∈Rdh×dhW^l_\alpha \in \Bbb R^{d_h \times d_h}是一个共享权重矩阵用来按顺序对每个单词进行线性变换以获得高级表征的充足的表达能力。||是连接运算符,a∈R2dha \in \Bbb R^{2d_h}是一个权重向量,LeakyReLU是非线性的。
为了稳定图注意力的学习过程,我们使用相同的参数设置实现了K个不同的注意,类似于Vaswani et al. (2017)提出的多头注意机制。因此,l+1层中单词i的最终表征hil+1h{l+1}_i可以这样得到,hil+1=ReLU(1K∑k=1K∑j∈Niαi,jl,kWklhjl)(7)h{l+1}_i=ReLU(\frac{1}{K}\sum_{k=1}{K} \sum_{j\in N_i}\alpha {l,k}_{i,j}Wl_k\hat h^l_j) \tag{7}其中αi,jl,k\alpha {l,k}_{i,j}是第k个公式(6)中计算的注意力系数,WklWl_k是对应的第l层GAT层中第k个注意力的权重矩阵,并且非线性函数是ReLU。L层G-ATT的最终表征定义为HL=[h1L,h2L,...,hτ+1L,...,hτ+mL,...,hnL]HL=[hL_1,hL_2,...,hL_{\tau +1},...,h^L_{\tau +m},...,hL_n],hiL∈RdhhL_i \in \Bbb R^{d_h}。
3.3 卷积层
卷积层用于提取多种情绪词组的局部n元信息,并以增强模型对n阶特征的学习能力为目标设计了后续网络架构。文本编码器将隐藏表征HEH^E输入至两个并行的卷积层进行处理,在每个卷积层中我们通过应用F个不同长度的滤波器来提取局部n元特征,并对这些特征进行非线性变换以获取更加丰富的表征信息。具体而言,在一个包含w个单词的窗口hi:i+w−1h_{i:i+w-1}内,
第f个滤波器生成如下形式的特征映射:
c_i^f = \text{ReLU}(W^f \circ h_E^{i:i+w-1} + b^f) \tag{8}
其中\circ表示卷积运算,Wf∈ℝ{w×d_h}和bf∈ℝ{d_h}$分别代表第f个滤波器对应的权重参数和偏置向量,w为滤波器长度,非线性激活函数采用ReLU函数进行计算。
通过将所有滤波器生成的特征映射拼接起来,可以得到单词i对应的表征表示:
h_i^c = [c_i^1, c_i^2, ..., c_i^f, ..., c_i^F]
为了保证输出表示与输入表示保持一致维度,我们将F设定为d_h并使用零向量填充其他未被填充的位置。
随后将所有特征映射传递至第二个卷积层进行进一步处理,最终获得完整的语义表征序列HC=[h_1C,h_2C,...,h_{τ+1}C,...,h_{τ+m}C,...,h_n^C]其中,h_i^C∈ℝ^{d_h}表示第i个词在第二次卷积过程中的最终语义表征。
3.4 Aspect-Specific Masking
特定方面的掩蔽层旨在专注于学习用于记忆融合以及最终分类所需的具体特征内容。因此,在G-ATT层以及卷积层中进行操作时会mask out来自这些层的隐藏状态向量HLHL以及HCHC等部分在形式上我们通过将所有非方面词的位置向量置零来实现这一目标并保持方面词位置向量不变具体定义如下:
3.5 记忆融合
记忆融合的目的是学习与方面词的意义相关的最终表征。其思想是通过联合G-ATT和Conv的向量到隐藏向量,从隐藏表征中得到与方面词具有语义相关的重要特征。形式上,我们计算HEHE中第i个字和HLHL中第j个字的注意得分,定义为,
ei=∑j=1nhiLTWlhjE=∑j=τ+1τ+mhiLTWlhjE(10)e_i=\sum_{j=1}{n}h_i{LT}W_lh_jE=\sum_{j=\tau +1}^{\tau +m}h_i{LT}W_lh_j^E \tag{10}
其中Wl∈Rdh×dhW_l\in \Bbb R^{d_h\times d_h}是一个双线性项,它与这两个向量相互作用,并捕获特定的语义关系。根据Socher et al.(2013),这样一个张量运算能被用来在这些向量之间建立更复杂的模型。因此,注意力得分权重和G-ATT的最终表征这样计算,
αi=exp(ei)∑k=1nexp(ek)(11)\alpha_i=\frac{exp(e_i)}{\sum_{k=1}^{n}exp(e_k)} \tag{11} Sg=∑i=1nαihiE(12)S_g=\sum_{i=1}{n}\alpha_ih_iE \tag{12}
因此,卷积层的最终表征这样计算
ri=∑j=1nhiCTWchjE=∑j=τ+1τ+mhiCTWchjE(13)r_i=\sum_{j=1}nh_i{CT}W_ch_jE=\sum_{j=\tau+1}{\tau+m}h_i{CT}W_ch_jE \tag{13} βi=exp(ri)∑k=1nexp(rk)(14)\beta_i=\frac{exp(r_i)}{\sum_{k=1}^{n}exp(r_k)} \tag{14} Sc=∑i=1nβihiE(15)S_c=\sum_{i=1}{n}\beta_ih_iE \tag{15}
3.6 情感分类
通过获得表征sgs_g和sCs_c后, 它们被输入到一个全连接层中, 经过一个softmax层计算得到所有类别的概率分布结果, 即:
\hat{y} = \text{softmax}(W_s[s_g \parallel s_c] + b_s) \tag{16}
其中, W_s 和 b_s 分别表示输出层的权重矩阵和偏置项. 在给定训练集 \{x^{(t)}, y^{(t)}\}_{t=1}^T = 1_{t=1}^T = 1 中, x^{(t)} 表示第t个训练样本, y^{(t)} 是其对应的真实情感标签, T是语料库中训练样本的总数. 训练目标是最小化交叉熵损失函数:
L_{cls}(\theta) = -\frac{1}{T}\sum_{t=1}^T \log p(\hat{y}^{(t)} | x^{(t)}; \theta) + \lambda ||\theta||_2^2 \tag{17}
其中, \theta 表示所有可训练参数. 为了防止过拟合, 在损失函数中引入了L2正则化项:
\lambda ||\theta||_2^2
其中,\lambda 是衰减因子.
4 实验结果
本节系统评估了之前提出的不同维度的情绪分析策略,在多个数据集上进行了全面测试。随后系统地阐述了实验设计和实证结果。


4.2 实施细节
所有模型均使用840B Common Crawl上预先训练的300维GloVe向量(Pennington et al.,2014)作为初始词嵌入。未在GloVe中出现的字初始化为U(-0.25,0.25)的均匀分布。隐藏层向量的维数都是300,所有的模型权值都用xavier正则化(gloria and Bengio,2010)进行初始化。采用RMSprop作为优化器,学习率为0.001,对所有模型进行训练。我们设置L2正则化衰减因子为1e-4,batch大小为40。在G-ATT层中LeakyReLU的负输入斜率设置为0.2。所有提到的超参数是使用网格搜索策略选择的。迭代的设定取决于早停策略。如果没有改善,训练过程将在五次迭代后停止。通过对三次随机初始化的结果进行平均,得到了实验结果。

