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