論文筆記——對NLP深度神經模型的統一深入理解【神經網絡可解釋性】

From SJTU, MSRA and PKU.
Authors: Chaoyu Guan, Xiting Wang, Quanshi Zhang, Runjin Chen, Di He, Xing Xie.
Title: Towards a Deep and Unified Understanding of Deep Neural Models in NLP
In: ICML 2019.
Codes: icml2019paper2428/Towards-A-Deep-and-Unified-Understanding-of-Deep-Neural-Models-in-NLP

Introduction

前段時間看過張拳石老師介紹這篇論文的文章,很感興趣,自己原來也有這方面的其他想法,但是並沒有實踐過,這篇論文收穫頗豐。

不管是深度學習的哪個方向,深度神經網絡(DNN)的可解釋性一直是一個困擾我們的問題。基於DNN的NLP模型效果爲什麼好?貌似沒有一個好的解釋方法。之前有幾個嘗試性的工作:

  • gradient-based:基於梯度的方法
  • inversion-based:基於反演的方法
  • layer-wise relevance propagation:相關性逐層傳播

這些方法一定程度上定量分析了模型的中間層,雖然可以進一步理解神經網絡的內部機制,但是存在not coherency(“普適性”)和not generality(“一貫性”)問題:

  • 普適性:解釋性指標的計算算法儘可能獨立於神經網絡結構和目標任務的選擇。比如,對單個神經元的分析適用,也要對神經元組成的網絡層適用,還要對整個模型適用。
  • 一貫性:解釋性指標需要客觀地反應特徵的表達能力,並實現對不同模型結構和任務的廣泛比較,也就是解釋性指標的“泛化能力”。

文章試圖找到一個可以定量分析(解釋/可視化)NLP神經網絡模型的方法,利用互信息[3]這一具有“普適性”特點的信息度量,定義了一種統一的information-based measure,量化NLP深度神經模型中的中間層對每個詞編碼的信息,研究每個單詞的信息遺忘程度。

Methods

文章想從兩個角度解釋中間層的隱層狀態:word information quantification【詞信息定量分析】和fine-grained analysis of word attributes【細粒度詞屬性分析】。

Word Information Quantification

定量計算隱層狀態編碼輸入詞的信息量:

corpus-level:
MI(X;S)=H(X)H(XS)MI(\mathbf{X} ; \mathbf{S})=H(\mathbf{X})-H(\mathbf{X} | \mathbf{S})
MI是互信息,H是熵。對於同一個輸入,H(X)是恆量,模型中每一層每一個神經元對輸入X對編碼程度不一樣,用H(X|S)表示隱層S丟棄X的信息量,MI就是S編碼X的信息量。

其中: H(XS)=sSp(s)H(Xs)dsH(\mathbf{X} | \mathbf{S})=\int_{\mathbf{s} \in \mathbf{S}} p(\mathbf{s}) H(\mathbf{X} | \mathbf{s}) d \mathbf{s}

sentence-level:

H(Xs)=xXp(xs)logp(xs)dxH(\mathbf{X} | \mathbf{s})=-\int_{\mathbf{x}^{\prime} \in \mathbf{X}} p\left(\mathbf{x}^{\prime} | \mathbf{s}\right) \log p\left(\mathbf{x}^{\prime} | \mathbf{s}\right) d \mathbf{x}^{\prime}
其中:s=Φ(x) \mathbf{s}=\Phi(\mathbf{x}) 表示x對應的隱層狀態。用H(X|s)表示中間層中對應的隱層狀態集s丟棄X的信息量。

word-level:

H(Xs)=iH(Xis)H(Xis)=xiXip(xis)logp(xis)dxiH(\mathbf{X} | \mathbf{s})=\sum_{i} H\left(\mathbf{X}_{i} | \mathbf{s}\right) H\left(\mathbf{X}_{i} | \mathbf{s}\right)=-\int_{\mathbf{x}_{i}^{\prime} \in \mathbf{X}_{i}} p\left(\mathbf{x}_{i}^{\prime} | \mathbf{s}\right) \log p\left(\mathbf{x}_{i}^{\prime} | \mathbf{s}\right) d \mathbf{x}_{i}^{\prime}

