深度遷移學習在NLP中的應用:選BERT還是被評逆天的GPT 2.0?

遷移學習是什麼?前百度首席科學家、斯坦福的教授吳恩達(Andrew Ng)曾經說過:遷移學習將會是繼監督學習之後的下一個機器學習商業成功的驅動力。不可否認,機器學習在產業界的應用和成功主要是受監督學習、深度學習及大量標籤數據集的推動。但是,當我們沒有足夠的來自於任務域的標註數據來訓練可靠模型時,應該怎麼辦?本文,InfoQ採訪了百分點首席算法科學家蘇海波,聊聊深度遷移學習在NLP中的應用實踐以及被評效果逆天的GPT 2.0到底咋樣?

爲什麼需要遷移學習?

過去幾年,我們已經具備了將模型訓練得越來越準確的能力,現今比較先進的模型在很多任務上已經達到了不錯的效果,大幅降低了使用者的門檻。但這些模型的共同特點都是極其重視數據,依靠大量的標註數據才能實現理想的效果。

但是,在真實的業務環境中,標註數據往往是不足的,而且標註的代價比價高,遷移學習可以幫助處理這些場景,使機器學習在沒有大量標註數據的任務域中規模化應用。那麼,什麼是遷移學習?遷移學習是指利用數據、任務或模型之間的相似性,將在舊領域學習過的模型,應用於新領域的一種學習過程。

概括來說,之所以需要遷移學習,是因爲要解決以下四個問題:

  1. 深度學習和少標註之間的矛盾:目前深度學習只有在擁有充足標註數據的場景下,才能發揮它的威力。但是在實際的很多問題中,我們沒有足夠的標註數據,這時就需要遷移學習;

  2. 強算力與弱資源之間的矛盾:某些海量數據的模型訓練任務,需要非常大的算力,大公司才能燒得起這個錢,而普通人的機器資源是很有限的,需要讓他們也能利用這些數據和模型;

  3. 通用模型與個性化需求之間的矛盾:通用的模型可以解決絕大多數的公共問題,但是具體到個性化的需求,都存在其獨特性,通用模型根本無法滿足。因此,需要將這個通用的模型加以改造和適配,使其更好地服務於各種個性化需求;

  4. 特定應用的需求:現實世界的某些特定應用,例如個性化推薦,存在用戶數據的冷啓動問題,那麼通過遷移學習則可以將相似領域的知識遷移過來。

遷移學習方法可以分爲四類,包括基於樣本的遷移學習方法、基於特徵的遷移學習方法、基於模型的遷移學習方法和基於關係的遷移學習方法。在這四種方法中,蘇海波表示,基於模型的遷移方法在深度神經網絡裏面應用的特別多,因爲神經網絡的結構可以直接進行遷移,這稱之爲深度遷移學習。

模型選擇:BERT還是GPT 2.0?

在模型選擇上,一邊是被評效果逆天的通用語言模型GPT 2.0,一邊是結構與GPT 1.0類似,但突然爆紅的BERT,百分點是如何決策的呢?蘇海波表示,在2018年Google BERT出現後,百分點就開始在各種NLP任務中廣泛使用預訓練模型技術,並進行持續的優化和改進,包括採用Google TPU解決算力的瓶頸、採用BERT和上層神經網絡進行聯合參數調優、採用BERT的各種優化模型和數據增強進行效果提升等方面進行探索和實踐。

蘇海波表示,百分點使用過BERT的很多改進版本,包括XLNet、RoBERTa、ERNIE等。從整體框架上來說,BERT和GPT 1.0的結構非常類似,它們都包含預訓練+Fine-tuning兩個階段,但在預訓練階段,BERT採取的是“雙向語言模型”,GPT 1.0採取的是“單向語言模型”,除此之外,二者在其它方面沒有本質差異。

GPT 2.0針對1.0做了改進,針對預訓練的第一階段,2.0採取了更多的高質量訓練數據及更大規模的Transformer模型,模型參數擴大到了15億;針對第二階段的Fine-tuning,1.0是進行有監督的下游任務,2.0換成了無監督的下游任務。

GPT-2.0相比BERT而言,因在第一個預訓練階段學到了非常多的通用知識和領域知識,自然語言生成的能力特別強,所以GPT-2.0剛推出來的時候,被網上盛傳能續寫小說或者紅樓夢。蘇海波補充道,GPT-2.0的成功,對我們也帶來一些啓發:如果持續增加高質量的文本數據,就能夠不斷地讓預訓練模型學習到更多知識,從而進一步持續提升下游NLP任務的效果。這種技術思路是簡單有效的,只要有足夠的算力就可以實現。

