BARTABSA++: Revisiting BARTABSA with Decoder LLMs
- Aspect-Based Sentiment Analysis(ABSA)の三つ組抽出において、古典的なBARTABSAを現代の実装と大きめのモデルで検証し直した研究である。
- BARTABSA++は、正規化、追加の交差注意、学習可能なゲートを加え、BART-LARGEで平均F1 73.16を得た。
- GPT-4Oをファインチューニングした比較より高い成績を示し、精密な関係抽出では大きなデコーダ言語モデルだけが答えではないことを示している。
論文の面白いところ
この論文は、大規模言語モデルの時代に、明示的な構造化モデルがまだ有用かを正面から調べている。対象はAspect Sentiment Triplet Extraction(ASTE)であり、レビュー文から評価対象、意見語、感情極性を同時に取り出す課題である。BARTABSAは2021年の手法で、入力文中の単語位置をポインタで指し、決められた形式の出力を作る。著者らはまず、この手法をPyTorch、Lightning、現在のTransformersで再実装した。すると、アルゴリズムはほぼ同じであるにもかかわらず、元の報告値より大きくよい結果になった。この点だけでも、古い実装基盤に依存した比較の難しさを示している。さらに、BART-LARGEへ拡張すると性能は伸びるが、訓練が不安定になる。BARTABSA++は、その不安定さを抑えるための小さな設計変更を積み上げる。結果として、平均F1ではファインチューニングしたGPT-4Oを上回る。論文の結論は、LLMが不要というものではない。むしろ、厳密な範囲抽出と構造化出力では、よいエンコーダ表現とポインタ機構がなお強い、という落ち着いた主張である。
問題設定
ABSAは、文や文書全体の感情を一つにまとめるのではなく、文中の特定の対象に対する評価を扱う。ASTEでは、aspect term、opinion term、sentiment polarityの三つを一組として抽出する。たとえば「drivers は okay だが、BIOS update が system を froze した」という文では、driversに対する肯定的評価と、BIOS updateやsystemに対する否定的評価が同居している。単なる肯定・否定分類では、このような複数の評価対象を分けられない。BARTABSAはこの課題を、固定された文法に従う系列生成として扱う。出力は、評価対象の開始位置と終了位置、意見語の開始位置と終了位置、そして感情ラベルからなる五つ組である。ポインタネットワークは、語を自由に生成するのではなく、入力文中の位置を直接指す。この性質により、抽出結果が入力文のどの範囲に対応するかを明確にできる。本研究の問いは、この構造化された古い枠組みを、現在の大きなモデルやデコーダ型言語モデルに広げたとき、性能がどこまで伸びるかである。あわせて、性能に効くのはエンコーダなのか、デコーダなのかも調べている。
提案手法
著者らは、まずBARTABSAをBARTABSA-Rとして再実装した。古いfastNLP依存を外し、PyTorch、Lightning、Transformersを用いる。データ処理とモデル処理の結びつきを弱め、トークナイザ出力を用いて、ハードコードされたIDを避ける。次に、拡張版としてBARTABSA++を導入する。第一の変更は、ポインタで参照する入力表現と、感情分類用の特殊トークン表現のスケールをそろえるL2正規化である。BART-LARGEでは、このスケール差が訓練の発散や大きなばらつきにつながっていた。第二の変更は、デコーダの最終隠れ状態に、入力側表現への追加の交差注意を加えることである。この交差注意にはBARTの既存のデコーダ層の重みを再利用する。第三の変更は、固定係数ではなく学習可能なゲートで、元の表現と追加処理後の表現を混ぜることである。さらに、Rotheらの方法に従い、BERT、RoBERTa、GPT-2などを組み合わせた疑似的なエンコーダ・デコーダ構成も試している。これにより、デコーダ型モデルを大きくすることが、この抽出課題にどれほど効くかを検証している。
結果
実験はSemEval系の4データセット、14res、14lap、15res、16resで行われた。評価はタプル単位のprecision、recall、F1であり、すべての要素が正しく一致した場合だけ正解とする。BARTABSA-RはBART-BASEで平均F1 67.01を示し、元のBARTABSAの平均F1 62.70を上回った。BARTABSA++はBART-BASEで平均F1 68.87に上がった。BART-LARGEを使うと、BARTABSA++は平均precision 73.66、recall 72.77、F1 73.16となった。これは、同じ表に示されたファインチューニング済みGPT-4Oの平均F1 70.95を上回る。アブレーションでは、エンコーダ側の正規化を外すと平均F1が7.00下がり、標準偏差も大きく増えた。追加の交差注意を外すと2.14下がり、デコーダ側ゲートを外すと11.83下がった。GPT-2をエンコーダとデコーダに転用して大きくしても、F1はおおむね55から57程度で、モデルサイズに従う改善は見られなかった。さらに、デコーダをランダム初期化しても平均F1は63.46にとどまる一方、エンコーダをランダム初期化すると15.45まで落ちた。著者らは、この課題ではデコーダの生成能力よりも、トークン単位のエンコーダ表現の質が支配的であると結論している。
具体例
入力文として「The screen is bright, but the battery drains quickly.」という製品レビューを考える。この文には、画面についてのよい評価と、電池についての悪い評価が含まれる。BARTABSA++は文をエンコーダで表現し、デコーダは固定された形式に従って、どの単語範囲を指すかを順に出す。期待される出力は、screenを評価対象、brightを意見語、感情をpositiveとする三つ組と、batteryを評価対象、drains quicklyを意見語、感情をnegativeとする三つ組である。ポインタ機構を使うため、screenやbatteryという語を新しく生成するのではなく、入力中の位置を指す。これにより、出力が入力文から離れにくくなる。間違えやすい点は、文全体を否定的と見てscreenの肯定を落とすことである。また、quicklyだけを意見語として取り、drainsを落とすと、電池がどう悪いのかが曖昧になる。反対に、battery drains quickly全体を評価対象にしてしまうと、対象と意見の境目を誤る。論文が扱う構造化抽出では、この境目を正確にそろえることが評価の中心になる。