细粒度情感分析
资料
Sentiment Analysis 按粒度可分为3种:
- ATSA: Aspect-Term Sentiment Analysis
Aspect-Term:不固定,不唯一,有很多Term共同表示同一种 Aspect,如 image,photo,picture 都是 Term 相关任务是 To group the same aspect expressions into a category,如上面三者可都归为 Image 这一 category
- ACSA: Aspect-Category Sentiment Analysis
Aspect-Category:表示一种 Aspect,固定而唯一,如上例中的 Image
以下模型都在公开数据集semeval2014上进行了实验(没有很仔细的调参)
历年模型
LSTM
- 最简单的就是Sentence Level,经过enmbedding后接LSTM,最后一层接softmax多分类,模型如下
复现结果
数据集 | acc | f1 |
---|---|---|
restaurant | 0.7464 | 0.6051 |
laptop | 0.6489 | 0.5366 |
TD-LSTM
Effective LSTMs for Target-Dependent Sentiment Classification
- 该方法就是以aspect词为分界点,将一句话分成左侧和右侧两个子句(包含aspect词),分别经过LSTM,最后cat起来,接softmax多分类
数据集 | acc | f1 |
---|---|---|
restaurant | 0.7545 | 0.6012 |
laptop | 0.6254 | 0.5263 |
ATAE-LSTM
Attention-based lstm for aspect-level sentiment classification
- 该方法就是将aspect和sentences分别embedding后在输入端cat起来,然后输入到lstm得到hidden,在将hidden和aspect在做一次cat,输入给attention得到score权重,score和hidden做一次权重计算,接dense层得到分类结果,模型如图:
数据集 | acc | f1 |
---|---|---|
restaurant | 0.7652 | 0.6322 |
laptop | 0.6693 | 0.5980 |
IAN 交互式注意力网络
Interactive Attention Networks for Aspect-Level Sentiment Classification
- 该模型的设计亮点在于sentence和aspect分别embedding后输入到lstm模型,得到的输出在dim=1维度求sum进行pool,然后分别交互做attention,最后cat起来接softmax分类,模型如下
数据集 | acc | f1 |
---|---|---|
restaurant | 0.7661 | 0.6041 |
laptop | 0.7100 | 0.6451 |
MemNet
Aspect Level Sentiment Classification with Deep Memory Network
- 该模型将sentence中的aspect去除,分别将去除aspect的sentence和aspect进行embedding,然后多次循环分别计算attention,每次都与aspect进行cat,最后接一层全连接,模型如图:
数据集 | acc | f1 |
---|---|---|
restaurant | 0.7732 | 0.6440 |
laptop | 0.6928 | 0.6274 |
RAM
Recurrent Attention Network on Memory for Aspect Sentiment Analysis
- 该模型是和memnet对比的,很显然的一个想法就是memnet只是embdedding后计算attention,ram就是多加了一层lstm外加一个location位置信息,模型如下:
数据集 | acc | f1 |
---|---|---|
restaurant | 0.7839 | 0.6572 |
laptop | 0.7038 | 0.6641 |
Cabasc
Content Attention Model for Aspect Based Sentiment Analysis
- 该模型分别将sentence和aspect进行embedding,然后都在dim=1进行sum,求一个location位置信息得到sentence的三维矩阵A = [batchsize,seqlen,embedding],将A在dim=1进行split分别与sentence和aspect在dim=1做了sum的矩阵cat,接两层dence,最后接softmax得到分类结果。模型如下:
数据集 | acc | f1 |
---|---|---|
restaurant | 0.7902 | 0.6759 |
laptop | 0.7147 | 0.6612 |
TNet
Transformation Networks for Target-Oriented Sentiment Classification
- 该模型引入了1维卷积,整个模型自下而上也是embedding、lstm、CNN,最后接softmax得到分类结果
数据集 | acc | f1 |
---|---|---|
restaurant | 0.7696 | 0.6115 |
laptop | 0.6803 | 0.6010 |
AOA
Aspect Level Sentiment Classification with Attention-over-Attention Neural Networks
- 该模型思想也挺简单的,也是分别将sentence和aspect经过embedding和lstm得到三维的矩阵A(batch size,sentenceslen, embedding)和B(batch size, aspectlen,embedding),然后计算一个torch.bmm(A,B.transpose(1,2)) 得到C(batchsize, sentencelen,aspectlen),分别在dim=1,2上计算C的softmax,将求过softmax的两个矩阵进行计算得到gamma矩阵,最后将gamma矩阵和A计算,接最后全连接层得到结果,模型如下:
数据集 | acc | f1 |
---|---|---|
restaurant | 0.7821 | 0.6615 |
laptop | 0.6803 | 0.6034 |
MGAN
Multi-grained Attention Network for Aspect-Level Sentiment Classification
- 该模型整体思路也比较简单,总的来看也是分别sentence和aspect进行embedding和lstm,分别池化,sentence和aspect进行交互,最后将得到的多个层面进行cat接全连接得到结果,模型如下:
数据集 | acc | f1 |
---|---|---|
restaurant | 0.7714 | 0.6194 |
laptop | 0.6850 | 0.6138 |
BERT for Sentence Pair Classification
Bert: Pre-training of deep bidirectional transformers for language understanding
- 该篇其实就是将bert的fine-tune进行了介绍,构造句子对的形式,输入给bert得到pool后的矩阵,接全连接层得到分类结果
数据集 | acc | f1 |
---|---|---|
restaurant | 0.8214 | 0.7186 |
laptop | 0.7492 | 0.6765 |
AEN-BERT
Attentional Encoder Network for Targeted Sentiment Classification
- 该方法也是常规的操作,sentence和aspect都经过bert得到没有池化的三维矩阵,然后content和content自己做attention交互,content和target做attention交互,将两者做了attention交互后的矩阵在做一次attention交互,最后将三者cat起来,接输出层得到结果,模型如下:
数据集 | acc | f1 |
---|---|---|
restaurant | 0.8313 | 0.7426 |
laptop | 0.7508 | 0.6879 |