n この資料は、予測の反実仮想説明のサーベイです。 n 基礎的な内容とテーブル、画像、テキストに対する反実仮想説明を紹介しています。 n サーベイ論⽂をまとめたわけではなく、⾃分で検索して調べたため、⾼い網羅性があるとは⾔えません。 n 各スライドの末尾に引⽤論⽂名と国際会議名を載せました。 はじめに
もし、画像が真ん中や右の⽣成画像の ようになれば8と予測します。 ⼀般的なテーブルデータではなく、画像を例にfactualとsemi-factualとcounterfactualを紹介 左の画像に対して、その説明を右の画像がそれぞれしている。 [AAAI 21] On Generating Plausible Counterfactual and Semi-Factual Explanations for Deep Learning 17
Ø結果、ある事象が他の事象と対照的になぜ起こったのかが明らかになる。 n半事実説明(Semi-Factual Explanation) ØEven if 「たとえ、何かをしても結果は変わらないだろう。」を出⼒することを⽬指す。 Ø半事実説明は、分類結果を変えないギリギリのサンプルを提⽰する。 関連する⽤語 反実仮想 事実 半事実 [EMNLP21] Contrastive Explanations for Model Interpretability [AAAI21] On Generating Plausible Counterfactual and Semi-Factual Explanations for Deep Learning 19
説明⽅法は図c)のように、間違えた予測を正しい予測に変えるために必要な概念ベクトルが緑で⽰される。 n 図c)はシマウマなのにストライプがないために別クラスになっているとわかる。 概念レベルの反実仮想例に向けて [ICML 22] Meaningfully Debugging Model Mistakes using Conceptual Counterfactual Explanations 30
Ø[ACL 20] Beyond accuracy: Behavioral testing of NLP models with CheckList. Ø[ICLR 20] Learning the difference that makes A difference with counterfactually-augmented data. n 摂動関数を定義 Ø[ACL 20] Semantically equivalent adversarial rules for debugging NLP models n 制御可能な⽣成モデルの利⽤ Ø[ACL 21] Polyjuice: Generating Counterfactuals for Explaining, Evaluating, and Improving Models テキストの反実仮想説明の現状 35
[ICLR20] Learning the difference that makes A difference with counterfactually-augmented data. [arXiv 20] Evaluating models’ local decision boundaries via contrast sets. 期待される事実の⾔い換え ⽪⾁の追加 修飾語の挿⼊ 修飾語の変換 フレーズの挿⼊ 修飾語による感情の減衰 異なる視点 レーティングの変更 G(z) z 38
CheckList. n ロバスト性を確認するために要件ごとにテキストを⼈が編集し、テス ト形式で調査しています。 A 単体テスト Ø 正常動作を確認 B 不変性テスト((Invariance test ) Ø 現実的にラベルが変わらない範囲でワードを変えて予測が不変か確 認 C ラベル変化テスト (A Directional Expectation test) Ø 元⽂と類似するがラベルが変化する⽂章で正しく予測ラベルが変化 するか確認 G(z) z 39
"It's sunny today, so we'll play outside." 3. b_text = "It's sunny today, so we [BLANK] outside.” 4. pj = Polyjuice(model_path="uw-hai/polyjuice", is_cuda=True) 5. perturbations = pj.perturb( 6. orig_sent=text, #オリジナル⽂章 7. blanked_sent=b_text, #ブランク付き⽂章 8. ctrl_code=“negation”, #制御ルール 9. perplex_thred=5, #⽣成⽂章の質の閾値 10. num_perturbations=3, #⽣成⽂の返り値の最⼤数 11. ) 12.print(perturbations) [Out]: ["It's sunny today, so we don't need to play outside.", "It's sunny today, so we don't have to go outside."] やってみた 41
so I can't go out anywhere. ⽣成結果 n "今週末は台⾵が来るから、海に⾏けないよ” n "今週末は台⾵が来るから、どこにも出かけられないよ” n "今週末は台⾵が来るから、仕事に⾏けないよ" n "I have a typhoon this weekend, so I can't go to the beach.” n "The typhoon is coming this weekend, so I can't go out anywhere.” n "I have a typhoon this weekend, so I can't go to work." 別の⽣成例 42