Aspect-Based Sentiment Analysis 总结(二)

Aspect-Based Sentiment Analysis 总结


(二).经典模型

(一)介绍了ABSA任务和数据集,本文介绍一些ABSA任务上经典的模型,主要集中在Aspect Term Sentiment Analysis和Aspect Category Sentiment Analysis两个子任务上。首先注明在ABSA任务中,aspect based sentiment analysis和aspect level sentiment analysis一般指代同一种任务,aspect term和target指代同一种对象,sentence和context指代同一种对象,但不同论文中对同一种事物可能有不同的表达。

第一篇用深度学习做ABSA的工作是Adaptive Recursive Neural Networkfor Target-dependent Twitter Sentiment Classification[1]。如图1所示,这篇文章设计了一个规则,将依存分析树转换为一个二叉树,其中Target位于树根的两个子节点之一的位置。通过使用递归神经网络(Recursive Neural Network)将词的情感信息自下而上地传播到Target周围,最终得到一个句子的向量表示,输入到softmax分类器中进行分类。

Aspect-Based Sentiment Analysis 总结(二)


? 图1 AdaRNN

Effective LSTMs for Target-Dependent Sentiment Classification[2]中提出了TD-LSTM和TC-LSTM两个模型。TD-LSTM使用两个LSTM分别去建模target和左边的上下文以及target和右边的上下文,将两个LSTM最后的隐含向量拼接送入到一个softmax分类器中进行分类。

Aspect-Based Sentiment Analysis 总结(二)


? 图2 TD-LSTM

TC-LSTM将Target词向量的平均值与句子中每个词的词向量进行拼接然后进行和TD-LSTM一样的操作。

Aspect-Based Sentiment Analysis 总结(二)


? 图3 TC-LSTM

Aspect Level Sentiment Classification with Deep Memory Network[3]提出了一种基于multi-hop attention的方法MemNet。如图4所示,句子中的每个词首先被转换成词向量表示,整个句子中所有词的词向量就组成了一个矩阵,称为memory。aspect中所有词的词向量取平均作为初始的aspect表示。每一个hop包含一个attention层和一个线性层。attention层使用上一步得出的aspect表示作query,计算query和句子中每个词的词向量的相似度,对词向量进行加权求和得到上下文向量。上下文向量再与经过线性变换的aspect进行求和得到此步骤中的aspect表示。相同结构的hop堆叠多次,使用不同层次的aspect表示作为query提取上下文特征,最终得到的aspect表示经过softmax分类器进行分类。

由于 attention机制不具有建模位置信息的能力,这篇文章中首次提出了位置编码以在模型中编码位置信息。

Aspect-Based Sentiment Analysis 总结(二)
图4 MemNet

Attention-based LSTM for Aspect-level Sentiment Classification[4]提出了两种基于LSTM和attention机制的模型,AT-LSTM和ATAE-LSTM。

在AT-LSTM中,句子中的每个词首先被转换成词向量表示,使用LSTM编码得到隐层状态。使用一个可学习的参数向量作为query,aspect的embedding经过线性变换后的表示和隐层状态的拼接作为key,隐层状态作为value计算attention。输出的上下文向量和最后一个隐层状态拼接后做一次非线性变换得到最终的分类特征,再经过一个softmax分类器预测每个类别的概率分布。

Aspect-Based Sentiment Analysis 总结(二)

? 图5 AT-LSTM

ATAE-LSTM相比AT-LSTM,为了更好地利用aspect的信息,在embedding层将每个词的embedding和aspect的embedding进行拼接,得到aspect相关的词表示。后续的操作和AT-LSTM一样。

Aspect-Based Sentiment Analysis 总结(二)

? 图6 ATAE-LSTM

Attention-based LSTM for Target-dependent Sentiment Classification[5] LSTM+Attention,方法简单,但引用量很高。

Interactive Attention Networks for Aspect-Level Sentiment Classification[6] 提出一种交互式注意力网络模型IAN,计算context和target之间的交互式注意力,不仅使用target信息选择context中重要的词,也使用context信息选择target中重要的词。具体的,target和context分别使用一个LSTM计算隐层状态,将target和context的隐层状态进行平均池化得到固定长度的target和context的向量表示。使用target的池化表示作为query,context的隐层状态作为key和value计算attention,得到target相关的context表示。同样的,使用context的池化表示作为query,target的隐层状态作为key和value计算attention,得到context相关的target表示。将两者拼接起来作为分类特征经过一个线性层和tanh激活得到对数几率。再经过softmax归一化得到每个类别的概率分布。简单鲁棒,效果很好。

