得益于其丰富的应用场景,最近几年 ABSA 的研究工作不断涌现,各式新任务、新方法层出不穷。这虽然体现出学界对其的关注度,不过无形中也给大家做文献调研增添了不少困难。我们最近在 IEEE TKDE 上发表了一篇综述文章 - A Survey on Aspect-Based Sentiment Analysis: Tasks, Methods, and Challenges,试图系统地梳理近几年 ABSA 的相关工作。通过找出研究主线,整理出主要的研究脉络,希望能让读者或者初学者快速了解该领域。
链接:https://arxiv.org/pdf/2203.01054.pdf
Github 地址:https://github.com/IsakZhang/ABSA-Survey
本文想从更宽泛的角度,忽略具体模型细节,谈谈我们对 ABSA 发展的理解,可以看作是对这篇综述文章的总结和补充。此外,我们也建立了一个 GitHub 仓库囊括了综述中介绍的论文列表和资源。一方面希望提供另一种形式的概览,另一方面也希望能够实现共同建设从而保证资源的时效性,欢迎大家添加各种有用信息。
四种情感元素:ABSA 的核心
在上一篇引文 —《谈谈 ABSA 中那些令人迷惑的术语》中,我们已经提到由于没有统一术语以及领域的快速发展,ABSA 的许多概念会令初学者十分困惑,例如 ABSA 到底指的是什么任务(输入输出是什么?),aspect 和 target 到底指的是什么,有何区别?
想知道答案的同学欢迎阅读这篇引文:https://zhuanlan.zhihu.com/p/482180399
在梳理了之前的各种文章后,我们认为比较好的切入点是从 ABSA 中最核心的四个情感元素 aspect category, aspect term, opinion term, sentiment polarity 入手,具体的:
aspect category:涉及的 aspect 的类别,往往是各个领域提前定义好的一个集合。例如餐厅领域可以定义 “食物”、“服务” 等类别;或者更细粒度的 “食物质量”、“食物外观” 等。
aspect term: 文中提到的具体 aspect,一般是文中表述的某个词或短语。如果没有显示提及(例如 “这也太贵了吧!”),可以记做 none 或者忽略。
opinion term: 文中提到的 opinion 表达,一般和某个 aspect 紧密关联,是对某个 aspect 具体情感观点的表达。
sentiment polarity:针对某个 aspect 的情感倾向,大多数时候是三个类别:正面 / 负面 / 中性。也可以定义地更加粗粒度(只有正负性)或更细粒度(加上强度等成为五个类别)
例如,给一个句子 “The pizza is delicious”,其中提到的四个元素分别是:
有了这四个核心情感元素后,我们归纳出:
ABSA 是分析 aspect 层级各种情感元素的研究领域,它的研究主线 (各种具体任务) 即是:给定一个文本,我们目标得到一个或若干个情感元素。
例如早期的 aspect term extraction (ATE) 任务即是给定句子,挖掘出其中所有的 aspect term;或是最近几年研究较多的 aspect sentiment triplet extraction (ASTE) 任务则是挖掘出三个元素组成的三元组。
ABSA 任务:从 Single ABSA 到 Compound ABSA
上面介绍的四个情感元素给我们归纳 ABSA 工作提供了一个很好的角度:对于任何工作,我们可以根据它的输入输出涉及哪些情感元素,将他们系统归类。
根据输出为一个或多个元素,我们可以将其粗略分为 Single ABSA 和 Compound ABSA:
Single ABSA 指的是输出仅为一个单独的情感元素,这也是早期 ABSA 工作的重点。从图 2 的第一列到第二列可以看到,(预测)四个情感元素就分别对应着四个任务:
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。
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): 挖掘四个元素组成的四元组。可以看作是最全面的一个任务,可以得到全部的信息。当然难度也是 compound ABSA 里最大的一个。
ABSA 方法:相同与不同
针对不同的任务,已经有各式各样的方法被提出,我们按照任务总结如下图:
此处我们不讨论一两个模型的细节,而是着重看看不同方法中的相同点和不同点。
粗略来说,模型的设计大体取决于两个方面:1)任务形式 以及 2)任务特点。
任务形式指的是如何建模具体的任务:
例如对于 ATE 和 OTE 任务,由于他们目标都是预测文中的一段连续文本片段(text span),所以经常被建模成一个序列标注 (sequence tagging) 问题。这也意味着形式相同的任务,往往可以采用相似的模型。例如用 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)
特别是利用预训练生成式模型例如 Bart 和 T5,来通过文本生成的形式一步到位的解决各种 ABSA 任务成为了最近一年的热点研究方向:
Aspect Sentiment Quad Prediction as Paraphrase Generation (EMNLP 2021)
Seq2Path: Generating Sentiment Tuples as Paths of a Tree (ACL-Findings 2022)
Unified Structure Generation for Universal Information Extraction (ACL 2022)
Aspect-based Sentiment Analysis with Opinion Tree Generation. (IJCAI 2022)
Improving Aspect Sentiment Quad Prediction via Template-Order Data Augmentation (EMNLP 2022)
Generative Aspect-Based Sentiment Analysis with Contrastive Learning and Expressive Structure (EMNLP Findings 2022)
下一步是什么:挑战依然存在
前面几节是从任务 + 方法的角度介绍了 ABSA 的研究主线,这也是目前 ABSA 工作最多的方面,但 ABSA 作为一个研究领域而言,还有很多有意思 / 值得探索的方向,例如:
更大更难的数据集:ABSA 已有数据集都较小,数据量更大、更加复杂(例如多领域、多语言的标注数据)的数据集会非常有益于探索更多问题。
多模态 ABSA:目前 ABSA 任务都集中在单模态(也即文本),然而现实生活中多模态的情感数据越来越多,例如用户评论中越来越多人会附带图片,Twitter / 微博上发表评论的同时也可以附带图。
大一统模型:ABSA 有着各种各有的子任务,如果每个任务都设计一个模型需要耗费大量精力,如果有 unified 的模型能同时解决多个(甚至全部)的任务,会大大简化实际应用。上节中提到的用 MRC 或 Seq2Seq 生成式框架的工作就已经是这个方向的一些探索。 LLMs时代的发展:LLMs在各项任务中展示了惊人的结果,也已经有些初步结果显示ChatGPT解决简单句子级别的情感分类任务可以获得接近标注数据精调下的效果。但对于更为复杂和细粒度的ABSA,以及各种相关任务,LLMs对于文本中体现的复杂人类情感和观点的理解程度仍然有待检验和进一步探索。
最后总结一下,ABSA 的工作已经非常丰富,本文从情感元素的角度作为切入口来对之前的各式方法和任务做了个梳理,最后稍微谈了些我们觉得比较有意思和潜力的方向。总的来看,这个领域仍在快速发展,期待将来有更多精彩的工作继续出现。