Sansan Tech Blog

Sansanのものづくりを支えるメンバーの技術やデザイン、プロダクトマネジメントの情報を発信

【Techの道も一歩から】第33回「文献紹介:Beyond Accuracy: Behavioral Testing of NLP Models with CheckList」

f:id:kanjirz50:20190104142720j:plain

こんにちは。 DSOC 研究開発部の高橋寛治です。

社内の論文読み会で紹介した評価に関する文献である「Beyond Accuracy: Behavioral Testing of NLP Models with CheckList」について簡単に所感を交えて*1紹介したいと思います。 なお、本文内での図表は基本的に文献から引用したものとなります。

Beyond Accuracy: Behavioral Testing of NLP Models with CHECKLIST

文献情報

Marco Tulio Ribeiro, Tongshuang Wu, Carlos Guestrin, Sameer Singh. Beyond Accuracy: Behavioral Testing of NLP Models with CheckList, Association for Computational Linguistics, pp.4902-4912, 2020

ACL 2020 のベストペーパーです。 ざっくり説明すると、NLP モデル評価におけるチェックリストを作成し、それが実際に有益であることを検証により示したものです。

読んだ理由

紹介する理由ですが、ベストペーパーということで非常に興味深い研究であることも一つですが、大学院時代に取り組んだ研究*2の数十歩先を行く良い研究と感じたためです。 また、自然言語処理モデルをいかに評価するかという点について、データセットをうまく作る手法や、評価が実際に有効だということを実証実験で示したことは、特にこの文献で素晴らしいと感じる点です。

背景

自然言語処理モデルを学習する上で、データセットに対する精度評価は大事ですが、汎化することも目標の一つです。 データセットを train-validation-test に分割し、モデルの学習や評価を行うのが主流ですが、汎化性能を見られるかというとそう言い切れない点があります。 ホールドアウト検証では、テストセットにも学習セットと同じバイアスが含まれると考えるからです。

一方でソフトウェアエンジニアリングに目を向けると、振る舞い評価(ブラックボックステスト)の研究が盛んです。 ここから着想を経て、自然言語処理モデルにも似たような評価を行うチェックリスト(枠組みとツール)を提案するというのが、この文献です。

所感:実運用してるとテストだけでは不安です。そこにソフトウェアエンジニアリングから着想を経て、振る舞いを評価するというのは面白い発想だと思います。

チェックリスト

ざっくり言うと次の観点で変更を加えて評価します。

  • Min Func Test:ユニットテスト的な発想
  • INVariance:摂動に対する出力の頑健さ(メタモーフィックテスト的な発想)。入力が多少変わっても出力はかわらない
  • DIRectional:出力を変えるような変更で出力が変わるか

f:id:kanjirz50:20201015093408p:plain

ただ、それぞれでデータをすべて人力で加工するのは大変なので、その方法も提案しています。 RoBERTa の masked language model を使ったり、 WordNet の同義語を組み合わせたりして、候補を出力します。 なお、コードが公開されています。

f:id:kanjirz50:20201015095246p:plain

所感:ほんの少し入力が変わるだけで出力が変化するというのは、機械学習モデルにありがちです。モデルのデプロイ後に場当たり的な対応をする前に、このメソッドでバグを見つけ、モデル改善というのが実際に使えそうな印象です。また、ツール公開は分野を支える素晴らしい取り組みだと思います。

ユーザ評価

商用システムでの評価

チェックリストによる試験を商用システムに対して行ったところ、未知のバグ(把握していない挙動)を見つけられています。

エラーの発見しやすさ

18人の自然言語処理中級者による実証実験を行います。 3グループ(すべて人力、チェックリストの説明、チェックリストの説明に加えてテンプレートツールを提供)に分かれて、Jupyter Notebook 上でどれだけのテストを作り、どれだけの挙動のバグを見つけられるかを比較しました。

結果、チェックリストの説明を受けて、テンプレートツール(テストケースの作成支援環境)があると、より多くのテストを作ることができ、またより多くのバグを発見できました。

f:id:kanjirz50:20201015103527p:plain

所感:エラー発見の効率が上がっていることに驚きを隠せません。こういった観点が無いと、単なるスコアを追いがちですが、具体的なエラー事例に向き合いやすい枠組みと思います。

評価手法は大事だ

自然言語処理モデルを実運用していると、評価や意図しないモデルの挙動の把握については本当に困ります。 例えば、最近だと「コロナ」という単語が、固有表現抽出において誤判定される一つの単語でした。 これは、モデル学習時期が新型コロナウイルス流行以前だったため、新型コロナウイルスの影響を受けたコーパスで学習されていなかったためだと考えられます。

こういった問題に対しては、上記論文で提案されているチェックリストに加え、最近頻出する単語について誤判定されないかといった、どのような単語をテストすべきかを考えることで、今後は防げる問題かと思います。 また、チェックリストがあることで、繰り返し評価を行えるというのは、実運用する上での一つの強みと感じます。

実運用に関わる中で何かしら評価について新しい研究の種は無いかな、と頭の片隅で考えていた中で出会った非常に面白い文献の紹介でした。

執筆者プロフィール

高橋寛治 Sansan株式会社 DSOC (Data Strategy & Operation Center) 研究開発部 研究員

阿南工業高等専門学校卒業後に、長岡技術科学大学に編入学。同大学大学院電気電子情報工学専攻修了。在学中は、自然言語処理の研究に取り組み、解析ツールの開発や機械翻訳に関連する研究を行う。大学院を卒業後、2017年にSansan株式会社に入社。キーワード抽出など自然言語処理を生かした研究開発に取り組む。

▼本連載のほかの記事はこちら

buildersbox.corp-sansan.com

*1:所感は、「所感:」から始まります。

*2:機械翻訳システムの出力安定性に限定して評価を行う研究でした。

© Sansan, Inc.