其中XiX_i表示第i個詞的向量。

在計算word-level信息量時,概率 p(xis)p\left(\mathbf{x}_{i}^{\prime} | \mathbf{s}\right) 很難算,這部分詳見論文[2]3.2.2節和補充材料。爲了便於計算,文章引入了perturbation-based approximation【擾動近似】。核心思想就是給每個詞加一個高斯擾動項 x~i=xi+ϵi\tilde{\mathbf{x}}_{i}=\mathbf{x}_{i}+\boldsymbol{\epsilon}_{i},經過近似之後,目標函數變換成求極值問題:
L(σ)=i=1n(logσi)+1KλEx~iϵiN(0,σi2I)Φ(x~)s2σS2L(\boldsymbol{\sigma})=\sum_{i=1}^{n}\left(-\log \sigma_{i}\right)+\frac{1}{K \lambda} \mathbb{E}_{\tilde{\mathbf{x}}_{i} \cdot \boldsymbol{\epsilon}_{i} \sim \mathcal{N}\left(\mathbf{0}, \sigma_{i}^{2} \mathbf{I}\right)} \frac{\|\Phi(\tilde{\mathbf{x}})-\mathbf{s}\|^{2}}{\sigma_{\mathbf{S}}^{2}}

這裏把補充材料的例子搬過來,更容易理解,擾動項就是解釋指標的關鍵。
在這裏插入圖片描述
目標函數分爲兩部分:

左邊部分是給每一個詞向量加擾動, σ\sigma 越大,說明這個詞需要丟棄的信息越多【也就是這個詞越不重要】;

右邊部分是經過DNN編碼之後,加擾動之後輸入,經過DNN編碼得到的 Φ(x~)\Phi(\tilde{\mathbf{x}}) 要與原始輸入的 s 差距越小越好。

按照這個最優化目標,學習得到的擾動項可以很好地表示詞的重要程度。

Fine-Grained Analysis of Word Attributes

這部分分析了神經網絡中間層的每個輸入詞內部的細粒度屬性信息,屬性來自DBpedia和Microsoft Concept Graph,概念 c (例如,情感形容詞)由屬於該概念的一組詞組成(例如,happy,sorrowful,sad,…)。對於每一個詞 x_i ,通過計算 s 編碼當前詞相對於隨機詞的相對置信度,將共同概念 c 中的信息從目標詞的所有信息中解放出來。Figure_8對這方面做了實驗。
近似計算 s 編碼當前詞 x_i (當前詞是概念,在 c 中)相對於隨機詞 xi{x}_{i}^{\prime} 的相對置信度 A_i 和 A_c :
Ai=logp(xis)ExiXilogp(xis)A_{i}=\log p\left(\mathbf{x}_{i} | \mathbf{s}\right)-\mathbb{E}_{\mathbf{x}_{i}^{\prime} \in \mathbf{X}_{i}} \log p\left(\mathbf{x}_{i}^{\prime} | \mathbf{s}\right)
Ac=ExiXclogp(xis)ExiXilogp(xis)A_{\mathrm{c}}=\mathbb{E}_{\mathbf{x}_{i}^{\prime} \in \mathbf{X}_{\mathrm{c}}} \log p\left(\mathbf{x}_{i}^{\prime} | \mathbf{s}\right)-\mathbb{E}_{\mathbf{x}_{i}^{\prime} \in \mathbf{X}_{i}} \log p\left(\mathbf{x}_{i}^{\prime} | \mathbf{s}\right)
然後在將兩項做差,表示當前詞x_i 去掉共有屬性 c 之後的剩餘信息:
ri,c=AiAc=logp(xis)ExiXclogp(xis)r_{i, c}=A_{i}-A_{\mathbf{c}}=\log p\left(\mathbf{x}_{i} | \mathbf{s}\right)-\mathbb{E}_{\mathbf{x}_{i}^{\prime} \in \mathbf{X}_{\mathrm{c}}} \log p\left(\mathbf{x}_{i}^{\prime} | \mathbf{s}\right)

