本期AI TIME PhD IJCAI專場,我們有幸邀請到了來自香港科技大學計算機科學與工程系的博士生馬平川,為我們帶來他的精彩分享——基於蛻變測試的自然語言模型歧視性輸出檢測與緩解Metamorphic Testing and Certified Mitigation of Fairness Violations in NLP Models。
馬平川:香港科技大學計算機科學與工程系博士生,導師是王帥教授,主要研究方向為資訊保安和軟體工程。
一、Motivation
圖1 Sentiment analysis by training a CNN model using the Large Movie Review Dataset
我們發現即使在非常簡單的CNN模型裡,當文字中的單詞做了一些改變後,比如在上圖的Sentiment analysis例子中,將“actor”換為“actress”或者在“actor”前加“Chinese”,模型的屬性會發生比較大的變化,而這種變化大部分情況下是不被期望的,所以我們希望用自動化的方法來檢測自然語言模型中的歧視性輸出。
當我們將AI模型部署到現實生活中,一個值得關注的問題出現了——模型是否存在對特定群體有歧視性的輸出?比如,一些基於AI的招聘工具就被證實存在性別歧視。
二、Preliminaries
1. Metamorphic Testing
圖2 Metamorphic Transformation
這裡先闡釋幾個概念:
Oracle問題:程式的執行結果不能預知的現象在測試理論中稱為“Oracle問題”,即預期結果不知道。
蛻變關係Metamorphic relation:是指多次執行目標程式時,輸入與輸出之間期望遵循的關係。
蛻變測試 Metamorphic Testing:是一種特殊的黑盒測試方法,蛻變測試依據被測軟體的領域知識和軟體的實現方法建立蛻變關係,利用蛻變關係來生成新的測試用例,透過驗證蛻變關係是否被保持來決定測試是否透過。
蛻變測試是由TY Chen在1998年提出的,希望用較少的成本自動化的對較複雜的系統或軟體進行測試。我們這篇工作就使用了蛻變測試對AI模型進行了測試。
圖3 蛻變測試舉例
舉例來說,假設我們用C語言做了sin(x)的實現並想進行測試,因為我們知道sin(x)=sin(x+360)這個屬性保持不變,那麼就可以基於此生成很多測試用例,我們不需要知道sin(0)、sin(30)……的Ground truth就可以自動化地進行測試。
在我們這篇工作中,蛻變關係指的就是NLP sentiment analysis的結果不應該因為一些敏感詞彙的改變就發生改變。
2. Word Analogy
圖4 Word Analogy 1
圖5 Word Analogy 2
我們還用到了詞嵌入模型中的詞相似(Word Analogy),屬性相關或存在對應關係的詞的向量也會存在一些特定的關係。比如上圖所示的平行四邊形,我們可以透過其中三個詞向量的位置推斷出第四個詞對應的詞向量位置,從而找到第四個詞。我們透過這個方法可以對文字中的一些詞進行變異並形成大量的測試用例。
三、Overview
圖6 Workflow
首先對原始輸入產生大量變異,這些變異會滿足蛻變關係,基於此判定這個模型是否存在有歧視性的輸出,從而對模型進行測試。測試完成後,還可以進一步利用蛻變關係得到的測試用例,對模型輸出的歧視性進行緩解(Mitigation)。
四、Test Case Generation
圖7 Test Case Generation
在上圖所示的例子中,我們首先對文字進行分詞,找到human-related token——“actors”並將其稱為sensitive token,然後利用知識圖譜(Knowledge graph)進行Sensitive Token的識別:
圖8 Sensitive Token Identification
比如,現在我們想知道“policewoman”是不是與“human adult”相關的token,我們可以先遍歷出k-depth的子圖,如果“policewoman”能夠在k-hop內達到預先定義好的sensitive token——“human adult”,那麼我們就認為“policewoman”是sensitive token。
圖9 Check mutable condition
在找到sensitive token後,我們對整個句子做詞性分析,為了防止生成不自然的語句,只對前面不存在形容詞的token進行變異(Mutation)。
有兩種變異方法:
1. Active Mutation
透過manual specification或knowledge graph生成一系列加在sensitive token前的形容詞。
圖10 Active Mutation
2. Analogy Mutation
利用詞相似(Word Analogy),在詞向量空間中找到對應的單詞,並在符合設定閾值的情況下進行原詞的替換。
透過Mutation,一個句子可以生成十多個測試用例,在這次Movie Review的data set中我們一共生成了17萬個測試用例並對模型進行了測試。
圖11 Analogy Mutation
五、Mitigation
我們借鑑了差分隱私,在NLP的語境下定義了“fairness”:模型不應在只有子群體(subpopulation)不同的兩個語義等效的句子上產生“太不同的輸出” ,比如原句子與測試用例。即不能透過模型的輸出判定對應輸入所屬的某一特定群體。
圖12 Define “fairness”
我們將模型輸出進行平滑化,給原始輸入更大的權重,給測試用例更少的權重,使輸出既能保持句子原本的語義,也不和subpopulation不同的例子相差過大,從而實現了“fairness”。
圖13 Achieve “fairness”
六、Evaluation
Evaluation Ⅰ:
我們對本地模型CNN和LR以及一些商用API如Amazon Comprehend API、Google NLP API、Microsoft NLP API進行了測試,都得到了一些Fairness Violations,如下圖所示。
圖14 Result overview
我們對比一些原句和測試用例,將“uncle”改為“aunt”,“brothers”改為“sisters”,在“soldiers”前面加“male”等,會讓輸出結果產生positive或negative的變化,如圖所示。
圖15 Fairness violations detected by our framework
我們也得到了句子的測試用例生成個數分佈:
圖16 Perturbation distribution
Evaluation Ⅱ:
圖17 Fairness violation percentage w.r.t. ε
在Mitigation方面,我們提出了一個Baseline的白盒方法: 用我們在訓練集上生成的測試用例去訓練增強LR模型, 然後與黑盒方法的效能進行比較,我們發現當ε大於2的時候,黑盒方法的緩解效果超過了白盒方法,當ε足夠大的時候,在很多的模型和商用的API上都能產生很好的緩解效果。
REF
Ma, Pingchuan, Shuai Wang, and Jin Liu. "Metamorphic testing and certified mitigation of fairness violations in nlp models." Proceedings of the 29th International Joint Conference on Artificial Intelligence (IJCAI). 458–465. 2020.
本文所引用圖片均來自講者PPT.