Aspect-Based Sentiment Analysis 总结(二)

? 图7 IAN


Recurrent Attention Network on Memory for Aspect Sentiment Analysis[7] 提出的RAM从两方面改进了MemNet。MemNet直接使用句子中每个词的embedding作为memory,而RAM使用BiLSTM计算得到的隐层状态作为memory。与MemNet相似,RAM也有一个基于位置对memory进行加权的机制,即Location Weighted Memory。另外,RAM使用GRU来更新aspect的表示。

Aspect-Based Sentiment Analysis 总结(二)

? 图8 RAM

Aspect Based Sentiment Analysis with Gated Convolutional Networks[8] 提出了一种基于CNN的方法GCAE。针对ACSA和ATSA两个子任务有两种不同的变体。总体思路是使用一组成对的卷积核提取局部n-gram特征,每对卷积核中包含一个aspect无关的卷积核和一个aspect相关的卷积核。如图9和图10所示,aspect无关的卷积核像TextCNN里的卷积一样提取句子中的n-gram特征,并使用tanh激活。aspect相关的卷积核作为门来控制n-gram特征输出与否。值得注意的是,这里使用relu而不是常见的sigmoid作为门。作者做了对比实验,relu比sigmoid更好。

对于ACSA任务,aspect为固定种类的aspect category,使用可学习的embedding作为其表示。对于ATSA任务,aspect是句子中的一个子序列,使用CNN提取局部特征再在时间维度上做最大池化得到。模型简单有效,速度快效果好鲁棒性好。

Aspect-Based Sentiment Analysis 总结(二)

? 图9 GCAE for ACSA

Aspect-Based Sentiment Analysis 总结(二)

? 图10 GCAE for ATSA

Aspect Level Sentiment Classification with Attention-over-Attention Neural Networks[9]提出的AOA-LSTM借鉴了问答系统里的attention-over-attention机制。如图11所示,首先使用两个BiLSTM分别提取句子和aspect的特征。然后attention-over-attention模块使用点积计算句子的隐层状态和aspect的隐层状态的交互矩阵。对交互矩阵按列归一化得到以aspect中每个词作为查询句子中每个词的权重 Aspect-Based Sentiment Analysis 总结(二) ,和以每个中的每个词作为查询aspect每个词的权重 Aspect-Based Sentiment Analysis 总结(二) 。对 Aspect-Based Sentiment Analysis 总结(二) 矩阵求列平均值得到aspect中每个词的权重 Aspect-Based Sentiment Analysis 总结(二) ,以 Aspect-Based Sentiment Analysis 总结(二)Aspect-Based Sentiment Analysis 总结(二) 相乘,得到最终的句子中每个词的权重 Aspect-Based Sentiment Analysis 总结(二) 。使用 Aspect-Based Sentiment Analysis 总结(二) 作为权重对句子中每个词做加权平均得到最终的分类特征向量。再经过softmax分类器得到最终的分类向量。

Aspect-Based Sentiment Analysis 总结(二)

? 图11 AOA-LSTM

以上介绍了ABSA论文中经常用作baseline的几种模型,这些模型的源代码都可以在github上找到,songyouwei/ABSA-PyTorch中实现了本文提及的多数模型。更多复杂的模型和方法维护在jiangqn/Aspect-Based-Sentiment-Analysis这个paper list中。

参考文献

[1] Adaptive Recursive Neural Networkfor Target-dependent Twitter Sentiment Classification. ACL 2014.

[2] Effective LSTMs for Target-Dependent Sentiment Classification. COLING 2016.

[3] Aspect Level Sentiment Classification with Deep Memory Network. EMNLP 2016.

[4] Attention-based LSTM for Aspect-level Sentiment Classification. EMNLP 2016.

[5] Attention-based LSTM for Target-dependent Sentiment Classification. AAAI 2017.

[6] Interactive Attention Networks for Aspect-Level Sentiment Classification. IJCAI 2017.

[7] Recurrent Attention Network on Memory for Aspect Sentiment Analysis. EMNLP 2017.

[8] Aspect Based Sentiment Analysis with Gated Convolutional Networks. ACL 2018.

[9] Aspect Level Sentiment Classification with Attention-over-Attention Neural Networks. SBP-BRiMS-18.

转自知乎答主:Jsgfery,下面是他的专栏链接。

[ABSA总结(二)](Aspect Based Sentiment Analysis总结(二)——经典模型 - 知乎 (zhihu.com))

Aspect-Based Sentiment Analysis 总结(二)

上一篇:AspectJWeaver文件写入gadget详解和两种应用场景举例


下一篇:3.1 weblogic安装配置