Transformer XL 和 XLNet 是最近自然語言處理(NLP)領(lǐng)域里最熱的話題之一,而它們都是 CMU 博士生 戴自航、楊植麟等人的工作。今年 6 月,CMU 與谷歌大腦提出的 XLNet 在 20 個任務(wù)上超過 BERT,并在 18 個任務(wù)上取得當(dāng)前最佳效果的表現(xiàn)。
作為這些研究的核心作者,來自卡耐基梅隆大學(xué)(CMU)的楊植麟剛剛進(jìn)行完博士論文的畢業(yè)答辯。在進(jìn)入 CMU 之前,楊植麟本科畢業(yè)于清華大學(xué)計算機(jī)科學(xué)與技術(shù)系,滿分通過了所有程序設(shè)計課程,還曾創(chuàng)立搖滾樂隊 Splay,擔(dān)任鼓手和創(chuàng)作者之一。
楊植麟師從蘋果 AI 負(fù)責(zé)人 Ruslan Salakhutdinov,并曾經(jīng)效力于谷歌大腦研究院和 Facebook 人工智能研究院,與多位圖靈獎得主合作發(fā)表論文。他博士四年期間的研究曾在 30 多個數(shù)據(jù)集上取得歷史最好結(jié)果 (state-of-the-art),包括自然語言推理、問答、文本分類、半監(jiān)督學(xué)習(xí)、文檔排序等,產(chǎn)生了較廣泛的影響力。
近日,機(jī)器之心與楊植麟進(jìn)行了對話,內(nèi)容有關(guān) Transfomer XL、XLNet 的產(chǎn)生過程和技術(shù)思考,以及他共同創(chuàng)辦的科技公司 Recurrent AI。

