SetFitABSA: 少数ショットのアスペクトベース感情分析
Hugging Face と Intel Labs は、少数ショットでドメイン固有のアスペクトベース感情分析(ABSA)モデルを訓練するために設計されたフレームワーク SetFitABSA を導入しました。SetFitABSA は、テキスト内の特定のアスペクトに対する感情を、わずかなラベル付き例だけで検出でき、しばしば Llama 2 や T5 などはるかに大規模な生成モデルの性能と同等、あるいはそれ以上の成果を上げます。
LLMベース手法に対する利点
SetFitABSA は、インコンテキスト学習に依存する大規模言語モデル(LLM)手法に対して、主に二つの利点を提供します:
- プロンプトの排除: LLM と異なり、手作業で作成したプロンプトは壊れやすく表現に敏感ですが、SetFitABSA は少数のラベル付きテキスト例から直接リッチな埋め込みを生成します。
- より高速な訓練とラベリング: このフレームワークは、特殊なタグ付けツールを必要としないシンプルな訓練データ形式を使用するため、データラベリングプロセスがより速く、容易になります。
技術アーキテクチャ:三段階プロセス
SetFitABSA は、アスペクトとそれに関連する感情を特定するために、順次的な三段階パイプラインで動作します。
1. アスペクト候補抽出
システムは、アスペクト(通常は製品やサービスの機能)が主に名詞または名詞複合語であると仮定します。spaCy を使用してテキストをトークン化し、少数ショット訓練セットからすべての名詞と名詞複合語を抽出し、これらを「アスペクト候補」として扱います。
2. アスペクト/非アスペクト分類
実際のアスペクトと一般的な名詞を区別するために、SetFit モデルを用いて二値分類器を訓練します。文レベルの SetFit フレームワークをトークンレベルの分類に適用するため、各アスペクト候補はテンプレート aspect_candidate:training_sentence を用いて全文と連結されます。
- True Labels: 訓練セットで特定されたアスペクト。
- False Labels: アスペクトでない、重複しない候補名詞。
3. 感情極性分類
アスペクトが抽出されたら、2 番目の SetFit モデルを訓練し、各アスペクトに感情極性(例:肯定、否定、または中立)を関連付けます。このモデルは抽出モデルと同様に aspect_candidate:training_sentence テンプレートを使用して訓練されますが、訓練セットには確定したアスペクトのみを含め、極性分類に専念します。
ベンチマークとパフォーマンス
SetFitABSA は、SemEval 2014 Challenge の Laptop14 と Restaurant14 データセットを用いて評価され、アスペクト語抽出(SB1)および抽出と極性予測の統合タスク(SB1+SB2)に焦点を当てました。
モデルサイズの効率性
SetFitABSA は、競合する生成モデルに比べて大幅に小型です。Llama-2-chat が 7B パラメータを持つのに対し、SetFitABSA(MPNet 使用)は 110M パラメータのモデルを二つ使用し(合計 220M パラメータで全タスクをカバー)ます。
| モデル | サイズ(パラメータ) |
|---|---|
| Llama-2-chat | 7B |
| T5-base | 220M |
| GPT2-base | 124M |
| GPT2-medium | 355M |
| SetFit (MPNet) | 2x 110M |
パフォーマンス結果
データが少ないシナリオでは、SetFitABSA は T5 や GPT2 に対して明確なパフォーマンス優位性を示します。Llama 2 と比較した場合、Llama 2 が 64 倍大きいにもかかわらず、SetFitABSA の性能は同等かそれ以上です。特筆すべきは、研究者らが Llama 2 のインコンテキスト訓練サンプル数を増やしても、性能が一貫して向上しなかったことを観察した点です。
実装と訓練
SetFitABSA は setfit ライブラリに統合されています。訓練には setfit[absa] パッケージと en_core_web_lg spaCy モデルが必要です。
データ要件
訓練データセットは、4 つの列を持つ Dataset オブジェクトである必要があります:
- text: 完全な文。
- span: 特定のアスペクト語(例:"food")。
- label: 極性ラベル(例:"positive")。
- ordinal: アスペクトが複数回出現する場合のインデックス(通常は 0)。
訓練ワークフロー
訓練は、Sentence Transformer(例:sentence-transformers/paraphrase-mpnet-base-v2)から AbsaModel を初期化し、AbsaTrainer を使用して訓練を実行することを含みます。プロセスは二つの順次モデルを使用するため、GPU 加速が推奨されます。フルモデルは Google Colab の T4 GPU で約 10 分で訓練可能です。