在蘇海波看來,BERT是NLP世界的歷史性突破,也是NLP未來的技術主流。BERT優勢非常明顯,不僅在所有NLP測試任務都通用,均達到了state of the art,效果顯著提升,而且,BERT結合了遷移學習的思想,相比傳統的深度學習,大大減小了所需要的數據標註量。因在很多傳統企業的實際應用場景中,往往標註數據量很少,因此BERT對NLP的實際應用落地起着非常顯著的推動作用。

對於BERT的短板,一方面在於模型參數量上億,需要消費的算力是比較大的,尤其是預訓練模型的重新訓練,對於一般的開發者而言,硬件資源成本和開發效率如何兼顧是需要考慮的問題。另一方面,BERT根據上下文單詞來預測被MASK掉的單詞,但是在應用階段是沒有MASK標記的,因此在實際的NLP任務中,就面臨訓練過程和應用過程不一致的問題,導致BERT在生成類任務方面做的不太好。

此外,BERT也面臨線上服務預測性能問題,線上服務對性能的要求是比較高的,而BERT模型比較慢,百分點在實踐中就遇到了這樣的問題,尤其是在客戶沒有GPU的情況下,這個問題會更加嚴重。不過目前業界已經有一些BERT模型的輕量化解決方案,例如Google發佈的ALBERT模型,百分點也正在開展這方面的研發工作。

深度遷移學習實踐

踩坑:硬件成本高昂

早期,百分點通過購買GPU用於模型訓練,後來發現這種模式根本不夠用,這也是百分點實踐過程中踩的第一個坑:算力不夠。蘇海波表示,由於base版本的BERT模型有110M參數,這樣的模型即使僅僅根據任務Fine-tuning也需要比較長的時間,而重新訓練則更是需要以天爲單位計算。如果有多個NLP任務需要並行開發,完全依靠GPU硬件資源就會產生很大的開銷成本。

另外,在基於預訓練模型進行實際NLP開發時,會同時有多個任務進行,如果串行來做,需要花費大量時間等待;如果並行來做,消耗算力太大,硬件成本負擔不起。因此,如何探索出一種高效省錢的研發模式是NLP算法研究員和工程師面臨的普遍問題。百分點使用的方案是租用雲上的GPU和TPU資源,既能控制好成本,又能提高模型的研發效率。

第二點是根據領域數據進行重新預訓練。由於Google發佈的中文BERT模型是基於維基百科數據訓練得到,屬於通用領域的預訓練語言模型,對此,百分點加入領域數據進行重新訓練,使模型更好地對該領域的語義進行建模。在情感分類和媒體審校等任務的實踐中,百分點證明這種方法能進一步提升效果。

BERT:解決標註數據量較少問題

百分點最早在2018年就發現,預訓練模型BERT的效果非常好,在效果驗證後決定逐漸將所有算法功能模塊全部基於BERT進行修改。

以短文本情感分類爲例,蘇海波表示,百分點原來應用的是卷積神經網絡CNN模型。CNN最早被應用於圖像,後來也可以應用到文本的情感分析。CNN主要由輸入層、卷積層、池化層和全連接層構成,卷積的計算方式是相鄰區域內元素的加權求和,與位置無關,實現了權值參數共享,池化層實現了空間採樣,這些方式大大減小了神經網絡的參數,避免模型過擬合。

在BERT出現之前,團隊已經意識到CNN模型存在的問題。蘇海波補充道,這種模式對標註數據的依賴太大,一個簡單的情感分類需要上萬條,甚至十幾萬條標註數據,工作量太大,且實驗過程中發現很多場景下根本無法提供這麼多標註數據。對比之下,深度遷移學習可以大大降低標註數據量,通過預訓練模型和大規模通用性語料,在不需要大量標註數據的情況下就可以得到不錯的效果,這是一個革命性創新。

如今,百分點已經在很多NLP技術模塊中廣泛應用BERT,包括命名實體識別、情感分類、智能問答、NL2SQL和自動糾錯等,並且,這些功能也集成到了百分點的認知智能應用產品中,包括智能消費者洞察分析系統、智能檢務問答系統、智能商業分析系統、智能媒體審覈系統等等。蘇海波表示,通過實踐證明,相比傳統的深度學習模型,BERT確實大大減少了需要的標註數據量,帶來了顯著的效果提升。

比如,對於短文本的情感分類任務,BERT模型在文本前插入一個[CLS]符號,並將該符號對應的輸出向量作爲這段文本的語義表示,用於情感分類,因爲與文本中已有的其它字相比,這個無語義信息的符號會更“公平”地融合文本中各個字的語義信息,最終效果如下所示:

