當前位置:
首頁 > 新聞 > 他們創造了橫掃NLP的XLNet:專訪CMU博士楊植麟

他們創造了橫掃NLP的XLNet:專訪CMU博士楊植麟

機器之心原創

作者:李澤南、思源


Transformer XL 和 XLNet 是最近自然語言處理(NLP)領域裡最熱的話題之一,而它們都是 CMU 博士生 戴自航、楊植麟等人的工作。今年 6 月,CMU 與谷歌大腦提出的 XLNet 在 20 個任務上超過 BERT,並在 18 個任務上取得當前最佳效果的表現。

作為這些研究的核心作者,來自卡耐基梅隆大學(CMU)的楊植麟剛剛進行完博士論文的畢業答辯。在進入 CMU 之前,楊植麟本科畢業於清華大學計算機科學與技術系,滿分通過了所有程序設計課程,還曾創立搖滾樂隊 Splay,擔任鼓手和創作者之一。

楊植麟師從蘋果 AI 負責人 Ruslan Salakhutdinov,並曾經效力於谷歌大腦研究院和 Facebook 人工智慧研究院,與多點陣圖靈獎得主合作發表論文。他博士四年期間的研究曾在 30 多個數據集上取得歷史最好結果 (state-of-the-art),包括自然語言推理、問答、文本分類、半監督學習、文檔排序等,產生了較廣泛的影響力。

近日,機器之心與楊植麟進行了對話,內容有關 Transfomer XL、XLNet 的產生過程和技術思考,以及他共同創辦的科技公司 Recurrent AI。

他們創造了橫掃NLP的XLNet:專訪CMU博士楊植麟

鮮為人知的是,XLNet 的提出竟然是源於一次拒稿。「我們當時把 Transformer XL 的論文提交到了 ICLR 2019 大會,論文卻被拒了,」楊植麟表示。「其實模型的效果非常好——在所有主流語言預訓練模型的數據集上都是 state of the art,而且提升非常大。但當時被拒的理由其中很重要的一點是:論文評審覺得,做語言模型沒有意義。」

隨著 Transformer-XL 越來越受到關注,由它衍生的 XLNet 效果驚人,這讓我們重新思考對語言模型研究的「意義」到底如何評價。

最強語言模型是如何誕生的

語言模型研究的重新思考

「審稿人認為 Transformer-XL 提升了語言建模的效果,但是沒有證明在任何應用上有提升——當時自航和我處於一個比較矛盾的時刻」,楊植麟介紹到,「一方面語言建模是一個古老的問題,有大量的研究和進展;另一方面除了做無條件文本生成之外沒有太多直接的應用。原本預訓練是一個很好的應用場景,但是因為標準語言模型沒辦法對雙向上下文進行建模,人們轉而集中於自編碼思想的研究。」

換句話說,Transformer-XL 的審稿意見引出了這樣的矛盾:一個大家做了很長時間的問題,其價值突然遭到質疑。

楊植麟表示,XLNet 的初衷是復興語言建模,證明更好的語言模型能在下游任務上帶來更好的效果。「我們希望能提出一個框架,連接語言建模方法和預訓練方法,這樣語言建模方法的提升就可以通過預訓練直接提升下游任務。」

「研究中很有意思的一點是要根據不完整的信息選擇研究方向,而選擇的結果往往難以預測。Hinton 等人對深度學習的堅持就是一個成功的例子,因為在那之前很少人相信深度學習會有效果。」

「具體到 XLNet,我們就是在不完整信息的情況下,判斷語言建模是一個正確的方向。這樣判斷的原因有兩個,一是如果衡量序列中被建模的依賴關係的數量,基於自回歸思想的語言建模目標函數可以達到上界,因為不依賴於任何獨立假設;二是語言建模任務的提升意味著模型的提升,所以很有可能在預訓練上表現更好。最後 XLNet 的結果證明我們的判斷是對的。」

這就是 XLNet 提出背後的心路歷程。

算力和演算法的關係

不過事情也有另一面:對於研究人員來說,訓練 XLNet 時耗費多少算力從來不成問題。楊植麟表示,因為與谷歌合作,其實在研究過程中他們是感知不到算力問題的。「我們沒有使用谷歌雲,而是使用了谷歌內部的計算集群,」楊植麟介紹道。「在這裡,沒有人會關心算力的價格,基本可以忽略不計。其實像 XLNet 這種量級的工作,在谷歌內部還挺多的,還有很多項目用到的算力比 XLNet 大。」

