ACL 2019提前看:預訓練語言模型的最新探索
機器之心原創
作者:曾祥極
編輯:Hao Wang
ACL2019將於7 月 28 日至 8 月 2 日在義大利佛羅倫薩舉辦。機器之心技術分析師曾祥極挑選了ACL 2019收錄的與語言模型相關的三篇文章,分別從可變長度 Transformer、BERT 表徵學習的深層次解析以及多語言遷移學習 BERT 三方面來介紹預訓練語言模型的最新進展。
ACL,英文全稱是 The Association for Computational Linguistics,中文全稱是國際計算語言學協會。ACL 於 1962 年成立,主要致力於為研究自然語言處理或者計算語言學的專業人士提供服務。為了促進自然語言處理領域的學術交流,ACL 每年都會舉辦學術會議,如 ACL、EMNLP 和 NAACL 等。ACL 2019(第 57 屆會議)即將於 2019 年 7 月 28 日至 8 月 2 日在義大利佛羅倫薩舉辦。
自從 2018 年預訓練語言模型 BERT提出之後,由於 BERT 的強大表徵能力和知識儲備能力,預訓練語言模型將自然語言處理的大部分任務水平都提高了一個等級。學術界也不免掀起了研究預訓練語言模型的熱潮,著名的有 OpenAI 的GPT-2,還有最近又有把任務效果提升一大截的XLNet,當然這其中也還有許多其它相關的研究,我就不一一列舉了。
本文精心挑選了 ACL 2019 最新收錄的與語言模型相關的三篇文章,分別從可變長度 Transformer、BERT 表徵學習的深層次解析以及多語言遷移學習 BERT 這三方面來介紹預訓練語言模型的最新進展。
論文解讀
1. Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context
鏈接:https://arxiv.org/pdf/1901.02860.pdf
第一作者 Zihang Dai 目前是 CMU 的在讀博士生,最近火熱的 XLNet 就是出自該作者所在的團隊之手。預訓練語言模型 BERT 在給定輸入長度內的句子序列上可以很好地建模依賴關係,但是對於超出長度限制的句子序列就無能為力了。
舉個例子,如果我們需要做閱讀理解的任務,給定一篇非常長的文章,由於 BERT 不能夠把這篇文章一次性輸入進行編碼,而只能是按照 BERT 的最大輸入長度把文章切割成不同的小片段進行編碼。這樣做的同時也引起了一些問題,雖然 BERT 可以對片段內不同的符號(Tokens)進行依賴建模,但是小片段之間的語義依賴等卻無法建模。
本文提出的 Transformer-XL 旨在解決這個編碼問題,作者稱之為上下文碎片(context fragmentation)問題,它通過段級別的循環機制(segment-level recurrence mechanisim)和新型的位置編碼方案(positional encoding scheme)來解決輸入句子序列的長程依賴問題。實驗證明,Transformer-XL 學習到的依賴比一般的 RNN 長 80% 左右,更是比傳統的 Transformer 長 450% 左右,而且在評估期間,它的速度比傳統的 Transformer 快 1800 倍。
1.1. 分段編碼
介紹裡面我們談到,為了對輸入句子序列進行編碼,最初的 Transformer 會將輸入句子序列根據預先設定好的最大長度切分成更小的片段,然後 Transformer 再對這些片段進行單獨的訓練,作者稱這種模型為香草模型(Vanilla Model)。
圖 1-1. 香草模型訓練過程動畫,來源 https://ai.googleblog.com/2019/01/transformer-xl-unleashing-potential-of.html
如圖 1-1 所示,該圖為香草模型的訓練過程動畫圖,即分塊單獨訓練。在這種訓練方式下,香草模型學到的輸入序列符號之間的依賴與模型預先設定的最大輸入長度有關,通常長度為幾百個單詞,而且信息無法在不同的分塊中流動。
圖 1-2. 香草模型評估過程動畫,來源 https://ai.googleblog.com/2019/01/transformer-xl-unleashing-potential-of.html
如圖 1-2 所示,該圖為香草模型的評估過程動畫。在評估的每一步中,香草模型的最大段長度與訓練期間相同,但是每次往後移動的時候只移動一個位置,而且只在最後一個位置進行預測,這會導致評估過程的計算複雜度非常高。
1.2. 分段循環機制
圖 1-3. Transformer-XL 訓練過程動畫,來源 https://ai.googleblog.com/2019/01/transformer-xl-unleashing-potential-of.html
如圖 1-3 所示,該圖是 Transformer-XL 訓練過程的動畫。為了解決傳統 Transformer 長度固定的問題,作者選擇將循環機制加入到模型架構中。在訓練期間,前一個段計算的隱藏狀態表示會被固定住並且緩存下來,作為當前段計算時的上文環境信息。這種機制賦予了模型探索歷史信息的能力,並且能夠建模長程依賴來避免上下文碎片問題。
基於 RNN 的語言模型選擇在同一層網路進行序列的循環,Transformer-XL 則選擇了不同的循環機制,它的新段每一層網路隱藏狀態的計算依賴於前一段相鄰下一層網路的隱藏狀態和當前段相鄰下一層網路的隱藏狀態(圖 1-3)。因此,Transformer-XL 的最大依賴長度與層數和段長度相關,即。
圖 1-4. Transformer-XL 評估過程動畫,來源 https://ai.googleblog.com/2019/01/transformer-xl-unleashing-potential-of.html
除此之外,由於在計算新段的隱藏狀態表示時可以復用之前計算的隱藏狀態,並且每次向後移動是以段為單位,因此 Transformer-XL 的評估過程非常快,演示動畫如圖 1-4 所示。作者在數據集 enwiki8 做了實驗,Transformer-XL 評估速度要比香草模型快 1800 倍。
1.3. 相對位置編碼
如果沿用最初香草模型的位置編碼方案,那麼每個段的位置編碼都會是一樣的,這顯然是不合理的。為了復用歷史隱藏狀態信息,作者提出了一種新的位置編碼來保持段與段之間的連續性,作者稱之為相對位置編碼(relative positional encodings)。核心思想就是在計算注意力期間,當某一個位置的查詢向量 q 參與查詢值向量 k 時,我們不需要知道絕對位置信息,而只需要知道 k 和 q 的相對位置信息,即 i - j。具體實現可參考論文附錄。
1.4. 實驗
作者在 WikiText-103、enwik8、text8、One Billion Word 和 Penn Treebank 這五個數據集上做了實驗,均取得了不錯的效果,實驗結果如圖 1-5、圖 1-6、圖 1-7、圖 1-8 和圖 1-9 所示。
圖 1-5. 數據集 WikiText-103 實驗結果
圖 1-6. 數據集 enwik8 實驗結果
圖 1-7. 數據集 text8 實驗結果
圖 1-8. 數據集 One Billion Word 實驗結果
圖 1-9. 數據集 Penn TreeBank 實驗結果
2. What does BERT learn about the structure of language?
鏈接:https://hal.inria.fr/hal-02131630/document
作者是來自於法國 Inria 機構的 Ganesh Jawahar,Beno?t Sagot 和 Djamé Seddah。探索 BERT 深層次的表徵學習是一個非常有必要的事情,一是這可以幫助我們更加清晰地認識 BERT 的局限性,從而改進 BERT 或者搞清楚它的應用範圍;二是這有助於探索 BERT 的可解釋性,自從各國政府人工智慧戰略的相繼發布,神經網路的可解釋性問題成為了一個不可忽略的問題。
Frege 早在 1965 年的組合原則里就談到,複雜表達式的意義由其子表達式的意義以及意義如何組合的規則共同決定。
本文思路與分析卷積神經網路每層學習到的表徵類似,主要是探索了 BERT 的每一層到底捕捉到了什麼樣的信息表徵。作者通過一系列的實驗證明 BERT 學習到了一些結構化的語言信息,比如 BERT 的低層網路就學習到了短語級別的信息表徵,BERT 的中層網路就學習到了豐富的語言學特徵,而 BERT 的高層網路則學習到了豐富的語義信息特徵。
2.1. BERT
BERT 是構建於 Transformer 之上的預訓練語言模型,它的特點之一就是所有層都聯合上下文語境進行預訓練。訓練方法是通過預測隨機隱藏(Mask)的一部分輸入符號(token)或者對輸入的下一個句子進行分類,判斷下一個句子是否真的屬於給定語料里真實的跟隨句子。
作者使用了 bert-base-uncased 作為實驗的基礎,它由 12 層編碼網路組成,每層的隱藏狀態(hidden)尺寸為 768,並且有 12 個注意力頭(110M 參數)。在所有的實驗中,作者在每一層網路都使用第一個輸入符號 ("[CLS]") 的輸出來計算 BERT 的表徵,這個輸出通過自注意力機制匯聚了所有真實符號的信息表徵。
2.2. 短語句法
基於循環神經網路 LSTM 的語言模型在 2018 年就曾被 Peters et al. 揭示了能夠捕捉短語級別的結構信息,那麼 BERT 在這一方面是否捕捉了短語級別的結構信息呢?為了探索這一疑惑,作者跟隨 Peters et al. 的方法,首先給定一個輸入符號序列,然後通過結合第一個和最後一個隱藏向量計算第 l 層網路的跨度表徵(span representation)。
圖 2-1. BERT 第 1、2、11、12 層跨度計算的二維 t-SNE 圖
圖 2-2. BERT 不同層的跨度表徵聚類圖
圖 2-1 是利用 t-SNE 對跨度表徵可視化的結果,t-SNE 是一個用於可視化高維數據的非線性降維演算法,我們可以觀察到 BERT 在低層網路捕捉了短語級別的結構信息,然後隨著網路層數的加大,短語級別的結構信息逐漸消失。舉個例子,底層網路會將塊(如「to demonstrate」)的潛在分類(如「VP」)映射到一起。
作者進一步通過聚類演算法 k-means 量化這個證明。如圖 2-2 所示,作者使用歸一化互信息(Normalized Mutual Information,NMI)展示了低層網路在編碼短語級別的結構信息上優於高層網路。
2.3. 探測任務
探測任務(Probing Tasks)能夠幫助挖掘編碼在神經網路模型中的語言學信息。作者使用探測任務來評估每層神經網路編碼不同類型語言學特徵的能力。
作者使用十個句子級別的探測任務,這些探測任務被分為三組:
表層任務:句子長度(SentLen)探測,單詞在句子中存在探測(WC);
句法層任務:詞序敏感性(BShift),句法樹深度(TreeDepth),句法樹頂級成分序列(TopConst);
語義層任務:時態檢查(Tense),主語數量(SubjNum),名詞動詞隨機替換敏感度(SOMO),協作分句連詞的隨機交換(CoordInv)。
圖 2-3. 探測任務在 BERT 不同網路層的性能表現(括弧里的值是未訓練與訓練過的 BERT 的差值)
如圖 2-3 所示,BERT 編碼了豐富的語言學層次信息:表層信息特徵在底層網路,句法信息特徵在中間層網路,語義信息特徵在高層網路。作者也發現未訓練版本 BERT 的高層網路在預測句子長度任務(SentLen)上超過了訓練過的版本,這暗示著未訓練的 BERT 模型可能包含足夠的信息去預測基本的表層特徵。
2.4. 主謂一致
主謂一致(Subject-verb agreement)是一個探測神經網路模型是否編碼句法結構的代理任務。當句子中有更多相反編號(attractors)的名詞插入到主語和動詞中時,預測動詞編號的任務會逐漸變得困難。作者在 BERT 的每一層網路使用不同的激勵(Stimuli)來測試 BERT 是否學習到較好的句法結構信息。
圖 2-4. BERT 每一層主謂一致得分情況表
如圖 2-4 所示,該表是主謂一致得分表,第二列到第六列是在主語和動詞插入的名詞數量,括弧裡面的數字是主語到謂語動詞的平均距離。結果表明在大多數情況下,中間層網路表現得更好,這也印證了上一部分句法特徵主要在 BERT 中間層進行編碼的假設。
有趣的是,隨著插入名詞的增多,BERT 更高層的網路也逐漸能夠處理長程依賴問題,效果要比低層網路更好,這證明 BERT 只有具有更深的層數才能在大多數自然語言處理(NLP)上更有競爭力。
2.5. 組合結構
為了進一步探索 BERT 是否能夠學習到組合結構的特徵,作者使用 Tensor Product Decomposition Networks(TPDN)來對 BERT 進行調查,TPDN 通過基於使用張量乘積和的預先選擇的角色設計(role scheme)來組合輸入符號表示。一個單詞的角色設計可以是基於從語法樹根節點到它自身的路徑,比如 LR 代表根節點的左子樹的右子樹。
作者假設,對於一個給定的角色設計,如果一個 TPDN 模型能夠很好地被訓練去估計一個神經網路學到的表徵,那麼這個角色設計就很可能能夠確定這個神經網路模型學到的組合性特徵。對於 BERT 的每層網路,作者使用五種不同的角色方案:left-to-right,right-to-left,bag-of-words,bidirectional 以及 tree。
作者使用 SNLI 語料庫的 premise 句子來訓練 TPDN 模型,並使用均方誤差(MSE)作為損失函數。
圖 2-5. 均方誤差圖
如圖 2-5 所示,該圖是 TPDN 以及 BERT 表徵和角色設計之間的均方誤差,這表明儘管 BERT 只使用了注意力機制,但是它的高層網路依然學習到了某種樹形結構。
圖 2-6. 依賴解析樹示意圖
受到這個研究的啟發,作者從自注意力機制權重中推導出了依賴樹。如圖 2-6 所示,該圖展示了通過 BERT 第二層網路第 11 個注意力頭的自注意力推導出句子「The keys to the cabinet are on the table」的依賴樹,根節點從 are 開始。我們可以從圖中看出一些限定詞依賴,比如「the keys」,「the cabinet」以及「the table」;也可以看出主語謂語依賴,比如「keys」和「are」。
3. How Multilingual is Multilingual BERT?
鏈接:https://arxiv.org/abs/1906.01502
作者是來自於 Google Research 的 Telmo Pires,Eva Schlinger 和 Dan Garrette。既然 BERT 能夠在每一層都學習到特殊的表層、句法以及語義特徵表示,那麼多語言 BERT(M-BERT)在上面學到了什麼呢?多語言 BERT 在零樣本遷移學習上又表現如何呢?
本文嘗試著回答這些問題,作者基於 Devlin et al 發布的用 104 種語言組成的單一語料庫訓練的單個多語言 BERT 模型,在上面做了一系列實驗,最終結果顯示多語言 BERT 在跨語言的零樣本遷移學習上表現得非常好。作者設計了一些標註任務,這些任務在一種語言上對該任務進行微調,最後再在另一種語言上進行評估。
除此之外,為了理解為什麼會有好的效果以及跨語言泛化表現的程度,作者還設計了探測實驗,該實驗展示了諸如遷移學習甚至有可能在不同的腳本上進行,以及遷移學習在兩種相似的語言上表現得非常好等等。另外探測實驗還表明,雖然多語言 BERT 的多語言表示能夠將學習到的結構映射到辭彙表,但是似乎沒有學習到這些結構的系統轉換以適應於具有不同詞序的目標語言。
3.1 模型和數據
多語言 BERT 是一個由 12 層 transformer 組成的預訓練模型,它的訓練語料包含了 104 種語言的維基百科頁面,並且共享了一個辭彙表。值得注意的是,多語言 BERT 在訓練的時候既沒有使用任何輸入數據的語言標註,也沒有使用任何翻譯機制來來計算對應語言的表示。
作者利用兩個任務進行實驗,實體命名識別(NER)和詞性標註(POS),這兩個任務都具有相似的特徵,均可以使用序列標註的網路模型來進行。
圖 3-1. NER 和 POS 實驗結果
如圖 3-1 所示,該圖是 NER 和 POS 的跨語言遷移學習實驗結果,我們可以看到在相似的語言上進行遷移學習會比較好。最極端的例子就是微調和評估都使用一種語言,這種效果是最好的,所以我們可以看到圖表中最好的分數都在對角線上。
3.2. 詞典記憶
由於多語言 BERT 使用單個的多語言詞典,所以當在微調期間出現的單詞也出現在評估語言中時,這會發生一種跨語言的轉換遷移,作者稱這種現象為辭彙重疊(overlap)。作者設計了探測實驗來探索這種跨語言的轉換遷移有多大程度上時依賴於這種重疊,以及這種轉換遷移能否發生在不同的語言文本上,也就是沒有重疊現象發生的時候。
如果多語言 BERT 的泛化能力很大程度上是依賴於詞典記憶,那麼我們也可能會看到 NER 在零樣本遷移學習上的表現會依賴於辭彙重疊。為了測量這個影響,作者計算了 E_train 和 E_eval,這分別是訓練集和測試集實體辭彙的集合,定義重疊計算公式為:
圖 3-2. 零樣本 NER 遷移學習與跨語言重疊實驗對比圖
如圖 3-2,該示意圖是零樣本 NER 遷移學習 F1 分數與 16 種語言重疊實驗的對比結果,包含了多語言 BERT 和英文 BERT。我們可以看到英文 BERT 的性能表現非常依賴於辭彙重疊,遷移學習的能力會隨著重疊率的下降而逐漸下降,甚至在完全不同的語言文本中(即重疊率為 0)出現 F1 分數為 0 的情況。但是多語言 BERT 則在大範圍重疊率上表現得非常平緩,即使是不同的語言文本,這證明多語言 BERT 在某種程度上擁有超過淺層辭彙級別的深層次表徵能力。
圖 3-3. 在不同的語言文本上的 POS 實驗準確率示意圖
為了深入研究多語言 BERT 為何能在不同的語言文本上具有良好的泛化能力,作者在詞性標註任務 POS 上做了一些實驗嘗試,結果如圖 3-3 所示。我們可以看到,多語言 BERT 在只有阿拉伯文(UR)的數據集上進行 POS 任務的微調,在只有梵文(HI)上的數據集進行測試,仍然達到了 91% 的準確率,這是令人非常驚訝的。這表明多語言 BERT 擁有強大的多語言表徵能力。
但是,跨語言文本遷移卻在某些語言對上表現出糟糕的結果,比如英文和日語,這表明多語言 BERT 不能在所有的情況下都表現良好。一個可能的解釋就是類型相似性,比如英語和日語有不同的主語、謂語以及賓語順序,但是英語卻和保加利亞語(BG)有相似的順序,這說明多語言 BERT 在不同的順序上泛化性能不夠強。
3.3. 語言結構編碼
從前面我們可以看到,多語言 BERT 的泛化能力不僅僅歸功於詞典記憶,而且還歸功於深層次的多語言表徵。為了更深入的了解這種表徵的本質,作者設計了一系列實驗來更深入了解這種表徵。
圖 3-4. 在零樣本遷移學習上 POS 準確率與 WALS 特徵的對比圖
WALS 是與語法結構相關的特徵,圖 3-4 展示了多語言 BERT 在零樣本遷移學習上 POS 任務的準確率與 WALS 特徵數量的對比圖。我們可以看到,準確率會隨著語言相似度的提升而提升,這證明多語言 BERT 對具有相似特徵的語言的遷移學習更加友好。
圖 3-5. POS 遷移學習宏平均準確率在不同語言學特徵上的對比圖
語言的順序類型特徵一般包括這兩種,主謂賓(subject/verb/object, SVO)順序或者形容詞名詞(adjective/noun, AN)順序。圖 3-5 展示了在 POS 任務上進行的跨語言遷移學習的宏平均準確率與語言類型特徵的對比。我們可以看到性能表現最好的情況是語言類型特徵一樣(SVO 和 SVO,SOV 和 SOV,AN 和 AN 以及 NA 和 NA)的遷移學習,這表明雖然多語言 BERT 能夠學習到一定的多語言表徵,但是似乎沒有學習到這些語言類型結構的系統轉換去適應帶有不同語言順序的目標語言。
為了探索多語言 BERT 在多語言文本混合(Code-switching)和音譯(transliteration)的情況下表徵能力如何,作者進一步在 UD 語料庫上測試了印地語(HI)和英語(EN)。多語言文本混合是指一個表達裡面參雜多種語言,而音譯則指將發音相似的外來詞語直接通過讀音翻譯過來,比如酷(cool)和迪斯科(disco)等。
圖 3-6. 多語言文本混合以及音譯下的 POS 準確率
如圖 3-6 所示,該圖表是多語言 BERT 在多語言文本混合和音譯下的詞性標註任務的準確率結果,其中 transliterated 代表印地語是以拉丁文的方式書寫,而 corrected 則代表印地語是以梵文的方式書寫。我們可以看到,對於 corrected 的輸入,多語言 BERT 的性能在單個語料庫(HI EN)上與多語言文本混合(HI/EN)表現相當,這進一步正面多語言 BERT 能夠有效地表徵多語言信息。可是對於 transliterated 的輸入,這兩者的表現就差得挺遠,這證明預訓練語言模型只能在某些語言上較好地進行遷移學習。
3.4. 特徵空間的多語言表徵
作者還設計了一個實驗探索多語言 BERT 在特徵空間上的多語言表徵。作者首先從數據集 WMT16 中採樣了 5000 個句子對,將句子分別輸入到沒有經過微調的多語言 BERT。然後抽取每個句子在 BERT 每一層的隱藏特徵向量(除開 [CLS] 與 [SEP])並取平均,得到一個表示:。
我們計算從一種語言到另一種語言的向量表示:
這裡 M 是句子對數量。當我們翻譯每個英文句子表示時,我們通過一種語言到另一種語言的向量表示尋找最近的德語句子向量,最近的鄰居便是正確的句子對,我們稱之為最近鄰準確度(nearest neighbour accuracy)。
圖 3-7. 翻譯任務上的最近鄰準確度結果圖
如圖 3-7 所示,該圖是翻譯任務上的最近鄰準確度在 BERT 每一層網路上的結果。我們可以看到,在 BERT 的非底層網路都實現了較高的準確率,這說明多語言 BERT 可能以一種語言無關的方式,在大多數隱藏層共享語言特徵表示。至於為什麼在最後幾層網路上準確率又下降了,一個可能的解釋是 BERT 在預訓練的時候需要明確與語言相關的信息去預測缺失的單詞。
4. 總結
Transformer-XL 結合循環機制讓 Transformer 擁有了處理變長輸入序列的能力,而 BERT 以及多語言 BERT 的解析則為我們更好了解 BERT 以及可解釋方面提供了堅實的基礎,期待未來能夠有更多的預訓練語言模型工作能夠在此基礎上受益,並更進一步。
作者介紹:曾祥極目前是浙江大學計算機方向的碩士,主要研究常識(Commonsense)以及自動機器學習(AutoML),同時也對認知科學和系統科學這兩個學科很感興趣。作為機器之心技術分析師的一員,他希望通過文字理清當前技術的發展前沿,與大家一同分享見解,也希望我們都能從中有所收穫。
本文為機器之心原創,轉載請聯繫本公眾號獲得授權。
------------------------------------------------


※比宣傳更誇張,秒殺18核i9!AMD新旗艦Ryzen 9跑分出爐
※陳天奇:機器學習科研的十年
TAG:機器之心 |