作為這些研究的核心作者,來自卡耐基梅隆大學(CMU)的楊植麟剛剛進行完博士論文的畢業答辯。在進入 CMU 之前,楊植麟大學畢業于清華大學計算機科學與技術系,滿分通過了所有程式設計課程,還曾創立搖滾樂隊 Splay,擔任鼓手和創作者之一。
楊植麟師從蘋果 AI 負責人 Ruslan Salakhutdinov,并曾經效力于谷歌大腦研究院和 Facebook 人工智能研究院,與多位圖靈獎得主合作發表論文。他博士四年期間的研究曾在 30 多個資料集上取得曆史最好結果 (state-of-the-art),包括自然語言推理、問答、文本分類、半監督學習、文檔排序等,産生了較廣泛的影響力。
近日,機器之心與楊植麟進行了對話,内容有關
Transfomer XL 、 XLNet 的産生過程和技術思考,以及他共同創辦的科技公司 Recurrent AI。
鮮為人知的是,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 是怎樣想的、怎樣做的,它又該如何提升。在這之前我們希望讀者能先了解自回歸和自編碼兩種模式的語言模型:
如上所示分别為自回歸模型與自編碼模型,其中黃色塊為輸入字元,藍色塊為字元的位置。對于自回歸語言模型,它希望通過已知的前半句預測後面的詞或字。對于自編碼語言模型,它希望通過一句話預測被 Mask 掉的字或詞,如上所示第 2 個位置的詞希望通過第 1、3、5 個詞進行預測。
我們需要更好的語言模組化任務
以前,最常見的語言模型就是自回歸式的了,它的計算效率比較高,且明确地模組化了機率密度。但是自回歸語言模型有一個缺陷,它隻能編碼單向語義,不論是從左到右還是從右到左都隻是單向語義。這對于下遊 NLP 任務來說是緻命的,是以也就有了 BERT 那種自編碼語言模型。
BERT 通過預測被 Mask 掉的字或詞,進而學習到雙向語義資訊。但這種任務又帶來了新問題,它隻是模組化了近似的機率密度,因為 BERT 假設要預測的詞之間是互相獨立的,即 Mask 之間互相不影響。此外,自編碼語言模型在預訓練過程中會使用 MASK 符号,但在下遊 NLP 任務中并不會使用,是以這也會造成一定的誤差。
為此,楊植麟表示我們需要一種更好的預訓練語言任務,進而将上面兩類模型的優點結合起來。XLNet 采用了一種新型語言模組化任務,它通過随機排列自然語言而預測某個位置可能出現的詞。如下圖所示為排列語言模型的預測方式:
如上排列語言示例,因為随機排列是帶有位置資訊的,是以擾亂順序并不影響模組化效果。随機排列語言後,模型就開始依次預測不同位置的詞。
如果我們知道所有詞的内容及位置,那麼是不是順序地分解句子并不太重要。相反這種随機的分解順序還能建構雙向語義,因為如上利用「語言」和「喜歡」預測「處理」就利用了上下文的詞。如下原論文展示了不同分解順序預測同一詞的差别,如果第一個分解的詞的「3」,那麼它就隻能利用之前的隐藏狀态 mem 進行預測。
這了解起來其實也非常直覺,如果我們知道某些詞及詞的位置,那麼完形填空式地猜某個位置可能出現哪些詞也是沒問題的。此外,我們可以發現,這種排列語言模型就是傳統自回歸語言模型的推廣,它将自然語言的順序拆解推廣到随機拆解。當然這種随機拆解要保留每個詞的原始位置資訊,不然就和詞袋模型沒什麼差别了。
我們需要更好的結構
前面我們為預訓練語言模型建構了新的任務目标,這裡就需要調整 Transformer 以适應任務。如果讀者了解一些 Transformer,那麼就會知道某個 Token 的内容和位置向量在輸入到模型前就已經加在一起了,後續的隐向量同時具有内容和位置的資訊。但楊植麟說:「新任務希望在預測下一個詞時隻能提供位置資訊,不能提供内容相關的資訊。是以模型希望同時做兩件事,首先它希望預測自己到底是哪個字元,其次還要能預測後面的字元是哪個。」
這兩件事是有沖突的,如果模型需要預測位置 2 的「喜歡」,那麼肯定不能用該位置的内容向量。但與此同時,位置 2 的完整向量還需要參與位置 5 的預測,且同時不能使用位置 5 的内容向量。
這類似于條件句:如果模型預測目前詞,則隻能使用位置向量;如果模型預測後續的詞,那麼使用位置加内容向量。是以這就像我們既需要标準 Transformer 提供内容向量,又要另一個網絡提供對應的位置向量。
針對這種特性,研究者提出了 Two-Stream Self-Attention,它通過建構兩條路徑解決這個條件句。如下所示為 Two-Stream 的結構,其中左上角的 a 為 Content 流,左下角的 b 為 Query 流,右邊的 c 為排列語言模型的整體模組化過程。
在 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。