一、Aspect-based Sentiment Analysis 基本任务
(一)各个资料给出的关键子任务
《Issues and Challenges of Aspect-based Sentiment Analysis: A Comprehensive Survey》把ABSA的任务分为Aspect Extraction (AE),Aspect Sentiment Analysis (ASA) 和 Sentiment Evolution (SE)
AE:方面提取,包括显式方面explicit aspects、隐式方面implicit aspects、aspect terms、entities 和Opinion Target Expressions;
ASA:方面情感分析,对给定的方面、目标、实体给出情感极性,这个阶段还规定了不同数据对象(如:aspect, entity, target, multi-word target, sentiment word)之间的交互、依赖关系和上下文语义关系
SE:第三阶段关注的是在一段时间内人们对方面(或事件)的情感的动态性
《Deep Learning for Aspect-Based Sentiment Analysis: A Comparative Review》采用Pontiki et al. (2016) 提出的ABSA三个主要子任务:Opinion target extraction (OTE),Aspect category detection (ACD) 和 Sentiment Polarity (SP)
OTE:目标就是提取出显式的opinion target(亦称aspect term)
ACD:在OTE的基础上,给出aspect term 所属的category(显式或隐式的)
SP:给出aspect的情感极性
这篇文章指出ACD和SP两个任务有很强的关联性,可以推测第一篇文章的ASA就是此处ACD、SP的综合;
来自 知乎-Aspect Based Sentiment Analysis总结(一)的任务分类:
Aspect Term Sentiment Analysis (ATSA)作为ABSA的一个子任务,目的是识别句子中一个指定Aspect term的情感极性,可以建模为一个分类问题;
Aspect Category Sentiment Analysis (ACSA)作为ABSA的另一个子任务,目的是识别句子中一个指定Aspect category的情感极性,也可以建模为一个分类问题;
Aspect Term Extraction (ATE) 旨在抽取出一个句子中的Aspect term,可以建模为一个序列标注问题;
Aspect Category Extraction (ACE) 旨在识别出一个句子中从哪些预先定义好的Aspect category角度描述事物,可以建模为一个多标签分类问题;
(二)关键术语
部分来自简书作者博士论文整理
2012年,Liu形式化地给出了观点的定义,为方面级情感分析研究指明了方向。接下来,国际语义评测SemEval从2014年起连续三年将ABSA任务作为其子任务,梳理了四个子任务,提供了一系列人工标注的基准数据集;
Liu定义 opinion 是如下的一个五元组:
其中ei是一个实体,对象或者人,aij是ei的第j个aspect,sijkl是观点表达者hk在 t 时刻对ei 的一个方面aij表达的情感,可以是正面的负面的或者中立的。ei和aij共同构成opinion target
二、ABSA 趋势与难点
(一)主要研究方法
1、网络结构创新:
前几年主要针对CRF、CNN、(Bi-)LSTM,加入Attention或者情感变量,构建aspect和上下文的关系等;基于图的模型,例如利用语法树、上下文位置信息、句法信息构建图;
2、引入外部知识:
情感词典 / 领域数据集 / 表情符号 / 知识图谱
3、BERT + ?
近年来ABSA模型利用BERT强大的上下文特征,利用情感信息进行微调,或是结合前面的方法提升效果
(二)研究难点
情感分析作为自然语言理解里最重要也是最有挑战的主要任务之一,有很大的研究空间和广阔的应用价值。细粒度的情感分析(i.e. ABSA)的相关研究已历经多年,有大量的相关论文发表。目前,这个方向的研究有两个明显的局限。一是已有数据小、标注不完备,导致更实用的任务无法进行。例如 ASTE 任务,其可行性依赖于对已有数据进行额外打标。二是跨语言、跨领域迁移能力的研究不足,导致研究工作的实际可用性差。
虽然目前基于 BERT 等大规模深度语言模型的尝试,显示出了不错的潜力,但深度语言模型本身的部署还没有很好解决。另外,情感分析离不开常识和场景,目前主流 NN 方法所欠缺在这些方面的建模能力。
(三)研究趋势
1、论文《Issues and Challenges of Aspect-based Sentiment Analysis: A Comprehensive Survey》给出的future research
(1)数据预处理。在预处理阶段,通常会从文本中去掉标点符号、常见词、特殊字符等,多个领域特定的词典也将是一个有趣的发展方向;
(2)跨领域迁移学习。通常,AE过程的效率会在处理未标记的数据集时受到影响,并且在将其应用于新领域时可能会失败,比如,在餐厅数据集上训练的模型就不能用于旅店的数据。目前很难有个通用的模型可以在所有领域上都表现的不错,但如果搭配上有效的self-attention机制,就可以通过预训练和微调过程提高模型表现;
(3)上下文语义关系。根据上下文信息关联单词和句子,语义信息是必须的,这有助于从数据中提取显式的和隐式的aspects,中性情感表达以及处理复杂文本(如否定词);此外上下文语义信息也将有利于知识提取过程的升级和处理复杂的场景,如,“We went to a Pakistani restaurant and they offered us 5 to 6 choices of cocktails”例子中,“choices of cocktails” 应被考虑成正面的情感,但是通常会被当作中性的;
(4)方面总结(aspect summarization)。目标是产生有关特定aspect(entity)及其情感的简短总结,基本上依赖于特定的应用需求;挑战之处在于引入一种解决方案,执行个性化摘要,并从应用程序中对推荐的方面给出清晰的解释;
(5)动态情感预测。主要针对本文提出的SE任务,需要改进社会情境,在用户、群体和多群体层面跟踪情感;
(6)多模态情感分析。社交媒体上不只是文本数据,还可以包括图片、视频、表情、贴图等,这种cross-modal的特征融合有助于从社交媒体上用户产生的内容中实现更综合的aspect分析。
2、多任务
以往的ABSA主要建模为一个“提取方面--->获得情感”的串联模型,研究往往聚焦在其中一个部分上,这种方式存在 error propagation 的局限。近年来的研究热点在于多任务学习,在前文提到的基本任务的基础上,衍生出几种新的任务:
(1)Aspect-Polarity Co-Extraction 对象和情感极性的联合抽取,由于子任务相关性很高,可以构建一个统一的end-to-end模型。阿里的一些工作中介绍了几种任务组合方式
Joint方式是将原本的【序列标注+分类】转变为两个串联的序列标注,而基于统一的标注模式(Unified Labeling Scheme)是转变为一个序列标注任务。
(2)Opinion Triplet 【对象词--情感极性--情感词】三元组的联合抽取(在二元组的基础上增加了一个“why”,即哪个词语显示出了情感极性)Triplet 任务跟实体关系抽取任务非常像,一般分成两个模块,一是抽取模块,另一个是关联模块。对象词和情感词都可当做实体 mention,然后用关系抽取找到合适的(对象词,情感词)的搭配,关系类型即为情感极性。
3、跨领域
迁移学习的基本方法可分为4种类型,即基于样本的迁移学习、基于模型的迁移学习、基于特征的迁移学习和基于关系的迁移学习。其中,基于特征和基于模型的迁移学习更多地与细粒度情感分析相结合。通常来说,对ABSA任务进行跨领域迁移不是一件容易的事,例如同一个形容词对于不同领域、不同方面来说其情感极性可能完全相反,因此“跨领域”这一概念主要被应用与方面抽取(实体抽取)这一子任务上,用一个领域上的已知标注辅助另一领域的方面抽取。接下来介绍几个相关工作。
(1)《Cross-domain aspect extraction for sentiment analysis: a transductive learning approach》(2018)
这篇文章介绍了一种利用语法结构进行推理的直推式学习方法,首先获取原领域和目标领域的文本输入的词性和语法关系,然后构建一个异构网络,网络参数的训练基于一个很简单的假设,即共享相同邻居的节点倾向于使用相同标签进行分类。
上图展示了源领域构建部分网络的例子,其中边的权重指的是某词语作为某种语法成分出现的词数(如第一句The 作为det in 出现了两次),目标领域的部分与之类似,区别在于原领域多了是否是aspect的标签。
上图展示了网络整体的结构(为了更好地展示,忽略了介词、代词和只包含单个域节点的部分),中间的语法特征节点为“标签传播”起到桥梁作用;网络中每个节点都有一个向量,代表了该节点和每个类别的相似度,在本文中类别就是 是方面or不是方面,各个向量的迭代训练方式基于以下正则化函数,该公式的前两项表示相邻节点共享相似的标签信息,后一项表示源领域的向量在标签传播过程中没有被修改,与真实标签y保持一致;最后,目标领域节点通过Class Mass Normalization (CMN)得到该节点的分类。
总体来说这篇文章的方法比较直观,通过观察已知实例的语法结构和标签去学习一种“软规则”,但是仅仅利用了通用的词性和语法关系,没有使用任何词向量所以基本没有利用上下文关系。
(2)《Cross-Domain End-To-End Aspect-Based Sentiment Analysis with Domain-Dependent Embeddings》(2021)
这篇文章所介绍的工作是以往一些创新和技术的综合,首先作者指出以往的跨域ABSA工作主要是挖掘域不变特征,以最小化两个域之间的距离,实现迁移学习。而本文的主要贡献在于:①总体上是基于模型的迁移学习,使用了e2e架构;②使用BERT+域向量丰富文本表示并引入领域信息。具体从下到上来说,输入部分采用BERT做Embedding,其中L transformer层除了token本身的Embedding,还结合了位置Embedding、Segment Embedding进行表示的改善;得到文本上下文的表示h后,输入 E2E ABSA层,该层采用Bi-LSTM架构,值得注意的是这一部分使用了领域向量为源领域和目标领域的样本生成了不同的网络参数,是一个比较有趣的domain处理角度;最后分别对不同的领域使用不同CRF层进行标注。
(3)DomBERT(EMNLP 2020 Findings)
该文章主要基于预训练模型的一个特点,例如句子The [MASK] is clear,MASK处能填上sky / water / screen / picture等各个领域的词语,但往往依赖于训练语料中词语的频率而忽视了某些领域的长尾词语。作者对BERT的训练框架做了一个简单的改进,一定程度上利用了多任务的思想,结合领域分类任务,使得目标领域能够从相关领域的语料中获取知识,在低资源下的ABSA任务上取得了不错的效果。具体来说,先取[CLS]的隐藏状态进行维数缩减(reduce),再接一个维数为D=(n+1)*m(n个其他领域,1个目标领域,m为每个领域向量的大小)的dense层计算logits,最后用交叉熵损失作为领域分类的损失。最后的损失函数为
其中第一项为预训练模型的原始loss,第二项为分类损失,第三项为对领域向量施加的正则项,目的是让学习到的领域嵌入更加正交。此外,文章还介绍了一些其他处理,如内置数据采样过程保证目标域具有最高的抽样概率。