從上圖可以看到兩個模型隨着訓練數據的增加,情感分類的準確率都在不斷提升。不過二者的對比差異也很明顯,BERT模型在訓練集只有1000時,預測的準確率就達到了90%;而CNN模型在訓練集樣本數到100000時,預測的準確率才只有88.2%。這說明,深度遷移學習模型需要的標註樣本數遠遠小於以往的深度學習模型,就能達到更好的效果。

由於BERT模型輸入文本有512個字的限制,短文本分類比較直接,直接輸入BERT模型即可。但針對長文本,如果直接截取前面的512個字,會有信息損失,那麼該如何使用BERT模型呢?百分點的方案是將長文本進行平均截斷,例如按照平均6段進行截斷,劃分爲若干個短文本,然後輸入對應的BERT模型或者各種變種,例如RoBERTa、XLNet等,然後再將輸出的增強語義向量進行拼接,後面再接上GRU模型。

上圖是百分點對標註數據集進行5折劃分,通過交叉驗證平均截斷策略的效果。實驗結果表明,用RoBERTa+平均截斷訓練生成的模型的F1值均比RoBERTa版的模型高,表明長文本情感分類中,平均截斷策略能有效提升預訓練模型效果。

另外,百分點還採用了post train的方法提升模型的效果,實驗結果證明,在每一份數據上,RoBERTa+ Post train結合的F1和Acc均比RoBERTa版的模型高,所以在長文本情感分類中,Post train策略能有效提升預訓練模型效果。

實踐總結:對NLP開發者的三點建議

經過一番前沿探索,蘇海波對開發者提出了一些建議:一是注意硬件成本,可以考慮雲上租用資源的方式;二是如果對性能要求特別高,需要對BERT做一些改進和方案上的優化;三是BERT本身採用雙向語言模型,可能會出現訓練和預測不一致的現象。

RoBERTa是Facebook推出的BERT改進方案,採用更多的數據、改進的訓練技巧及更長的訓練時間。ERNIE是百度推出的預訓練模型,擴展了中文訓練語料,而且針對中文的詞和實體等語義單元進行建模。百分點在中文情感分類等任務上均用過RoBERTa和ERNIE,效果比BERT要好一些。

針對第三個問題,現在也有很多變種在解決這些問題,比如XLNet。蘇海波介紹道,XLNet是CMU和Google大腦推出的BERT改進方案,進行了Permutation Language Model的理論創新,增加預訓練數據的規模,採用Transformer-XL編碼器。因此,在長文檔任務(例如閱讀理解)和生成類任務的效果比BERT表現得更出色。

對於暴力堆數據問題,蘇海波認爲,它只是目前NLP領域突破的一種解法而已,但並不是唯一的解法,模型算法本身也有很多需要突破的地方,包括深度學習、遷移學習、強化學習等。就拿BERT模型來舉例,其本質也是NLP算法技術的突破,是深度遷移學習技術在NLP上的突破成果,並不是暴力堆數據的結果。

另外,目前業界如XLNet、RoBERTa等各種BERT的改進預訓練模型,雖然是通過增加預訓練的數據進一步提升效果,但除了增加數據,還做了許多模型方面的優化,這些突破都不是僅僅是依靠堆數據就能帶來的成果。

未來趨勢:三大流派技術融合

採訪最後,蘇海波表示,準確地說,預訓練模型是NLP領域新的baseline,如果要在完全不依賴BERT的基礎上,提出一個與BERT效果相當或者更好的新模型,目前來看可能性非常低。目前業界大部分NLP成果均是基於BERT的各種改進或者在對應業務場景上進行應用的,而且BERT的改進方向比較多,包括針對其在長文本處理、文本生成任務上的不足,與知識圖譜進行融合,探索輕量級的在線服務模型等。在NLP領域,除了不斷提升預訓練模型的效果,未來如何更好地與領域的知識圖譜融合,彌補預訓練模型中知識的不足,也是新的技術突破方向。擴展到整個人工智能領域,未來最可能的趨勢就是各流派技術的融合,這將是值得關注的AI技術風向。

採訪嘉賓:

蘇海波,清華大學電子工程系博士,百分點首席算法科學家,擅長人工智能領域的自然語言理解、動態知識圖譜、深度學習、個性化推薦以及計算廣告學技術;多篇論文發表於GLOBECOM、ICC、IEICE Transactions 等國外頂尖學術會議和期刊;曾就職於新浪微博,負責廣告系統的算法效果優化,以及信息流產品整體算法策略的設計及研發;現負責百分點自然語言處理、知識圖譜及智能問答等認知智能方面的算法研發,帶領團隊成功開發了智能問答、智能校對、智能翻譯、智能消費者洞察分析、AI李白等多款NLP應用產品,並在多個行業的客戶中成功落地使用。

延展閱讀:

《百分點蘇海波:深度遷移學習在NLP中的應用及實踐》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章