ACL20 Best Paper揭晓!NLP模型评价体系或将迎来重大转折
星標/置頂小屋,帶你解鎖
最萌最前沿的NLP、搜索與推薦技術
文 |?北大小才女小軼
昨晚ACL2020的Main Conference落下帷幕,今年的最佳論文頒給了這篇《Beyond Accuracy: Behavioral Testing of NLP Models with CHECKLIST》。在ACL錄用的778篇論文中,這篇的標題并不起眼,屬于看到就想直接跳過的類型。今天細讀了一下,發現確實是很有意義的工作。在此與大家分享。
背景介紹
這篇paper解決的是NLP領域的模型評測問題。目前最主流的評測方法是從已有數據中劃分出一部分作為測試集,然后測試模型準確率。但這并不能全面地評估一個模型的好壞,還有很多意想不到的情況:
測試集有部分數據和訓練集相似度很高,模型如果overfit了也無法發現
測試集存在bias,與真實場景分布不一致
模型采用了某種shortcut才在數據集上表現良好
所以,模型的評估環節存在著不少風險,很難做出一個完美的benchmark。
近年來也涌現了大量關注NLP評測的工作。但之前的這些工作往往還是只能檢測模型某種單方面的能力(例如,對噪音的魯棒性),或者只是提出了針對某種特定任務的評測指標(例如針對NLG任務,測試生成文本前后邏輯一致性)。而且,這些新提出的測試方法往往實際操作起來并不容易。所以盡管傳統方法詬病已久,卻仍然大行其道。
本文提出的CHECKLIST是一種全新的、顛覆性的評測方式。作者認為:應當全方位對模型多項“能力”進行評估,每一項能力都應通過三項不同類別的檢測。借助作者提供的[開源工具],(https://github.com/marcotcr/checklist),只需基本NLP經驗即可快速生成大規模的測試樣例。并且整個過程適用于幾乎所有NLP任務(task-agnostic)。實踐證明,與不采用CHECKLIST時相比,志愿者借助CheckList進行測試后,在極短的時間內就生成了多出一倍的測試樣例,并從中發現了三倍未知的bug。
論文作者視頻解析:
https://slideslive.com/38929272/beyond-accuracy-behavioral-testing-of-nlp-models-with-checklist
Github:
https://github.com/marcotcr/checklist
論文鏈接:
https://arxiv.org/abs/2005.04118
公眾號「夕小瑤的賣萌屋」 后臺回復關鍵詞【0710】下載論文PDF
CHECKLIST
CHECKLIST的思想借鑒了軟件工程中的“黑盒測試”方法。它試圖給出一套清晰完整的方法論,告訴你What to Test以及How to Test。
What to Test
對于一個軟件,需要測試的是每一個function是否可以正確運行,但在NLP中并沒有明確劃分的function。CHECKLIST提出,我們應該測試model的各種“能力”。論文中列舉了10種所有模型都應該具備的“基本功”,包括但不限于:
Vocabulary+POS:是否熟練掌握任務相關的詞匯
Taxonomy:是否理解同義詞、反義詞
NER:是否正確理解了named entity
Logic:是否前后連貫一致
當然,根據具體任務,還要添加其他的特定能力。
How to Test
那么如何對各種能力進行測試呢?CHECKILIST提出對于每種能力都要盡可能地進行三種不同類型測試,分別是最小功能測試,不變性測試,定向期望測試。這里以情感分析任務為例,為大家具體說明這三種測試方式:
1. 最小功能測試(MFT, minimum functionality test): 類似軟工中的“單元測試”,用大量簡單但具有極強針對性的樣例進行測試。例如下圖,用模板生成帶有否定詞的句子,來測試模型NEGATION的能力。
2. 不變性測試(INT, invariance test): 對原有數據做一些不影響結果的輕微變化。例如下圖,當我們把句子中的一些named entity替換,模型應該不改變其輸出結果。如果改變,則說明其魯棒性存在問題。
3. 定向期望測試(DIR, directional expectation test): 也是對原有數據做少許改動。改動后,模型的結果應該朝一個期望的方向變化。例如下圖,對于負面情緒的句子,如果我們在其末尾繼續添加負面的話語,模型不應該變得比原來“樂觀”。
到這里,我們已經清楚了:CHECKLIST要測試的是模型的各項“能力”,每種能力要經過三種測試。那么如下圖所示,以“能力”為行,以測試類型為列,就得到了一張完整的CHECKLIST。而測試過程就是填滿這個矩陣。
接下來的問題就是,有那么多測試要進行,如何針對每一項測試大規模生成測試樣例呢?根據原文的說法,測試樣例可以完全“無中生有”,也可以通過改動已有數據得到。而作者們已經給出了強大的開源工具,幫助你快速生成測試樣例。整個工具完全可視化,操作性極強。下圖就展示了它友好的操作界面。為了證明CHECKLIST有多好用,作者直接找到了Microsoft開發情感分析API的團隊。CHECKLIST幫助他們在5個小時內找出了許多從未察覺的bug。又找了18個志愿者,在僅接受簡單輔導的情況下,志愿者全部在2小時內測試出了SOTA模型的許多問題。
用CHECKLIST測試SOTA模型
作者在實驗部分用CHECKLIST的方法在三個任務上進行了測試。拋棄傳統的評測方式,在CHECKLIST面前那些所謂SOTA模型暴露出了各種各樣的問題。即使面對最最簡單的模板生成樣例,也表現堪憂。
以情感分析任務為例,他們測試了Microsoft, Google, Amazon提供的情感分析付費API,以及Bert、RoBerta。在Negation這一項能力上,我們可以看到無論是工業界的成熟API、還是學術界的SOTA模型,都出奇的糟糕。比如第二行雙重否定這一項上,只是用模板生成的簡單雙重否定,Bert和RoBerta的錯誤率高達98.4%、95.4%。而對于先抑后揚的情況,三個API的錯誤率高達100%、90.4%、100%。
再比如,在SQuad數據集上,如今的SOTA模型聲稱已超越了human performance。然而果真如此嗎?作者對數據集中最簡單的一類問題,也就是那些只對basic property提問的那些問題,進行反義詞替換。Bert的回答就一下子牛頭不對馬嘴,錯誤率高達82.4%。
另外,CHECKLIST還發現了Bert存在種族歧視、性別歧視、性取向歧視......在做情感分析時,對于提到特定群體的句子,Bert會直接給出negative的標簽。
在原文和github中,作者給出了各個模型極其詳盡的CHECKLIST測試結果和典型錯誤樣例。看著這些密密麻麻的數據,確實能感受到CHECKLIST更為全面地評估了模型的各方面能力。
小結
本文借鑒了軟件工程的思想,提出了一套完整的NLP模型評測方法論,并提供了強大的開源工具,使整個測試過程得以快速實現。實驗證明,CHECKLIST方式確實能夠對NLP模型進行更為全面細致的評估。相比于原來僅用accuracy得到的評測結果,CHECKLIST給出了更多的insight,也讓我們看到了在這些NLP任務上,我們真的還有很長很長的路要走...
論文作者視頻解析:
https://slideslive.com/38929272/beyond-accuracy-behavioral-testing-of-nlp-models-with-checklist
Github:
https://github.com/marcotcr/checklist
論文鏈接:
https://arxiv.org/abs/2005.04118
公眾號「夕小瑤的賣萌屋」 后臺回復關鍵詞【0710】下載論文PDF
夕小瑤的賣萌屋
_
關注&星標小夕,帶你解鎖AI秘籍
訂閱號主頁下方「撩一下」有驚喜
總結
以上是生活随笔為你收集整理的ACL20 Best Paper揭晓!NLP模型评价体系或将迎来重大转折的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 腾讯天衍实验室新算法入选国际万维网大会
- 下一篇: 全栈深度学习第6期: 模型测试和部署