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 对象:
- text:完整句子。
- span:具体的方面术语(例如 “food”)。
- label:极性标签(例如 “positive”)。
- ordinal:若同一方面出现多次,则记录其出现顺序的索引(通常为 0)。
训练工作流
训练过程包括从句子转换模型(如 sentence-transformers/paraphrase-mpnet-base-v2)初始化 AbsaModel,并使用 AbsaTrainer 执行训练。由于该流程涉及两个顺序模型,建议使用 GPU 加速;在 Google Colab T4 GPU 上完整模型的训练大约需要 10 分钟。