本文來源:AI Time論道
整理:閆昊
審稿:朱子寧
語言探針(linguistic probe)是一種最近流行起來的探測深度神經模型裡面編碼了哪些特徵的「診斷性分類器」算法:分類器效果好則深度模型包含的信息好。
然而,Hewitt & Liang, (2019)提出,語言探針分類器的效果好可能因為信息好,或者探針本身學會了探測任務。Pimentel et al., (2020) 反對這種二分法。
本次AI TIME策劃的EMNLP 2020專題報告,特別邀請到來自多倫多大學的朱子寧跟大家分享一種選擇語言探針的資訊理論觀點。
在這篇文章裡,我們用信息理論證實了這兩種可能性確實存在。
同時,我們分析了如何減小語言探針的誤差的辦法。
朱子寧:
目前就讀於多倫多大學,師從Frank Rudzicz。研究方向包括自然語言處理和深度模型的可解釋性。
他試圖設計實驗來理解深度語言模型編碼的信息,以及這些模型在應用時的表現。
1
語言探針所解決的問題
最近,神經網絡在NLP中的作用越來越重要,在上面列出的一些任務中,神經網絡是需要不同的知識和能力。
在翻譯任務中,需要翻譯的語句需要由深度語言模型用另外一種語法去表達語義信息,這表明模型需要具有在不同語言中應用語法的知識。而語言的可接收性任務中則同樣面對翻譯問題中的語句通順問題。同樣涉及到需要不同的語法去表達語義信息的還有Paraphrase任務。上述任務共同包含的能力需求是識別語義的前後包含關係,例如前一句有沒有包含第二句話的條件。
模型還應該具有常識判斷能力。
例如:大象不能放到冰箱裡面,因為它太大了,這個它指的是大象還是冰箱。而模型要想正確的理解「它」是大象還是冰箱,就必須知道現實生活中大象和冰箱的大小概念,這樣才能正確理解是大象太大了。而相反的語句,大象不能放到冰箱裡,因為它太小了,模型則能夠理解是冰箱太小了。
另外在做任務時,神經模型還需要理解語義信息,例如 Quora Question Pairs任務中,需要判斷兩個問題是否在提問相同的問題。
值得考慮的一點是,在這些任務中神經模型能夠出色的完成任務,這意味這它們應該具有很多相關知識。因此需要關注它們具有多少知識,如果它們具有這些知識,它們是從什麼時候開始學會這些知識的。它們對於這些知識的儲存方式是不是儲存在一部分的單元裡面,如果是的話我們能不能把這些單元提取出來,或者改進其他的單元。而知道這些知識的儲存位置對於如何設計更好的模型提供了幫助。
探究這個問題的方法是使用診斷探針。在2016年的時候,Ettinger 在文章《Probing for semantic evidence of composition by means of simple classification tasks》中提出了探針診斷。
他們設計的方法是使用分類器,分類器算法的輸入是句子的表徵,輸出的是語言任務,而使用者只需要手動指定一些語言任務,然後讓分類器去學習。如果分類器能很容易學會,即獲得很高的正確率或很低的交叉熵損失函數,就說明表徵中有很多很容易解碼的信息。
Bengio在文章《Understanding intermediate layers using linear classifier probes》中提出,對診斷探針的分類器的疑問可以概括為,在模型的陣列當中是否包含這塊信息。因為在一個深度模型當中,從低層到高層所包含的信息是減少的,這主要因為信息處理的不平等,模型會對信息做一些處理,導致信息的損失,但是會儘量保留有用信息。所以越往高層走,任務相關的信息佔的比例會越來越高的,會越來越容易解碼。
2
對於語言探針的探索
當設置好語言探針任務之後,就能夠使用探針去尋找不同的語言信息,例如語法信息。Hewitt在2019年發表於NAACL的《A Structural Probe for Finding Syntax in Word Representations》中使用探針去尋找句子中的單詞與單詞在語法樹上的距離,因此他們的輸入就是句子的表徵,而輸出的是詞與詞的語法距離。
他們在文章中表明,在BERT模型中,較低層的表徵含有較多的語法樹距離信息,但是在模型的高層中這類信息相對較少。Tenney在文章《BERT Rediscovers the Classical NLP Pipeline》中發現高層中包含的語義信息比較多,低層中語法信息比較多。
這就像一個傳統的Pipeline形式,可解釋性強且信息局部化,其中每個流程都在完成不同的工作,且是嚴格按照一定順序進行的,例如句法分析,語法分析,命名實體識別,語義角色標註,然後共指消解。其先在低層處理一些語法特徵,傳統的辦法有手動提取特徵,而在高層中通過算法提取一些語義信息,即形成低層語法,高層語義的模式。Tenney組發現BERT模型中也呈現出了類似的特徵。
作者在他的論文《Examining the rhetorical capacities of neural language models》對修辭特徵進行了探索,他們把探針的輸入設置成文章的表徵,進而觀察文章中有多少解釋或者轉折的信息,並且觀察到雙向的語言模型在這方面表現比單向的語言模型要好。
語言探針容易設置:輸入表徵、讓分類器預測一些診斷任務。探針結果的結果容易解讀:「診斷探針任務」的效果好,則可以推測「表徵的知識豐富」。但是這種傳統的語言探針模式在2019年受到了挑戰。
2019年EMNLP獲得最佳論文獎第二名的史丹福大學的研究團隊在《Designing and Interpreting Probes with Control Tasks》(作者為 John Hewitt、Percy Liang)一文種提出:當我們能夠觀察到好的表現的時候,不一定是因為這個表徵具有很多的信息,也有可能是因為探針學會了這項任務。
這是因為探針本身就是神經網絡,而神經網絡甚至能夠從隨機的向量裡面學習改進(參考:2017年Zhang的《Understanding Deep Learning Requires Rethinking Generalization》)。
因此只要所用的數據集夠小,而探針的設置夠大,探針甚至能夠通過這個數據集建模。
因此,他們提出使用「Selectivity」標準去選擇探測器。Selectivity標準是:和使用了隨機標籤的控制任務相比,探針的精度提高了多少。
探針本身就能夠進行學習,但是在「控制任務」裡面,探針也會學習。
這些學到的知識會減法中被抵消。
此外,Hewitt and Liang還推薦使用更簡單的探針模型,因為探針的參數越少,它的學習能力就越低。
針對Hewitt& Liang的文章,幾個月之後,ETH Zurich的Tiago Pimentel等人在ACL 2020文章《Information-Theoretic Probing for Linguistic Structure》中反駁了他的觀點。
首先,他們試圖從資訊理論的角度來定義探針任務。他們提出,語言探針的目的在於計算表徵R和任務T之間有多少互信息(code-target mutual information, I(T;R))。
在NLP模型中,我們通常認為詞語或者句子的表示蘊含了一定的語言學性質,比如句法信息或者語義信息。為了證明這一點,人們設置了探針任務,它是關注於簡單的語言學性質的分類任務。
比如對於一個LSTM encoder,使用句子 embedding 來訓練一個時態分類器,如果能夠得到正確的分類,則認為這個 embedding 包含了一定的時態信息。Hewitt的文章認為探測任務應該使用比較簡單的模型,比如使用淺層感知機。
而Pimentel等人這篇文章反駁了這一觀點,認為探測任務應該使用表現儘可能好的探針模型,他們反對Hewitt提出的二分法解釋。
Pimentel也反對使用控制任務;他們提出控制函數作為控制設置。控制函數與控制任務的區別在於控制函數將表徵隨機化,而控制任務將標籤隨機化。在後面的實驗中,我們將證實這兩者是等價的。
此外,Pimentel還使用了信息增益這個判斷標準來選擇語言探針,信息增益是控制任務和探測任務交叉熵損失的差異,用此來近似信息的增量。
這兩篇文章形成了一種辯論,我們試圖解釋這兩個文章裡面觀點不同的地方。
3
我們的分析
我們首先在Pimentel的文章提出的資訊理論的框架下,試圖去寫出Hewitt文章裡所說的二分法,根據結果,我們發現導致一個比較低的診斷探針交叉熵的可能性原因有兩種,即I(T;R)是有很高的code-target mutual information,即表徵中包含有很多信息。
第二種可能性是一個很低的KL值,這個值低說明探針學會了這項分類任務。這就說明了這個二分法在資訊理論框架中也是有效的,即如果探針任務獲得了很好的表現,就可能是因為表徵好,或者是因為探針比較強直接學會了任務。
那麼如何選擇比較好的語言探針呢,我們接下來嘗試了控制任務和控制函數兩種方法,這兩種方法都是通過設置兩項任務來實現的,一項是傳統的語言探針任務,一項是控制任務,然後拿控制任務的表現減去探針任務的表現,去觀察他的差值,然後用這個差值去近似code-target mutual information,我們發現這兩種辦法都包含誤差,但是這個誤差比只用一個任務去做探針的誤差小得多,這個誤差是兩個KL的差值。
在訓練比較好的時候,在兩個KL應該都趨向於0,實時上在損失函數沒有達到0的時候,這兩個KL都沒有變成0,但是在理想情況下這兩個會相互抵消。
但是在模型中有沒有抵消或者抵消多少還是一個待探索的任務。剩下的Δh和Δp只有一個常數的區別,如果隨機性做的好,剩下的這幾項都是不相關的。
接下來我們用實驗的方法來驗證一下這兩個方法是否具有等價性,首先做了一個超參數搜索,設置了一個比較簡單的語言探針任務,試圖看這個語法特徵。然後我們在英語,法語,西班牙語的UD數據集上進行了實驗,然後我們對於每一種語言跑了1w多次POS探針實驗。
最後把這些實驗的結果排序之後發現根據Hewitt組的標準和Pimentel組的標準排序。可以發現它們的相關性是相當高的,所以他們的判斷標準差不多是一樣的,就像模型訓練中的acc和loss的相關性。
4
總結
總之,這篇文章試圖在一個資訊理論框架裡面探究語言探針診斷器。我們分析出現的誤差來源,其出現於單次損耗和控制機理,然後分析怎麼樣減小他的誤差。
我們還分析了過去的兩篇比較熱門的文章裡面提出的選擇語言探針的標準,發現他們提出的標準在實驗上和理論上都等價的。
可以再解釋一下高層主要是語義信息,低層是語法信息?
朱子寧:「那篇文章指定了一些語義和語法特徵,每個特徵做一個探測(分類)任務。他們發現語義相關的特徵比較容易從較高的幾層裡(用診斷探針模型)檢測到,語法特徵在低層比較容易探測到。」
這個特性和CV裡,低層識別邊、角、輪廓,高層識別局部細節,有共性。應該是網絡的特性?
朱子寧:「是的。」