【重磅】谷歌開源大規模語言建模庫,10億+數據,探索 RNN 極限
谷歌今天宣布開源大規模語言建模模型庫,這項名為“探索RNN極限”的研究今年 2 月發表時就引發激論,如今姍姍來遲的開源更加引人矚目。
【編者按】本文轉載自新智元,來源:arXiv.org,譯者:胡祥杰
開源說明
根據谷歌大腦團隊在Github發布的消息,他們這次發布開源了一個在英語語料庫 One Billion Word Benchmark(http://arxiv.org/abs/1312.3005)預先訓練過的模型。這個數據庫含有大約10億個單詞,詞匯有80萬單詞,大部分都是新聞數據。由于訓練中句子是被打亂了的,模型可以不理會文本,集中句子層面的語言建模。
在此基礎上,作者在論文描述了一個模型,混合了字符CNN(character CNN)、大規模深度LSTM,以及一個專門的Softmanx架構,最終得到的結果可以說是迄今最好的。
代碼發布
開源部分包括:
1.TensorFlow GraphDef proto buffer文本文件
2.TensorFlow 預訓練 checkpoint shards
3.評估預訓練模型的代碼
4.詞匯表
5.LM-1B評估測試
代碼支持4種評估模式:
1.提供數據庫,計算模型的perplexity
2.提供前綴,預測后面一個單詞
3.softmax嵌入項,字符級別的CNN單詞嵌入項
4.輸入句子,將轉存LSTM狀態的嵌入項
結果
更多信息請訪問:https://github.com/tensorflow/models/tree/master/lm_1b
研究論文:探索語言建模的極限
作者:Rafal Jozefowicz,Oriol Vinyals,Mike Schuster,Noam Shazeer,Yonghui Wu
摘要
本文中,作者探討了近年來遞歸神經網絡(RNN)在語言理解的核心——大規模語言建模(LM)方面的發展。為了解決語言建模中的兩大挑戰:語料庫和詞匯量,以及復雜的、長期的語言結構,作者拓展了現有模型,在One Billion Word Benchmark上對CNN或LSTM做了徹底研究。單一模型最好成績將結果從 51.3 提高到30.0(同時將參數數量減少了20倍),模型融合的結果創下了歷史記錄,將混淆度(perplexity)從41.0下降到23.7。我們將這些模型開源,供所有NLP和ML研究者研究和提高。
論文呈現的模型中一個高層的圖表。a指的是一個標志的LSTM 語言建模;b代表一個LM,其中輸入和Softmax嵌入被一個字符CNN取代。c中,我們用一下一個單詞預測LSTM網絡替代Softmax。
語言建模(LM)是自然語言處理和自然理解模型任務的一個核心任務,能對句子結構分步進行展示,它展示的不僅是語言的復雜內容,比如語法結構,還能提取語料庫可能包含的一定數量信息。確實,模型能夠把較低的概率指派到那些語法上正確的句子上,但是卻不太可能幫助完成其他基礎的語言理解任務,比如,回答問題、機器翻譯或者文本摘要。
LM在傳統的NLP任務中扮演著關鍵的角色,例如,語音識別、機器翻譯、文本摘要。通常(但不是一直),訓練語言模型會提升下游任務的潛在價值,比如語音識別中的詞語錯誤率,或者翻譯中的BLEU分數),這會讓訓練更好的LM自身具有更高價值。
進一步說,在大量的數據上進行訓練,語言模型會從訓練數據中簡練地提取解碼后的知識。比如,當用電影字幕進行訓練時,這些語言模型能夠生成關于物體顏色、人物身份等信息的大難。最近提出的序列到序列模型,使用了有條件的語言模型,作為解決多任務難題的一個關鍵,包括機器翻譯和視頻生成等 。
深度學習和遞歸神經網絡(RNN)在過去的幾年中極大地推動了語言建模研究的發展,讓研究者可以在更多的任務上進行探索,在這些任務中,強限制性的獨立假設都是不實際的。
雖然事實上,簡單的模型,比如N-grams,只使用極少的前詞(privious words)來預測接下里會出現的詞,它們對于高質量、低混淆的語言建模來說一談是一個非常關鍵的組成部分。
確實,最近絕大部分對大型語言建模的研究已經證明了RNN配合N-grams使用效果非常好,因為它們可能有一些不同的優勢,能對N-gram模型進行補充。但是,如果單獨使用RNN的話,效果就會很差。
我們相信,雖然很多工作都在小型的數據集,比如Penn Tree Bank(PTB)上展開,但是,更大型的任也是很重要的,因為過擬合并不是目前語言建模中的一個主要限制,而只是PTB任務中的一個主要特點。
大型語料庫上的結果通常會更好,這很重要,因為許多在小型數據庫上運行得很好的想法在大型數據庫上做進一步提升時都失敗了。進一步來看,考慮到當下的硬件趨勢和網頁大量可用的文本數據,進行大型的建模將會比過去更加簡單。所以,我們希望我們的工作能給研究者帶來啟發和幫助,讓他們在PTB之外可以使用傳統的語言模型。
出于這一目的,我們把自己的模型和訓練內容進行開源。
我們聚焦在一個著名的大型LM基準:One Billion Word Benchmark數據集。這一數據集比PTB要大很多,同時挑戰也多很多。與計算機視覺領域的Imagenet類似,我們認為,在大型數據集上研究,并且在清晰的基準上進行建模將能提上語言建模。
我們工作的貢獻主要有以下幾個:
1.我們探索、擴展并嘗試在大規模LM上整合當下的一些研究;
2.具體地,我們設計了一個Softmax loss,基于特性水平的CNN,在訓練上效率很高,在準確度上與完整的Softmax一致,而完整版的要求更多維的參數;
3.我們的研究提升了當下最著名的大規模LM任務:單一模型的 從51.3降到了30.0,同時,參數的系數減少了20;
4.我們證明了,幾個不同模型的組合能把這一任務的perplexity降到23.7,這是一個顯著的提升。
在論文的第二部分,我們將會對語言建模中的重要概念和前人研究進行綜述。第三部分,我們會提出對神經語言建模這一領域的貢獻,重點在大規模遞歸神經網絡的訓練。第4和第5部分的目的是盡可能地描述我們的經驗和對項目的理解,同時把我們的工作與其他相關的研究方法進行對比。
評價及討論
Reddit、HN和Twitter上的反響都挺好,不過也有人指出了這項研究的一些缺點。根據shortscience.org上的留言;
正如我在上文提到的那樣,perplexity 從某處程度上來是一個讓人困惑的指標,大的混淆(perplexity)并不反映真正的提升,而是帶來樓主“夸大”效應。
這篇論文只提供了語言建模的提升,但是,LM一般都會被嵌入到復雜的使用場景中,比如語音識別或者機器翻譯。如果本論文中提供的LM可以分享一下與一些端到端的產品融合的結果,那會更有見解性。鑒于論文的作者在谷歌大腦團隊工作,這一要求并不過分。
據我所知,本論文使用的數據庫來自新聞報道,這種類型的數據比起口語數據更加規范。在實際的應用中,我們面對的通常是非正式化的數據(比如搜索引擎和語音識別)。論文中提到的最好的模型,能否適應更加實際的應用,目前依然是一個問題。再次的,對于谷歌大腦團隊來說,把這一模型融合到既有的系統中進行測試,并不是什么難事。
最后,記得關注微信公眾號:鎂客網(im2maker),更多干貨在等你!
硬科技產業媒體
關注技術驅動創新
