SetFitABSA:少樣本面向屬性情感分析

Hugging Face 與 Intel Labs 推出了 SetFitABSA,這是一個專為少樣本訓練領域特定面向屬性情感分析(ABSA)模型而設計的框架。SetFitABSA 能夠僅使用少量標記範例,即可偵測文本中對特定屬性的情感,且其表現常常匹配或超過諸如 Llama 2 與 T5 等規模更大的生成模型。

相較於 LLM 方法的優勢

SetFitABSA 相較於依賴情境學習的 大型語言模型(LLM) 方法,提供兩大主要優勢:

  • 免除 Prompt:與需要手工設計且對措辭敏感、易碎的 Prompt 的 LLM 不同,SetFitABSA 直接從少量標記文本範例中產生豐富的嵌入向量。
  • 更快的訓練與標記:此框架使用簡單的訓練資料格式,無需專門的標記工具,使得資料標記過程更快速、更加便利。

技術架構:三階段流程

SetFitABSA 透過一個連續的三步管線來識別屬性及其相關情感。

1. 屬性候選抽取

系統假設屬性(通常是產品或服務的特徵)主要是名詞或名詞片語。它使用 spaCy 進行斷詞,從少樣本訓練集抽取所有名詞與名詞片語,並將其視為「屬性候選」。

2. 屬性/非屬性分類

為了將真正的屬性與一般名詞區分開來,會使用 SetFit 模型訓練一個二元分類器。為了將句子層級的 SetFit 框架套用到詞彙層級的分類,每個屬性候選會使用模板 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) 2x 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 Transformer(例如 sentence-transformers/paraphrase-mpnet-base-v2)初始化 AbsaModel,再使用 AbsaTrainer 執行訓練。由於流程涉及兩個連續模型,建議使用 GPU 加速;在 Google Colab T4 GPU 上,完整模型大約可於 10 分鐘內完成訓練。

Sources