目前大部分 NLP 模型都是通過劃分訓練、測試集進行性能的評估,在訓練集訓練,用測試集評估,但是這種方式往往會高估了模型的性能。本文介紹 ACL 2020 年的 Best Paper,論文作者提出了一種新的 NLP 模型評測方法 CHECKLIST。CHECKLIST 借鑑了傳統軟體工程的測試準則,通過模板快速生成大量樣例,全面測試模型的各種能力,可以用於幾乎所有 NLP 任務。
1.背景
訓練 NLP 模型的一個主要目標是獲得良好的泛化能力,即訓練得到的模型可以很好地用於真實場景。目前一般是採用劃分數據集的方式評估模型的泛化能力,把模型劃分為訓練、驗證、測試集,通過測試集評估模型性能,但是這種方式存在一些缺陷:
測試數據集通常不夠全面,並且和訓練數據集有相似的分布,和真實場景有偏差,因此通常會高估模型的性能。傳統的評測方法通常會得到一個單一的統計值,例如 accuracy 和 F1,不能指出模型效果不理想的具體地方,不容易修復。針對這些問題,論文《Beyond Accuracy: Behavioral Testing of NLP Models with CheckList》的作者們提出了 CHECKLIST 測試方法,這篇論文是 ACL 2020 年的最佳論文。CHECKLIST 總結了 NLP 模型應該具備的多項能力,對於每一項能力均採用三種不同類型的測試方法進行評估,全面地得到模型各項能力水平。
對於 CHECKLIST 的每一項測試,可以採用模板快速生成大量測試樣例,幾乎適用於所有 NLP 任務。作者提供了開源工具用於生成測試樣例,代碼地址:https://github.com/marcotcr/checklist 。
作者利用 CHECKLIST 對商用模型和一些 state-of-art 模型進行評估,發現了這些模型一些致命的缺陷。在用戶研究過程中發現,NLP 從業者使用 CHECKLIST 可以進行兩倍多的測試,並且發現 bug 的數量是不使用 CHECKLIST 人員的三倍。
2.CHECKLIST
2.1 NLP 模型的各種能力
作者認為傳統的軟體工程測試時會把功能劃分為幾個獨立模塊,對每一個獨立的模塊分別進行測試,驗證每個模塊功能是否正確,但是 NLP 模型通常不能明確劃分為幾個模塊。
因此 CHECKLIST 列出了常見 NLP 模型應該具備的幾種能力 (Capabilities),針對這些具體的能力,分別進行測試。NLP 模型應該具備的能力包括:
Vocabulary+POS:詞彙和詞性,評估模型是否掌握了常見的單詞,是否可以恰當地處理不同詞性單詞對任務的影響。 Taxonomy:近義詞和反義詞,把句子中的一個單詞替換成近義詞,語義應該保持一致。Robustness:穩健性,句子中某個單詞拼寫錯誤或者對句子進行一些不重要的改動,模型應該保持預測結果一致。NER:命名實體,模型要正確理解命名實體。Fairness:公平性,模型不應該帶有某種歧視,例如對待女性和男性,黃種人和白種人應該保持一致。Temporal:時序,模型要具備識別事件先後的能力。Negation:否定,在句子中加入否定詞,模型能正確預測的句子的情感極性。2.2 測試方法
CHECKLIST 中主要用了三種測試方法:最小功能測試 (MFT)、不變性測試 (INV) 和方向期望測試 (DIR)。作者建議對於 NLP 模型的每一種能力,都儘量採用這三種測試方法測試一遍。下面以情感分類任務為例,介紹三種不同的測試方法。
最小功能測試 Minimum Functionality test (MFT)主要是受到單元測試的啟發,用模板生成大量的針對某一任務和能力的簡單測試用例,用這些測試用例測試模型性能。對於情感分類任務,如果要用 MFT 測試模型的 Negation 能力,則可以用下面的模板生成測試用例。
不變性測試 Invariance (INV)是指對原始句子進行一些不影響預測結果的變化,這是模型的預測應該保持和原始句子一致,否則說明模型有問題。對於句子的不同成分進行改變,可以測試模型的不同能力,例如改變句子中的地名,可以測試模型的 NER 能力,如下所示。
方向期望測試 Directional Expectation test (DIR),對原始句子進行修改,並且保證修改後結果往期望的方向變化。例如在情感分類中,在一個負情感的句子後面增加一個負情感的短語,預測結果應該保持負的。如下圖所示。
作者提供了開原始碼,可以很容易的根據各種模板生成對應的測試樣例。
2.3 CHECKLIST
上圖是用 CHECKLIST 測試 Google 商用情感分析模型的例子。通過 MFT 生成了很多帶否定短語的簡單句子,這些句子正確標籤均是 Neg,但是模型和容易預測為 Pos 和 Neutral,錯誤率高達 76.4%。對於 INV 測試,作者修改了句子中的一些地點名稱,也會影響到模型的預測結果。
3.實驗效果
CHECKLIST 對五個出名的商業模型和 state-of-art 模型中進行評測,包括微軟、谷歌、亞馬遜的商業模型以及 BERT 和 RoBERTa。下面是 CHECKLIST 對於這五個模型在情感分析任務上的評測。
可以看到這些模型對於很多簡單的測試樣本都預測錯誤了,例如 BERT 和 RoBERTa 對於 MFT 生成的 neural 句子有 94.6% 和 81.8% 的概率會預測錯誤。對於CHECKLIST 生成的帶雙重否定的句子 (Negation),這五個模型效果均不理想。
這些測試樣例都不是很複雜的句子,但是卻可以比較容易地發現模型的缺陷,對於我們評估模型的性能有很大啟發。
4.參考文獻
Beyond Accuracy: Behavioral Testing of NLP Models with CheckList