新智元推薦
來源:數據實戰派
作者:Keyur Faldu等
【新智元導讀】本文由兩位數據科學家 ——Keyur Faldu 和 Amit Sheth 所撰寫,詳細闡述了現代自然語言處理的興起以及可解釋性的必要,並結合對當前技術狀況的調查,以更好地回答由 NLP 模型所引發的語言智慧相關的一些開放性問題。
在正式開篇前,先來了解下 「可解釋性」 這個概念。
事實上,可解釋性並沒有數學上的嚴格定義,可以簡單理解其為人們能夠理解模型決策原因的程度。換句話說,對機器學習模型來說,它的可解釋性越高,人們就越容易理解它為什麼做出某些決策或預測。
英文中有兩個詞 ——「interpretable」 和 「explainable」,可以用來表達可解釋性這個概念,但那是否完全一致呢?
在 NLP 興起的時候,兩個詞默認同一個意思(即,解釋模型的行為),可以交替使用。隨著 NLP 的發展,兩個名詞漸漸出現了細微的差別。
其中,「interpretable」 可以理解為,使本就透明的白盒通俗易懂,所有經驗水平的用戶都可以明白模型的含義,偏重於理解;而 「explainable」,則強調研究者對於黑盒模型的行為作出人們所能理解的解釋,更偏重於深層的解釋。
釐清這兩個概念後下面切入正題,本文是先前發表的名為「 Discovering the Encoded Linguistic Knowledge in NLP models」 文章的延續,之前的文章討論了什麼是 「探針」(Probes)、它與多任務學習的區別,以及兩種類型的探針 —— 基於表徵的探針和基於注意力權重的探針。
本文將會提出更有趣的深層次問題,在先前工作的基礎上,進一步揭示探針任務(或輔助任務)是如何用於評估 NLP 模型在其他初級任務訓練上的語言能力的,旨在幫助大家深入了解 NLP 模型中編碼的語言知識(Linguistic Knowledge)究竟是什麼。
探針對語言任務的性能預測,或用於關聯或比較神經網絡和語言現象的支持模式,提供了對編碼語言知識的內容和方式的獨特見解。對於性能預測的指標,可以是分類準確性,相關係數或預測金標的平均倒數排名(MRR, Mean Reciprocal Rank)。
需要注意的是,模型在探針任務上的性能預測,可以與專為這類任務設計的、經過明確訓練的模型的最新技術性能進行比較,以了解編碼語言知識的程度。
當然,還有其他方面需要深入分析,例如:
更大的模型能夠更好的編碼語言知識嗎?模型所捕獲的語言知識在複雜性方面(維度大小,參數數量)如何變化?探索不同複雜度模型在輔助任務上的分類器性能,可以對此問題作出解釋。
如何評估模型對語言知識進行編碼的泛化能力?探針在編碼語言知識上的成功可看作模型測試複雜數據時泛化能力的標誌。例如,如果訓練數據通常將 「主要助動詞」 作為第一個動詞,而廣義的數據故意包含幹擾因素,則 「主要助動詞」 不再是第一個動詞如何處理?在這種情況下,如果探針可以檢測到 「主要助動詞」,則可以將其歸因於諸如語法解析樹之類的語言特徵,而非順序位置特徵。
我們可以解碼語言知識,而不是依賴於淺層探針分類器標籤嗎?在探索解碼語言知識的能力中發現,與解碼或構建語言知識的任務相比,分類任務的複雜性相對較低,那能否使用內部表示構建一個完整的依存解析樹呢?或許尋找恢復潛在語言知識的方法將會是一種非常有趣的體驗。
探針的局限性是什麼?當探針能夠很好地完成輔助語言任務時,是由於某種相關性,還是有因果關係?考慮到深層而複雜的探針模型也具有記憶能力,很可能會導致過擬合現象。那麼,如何驗證探針所表達的語言知識的來源呢?可以嘗試以下方案,在設計 「控制任務」 時,將探針的預測性能與控制任務的性能進行比較,便於揭秘探針的有效性和語言知識的來源。
我們可以注入語言知識嗎?如果神經網絡模型在訓練端到端任務的過程中學習語言知識,那麼,是否可以考慮注入語言知識(即語法解析樹)來提高性能呢?
編碼的語言知識是否捕獲含義?語言知識,諸如詞性標註,依存樹等,本質上是句法層面上的。實際應用程式希望 NLP 模型能夠理解語義。因此,評估模型編碼語義含義的能力依舊至關重要。
帶著以上問題,讓我們更深入地研究與這些主題相關的研究論文都揭示了什麼。
圖 1 BERT 模型上的探針說明圖
模型越大,效果越好?
早期正式探討探索編碼語言知識問題的研究中,有一篇題為 「Fine-Grained Analysis of Sentence Embeddings using Auxiliary Prediction Tasks」 的論文。該論文旨在更好地理解編碼語言的句子表徵。
文中,三個與句子結構相關的輔助任務考慮如下:
句子長度(Sentence length):句子嵌入是否在句子長度上編碼信息?
單詞內容(Word-content):是否可以根據句子嵌入來預測句子中是否包含某個單詞?
單詞順序(Word-order)。給定句子嵌入和兩個單詞,能否確定兩個單詞的順序?
這些探針基於句子嵌入,而該句子嵌入是由編碼器 - 解碼器模型和連續詞袋模型(CBOW, Continuous Bag-of-Words Model)產生的最終表示的平均值來計算的。該論文的主要發現是 —— 大的模型可以更好地對語言知識進行編碼。
如下所示:
圖 2 圖片出處:ICLR 2017
一方面,增加維度會使某些任務的執行效果更好。如圖 2 所示,(a)長度和 順序測試獲得了更大維度表示的效果提升,而內容測試在 750d 時達到峰值。
另一方面,CBOW 模型相比於編碼器 - 解碼器模型,參數要少得多,維度越小,在 「單詞內容」 任務中也能表現得越好。
泛化能力
在泛化數據上測試模型以驗證其學習的程度,不失為一種好的選擇策略。而且經過精心設計的複雜泛化數據可以測試 NLP 模型學習語言智慧的極限。顯而易見,模型在如此複雜的數據上進行泛化,其真正的語言能力將會呈現的淋漓盡致,而不再僅僅局限於記憶表面的模式。
Lin 等人在另一篇論文 「Open Sesame: Getting Inside BERT’s Linguistic Knowledge」 中,也進行了此類實驗。
圖 3 圖片出處:ACL 2019
圖 3 顯示了對於壓力測試模型編碼的語言知識,泛化數據是如何包含故意幹擾因素的。
「主要輔助任務」 用於識別句子中的主要助動詞。一般而言,訓練和驗證數據集會把包含的 「主要助動詞」 作為句子的第一個動詞,而泛化數據集則將其 「藏匿」 在句子的更深處。
同樣地,「主語名詞任務」 用於識別句子中充當主語的名詞,這是訓練和驗證數據集中的第一個名詞,但在泛化集中對其進行了修改。
圖 4 圖片出處:ACL 2019
以訓練集中的句子為例,「the cat will sleep」 中的主要助動詞是 「will」。相比上個句子,「The can that can meow will sleep」 則算得上是複雜的概括性的句子了,若要對這句話分析,很容易發現句中存在幹擾詞 「can」,因此,很難預測主要助動詞是 「 will」。
圖 4(左)中的探針性能顯示,BERT 層對語言信息進行了編碼,能夠很好地檢測出泛化數據中的 「主要助動詞」。
圖 5 圖片出處:ACL 2019
圖 6 圖片出處:ACL 2019
類似地,對 「主語名詞」 任務的漸進式數據集進行泛化同樣是一項相對困難的任務。不過,值得慶幸的是,隨著連續層中探測分類器性能的提高,可以注意到編碼語言信息的增加。
文中進一步研究了該模型的注意力機制及其對這些幹擾因素的敏感程度。它提出了 「混淆分數(Confusion score)」,即候選令牌對目標令牌的關注度的二進位交叉熵。
下面的情況將觀察下當幹擾因素的複雜度降低時,混淆度是如何下降的:當 A1 的混亂度從 0.97 下降到 0.93,因為 A2 中的幹擾項 「the dog」 相對較容易捕獲,它與動詞 「dose」 的奇異點不匹配。
同樣,A3 中的混亂度也從 0.85 下降到了 A4 的 0.81。由於增加了關係從句,A1 的混亂度從 0.97 下降到 A3 的 0.85(和 A2,A4 的情況類似),這可能會更好地識別層次句法結構。
語言知識的解碼能力
由於分類器探針的複雜度相對較低,因此研究是否可以整體解碼編碼的語言知識是很有趣的一個問題。比方說,我們能否完全依靠編碼表示來構建依存解析樹呢?
圖 7 圖片出處:NAACL 2019
Hewitt 和 Manning 在論文 A Structural Probe for Finding Syntax in Word Representations 中提出了 「結構性探針」 的概念,從經驗上來說,將內部表示的空間轉換為語言知識的空間是可能實現的。探針識別一種線性變換,在這個變換下,變換表示的 L2 平方距離編碼解析樹中單詞之間的距離,而變換表示的 L2 平方範數編碼解析樹中的深度。
由此,我們可以得知,語言知識是逐層地從模型中學習,在頂層逐漸消失的,因為這些層更趨向於主要的目標函數。
本文還研究了轉換空間維度的增加是否有助於表達語言知識,實驗表明,解析依賴樹的語言知識可以用約 32 或 64 個維度來表示,除此之外,增加維度並不會帶來更多的價值效應。
圖 8 圖片出處:NAACL 2019
語言知識的局限和來源
監督模型 「訓練有素」 的探針,其預測語言屬性的功能已經在一系列的語言任務中取得了很高的準確性。
但這是否意味著這些表示形式對語言結構進行了編碼,還是僅僅是探針學習了語言任務?可以使用語言任務準確性來有意義地比較模型各層的語言屬性嗎?一個足夠深層次的探針模型可以記憶語言信息。那麼我們如何解決這個限制呢?
Hewitt 和 Liang 在 「Designing and Interpreting Probes with Control Tasks」 一文中提出了 「選擇度(Selectivity)」 的概念作為衡量探針有效性的一種方法。
控制任務旨在了解探測器如何學習與編碼表示形式無關的語言信息,其中選擇度定義為語言任務準確性和控制任務準確性之間的差異。
圖 9 圖片出處:EMNLP-2019
從圖 9 可以看出,詞性預測的控制任務將為某組單詞單獨分配某種單詞類型(或標識),並且根據單詞類型預測詞性標註(完全忽略編碼表示)。
因此,如果一個深層次的探針具有記憶功能,那麼它也應該能夠很好地執行控制任務。
圖中清晰的顯示了用於詞性輔助任務及其控制任務的探針模型的複雜性和準確性,由此,選擇具有高選擇度和高精度的探針對得出結論是至關重要的。
圖 10 圖片出處:ICLR 2017
Adi 等人在 「Fine-Grained Analysis of Sentence Embeddings using Auxiliary Prediction Tasks」 一文中研究了句子結構知識的來源。儘管 CBOW 模型忽略了周圍的上下文,但探針能夠在輔助任務上提供較高的準確性以預測句子的長度。
但是,我們發現僅僅是句子嵌入向量的範數就表徵了句子的長度(圖 10(右)),所以信息的來源並非來自標記的編碼表示形式。
然而,將這些表示形式進行匯總時,範數趨向於 0,這是由中心極限定理和霍夫丁不等式(Hoeffding『s inequality)確定的。
在圖 10(左)中可以注意到,合成句子(隨機選擇單詞組成合成句子)的長度預測精度也接近合法句子。所以,決定句子長度的實際知識來源只是隨機變量集合的統計性質。
因此,這需要進行更深入的研究和分析,以從探測結果中得出推論。
注入語言知識
上文已經研究了用於分析編碼語言知識的探針的技術,接下來的問題是,可以為預期的結果注入明確的語言知識嗎?
有一個關於釋義生成(paraphrase generation)的令人興奮的研究 ——Syntax-guided Controlled Generation of Paraphrases。Kumar 等人已經證明,如何利用示例句的語法來釋義源句。生成的釋義詞應保留源句意思,但語法和句子結構應與示例句相似。
圖 11 圖片出處:TACL 2020
圖 11 顯示了在不同示例語句的語法指導下生成的釋義。我們可以仔細的觀察並探究該模型是如何從示例句子的語法中獲得指導的。
請注意,只有示例句的語法是作為輸入給出的,實際的單個標記則不會輸入到模型。可以在不同的高度 H 處提取示例句的語法樹,並將其作為編碼器 - 解碼器模型的輸入。
由此,我們得出如下結論:高度越小,釋義靈活性就越大,而高度越高,就越能顯式地控制釋義的句法結構。
圖 12 圖片出處:TACL 2020
編碼語言知識能否捕獲其含義?
編碼的語言知識對於理解自然語言的意義至關重要,現在大多數探針都涉及句法語言知識。我們需要開發框架來評估像 BERT 這樣的 NLP 模型的功能,機器閱讀理解、文本相似度、問答系統、神經機器翻譯等應用示例表明,模型的真正性能是以其編碼語義的能力為基礎的。
開發諸如 GLUE(General Language Understanding Evaluation)和 SuperGLUE 之類的基準,可以用來評估經過微調的 NLP 模型執行自然語言理解任務的能力。通常,將 NLP 模型的性能與驗證準確性的結果進行比較。需要注意,使用驗證準確性存在固有的局限性,例如過擬合,驗證集的數據分布不同等均可能干擾正確的判斷。
而在 ACL 2020 年的 Best Paper 論文 「Beyond Accuracy: Behavioral Testing of NLP Models with CheckList」 中,作者提出了一個框架,一種新的 NLP 模型評測方法:CHECKLIST。
CHECKLIST 借鑑了傳統軟體工程的測試準則,通過模板快速生成大量樣例,全面測試模型的各種能力,可以用於幾乎所有 NLP 任務。(附:作者提供了開源工具用於生成測試樣例:https://github.com/marcotcr/checklist)
CHECKLIST 建議使用三種不同的測試方法:
最小功能測試(MFT, Minimum Functionality Tests),其中使用預期的金標生成示例;
不變性測試(INV, INVariance Tests),其中從給定的示例中,創建新示例,其中金標被翻轉;
方向預期測試(DIR, Directional Expectation Tests)對原始句子進行修改,金標往期望的方向(正向 / 負向)變化。
作者建議對於 NLP 模型的每一種能力,都儘量採用這三種測試方法測試一遍。
示例如下:
圖 13 圖片出處:ACL 2020
令人驚訝地是,儘管像 Roberta 和 BERT 這樣的模型超過了人類基線(準確度分別為 91.1%和 91.3%),但在基於驗證數據集的簡單規則泛化上卻 「一塌糊塗」。也就是說,要實現人類水平的自然語言理解,仍任重道遠。
最後,通過評估探針對 NLP 模型中的編碼語言知識,我們總結了以下幾點:
NLP 模型確實可以對語言知識進行編碼,以解決某些下遊 NLP 任務。
較大的模型或表示形式不一定更好編碼語言知識。
為句法任務編碼的語言知識可以泛化到具有複雜句子結構的測試數據,這歸因於模型對語言語法的編碼能力。
較深層次的探針可能會過度擬合併潛在地記憶輔助任務,從而導致我們對編碼語言知識的估計過高,得出誤判,所以,建議設計探針的控制任務。
提供語言知識後,模型可以更好地完成從此類知識中尋求指導的任務。
句法語言知識不足以捕捉自然語言理解的含義,甚至目前最前沿的模型離實現 NLP 任務所需的理解也尚有差距。
總而言之,編碼的語言知識本質上主要是語法上的,正如 「CHECKLIST」 所證實的那樣,模型在語義的泛化上基本是失敗的,最先進的 NLP 模型主要是在未標記的數據上以自我監督的方式進行預訓練,並在有限的標記數據上進行了微調以用於下遊任務。而從未標記的數據或有限的標記數據中獲取與任務或領域相關的語義知識無疑是很困難的。
注入語義和領域兩方面的知識可以提高 NLP 模型對兩者的編碼能力,因此也內在地提高了模型的推理能力,並產生了合理可信的解釋。
補充一下,Guar 等人 在 Semantics of the Black-Box: Can knowledge graphs help make deep learning systems more interpretable and explainable?」 中描述了知識圖譜(Knowledge Graphs)是如何幫助深度學習系統更具理解性和可解釋性的,感興趣的讀者可以選擇閱讀。
如何跨越語言知識的鴻溝,仍將是一個具有挑戰性的研究課題。