花費數萬美元成本訓練最強大模型是近年來 NLP 領域裡經常發生的事情。楊植麟認為,依靠算力解決問題是當前研究 AI 的王道:讓計算機去做它的強項——計算;如果算力解決不了的問題,再用演算法去做。

「我讀過人工智慧先驅 Richard Sutton 幾個月前的文章《苦澀的教訓》,它的大意是說:你如果縱觀 70 年的 AI 發展歷程,就會發現以算力為槓桿的通用方法是最有效的,」楊植麟說道。「從深藍、AlphaGo 到 NLP 最近的進展都遵循了這個思路。所以我們要做的事情就是:一方面把算力推到極致,另一方面發明和提升通用演算法,解決更難的問題。XLNet 可以理解成這兩方面的一個結合。」

「把算力推到極致的好處是知曉當前演算法的邊界,避免在算力可以解決的問題上做一些不必要的演算法創新,讓大家關注最重要的研究問題。但同時大算力帶來的弊端是提升了研究門檻,比如一般的學校和實驗室可能沒有資源做預訓練。這個問題我覺得短時間內要通過不同的分工來解決,資源多的研究者利用資源做大算力研究,資源少的研究者做基於小算力的研究。」

此外,最近 Facebook 提出來的 RoBERTa 也體現了這一點,楊植麟說:「現在預訓練的提升主要來自兩個方面,一個是演算法和模型,一個是訓練細節、數據和算力。RoBERTa 表明了第二個方面的重要性,而 XLNet 一方面證明了在訓練細節、數據和算力都差不多的情況下演算法可以提升效果,一方面探索了增加訓練數據的重要性。這兩個方向是互補的,而且未來的發展還會持續在兩個方向上提升。」

「很多歷史上優秀的工作比如 GAN 和 Transformer 都不需要特別大的算力;劉寒驍等人的可導網路結構搜索影響力很大,但就只用了三四個 GPU;我們的 Transformer-XL 最開始也是用一兩個 GPU 就在中等數據集上驗證了效果會比 RNN 好接近十個點。」

XLNet 的思考與做法

那麼從 Transformer-XL 到 XLNet 最核心的思想到底是什麼樣的,語言模型未來又該如何發展?楊植麟向機器之心介紹了構建 XLNet 的核心思考與做法,整篇論文最精華的地方也就在這裡。

我們希望從三個方面出發介紹 XLNet,即 XLNet 是怎樣想的、怎樣做的,它又該如何提升。在這之前我們希望讀者能先了解自回歸和自編碼兩種模式的語言模型:

他們創造了橫掃NLP的XLNet:專訪CMU博士楊植麟

如上所示分別為自回歸模型與自編碼模型,其中黃色塊為輸入字元,藍色塊為字元的位置。對於自回歸語言模型,它希望通過已知的前半句預測後面的詞或字。對於自編碼語言模型,它希望通過一句話預測被 Mask 掉的字或詞,如上所示第 2 個位置的詞希望通過第 1、3、5 個詞進行預測。

我們需要更好的語言建模任務

以前,最常見的語言模型就是自回歸式的了,它的計算效率比較高,且明確地建模了概率密度。但是自回歸語言模型有一個缺陷,它只能編碼單向語義,不論是從左到右還是從右到左都只是單向語義。這對於下游 NLP 任務來說是致命的,因此也就有了 BERT 那種自編碼語言模型。

BERT 通過預測被 Mask 掉的字或詞,從而學習到雙向語義信息。但這種任務又帶來了新問題,它只是建模了近似的概率密度,因為 BERT 假設要預測的詞之間是相互獨立的,即 Mask 之間相互不影響。此外,自編碼語言模型在預訓練過程中會使用 MASK 符號,但在下游 NLP 任務中並不會使用,因此這也會造成一定的誤差。

為此,楊植麟表示我們需要一種更好的預訓練語言任務,從而將上面兩類模型的優點結合起來。XLNet 採用了一種新型語言建模任務,它通過隨機排列自然語言而預測某個位置可能出現的詞。如下圖所示為排列語言模型的預測方式:

他們創造了橫掃NLP的XLNet:專訪CMU博士楊植麟

如上排列語言示例,因為隨機排列是帶有位置信息的,所以擾亂順序並不影響建模效果。隨機排列語言後,模型就開始依次預測不同位置的詞。