Experiment

第一部分實驗分別跨時間戳、圖層和模型,評價基於信息的解釋方法。對比基準有:

  • LRP,給任意兩個神經元的相關度打分,這裏用的是隱層狀態與輸入詞向量的絕對值。
  • Perturbation,是CV裏的一種方法,這裏直接把輸入句子當作圖像來處理。
  • Gradient,使用一階導數的絕對值來表示每個輸入詞的重要性,這裏將詞向量每一維的一階導數的絕對值求平均,得到詞的重要性度量。

Across Timestamp Analysis

實驗可視化分析reverse sequence【逆向序列】神經網絡中層特徵關注點的區別,基於詞信息量的方法,可以更加平滑自然的顯示神經網絡內部信息處理邏輯。其他方法也還可以,LRP方法就難以顯示。
在這裏插入圖片描述

Across Layer Analysis

實驗可視化分析了不同解釋方法在SST2任務上神經網絡中層特徵關注點的區別。基於詞信息量的方法,可以更加平滑自然的顯示神經網絡內部信息處理邏輯。結果表明,LRP和Gradient實效了,Perturbation噪音很大。
在這裏插入圖片描述

Across Model Analysis

實驗研究了超參數的不同選擇如何影響模型學習的隱藏狀態。結果表明,基於詞信息量的方法可以快速識別大學習率的模型包含的信息太少,應該減少學習率來改善性能。相比之下,Gradient方法不能在超參數調整方面提供類似的指導。
在這裏插入圖片描述

Understanding Neural Models in NLP

第二組實驗分析比較了四種在NLP中常用的深度學習模型,即BERT、Transformer、LSTM和CNN,BERT爲什麼效果最好呢?文章有了初步解釋,相比於LSTM和CNN,BERT和Transformer往往可以更加精確地找到與任務相關的目標單詞,而CNN和LSTM往往使用大範圍的詞去做預測,沒有聚焦。
在這裏插入圖片描述

並且,BERT模型在預測過程中往往使用具有實際意義的單詞作爲分類依據,而其他模型把更多的注意力放在了and/the/to/is/that 這類缺少實際意義的單詞上。
在這裏插入圖片描述
在SST-2任務上,BERT模型在L3-L4層就已經遺忘了EOS單詞,往往在第5到12層逐漸遺忘其他與情感語義分析無關的單詞。相比於其他模型,BERT模型在單詞選擇上更有針對性,沒有預訓練的Transformer每次都照顧到所有的詞,LSTM更關注前面的詞,CNN基本上就是眉毛鬍子一把抓。
在這裏插入圖片描述

前面提到的細粒度詞屬性信息,這裏分析了各個單詞的概念信息遺忘。BERT模型對各種細粒度概念信息保留得最好,曲線平緩。
在這裏插入圖片描述
最後還有一個實驗展示了在LSTM和BERT的所有層的訓練過程中,互信息是如何變化的。可以看到,BERT的互信息變化很穩定,最後幾層在2500層之前壓縮信息,達到穩定狀態。LSTM一開始讓更多的信息通過,然後再拋棄無用信息以達到更好的效果。
在這裏插入圖片描述

Conclusion

本文定義了一種統一的基於詞信息量的方法,來定量解釋NLP深度神經模型的中間層。與現有方法相比,基於詞信息量的方法可以跨時間戳、圖層和模型(一貫性)提供一致且忠實的結果。 而且,它可以用最小化假設(普適性)來定義,適用與各個模型結構和任務。 最後,實驗展示瞭如何將基於詞信息的度量用作解釋模型的工具,並展示瞭如何豐富理解DNN的能力。

如有錯誤,歡迎討論和指出,萬分感謝。

References

[1]. 神經網絡的可解釋性,從經驗主義到數學建模(一篇icml文)
[2]. Towards a Deep and Unified Understanding of Deep Neural Models in NLP
[3]. Kinney, J. B. and Atwal, G. S. Equitability, mutual information, and the maximal information coefficient. National Academy of Sciences, pp. 201309933, 2014.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章