深度学习预训练模型可解释性概览
?PaperWeekly 原創?·?作者|蔡杰
學校|北京大學碩士生
研究方向|問答系統
近年來預訓練模型(ELMo, GPT, BERT, XLNet, ALBERT 等)給許多 NLP 任務帶來了顯著的改進,但是有一個問題一直困擾著大家:被當做黑盒的神經網絡到底是如何做的以及為什么會這樣做?
最近,人們對解決這個謎團越來越感興趣,就此,我將最近看的一些相關論文進行總結,希望可以和大家一起探討學習。
引言
在正式介紹論文之前,先給大家簡單介紹一下目前比較主流的分析方法:?
Analyse Pre-trained Model?
我們都知道預訓練(pre-train)方法因為數據量巨大需要消耗大量的計算資源,那這么多計算資源最后都變成了啥?或者說在整個pre-train的過程中,模型到底學到了什么能力?以下的 pre-train model 以 BERT 為例。
Probing tasks:一般做法是設計一些簡單的分類任務(一種任務包含一種特定的語言學信息),將 BERT 每一層的輸出作為 embedding,在得到 embedding 后通過簡單的分類器(例如一層的 FFN,為了不過多干擾模型本身的能力),來驗證模型的不同層在不同 probing task 上的能力。?
Visualization:我們都知道 BERT 是由多層 Transformer 構成的,每一層 Transformer 都有一個 multi-head self-attention 模塊。在這個模塊中,每個 word 和其他所有 word 都會有交互,從而得到一個注意力(attention)分數,通過可視化這個分數,可以知道在不同層,甚至不同 head 中,不同的 word 關注的部分。還有的做法是將不同層的特定詞 embedding 做聚類,同樣也可以了解模型不同層的能力。?
Analyse Fine-tuned Model?
目前 NLP 許多任務的 SOTA 都是通過微調(fine-tune)預訓練(pre-train)的模型達到的。那么問題來了,在 Fine-tune 的過程中,模型又學到了什么能力?
在這一部分同樣有 Probing tasks 和 Visualization 兩種做法,而且做法同上述方法類似,只是將 pre-train 的 model 作為對比對象。?
Adversarial attacks:對于fine-tuned model,對抗性攻擊是一種新做法。對抗性攻擊通過使用特定干擾信息創建的例子來驗證模型的魯棒性。具體例子請見之后的論文。
Pre-trained model Analysis?
1. Probing tasks Method
論文標題:Open Sesame: Getting Inside BERT’s Linguistic Knowledge?
論文來源:ACL 2019?
論文鏈接:https://arxiv.org/abs/1906.01698
引言?
本文在嘗試解釋 BERT 上主要做了兩件事:
通過設計 probing tasks 來證明 BERT 在 pre-train 之后得到的 word embeddings 包含語法信息;?
提出了基于 attention 的對主謂一致和共指消解問題的評價分數,根據 self-attention 來確定 BERT 對語言相關元素的關注程度。?
實驗1
設計了三個 probing tasks 分別是識別一句話中的助動詞、主語名詞以及第 n 個 token。?
Training 和 Development 集合是原有數據集。Generalization 集合是根據一些語法規則(加了一些從句,名詞替換為復合名詞或所有格名詞等)在 Training 和 Development 基礎上生成的。Generalization 集合才是最后實驗的數據。?
之后實驗獲取 BERT 每一層的 embedding,每一層都訓練一個簡單的分類器,這樣每個 token 都有一個結果(如下圖)。label 是一個 one-hot 向量,使用交叉熵作為損失函數。
結果1
Figure 1 在第 4 層突然準確率變得很高,作者認為是因為淺層特征是一個高度 localized 的特征,包含的句子上下文信息不足以確定 main auxiliary。隨著 self-attention 的作用,層數加深,信息變得越來越抽象,到 4-6 層左右正好能足夠表示 main auxiliary,之后層數再加深,信息變得更抽象,導致 acc 有所下降。?
在復合名詞的分類任務(Figure 2 是復合名詞的結果)中,large 的效果就要差很多了。base 上的效果很好,作者認為是由于主語名詞特征的顯著性。至于為什么 large 效果很差,作者也沒有給出很好的解釋。?
在所有格問題(Figure 3 是所有格名詞的結果)上,base 和 large 的表現都很差,作者認為是是所有格的歧義性導致的(she's sleeping 中的 's 可能表示的是所有格關系,也有可能表示的是 is 的縮寫)。?
N_th token(Figure 4 是 N_th token 的結果)對比了兩個 baseline,一個是 pre-embedding,另一個是 pre-embedding 去掉 position-encoding,可以看到 1-3 層判斷 2-9 位置的準確率都還是挺高的,其余的準確率隨層數增加而降低。沒有 position-encoding 的在第一層就很低,表明 BERT 的 position 信息主要來源于 position-encoding。
之所以在 4 層之后會下降有可能是因為舍棄了位置信息,轉而獲得一些抽象的層次信息。而 position 1-3 的準確率隨著層數增加一直沒有下降,作者認為這有可能是因為自然語言分布的特性造成的,句子開頭的詞性可能是固定的,但是隨著句子長度的增加,詞性的類別就不固定了。
實驗2
主謂一致和共指消解都具有一個先行詞(trigger)元素,比如判斷謂詞(target)的時候需要先知道主語,共指消解的時候也得先知道后面的詞指代的是什么。但是如果這個先行詞有多個,就可能導致模型不知道那個先行詞才是正確的。因此作者提出了一個叫“confusion score”的概念,定量地表示一句話給模型帶來的混淆程度。?
由 Table 2 可知,上半部分是主謂一致的 example,下半部分是共指消解的 example。?
A1 和 A2 是帶有介詞短語的 example,A3 和 A4 是帶有關系從句的 example,有論文指出帶有介詞短語的句子要比帶有關系從句的句子更難處理,因此 A1 和 A2 的 score 要更高,而 A1 和 A3 中的“dog”和“the cat”一樣都是可以接“does”的,而 A2 和 A4 的“dogs”是不能接“does”的,所以 A2 和 A4 的 score 要比 A1 和 A3 低。?
對于共指消解問題,作者同樣在插入了一些 distractor,比如 R1,“the lord”是先行詞,但是“the wizard”的語法同樣正確,但是 R2 中的語法就不對了,所以 R2 的 score 比 R1 低。R3 和 R4 在關系從句中插入了 distractor,因為如果“himself”共指了關系從句中的 distractor 的話語法是不正確的,所以分數要比 R1 和 R2 低。R5-R8 包括相對修飾語,賓語名詞短語,分數普遍要高很多。?
接下來就講講這個 confusion score 是怎么計算的:作者根據兩種語法現象(主謂一致和反身回指)設計了通過 self-attention 來確定 BERT 對語言相關元素的關注程度。
首先先計算一個 attention_score,token 可能包含多個 word(比如 Table 2 里的 the lord),相當于讓每個 word 都和 Y 計算 attention,這里的 attn 函數就是 self-attention 計算的值。求和之后再在 head 層面上求和取平均,得到每個 token 對 target 的 attention。
之后根據上式得到“confusion score”。
結果2?
Figure 5 和 Table 3 顯示了共指消解的混淆程度與層深度的負相關。主謂一致性的混淆分數呈現出相似的趨勢。作者推測 BERT 隨著層數的加深,包含的信息也更抽象。還有就是作者觀察到的 BERT 的自我注意值對語法扭曲的敏感性表明,BERT 的句法知識實際上被編碼在其注意力矩陣中。
最后,值得注意的是,對于共指消解和主語動詞一致的混淆在第 4 層增加,而在 N_th token 的實驗中,正好也是第 4 層之后結果開始下降。作者為未來留下了一個對這兩者之間聯系的伏筆。
2. Visualization Method
論文標題:What does BERT look at? An Analysis of BERT’s Attention
論文來源:ACL 2019?
論文鏈接:https://arxiv.org/abs/1906.04341
引言
本文主要通過可視化 BERT 的 attention 層,以了解 BERT 的 attention 層都在關注什么地方,發現有很多 attention 集中在 [CLS] 和 [SEP] 符號上。文章還通過實驗得出不同的 multi-head 中不同的 head 關注的是不同的語法現象。此外文章也實驗了融合多個 head,得出模型關于語法整體的建模程度。
實驗?
Surface-Level Patterns in Attention
作者通過可視化 attention 的權重,得到了幾種不同的 attention 的 pattern。如 Figure 1 所示,有的 attention 是 broadly 形式(關注所有的詞),有的 attention 是關注的是其下一個 token,有的 attention 則集中關注 [SEP] 符號上,還有的 attention 則關注標點符號。
Attending to Separator Tokens
作者在分析 attention 的過程中發現一個很有趣的現象。在 6-10 層,有超過一半的 attention 關注的是 [SEP](Figure 2 的上圖),一開始作者的想法是 [SEP] 用于聚合段與段之間的信息,方便后面的 head 去獲取信息。
如果假設成立的話,那 [SEP] 關注的信息應該是整句話,但是 Figure 2 的下圖表明,90% 以上的 [SEP] 關注的是他們自身,所以作者又推測,指向 [SEP] 很可能是一種“no-op”(無作用)的操作。?
為了進一步驗證以上的假設,作者又采用了一種基于梯度的可以衡量特征重要性的方法(Sundararajan et al., 2017) 簡單地說,這個值的大小意味著將注意力轉移到 token 上會多大程度改變 BERT 的輸出。Figure 3 中可以看到,在 5 層之后,[SEP] 的梯度就基本下降到 0,說明這個時候給 [SEP] 或多或少的 attention 都改變不了模型的輸出,進一步驗證了作者“no-op”的結論。?
Figure 4 是作者計算每一層的 attention 的熵值,可以看到低層的熵值比較大,說明在低層模型更偏向于 broadly 的 attention 方式,基本上每個單詞在其余每個單詞上的 attention 只有 10%,對 [CLS] attention 的熵值分布也和 Figure 4 類似,最后一層有較高的熵值,因為這層的 [CLS] 聚合了之前的所有信息,之后用于 next-sentence prediction 任務中。
看看每個attention head都學到了什么
上圖是直接賓語,名詞修飾語的例子。除此之外,作者還例舉了好幾種例子,在這里就不一一列舉了,感興趣的讀者可以去看論文。?
接下來作者在 Penn Tree bank 的數據集上做了統計,每個詞都有一個 dependency。為了測試 BERT 中對詞與詞的 dependency 的建模程度,作者直接把 attention map 拿了出來,把每個詞給了最多 attention 的詞作為 dependency,baseline 的話就是把括號內的數字(正數表示右邊第幾個詞,負數則表示左邊第幾個詞)對應的 word 作為 baseline,可以看到 BERT 還是學到了很多 dependency 的信息的。?
作者還做了一個共指消解的任務,在句子中找出給定詞之前的 antecedent。發現某一個 head 的正確率在 65% (neural supervised model 是 83%)。
Fine-tuned Model Analysis
1.?Adversarial attacks
論文標題:What does BERT Learn from Multiple-Choice Reading Comprehension Datasets?
論文鏈接:https://arxiv.org/abs/1910.12391
引言?
目前最新模型已經在多個 MCRC 數據集上實現了 SOTA。然而,作者認為這樣的表現可能并不能反映模型真正的語言理解和推理能力。在這項工作中,作者采用了兩種方法來研究 BERT 從 MCRC 數據集中學到了什么:?
不可讀的數據攻擊:添加一些不可讀數據來混淆 BERT,誤導其作出錯誤的判斷;?
不可回答的訓練數據:增加不可回答的訓練數據或者洗牌 examples 來訓練 BERT。
實驗
不可讀的數據攻擊
Un-Readable Data Attack(不可讀數據攻擊)例子,在原始的文章結尾加上一句亂序的話(這句話由原始問題和錯誤選項拼接而成),該方法就是 Figure 2 中的 (a)。
作者探索了三種對抗攻擊方法(Figure 2 (a),(b),(c),詳細的例子請見論文),通過在文章或原始干擾源(錯誤的選項)中添加額外的干擾信息來測試模型的魯棒性。對抗性攻擊的目標是操縱輸入,誤導模型做出錯誤的預測,而人類在這些攻擊下仍然能夠選擇正確的答案。?
不可回答的訓練數據
通過用不可回答的數據來訓練 BERT(Un-Answerable Data Training),從這些數據中,人類可以學到一些關于如何回答問題的知識。
Figure 4 中文章(passage)的次順序被打亂了(P-Shuffle),變成了不可讀的數據。作者還嘗試了另外兩種方法:?
打亂 question 中的詞序(Q-Shuffle)?
既打亂 passage 的詞序,也打亂 question 的詞序(PQ-Shuffle)?
作者同樣嘗試了刪除整個 passage (P-Remove),刪除整個 question (Q-Remove) 以及刪除 passage 和 question (PQ-Remove)。
結果
不可讀的數據攻擊
頂端的兩行分別是隨機猜測的結果和正常訓練 BERT 的結果。
我們可以看到幾乎所有的數據集上 BERT 的性能都顯著下降,而且對于某些數據集,BERT 的性能甚至低于隨機猜測。這意味著 BERT 無法檢測出正確的詞序和語法,嚴重依賴于關鍵詞匹配。
不可回答的訓練數據?
我們可以看到在所有這些設置上訓練的 BERT 比“Random Guess”和“Longest Baseline”要好得多,“Longest Baseline”總是選擇最長的答案作為預測。而且 BERT 在“P-Shuffle”設置下進行訓練,隨機地對訓練集中的所有段落單詞進行洗牌,甚至可以獲得與原始完全訓練設置非常接近的性能,特別是在 MCScript 和 MCScript2.0 數據集上。?
進一步比較“P-Shuffle”和“P-Remove”,我們會發現,盡管被洗牌的段落沒有遵循正確的語法,不再是可解釋的,但它仍然比刪除整個段落要好。通過比較“Q-Shuffle”和“Q-Remove”、“PQ Shuffle”和“PQ Remove”,也可以發現類似的結論。?
那么說明 BERT 仍然可以從無序輸入中學習,這表明它對詞序或句法信息不敏感。
小結
以上論文解讀更多的是希望給大家了解該領域的進展,以及在該領域中大家的普遍做法,涉及到結論性的內容還得具體細看論文,歡迎大家共同學習交流。
相關論文推薦
Pre-trained model Analysis
論文標題:What do you learn from context? Probing for sentence structure in contextualized word representations
論文來源:ICLR 2019?
論文鏈接:https://arxiv.org/abs/1905.06316
論文標題:BERT Rediscovers the Classical NLP Pipeline
論文來源:ACL?2019?
論文鏈接:https://arxiv.org/abs/1905.05950
Fine-tuned Model Analysis
論文標題:How Does BERT Answer Questions? A Layer-Wise Analysis of Transformer Representations
論文來源:CIKM?2019?
論文鏈接:https://arxiv.org/abs/1909.04925
點擊以下標題查看更多往期內容:?
拋開約束,增強模型:一行代碼提升ALBERT表現
淺談Knowledge-Injected BERTs
從 Word2Vec 到 BERT
后 BERT 時代的那些 NLP 預訓練模型
從三大頂會論文看百變Self-Attention
自然語言處理中的語言模型預訓練方法
#投 稿 通 道#
?讓你的論文被更多人看到?
如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢?答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。?
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是最新論文解讀,也可以是學習心得或技術干貨。我們的目的只有一個,讓知識真正流動起來。
?????來稿標準:
? 稿件確系個人原創作品,來稿需注明作者個人信息(姓名+學校/工作單位+學歷/職位+研究方向)?
? 如果文章并非首發,請在投稿時提醒并附上所有已發布鏈接?
? PaperWeekly 默認每篇文章都是首發,均會添加“原創”標志
???? 投稿郵箱:
? 投稿郵箱:hr@paperweekly.site?
? 所有文章配圖,請單獨在附件中發送?
? 請留下即時聯系方式(微信或手機),以便我們在編輯發布時和作者溝通
????
現在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
關于PaperWeekly
PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
▽ 點擊 |?閱讀原文?| 獲取最新論文推薦
總結
以上是生活随笔為你收集整理的深度学习预训练模型可解释性概览的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大冰柜一个月多少电费?
- 下一篇: 基于深度学习的多目标跟踪算法(上):端到