如何「錨定」NLP模型中的語言智慧?丨長文評析語言探針

2021-01-07 騰訊網

新智元推薦

來源:數據實戰派

作者: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)是如何幫助深度學習系統更具理解性和可解釋性的,感興趣的讀者可以選擇閱讀。

如何跨越語言知識的鴻溝,仍將是一個具有挑戰性的研究課題。

相關焦點

  • 多倫多大學在讀博士朱子寧:如何利用語言探針檢測深度神經模型性能...
    「NLP前沿講座」,是智東西公開課針對自然語言處理領域推出的一檔講座,聚焦於自然語言處理前沿領域研究成果與進展。我們將持續邀請研究者、專家與資深開發者,為大家帶來直播講解。語言模型編碼在神經模型中的評估越來越受到科研人員的關注。
  • 支持53種語言預訓練模型,斯坦福發布全新NLP工具包StanfordNLP
    53 種語言預訓練模型的自然語言處理工具包 StanfordNLP,該工具包支持 Python 3.6 及之後版本,並基於 PyTorch,支持多種語言的完整文本分析管道,包括分詞、詞性標註、詞形歸併和依存關係解析,此外它還提供了與 CoreNLP 的 Python 接口。
  • 史丹福大學發布 StanfordNLP,支持多種語言
    雷鋒網 AI 科技評論按,近日,史丹福大學發布了一款用於 NLP 的 Python 官方庫,這個庫可以適用於多種語言,其地址是:https://stanfordnlp.github.io/stanfordnlp/,github 資源如下:這是 Stanford 官方發布的 NLP 庫,詳細信息請訪問:https://stanfordnlp.github.io/
  • 多倫多大學朱子寧:一種選擇語言探針的資訊理論觀點
    同時,我們分析了如何減小語言探針的誤差的辦法。 朱子寧: 研究方向包括自然語言處理和深度模型的可解釋性。 他試圖設計實驗來理解深度語言模型編碼的信息,以及這些模型在應用時的表現。 1 語言探針所解決的問題
  • 為什麼預訓練語言模型 ELMo 是NLP的最大進步之一?
    ELMo,是來自語言模型的嵌入(Embedding fromLanguageModels)的縮寫,這是一種最先進的語言建模思想。是什麼讓它如此成功?例如,在下面的示例中,這些語言模型將為「trust」返回相同的嵌入:I can’ttrustyou.They have notrustleft for their friend.He has atrustfund.
  • 計算機如何理解我們的語言?NLP is fun!
    如果計算機想要更好的理解人類的語言,擁有更好的人機互動體驗,都離不開 NLP。那麼,計算機到底是如何理解人類語言的?接下來讓我們跟著作者 Adam Geitgey ,和他一起體會自然語言處理技術裡那些有意思的事情。計算機非常擅長處理像電子表格、資料庫這樣的結構化數據。但是,人與人之間是用語言來交流的,而不是用表格。
  • 斯坦福NLP團隊發布最新自然語言處理Python庫
    小編剛刷完文檔,個人覺得,這是目前最值得學習的自然語言處理算法庫了!現在分享給大家。【版本特性】新版的StandfordNLP包含以下特性:【安裝】pip install stanfordnlp【使用】>>> import stanfordnlp>>> stanfordnlp.download('en')   # 這會下載英語的神經網絡模型
  • 【獨家】自然語言處理(NLP)入門指南
    (NLTK)(網站,圖書)[Python; NLP實用編程介紹,主要用於教學目的]網站網址:http://www.nltk.org圖書網址: http://www.nltk.org/book/ •  斯坦福CoreNLP(網站)[由Java開發的高質量的自然語言分析工具包]網站網址: https://stanfordnlp.github.io
  • 斯坦福發布重磅NLP工具包StanfordNLP,支持中文等53種語言
    StanfordNLP支持包括阿拉伯語、中文、英語等53種語言(全部語言列表見文末)。種(人類)語言的預訓練神經模型;穩定、官方維護的轉到CoreNLP的Python接口。獲取地址:https://stanfordnlp.github.io/stanfordnlp/index.html安裝與測試
  • 什麼樣的NLP庫,可以支持53種語言?
    (NLP)時,常常會遇到一個挑戰——我們可以為非英語語言建立模型嗎?它打開了一個無限可能的世界——Stanford NLP在其原稿中包含了印度語、漢語和日語等亞洲語言的預訓練模型。所有NLP愛好者都渴望NLP庫能夠具有兼容多種語言的能力。
  • 自然語言處理NLP快速入門
    我們感受到了閱讀這些東西所引發的情感,我們經常想像現實生活中那東西會是什麼樣子。 自然語言處理 (NLP) 是人工智慧的一個子領域,致力於使計算機能夠理解和處理人類語言,使計算機更接近於人類對語言的理解。計算機對自然語言的直觀理解還不如人類,他們不能真正理解語言到底想說什麼。簡而言之,計算機不能在字裡行間閱讀。
  • 圖解當前最強語言模型BERT:NLP是如何攻克遷移學習的?
    2018 年是機器學習模型處理文本(更準確地說是自然語言處理,簡稱 NLP)的一個轉折點。如何最好地表徵詞和句子以便最好地理解其潛在含義和關係?我們對此的概念理解正在快速演進。ELMo 的預訓練過程中的一步。給定「Let's stick to」為輸入,預測下一個最有可能的詞——這是一個語言建模任務。在大型數據集上訓練時,模型會開始提取語言模式。在這個示例中,模型不太可能準確猜出下一個詞。
  • 自然語言處理全家福:縱覽當前NLP中的任務、數據、模型與論文
    模型通常在一個和訓練時的源域不同的目標域上評估,其僅能訪問目標域的未標記樣本(無監督域適應)。評估標準是準確率和對每個域取平均的分值。語言建模語言建模是預測文本中下一個詞的任務。*表示模型使用了動態評估。
  • 國內自然語言處理(NLP)研究組
    /natural-language-computing/www.microsoft.com百度自然語言處理百度自然語言處理 - 理解語言,擁有智能,改變世界nlp.baidu.com阿里巴巴達摩院語言技術實驗室
  • Awesome-Chinese-NLP:中文自然語言處理相關資料
    "閱讀原文"可直達:https://github.com/crownpku/Awesome-Chinese-NLPawesome-chinese-nlpA curated list of resources for NLP (Natural Language Processing) for Chinese中文自然語言處理相關資料圖片來自復旦大學邱錫鵬教授
  • 帶新手走進自然語言處理,7本NLP專業書
    首先討論了詞的自動形態分析,然後討論了自動句法分析,然後討論了各種語言單位的自動語義分析。最後,討論了連貫文本的自動分析、對話和會話的智能代理以及自然語言的生成。本書從技術角度介紹了正則表達式、有限狀態自動機、語篇轉換、語音拼寫概率模型、詞性自動標註、n元語法、隱馬爾可夫模型、上下文無關語法、特徵與統一、詞彙化與概率分析等,一階謂詞演算、詞義消歧、修辭結構理論、機器翻譯等內容廣泛。
  • NLP領域最優秀的8個預訓練模型(附開源地址)
    我們可以在自己的自然語言處理數據集上使用預訓練模型,而不是從頭構建模型來解決類似的自然語言處理問題。儘管仍然需要進行一些微調,但它已經為我們節省了大量的時間和計算資源。在本文中,我將介紹一些頂級的預訓練模型,你可以用它們來開始你的自然語言處理之旅,並複製該領域的最新研究成果。
  • NLP也分李逵和李鬼?關於自然語言處理你不知道的事
    他們認為,神經過程(神經),語言(語言)和通過經驗(編程)學習的行為模式之間存在聯繫,並且可以對其進行更改以實現生活中的特定目標,班德勒和格林德還聲稱,自然語言處理方法可以「建模」傑出人員的技能,從而使任何人都能獲得這些技能。
  • NLP入門+實戰必讀:一文教會你最常見的10種自然語言處理技術
    詞向量化是用一組實數構成的向量代表自然語言的叫法。這種技術非常實用,因為電腦無法處理自然語言。詞向量化可以捕捉到自然語言和實數間的本質關係。通過詞向量化,一個詞語或者一段短語可以用一個定維的向量表示,例如向量的長度可以為100。例如:「Man」這個詞語可以用一個五維向量表示。
  • NLP入門+實戰必讀:一文教會你最常見的10種自然語言處理技術(附代碼)
    大數據文摘作品編譯:糖竹子、吳雙、錢天培自然語言處理(NLP)是一種藝術與科學的結合,旨在從文本數據中提取信息。在它的幫助下,我們從文本中提煉出適用於計算機算法的信息。從自動翻譯、文本分類到情緒分析,自然語言處理成為所有數據科學家的必備技能之一。