鮮為人知的是,XLNet 的提出竟然是源于一次拒稿。「我們當(dāng)時把 Transformer XL 的論文提交到了 ICLR 2019 大會,論文卻被拒了,」楊植麟表示?!钙鋵嵞P偷男Ч浅:谩谒兄髁髡Z言預(yù)訓(xùn)練模型的數(shù)據(jù)集上都是 state of the art,而且提升非常大。但當(dāng)時被拒的理由其中很重要的一點是:論文評審覺得,做語言模型沒有意義。」
隨著 Transformer-XL 越來越受到關(guān)注,由它衍生的 XLNet 效果驚人,這讓我們重新思考對語言模型研究的「意義」到底如何評價。
最強(qiáng)語言模型是如何誕生的
語言模型研究的重新思考
「審稿人認(rèn)為 Transformer-XL 提升了語言建模的效果,但是沒有證明在任何應(yīng)用上有提升——當(dāng)時自航和我處于一個比較矛盾的時刻」,楊植麟介紹到,「一方面語言建模是一個古老的問題,有大量的研究和進(jìn)展;另一方面除了做無條件文本生成之外沒有太多直接的應(yīng)用。原本預(yù)訓(xùn)練是一個很好的應(yīng)用場景,但是因為標(biāo)準(zhǔn)語言模型沒辦法對雙向上下文進(jìn)行建模,人們轉(zhuǎn)而集中于自編碼思想的研究?!?/span>換句話說,Transformer-XL 的審稿意見引出了這樣的矛盾:一個大家做了很長時間的問題,其價值突然遭到質(zhì)疑。楊植麟表示,XLNet 的初衷是復(fù)興語言建模,證明更好的語言模型能在下游任務(wù)上帶來更好的效果?!肝覀兿M芴岢鲆粋€框架,連接語言建模方法和預(yù)訓(xùn)練方法,這樣語言建模方法的提升就可以通過預(yù)訓(xùn)練直接提升下游任務(wù)?!?/span>「研究中很有意思的一點是要根據(jù)不完整的信息選擇研究方向,而選擇的結(jié)果往往難以預(yù)測。Hinton 等人對深度學(xué)習(xí)的堅持就是一個成功的例子,因為在那之前很少人相信深度學(xué)習(xí)會有效果?!?/span>「具體到 XLNet,我們就是在不完整信息的情況下,判斷語言建模是一個正確的方向。這樣判斷的原因有兩個,一是如果衡量序列中被建模的依賴關(guān)系的數(shù)量,基于自回歸思想的語言建模目標(biāo)函數(shù)可以達(dá)到上界,因為不依賴于任何獨立假設(shè);二是語言建模任務(wù)的提升意味著模型的提升,所以很有可能在預(yù)訓(xùn)練上表現(xiàn)更好。最后 XLNet 的結(jié)果證明我們的判斷是對的。」不過事情也有另一面:對于研究人員來說,訓(xùn)練 XLNet 時耗費多少算力從來不成問題。楊植麟表示,因為與谷歌合作,其實在研究過程中他們是感知不到算力問題的?!肝覀儧]有使用谷歌云,而是使用了谷歌內(nèi)部的計算集群,」楊植麟介紹道?!冈谶@里,沒有人會關(guān)心算力的價格,基本可以忽略不計。其實像 XLNet 這種量級的工作,在谷歌內(nèi)部還挺多的,還有很多項目用到的算力比 XLNet 大?!?/span>
花費數(shù)萬美元成本訓(xùn)練最強(qiáng)大模型是近年來 NLP 領(lǐng)域里經(jīng)常發(fā)生的事情。楊植麟認(rèn)為,依靠算力解決問題是當(dāng)前研究 AI 的王道:讓計算機(jī)去做它的強(qiáng)項——計算;如果算力解決不了的問題,再用算法去做。
「我讀過人工智能先驅(qū) Richard Sutton 幾個月前的文章《苦澀的教訓(xùn)》,它的大意是說:你如果縱觀 70 年的 AI 發(fā)展歷程,就會發(fā)現(xiàn)以算力為杠桿的通用方法是最有效的,」楊植麟說道?!笍纳钏{(lán)、AlphaGo 到 NLP 最近的進(jìn)展都遵循了這個思路。所以我們要做的事情就是:一方面把算力推到極致,另一方面發(fā)明和提升通用算法,解決更難的問題。XLNet 可以理解成這兩方面的一個結(jié)合。」「把算力推到極致的好處是知曉當(dāng)前算法的邊界,避免在算力可以解決的問題上做一些不必要的算法創(chuàng)新,讓大家關(guān)注最重要的研究問題。但同時大算力帶來的弊端是提升了研究門檻,比如一般的學(xué)校和實驗室可能沒有資源做預(yù)訓(xùn)練。這個問題我覺得短時間內(nèi)要通過不同的分工來解決,資源多的研究者利用資源做大算力研究,資源少的研究者做基于小算力的研究。」此外,最近 Facebook 提出來的 RoBERTa 也體現(xiàn)了這一點,楊植麟說:「現(xiàn)在預(yù)訓(xùn)練的提升主要來自兩個方面,一個是算法和模型,一個是訓(xùn)練細(xì)節(jié)、數(shù)據(jù)和算力。RoBERTa 表明了第二個方面的重要性,而 XLNet 一方面證明了在訓(xùn)練細(xì)節(jié)、數(shù)據(jù)和算力都差不多的情況下算法可以提升效果,一方面探索了增加訓(xùn)練數(shù)據(jù)的重要性。這兩個方向是互補(bǔ)的,而且未來的發(fā)展還會持續(xù)在兩個方向上提升?!?/span>「很多歷史上優(yōu)秀的工作比如 GAN 和 Transformer 都不需要特別大的算力;劉寒驍?shù)热说目蓪?dǎo)網(wǎng)絡(luò)結(jié)構(gòu)搜索影響力很大,但就只用了三四個 GPU;我們的 Transformer-XL最開始也是用一兩個 GPU 就在中等數(shù)據(jù)集上驗證了效果會比 RNN 好接近十個點?!?/span> XLNet 的思考與做法
那么從 Transformer-XL 到 XLNet 最核心的思想到底是什么樣的,語言模型未來又該如何發(fā)展?楊植麟向機(jī)器之心介紹了構(gòu)建 XLNet 的核心思考與做法,整篇論文最精華的地方也就在這里。我們希望從三個方面出發(fā)介紹 XLNet,即 XLNet 是怎樣想的、怎樣做的,它又該如何提升。在這之前我們希望讀者能先了解自回歸和自編碼兩種模式的語言模型:
如上所示分別為自回歸模型與自編碼模型,其中黃色塊為輸入字符,藍(lán)色塊為字符的位置。對于自回歸語言模型,它希望通過已知的前半句預(yù)測后面的詞或字。對于自編碼語言模型,它希望通過一句話預(yù)測被 Mask 掉的字或詞,如上所示第 2 個位置的詞希望通過第 1、3、5 個詞進(jìn)行預(yù)測。我們需要更好的語言建模任務(wù)
以前,最常見的語言模型就是自回歸式的了,它的計算效率比較高,且明確地建模了概率密度。但是自回歸語言模型有一個缺陷,它只能編碼單向語義,不論是從左到右還是從右到左都只是單向語義。這對于下游 NLP 任務(wù)來說是致命的,因此也就有了 BERT 那種自編碼語言模型。BERT 通過預(yù)測被 Mask 掉的字或詞,從而學(xué)習(xí)到雙向語義信息。但這種任務(wù)又帶來了新問題,它只是建模了近似的概率密度,因為 BERT 假設(shè)要預(yù)測的詞之間是相互獨立的,即 Mask 之間相互不影響。此外,自編碼語言模型在預(yù)訓(xùn)練過程中會使用 MASK 符號,但在下游 NLP 任務(wù)中并不會使用,因此這也會造成一定的誤差。為此,楊植麟表示我們需要一種更好的預(yù)訓(xùn)練語言任務(wù),從而將上面兩類模型的優(yōu)點結(jié)合起來。XLNet 采用了一種新型語言建模任務(wù),它通過隨機(jī)排列自然語言而預(yù)測某個位置可能出現(xiàn)的詞。如下圖所示為排列語言模型的預(yù)測方式:
如上排列語言示例,因為隨機(jī)排列是帶有位置信息的,所以擾亂順序并不影響建模效果。隨機(jī)排列語言后,模型就開始依次預(yù)測不同位置的詞。如果我們知道所有詞的內(nèi)容及位置,那么是不是順序地分解句子并不太重要。相反這種隨機(jī)的分解順序還能構(gòu)建雙向語義,因為如上利用「語言」和「喜歡」預(yù)測「處理」就利用了上下文的詞。如下原論文展示了不同分解順序預(yù)測同一詞的差別,如果第一個分解的詞的「3」,那么它就只能利用之前的隱藏狀態(tài) mem 進(jìn)行預(yù)測。
這理解起來其實也非常直觀,如果我們知道某些詞及詞的位置,那么完形填空式地猜某個位置可能出現(xiàn)哪些詞也是沒問題的。此外,我們可以發(fā)現(xiàn),這種排列語言模型就是傳統(tǒng)自回歸語言模型的推廣,它將自然語言的順序拆解推廣到隨機(jī)拆解。當(dāng)然這種隨機(jī)拆解要保留每個詞的原始位置信息,不然就和詞袋模型沒什么差別了。我們需要更好的結(jié)構(gòu)
前面我們?yōu)轭A(yù)訓(xùn)練語言模型構(gòu)建了新的任務(wù)目標(biāo),這里就需要調(diào)整 Transformer 以適應(yīng)任務(wù)。如果讀者了解一些 Transformer,那么就會知道某個 Token 的內(nèi)容和位置向量在輸入到模型前就已經(jīng)加在一起了,后續(xù)的隱向量同時具有內(nèi)容和位置的信息。但楊植麟說:「新任務(wù)希望在預(yù)測下一個詞時只能提供位置信息,不能提供內(nèi)容相關(guān)的信息。因此模型希望同時做兩件事,首先它希望預(yù)測自己到底是哪個字符,其次還要能預(yù)測后面的字符是哪個。」
這兩件事是有沖突的,如果模型需要預(yù)測位置 2 的「喜歡」,那么肯定不能用該位置的內(nèi)容向量。但與此同時,位置 2 的完整向量還需要參與位置 5 的預(yù)測,且同時不能使用位置 5 的內(nèi)容向量。這類似于條件句:如果模型預(yù)測當(dāng)前詞,則只能使用位置向量;如果模型預(yù)測后續(xù)的詞,那么使用位置加內(nèi)容向量。因此這就像我們既需要標(biāo)準(zhǔn) Transformer 提供內(nèi)容向量,又要另一個網(wǎng)絡(luò)提供對應(yīng)的位置向量。針對這種特性,研究者提出了 Two-Stream Self-Attention,它通過構(gòu)建兩條路徑解決這個條件句。如下所示為 Two-Stream 的結(jié)構(gòu),其中左上角的 a 為 Content 流,左下角的 b 為 Query 流,右邊的 c 為排列語言模型的整體建模過程。
在 Content 流中,它和標(biāo)準(zhǔn)的 Transformer 是一樣的,第 1 個位置的隱藏向量 h_1 同時編碼了內(nèi)容與位置。在 Query 流中,第 1 個位置的隱向量 g_1 只編碼了位置信息,但它同時還需要利用其它 Token 的內(nèi)容隱向量 h_2、h_3 和 h_4,它們都通過 Content 流計算得出。因此,我們可以直觀理解為,Query 流就是為了預(yù)測當(dāng)前詞,而 Content 流主要為 Query 流提供其它詞的內(nèi)容向量。上圖 c 展示了 XLNet 的完整計算過程,e 和 w 分別是初始化的詞向量的 Query 向量。注意排列語言模型的分解順序是 3、2、4、1,因此 Content 流的 Mask 第一行全都是紅色、第二行中間兩個是紅色,這表明 h_1 需要用所有詞信息、h_2 需要用第 2 和 3 個詞的信息。此外,Query 流的對角線都是空的,表示它們不能使用自己的內(nèi)容向量 h。 預(yù)訓(xùn)練語言模型的未來
除了 XLNet 最核心的思考與做法,楊植麟還從少樣本學(xué)習(xí)、數(shù)據(jù)、模型架構(gòu)和結(jié)構(gòu)一體化四大方面談?wù)摿祟A(yù)訓(xùn)練語言模型更多的可能性。1.少樣本學(xué)習(xí)
目前預(yù)訓(xùn)練方法在下游任務(wù)上依然需要相對多的樣本來取得比較好的結(jié)果,未來一個重要的研究方向是如果在更少數(shù)據(jù)的下游任務(wù)上也能取得好效果。這需要借鑒一些 few-shot learning 的思想,不僅僅對從輸入到輸出的映射進(jìn)行建模,還要對「這個任務(wù)是什么」進(jìn)行建模,這也就意味著需要在預(yù)訓(xùn)練的時候引入標(biāo)注數(shù)據(jù),而不僅僅是無標(biāo)注數(shù)據(jù)。2.數(shù)據(jù)哪能越多越好
早幾天 XLNet 團(tuán)隊公平地對比了 BERT-Large 和 XLNet-Large 兩個模型,他們表示盡管 XLNet 的數(shù)據(jù)是 BERT 的 10 倍,但算法帶來的提升相比于數(shù)據(jù)帶來的提升更大。楊植麟說:「我認(rèn)為并不是數(shù)據(jù)越多越好,我們的 XLNet 基本上將手頭有的數(shù)據(jù)都加上去了,但我們需要做更仔細(xì)的分析,因為很可能數(shù)據(jù)質(zhì)量和數(shù)量之間會有一個權(quán)衡關(guān)系。」具體而言,楊植麟表示:「BERT 所采用的 BooksCorpus 和 English Wikipedia 數(shù)據(jù)集質(zhì)量都非常高,它們都是專業(yè)作者書寫的文本。但是后面增加的 Common Crawl 或 ClueWeb 數(shù)據(jù)集都是網(wǎng)頁,雖然它們的數(shù)據(jù)量非常大,但質(zhì)量會相對比較低。所以它們的影響值得進(jìn)一步探索,如何在數(shù)據(jù)數(shù)量和質(zhì)量之間取得一個好的平衡是一個重要的課題。另外,細(xì)分領(lǐng)域的訓(xùn)練數(shù)據(jù)是十分有限的,如何在預(yù)訓(xùn)練的框架下做 domain adaptation 也是一個重要問題?!?/span>3.模型還是挺有潛力的
在預(yù)訓(xùn)練語言模型上,楊植麟表示還有 3 個非常有潛力的方向。首先即怎樣在 Transformer 架構(gòu)基礎(chǔ)上構(gòu)建更強(qiáng)的長距離建模方式,例如這個月 Facebook 提出的 Adaptive Attention Span 和楊植麟之前提出的 Transformer-XL 都在積極探索。其次在于怎樣加強(qiáng)最優(yōu)化的穩(wěn)定性,因為研究者發(fā)現(xiàn)在訓(xùn)練 Transformer 時,Adam 等最優(yōu)化器不是太穩(wěn)定。例如目前在訓(xùn)練過程中,一定要加上 Warm up 機(jī)制,即學(xué)習(xí)率從 0 開始逐漸上升到想要的值,如果不加的話 Transformer 甚至都不會收斂。這表明最優(yōu)化器是有一些問題的,warm up 之類的技巧可能沒有解決根本問題。最后模型可提升的地方在于訓(xùn)練效率,怎樣用更高效的架構(gòu)、訓(xùn)練方式來提升預(yù)訓(xùn)練效果。例如最近天津大學(xué)提出的 Tensorized Transformer,他們通過張量分解大大降低 Muti-head Attention 的參數(shù)量,從而提高 Transformer 的參數(shù)效率。4.編碼器-解碼器的一體化
楊植麟表示,XLNet 的另一大好處在于它相當(dāng)于結(jié)合了編碼器和解碼器。因此理論上 XLNet 可以做一些 Seq2Seq 相關(guān)的任務(wù),例如機(jī)器翻譯和問答系統(tǒng)等。首先對于 Encoder 部分,XLNet 和 BERT 是一樣的,它們都在抽取數(shù)據(jù)特征并用于后續(xù)的 NLP 任務(wù)。其次對于 Decoder,因為 XLNet 直接做自回歸建模,所以它對任何序列都能直接輸出一個概率。這種 Decoder 的性質(zhì)是 BERT 所不具有的,因為 BERT 所輸出的概率具有獨立性假設(shè),會有很多偏差。楊植麟說:「如果我們用 XLNet 來做機(jī)器翻譯,那么一種簡單做法即將 Source 和 Target 語言輸入到 XLNet。然后將 Target 那邊的 Attention Mask 改成自回歸的 Attention Mask,將 Source 那一部分的 AttentionMask 改成只能關(guān)注 Source 本身。這樣我們就能完成 Seq2Seq 的任務(wù)。」 Recurrent AI:用最強(qiáng)技術(shù)賦能人類溝通
博士畢業(yè)的楊植麟目前正在北京全職創(chuàng)業(yè),他是一家 AI 創(chuàng)業(yè)公司的聯(lián)合創(chuàng)始人。他共同創(chuàng)立的睿科倫智能(Recurrent AI)致力于使用最先進(jìn)的自然語言處理和語音識別技術(shù)解決人類溝通的痛點。具體而言,公司目前專注于提供企業(yè)服務(wù),提升銷售渠道的效率和銷售轉(zhuǎn)化率。這家公司推出了 DealTape(交易磁帶)智能銷售系統(tǒng),希望能夠從統(tǒng)計分析的角度幫助人們進(jìn)行分析:在不同的商業(yè)背景下,哪些語言對于銷售產(chǎn)生了積極的影響,哪些產(chǎn)生了消極的影響。這些產(chǎn)品目前在教育金融和互聯(lián)網(wǎng)行業(yè)都已有了最標(biāo)桿的客戶。「針對教育機(jī)構(gòu),我們可以通過全渠道的溝通數(shù)據(jù)評估哪些線索更容易轉(zhuǎn)化,從而幫助銷售顧問去及時觸達(dá),」楊植麟介紹道?!肝覀兛梢跃珳?zhǔn)地、結(jié)構(gòu)化地抽取用戶畫像,幫助客服人員選擇更好的表達(dá)方式,獲得更高的轉(zhuǎn)化率。更進(jìn)一步地,我們可以分析客戶需求占比,幫助管理者進(jìn)行產(chǎn)品迭代。」Recurrent AI 希望打造一種 AI 銷售中臺,收集全渠道的語義文字溝通數(shù)據(jù),然后輸出整套銷售解決方案和銷售能力。在這家公司的愿景中,「使用 State-of-the-art 的黑科技賦能人類溝通」是其中重要的一環(huán),楊植麟表示,現(xiàn)在公司的整套語音識別系統(tǒng)以及 NLP 模型,現(xiàn)在都已用上了 Transfomer XL。
Recurrent AI 正在尋找最優(yōu)秀的 AI 和相關(guān)技術(shù)人才,包括 NLP、語音、深度學(xué)習(xí)平臺、模型優(yōu)化加速、深度學(xué)習(xí)通用算法等方面的算法工程師和研究員,以及前后端、數(shù)據(jù)平臺工程師。AI 相關(guān)崗位招聘覆蓋實習(xí)生和全職員工。感興趣的專家大神可以通過 hr@rcrai.com 郵件咨詢和投遞簡歷。本文轉(zhuǎn)載自「機(jī)器之心公眾號」

Recurrent.ai核心產(chǎn)品「交易磁帶」,提供基于客戶分析的AI銷售中臺,線索推薦系統(tǒng)、客戶心聲分析、智能質(zhì)檢功能輔助業(yè)務(wù)增長,掃二維碼免費試用!