方面级情感分析(ABSA)最新综述
任务、方法与挑战
作者:张雯轩 邓扬 李昕 邴立东 林伟单位:香港中文大学 阿里巴巴达摩院
Aspect-Based SentimentAnalysis (ABSA),属于SentimentAnalysis / Opinion Mining 方向的一个子领域,从名字也可以直观看出是在aspect (常译为方面或属性) 层级做情感分析。
最近几年 ABSA 的研究工作不断涌现,各式新任务、新方法层出不穷。不过这无形中也给大家做文献调研增添了不少困难。我们最近公开了一篇综述文章 - A Survey on Aspect-Based SentimentAnalysis: Tasks, Methods, and Challenges(链接:https://arxiv.org/abs/2203.01054),从情感元素与各种任务的角度系统地梳理了近几年的近二百篇相关工作。
四种情感元素:ABSA 的核心
在《谈谈ABSA 中那些令人迷惑的术语(https://zhuanlan.zhihu.com/p/482180399) 一文中,我们已经提到由于没有统一术语以及领域的快速发展,ABSA的许多概念会令初学者十分困惑,例如ABSA到底指的是什么任务(输入输出是什么),aspect 和 target 到底指的是什么,有何区别?(想知道答案的同学欢迎阅读这篇引文)
在梳理了之前的各种文章后,我们认为比较好的切入点是从 ABSA 中最核心的四个情感元素aspect category, aspect term,opinion term, sentiment polarity 入手,具体的:
aspect category:涉及的 aspect 的类别,往往是各个领域提前定义好的。例如餐厅领域可以定义“食物”、“服务”等类别;或者更细粒度的“食物质量”、“食物外观”等
aspect term: 文中提到的具体 aspect,一般是文中表述的某个词或短语。如果没有显示提及(例如“这也太贵了吧!”),可以记做 none
opinion term: 文中提到的 opinion,一般和某个 aspect 紧密关联
sentiment polarity:针对某个 aspect 的情感倾向,大多数时候是三个类别:正面/负面/中性。也可以定义的更加粗粒度(只有正负性)或更细粒度(加上强度等成为五个类别)
例如,给一个句子“The pizza is delicious”,其中提到的四个元素分别是:
有了这四个情感元素后,我们可以归纳出 ABSA 是分析 aspect 层级各种情感元素的研究领域,它的研究主线(各种具体任务)即是:给定一个文本,我们目标得到一个或若干个情感元素。
例如早期的 aspect term extraction (ATE) 任务即是给定句子,挖掘出其中所有的 aspect term;或是最近几年研究较多的 aspect sentiment tripletextraction (ASTE) 任务则是挖掘出三个元素组成的三元组。
ABSA任务:从 Single ABSA 到 Compound ABSA
上面介绍的四个情感元素给我们归纳 ABSA 工作提供了一个很好的角度:对于任何工作,我们可以根据它的输入输出涉及哪些情感元素,将他们系统归类。
根据输出为一个或多个元素,我们可以将其粗略分为 Single ABSA 和 Compund ABSA:
图2:四种情感元素以及ABSA任务,其中黄色框和蓝色框分别对应 Single ABSA 和 Compound ABSA 任务。Single ABSA 指的是输出仅为一个单独的情感元素,这也是早期 ABSA 工作的重点。四个情感元素就分别对应着四个任务:
Aspect term extraction (ATE):识别句子中显式提及的方面词。例如给定上面的例句,模型需要预测出 “pizza” 这个词。
Aspect category detection (ACD): 识别句子中提及到的 aspect 类别。例如餐厅领域总共有10个类别,某个句子提及到了其中的“食物”和“环境”两个类别。
Aspect sentiment classification (ASC): 判断针对某个 aspect term 或 aspect category 的情感倾向是什么。输入为一个句子以及某个特定的 aspect term/category,输出为情感类别。
Opinion term extraction (OTE):识别句子中提及的 opinion expression。由于只识别opinion term 并无太大意义(人们会更关心到底是针对什么发表的观点),所以更常见的任务是给定某个 aspect,识别出其对应的 opinion term,一般缩写为 TOWE。
针对每个任务的具体介绍可见综述文章的第3节 - Single ABSA Tasks。
Compound ABSA指的是输出多个相关联的情感元素。这也意味着:1)输出中包含多项元素(而不仅是一个);2)这些元素之间的关系也需要被识别。相比于 single ABSA 任务,compound ABSA 任务可以提供更加丰富和全面的信息,可以更好的帮助我们了解整个方面层级观点的全貌(当然也意味着任务难度变高了),所以最近一两年收获了非常多的关注。类似的,从涉及元素的多少判断,我们可以进一步将 compound ABSA 任务分为:
1. Pair extraction task: 输出涉及两个元素,所以是以二元组的形式输出
Aspect-opinion pair extraction (AOPE):挖掘出(aspect term, opinion term) pairs。
End-to-End ABSA (E2E-ABSA):挖掘出 (aspect term, sentiment polarity) pairs。由于这两个元素非常重要(让人迅速了解在什么方面上表现出了什么样极性的情感),属于最早被研究的 compound ABSA 任务,所以(早期)很多论文也会直接称这个任务为“ABSA” 或 “unified ABSA”,这里为了不导致歧义,我们用“E2E-ABSA” 来称呼这个任务。
Aspect category sentiment analysis (ACSA): 挖掘出 (aspect category, sentiment polarity) pairs,类似于E2E-ABSA任务,但此时用 category 来指代aspect,从而即使面对被隐式表达的aspect(aspect term为none),模型也可以提供解。
2. Triplet extraction task:输出涉及三个元素,所以是以三元组的形式输出
Aspect sentiment triplet extraction (ASTE): 挖掘出 (aspect term, opinion term, sentiment polarity) 三元组
Aspect-category-sentiment detection (ACSD): 挖掘出 (aspect term, aspect category, sentiment polarity) 三元组
3. Quad extraction task:输出涉及四个元素,所以是以四元组的形式输出
Aspect sentiment quad prediction (ASQP): 挖掘四个元素组成的四元组。可以看作是最全面的一个任务,可以得到全部的信息。
针对每个任务的具体介绍可见综述文章的第4节 - Compound ABSA Tasks。
ABSA 方法:相同与不同
针对不同的任务,已经有各式各样的方法被提出,我们按照任务总结如下图:
图3: 具体 citation 可见综述文章A Survey on Aspect-Based SentimentAnalysis: Tasks, Methods, and Challenges.
此处我们不讨论一两个模型的细节,而是着重看看不同方法中的相同点和不同点。
粗略来说,模型的设计大体取决于两个方面:1)任务形式以及 2)任务特点。任务形式指的是如何建模具体的任务:
例如对于 ATE 和 OTE 任务,由于他们目标都是预测文中的一段连续文本片段(text span),所以经常被建模成一个序列标注问题 (sequence tagging or sequence labeling)。这也意味着形式相同的任务,往往可以采用相似的模型。例如用 BiLSTM+CRF 或 BERT + linear layer 可以无差别地解决这两个序列标注问题。
又比如为了端到端地解决 ACSA 问题,一种叫 “add-one-dimenion” 的方法被提出:对于每一个aspect category,除了正向/负向/中性以外,额外加了一个 N/A 维度,如果预测结果为此维度,则说明该aspect category并不存在。这种思想后来也被用在了解决 ACSD 任务上。
任务特点指的是模型根据任务的特点来做网络结构的设计:
例如 ASC 和 TOWE 虽然目标不同:一个是预测对应的 opinion term, 一个是预测对应的sentiment polarity,但由于输入都是句子以及某个aspect,这两个任务的许多模型重点就都落在了如何建模 aspect 和 sentence context 之间的交互关系来做预测。许多 attention 的设计和操作也就变得通用了。
又比如 ASC 目标是预测情感极性,一个很直接的思路是如果能找到 aspect 与对应的 opinion term 之间的依赖关系,可以很好的辅助预测。于是最近一两年涌现了大量的利用GCN 显式建模句法树来辅助预测的工作:ASGCN, CDT, DGEDT, kumaGCN...
此外,对于 compound ABSA 任务,模型设计会变得更加困难一些。最直接的方法就是 pipeline 类型的解法:把原始任务分解为一个个子任务,然后挨个解决。例如 AOPE 就可以分解成 ATE → TOWE,E2E-ABSA 可以分解成 ATE → ASC。由于这些子任务往往已经有很多模型,这类方法会比较容易构建。
然而由于误差传导(error propagation)的问题,也即模型的错误会一步步积累(特别是对复杂任务而言),最近一两年的工作集中在提出端到端的模型来解 compound ABSA 任务。又由于大规模预训练模型的广泛应用,设计复杂的网络架构已经不存在太大优势,所以研究问题也就变成了 — “如何将任务 X 转化成可以被端到端解决(从而可以利用预训练模型的优势)”。也出现了些共通(相撞)的思路:
● 将要预测的内容用统一的标注方式(tagging scheme)来表示,例如解 ASTE 的两种scheme:
Position - Aware Tagging for Aspect Sentiment Triplet Extraction (EMNLP 2020)
Grid Tagging Scheme for Aspect-oriented Fine-grained Opinion Extraction (EMNLP-Findings 2020)
●用 MRC 框架,通过设计query 来关联各个情感元素:
Question-Driven Span Labeling Model for Aspect-Opinion Pair Extraction (AAAI 2021)
Bidirectional Machine Reading Comprehension for Aspect Sentiment Triplet Extraction (AAAI 2021)
A Joint Training Dual-MRC Framework for Aspect Based Sentiment Analysis (AAAI 2021)
●用生成式框架,直接生成要预测的情感元素/情感元素的索引:
Towards Generative Aspect-Based Sentiment Analysis (ACL 2021)
A Unified Generative Framework for Aspect-based Sentiment Analysis (ACL 2021)
下一步是什么:挑战依然存在
前面两节是从任务+方法的角度介绍了ABSA的研究主线,这也是目前ABSA工作最多的方面,但 ABSA 作为一个研究领域而言,还有很多有意思/值得探索的方向,例如:
更大更难的数据集:ABSA已有数据集都较小,数据量更大、更加复杂(例如多领域、多语言的标注数据)的数据集会非常有益于探索更多问题。
多模态 ABSA:目前 ABSA 任务都集中在单模态(也即文本),然而现实生活中多模态的情感数据越来越多,例如用户评论中越来越多人会附带图片,Twitter/微博上发表评论的同时也可以附带图。
大一统模型:ABSA 有着各种各有的子任务,如果每个任务都设计一个模型需要耗费大量精力,如果有 unified 的模型能同时解决多个(甚至全部)的任务,会大大简化实际应用。上节中提到的用 MRC 或 Seq2Seq 生成式框架的工作就已经是这个方向的一些探索。
这里仅仅简单罗列了几点,更详细的讨论可以见综述文章的第6、7节。
最后总结一下,ABSA的工作已经非常丰富,本文从情感元素的角度作为切入口来对之前的各式方法和任务做了个梳理,最后稍微谈了些我们觉得比较有意思和潜力的方向。总的来看,这个领域仍在快速发展,期待将来有更多精彩的工作继续出现。
P.S. 如果我们有遗漏任何重要工作,欢迎与我们联系,我们会及时更新。