如果我們知道所有詞的內容及位置,那麼是不是順序地分解句子並不太重要。相反這種隨機的分解順序還能構建雙向語義,因為如上利用「語言」和「喜歡」預測「處理」就利用了上下文的詞。如下原論文展示了不同分解順序預測同一詞的差別,如果第一個分解的詞的「3」,那麼它就只能利用之前的隱藏狀態 mem 進行預測。

他們創造了橫掃NLP的XLNet:專訪CMU博士楊植麟

這理解起來其實也非常直觀,如果我們知道某些詞及詞的位置,那麼完形填空式地猜某個位置可能出現哪些詞也是沒問題的。此外,我們可以發現,這種排列語言模型就是傳統自回歸語言模型的推廣,它將自然語言的順序拆解推廣到隨機拆解。當然這種隨機拆解要保留每個詞的原始位置信息,不然就和詞袋模型沒什麼差別了。

我們需要更好的結構

前面我們為預訓練語言模型構建了新的任務目標,這裡就需要調整 Transformer 以適應任務。如果讀者了解一些 Transformer,那麼就會知道某個 Token 的內容和位置向量在輸入到模型前就已經加在一起了,後續的隱向量同時具有內容和位置的信息。但楊植麟說:「新任務希望在預測下一個詞時只能提供位置信息,不能提供內容相關的信息。因此模型希望同時做兩件事,首先它希望預測自己到底是哪個字元,其次還要能預測後面的字元是哪個。」

他們創造了橫掃NLP的XLNet:專訪CMU博士楊植麟

這兩件事是有衝突的,如果模型需要預測位置 2 的「喜歡」,那麼肯定不能用該位置的內容向量。但與此同時,位置 2 的完整向量還需要參與位置 5 的預測,且同時不能使用位置 5 的內容向量。

這類似於條件句:如果模型預測當前詞,則只能使用位置向量;如果模型預測後續的詞,那麼使用位置加內容向量。因此這就像我們既需要標準 Transformer 提供內容向量,又要另一個網路提供對應的位置向量。

針對這種特性,研究者提出了 Two-Stream Self-Attention,它通過構建兩條路徑解決這個條件句。如下所示為 Two-Stream 的結構,其中左上角的 a 為 Content 流,左下角的 b 為 Query 流,右邊的 c 為排列語言模型的整體建模過程。

他們創造了橫掃NLP的XLNet:專訪CMU博士楊植麟

在 Content 流中,它和標準的 Transformer 是一樣的,第 1 個位置的隱藏向量 h_1 同時編碼了內容與位置。在 Query 流中,第 1 個位置的隱向量 g_1 只編碼了位置信息,但它同時還需要利用其它 Token 的內容隱向量 h_2、h_3 和 h_4,它們都通過 Content 流計算得出。因此,我們可以直觀理解為,Query 流就是為了預測當前詞,而 Content 流主要為 Query 流提供其它詞的內容向量。

上圖 c 展示了 XLNet 的完整計算過程,e 和 w 分別是初始化的詞向量的 Query 向量。注意排列語言模型的分解順序是 3、2、4、1,因此 Content 流的 Mask 第一行全都是紅色、第二行中間兩個是紅色,這表明 h_1 需要用所有詞信息、h_2 需要用第 2 和 3 個詞的信息。此外,Query 流的對角線都是空的,表示它們不能使用自己的內容向量 h。

預訓練語言模型的未來

除了 XLNet 最核心的思考與做法,楊植麟還從少樣本學習、數據、模型架構和結構一體化四大方面談論了預訓練語言模型更多的可能性。

1.少樣本學習

目前預訓練方法在下游任務上依然需要相對多的樣本來取得比較好的結果,未來一個重要的研究方向是如果在更少數據的下游任務上也能取得好效果。這需要借鑒一些 few-shot learning 的思想,不僅僅對從輸入到輸出的映射進行建模,還要對「這個任務是什麼」進行建模,這也就意味著需要在預訓練的時候引入標註數據,而不僅僅是無標註數據。

2.數據哪能越多越好

早幾天 XLNet 團隊公平地對比了 BERT-Large 和 XLNet-Large 兩個模型,他們表示儘管 XLNet 的數據是 BERT 的 10 倍,但演算法帶來的提升相比於數據帶來的提升更大。楊植麟說:「我認為並不是數據越多越好,我們的 XLNet 基本上將手頭有的數據都加上去了,但我們需要做更仔細的分析,因為很可能數據質量和數量之間會有一個權衡關係。」

