SetFitABSA:少样本方面情感分析

Hugging Face 和 Intel Labs 推出了 SetFitABSA,这是一种专为少样本训练领域特定方面情感分析(ABSA)模型而设计的框架。SetFitABSA 能够仅使用少量标注示例检测文本中针对特定方面的情感,且其表现常常能够匹配或超越诸如 Llama 2 和 T5 等规模更大的生成模型。

相较于基于 LLM 的方法的优势

SetFitABSA 相较于依赖上下文学习的大型语言模型(LLM)方法提供了两个主要优势:

  • 无需提示词: 与需要手工编写且对措辞极其敏感的提示词的 LLM 不同,SetFitABSA 直接从少量标注文本示例生成丰富的嵌入。
  • 更快的训练与标注: 该框架使用一种简单的训练数据格式,无需专门的标注工具,从而使数据标注过程更快捷、更容易。

技术架构:三阶段流程

SetFitABSA 通过一个顺序的三步流水线来识别方面及其对应的情感。

1. 方面候选抽取

系统假设方面(通常是产品或服务的特征)主要是名词或名词短语。它使用 spaCy 对文本进行分词,并从少样本训练集抽取所有名词和名词短语,将其视为“方面候选”。

2. 方面/非方面分类

为了将真实的方面与普通名词区分开来,使用 SetFit 模型训练一个二分类器。为了将句子级别的 SetFit 框架适配到 token 级别的分类,每个方面候选会使用模板 aspect_candidate:training_sentence 与完整句子拼接。

  • 正标签: 训练集中标识出的方面。
  • 负标签: 与方面不重叠的候选名词,即非方面。

3. 情感极性分类

在抽取出方面后,训练第二个 SetFit 模型为每个方面关联情感极性(例如,正面、负面或中性)。该模型的训练方式与抽取模型相同,使用相同的 aspect_candidate:training_sentence 模板,但仅在训练集中包含已确认的方面,以专注于极性分类。

基准测试与性能

SetFitABSA 使用 SemEval 2014 挑战赛的 Laptop14 和 Restaurant14 数据集进行评估,重点关注方面术语抽取(SB1)以及抽取与极性预测的联合任务(SB1+SB2)。

模型规模效率

SetFitABSA 的规模远小于其竞争的生成模型。Llama‑2‑chat 拥有 70 亿参数,而 SetFitABSA(使用 MPNet)仅使用两个 1.1 亿参数的模型(完整任务共计 2.2 亿参数)。

模型 规模(参数)
Llama-2-chat 7B
T5-base 220M
GPT2-base 124M
GPT2-medium 355M
SetFit (MPNet) 2× 110M

性能结果

在数据稀缺的情形下,SetFitABSA 相较于 T5 和 GPT2 展现出明显的性能优势。与 Llama 2 相比,SetFitABSA 的表现持平甚至更佳,尽管 Llama 2 的规模大 64 倍。值得注意的是,研究者观察到增加 Llama 2 的上下文训练样本数量并未始终提升其性能。

实现与训练

SetFitABSA 已集成到 setfit 库中。训练需要 setfit[absa] 包以及 en_core_web_lg spaCy 模型。

数据要求

训练数据集必须是包含四列的 Dataset 对象:

  1. text:完整句子。
  2. span:具体的方面术语(例如 “food”)。
  3. label:极性标签(例如 “positive”)。
  4. ordinal:若同一方面出现多次,则记录其出现顺序的索引(通常为 0)。

训练工作流

训练过程包括从句子转换模型(如 sentence-transformers/paraphrase-mpnet-base-v2)初始化 AbsaModel,并使用 AbsaTrainer 执行训练。由于该流程涉及两个顺序模型,建议使用 GPU 加速;在 Google Colab T4 GPU 上完整模型的训练大约需要 10 分钟。

Sources