具體而言,楊植麟表示:「BERT 所採用的 BooksCorpus 和 English Wikipedia 數據集質量都非常高,它們都是專業作者書寫的文本。但是後面增加的 Common Crawl 或 ClueWeb 數據集都是網頁,雖然它們的數據量非常大,但質量會相對比較低。所以它們的影響值得進一步探索,如何在數據數量和質量之間取得一個好的平衡是一個重要的課題。另外,細分領域的訓練數據是十分有限的,如何在預訓練的框架下做 domain adaptation 也是一個重要問題。」

3.模型還是挺有潛力的

在預訓練語言模型上,楊植麟表示還有 3 個非常有潛力的方向。首先即怎樣在 Transformer 架構基礎上構建更強的長距離建模方式,例如這個月 Facebook 提出的 Adaptive Attention Span 和楊植麟之前提出的 Transformer-XL 都在積極探索。

其次在於怎樣加強最優化的穩定性,因為研究者發現在訓練 Transformer 時,Adam 等最優化器不是太穩定。例如目前在訓練過程中,一定要加上 Warm up 機制,即學習率從 0 開始逐漸上升到想要的值,如果不加的話 Transformer 甚至都不會收斂。這表明最優化器是有一些問題的,warm up 之類的技巧可能沒有解決根本問題。

最後模型可提升的地方在於訓練效率,怎樣用更高效的架構、訓練方式來提升預訓練效果。例如最近天津大學提出的 Tensorized Transformer,他們通過張量分解大大降低 Muti-head Attention 的參數量,從而提高 Transformer 的參數效率。

4.編碼器-解碼器的一體化

楊植麟表示,XLNet 的另一大好處在於它相當於結合了編碼器和解碼器。因此理論上 XLNet 可以做一些 Seq2Seq 相關的任務,例如機器翻譯和問答系統等。

首先對於 Encoder 部分,XLNet 和 BERT 是一樣的,它們都在抽取數據特徵並用於後續的 NLP 任務。其次對於 Decoder,因為 XLNet 直接做自回歸建模,所以它對任何序列都能直接輸出一個概率。這種 Decoder 的性質是 BERT 所不具有的,因為 BERT 所輸出的概率具有獨立性假設,會有很多偏差。

楊植麟說:「如果我們用 XLNet 來做機器翻譯,那麼一種簡單做法即將 Source 和 Target 語言輸入到 XLNet。然後將 Target 那邊的 Attention Mask 改成自回歸的 Attention Mask,將 Source 那一部分的 AttentionMask 改成只能關注 Source 本身。這樣我們就能完成 Seq2Seq 的任務。」

Recurrent AI:用最強技術賦能人類溝通

博士畢業的楊植麟目前正在北京全職創業,他是一家 AI 創業公司的聯合創始人。他共同創立的睿科倫智能(Recurrent AI)致力於使用最先進的自然語言處理和語音識別技術解決人類溝通的痛點。具體而言,公司目前專註於提供企業服務,提升銷售渠道的效率和銷售轉化率。

這家公司推出了 DealTape(交易磁帶)智能銷售系統,希望能夠從統計分析的角度幫助人們進行分析:在不同的商業背景下,哪些語言對於銷售產生了積極的影響,哪些產生了消極的影響。這些產品目前在教育金融和互聯網行業都已有了最標杆的客戶。

「針對教育機構,我們可以通過全渠道的溝通數據評估哪些線索更容易轉化,從而幫助銷售顧問去及時觸達,」楊植麟介紹道。「我們可以精準地、結構化地抽取用戶畫像,幫助客服人員選擇更好的表達方式,獲得更高的轉化率。更進一步地,我們可以分析客戶需求佔比,幫助管理者進行產品迭代。」

Recurrent AI 希望打造一種 AI 銷售中台,收集全渠道的語義文字溝通數據,然後輸出整套銷售解決方案和銷售能力。在這家公司的願景中,「使用 State-of-the-art 的黑科技賦能人類溝通」是其中重要的一環,楊植麟表示,現在公司的整套語音識別系統以及 NLP 模型,現在都已用上了 Transfomer XL。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

像操縱機甲一樣控制機器人:MIT「鐵甲鋼拳」Hermes
結合符號主義和深度學習,DeepMind提出新型端到端神經網路架構 PrediNet

TAG:機器之心 |