Exploring the limits of language model閱讀筆記

Introduction

LM可以處理很多NLP任務如機器翻譯, 語音識別, 文本總結,問答系統,視頻生產等,理解語義, 不僅能夠編碼語法結構還能提取預料上下文信息。他可以幫助提高上述任務的表現,。

N-元模型至今表現很好,但是RNN+N元表現更好,因爲兩者可以表達不通的語言結構。

小語料庫如PTB不會出現容易出現過擬合問題,大語料庫不容易出現,但是比較難擴充數據集。現代GPU的發展以及網上大量的文本可以直接構建大語料庫LM。所以我們想在研究大語料庫。

使用One Billion Word 爲基線。希望可以幫助提高語言模型。

2.相關工作

語言模型就是計算輸入序列的概率分佈,分爲有參數模型對數線性不行或者無參數模型,n元模型。rnn解決了序列的長期依賴問題。本文使用的語料庫,對於n元模型屬於中等大小,對於nn模型屬於很大。正如計算機領域一樣,大模型大語料庫有助於理解自然語言。我們使用了,迴歸狀態空間方法最小化計算代價。

把單詞拆成字母級別,通過CNN網絡嵌入模型,發現在詞性標註,情感分析中表現很好。

大詞彙的softmax,由於詞彙量大,計算很難,importance sampling在衆多解決方法中是較好的一個。

3.改進

NCE和IS

受到character CNN embedding 啓發,計算ew時不通過V*H矩陣(該矩陣列對應行),通過卷積生成ew

結構和character CNN embedding 一樣。

傳統softmax層的另一種改進是受到Kim[3]的論文啓發,Kim對輸入詞向量vw採用了字符級別的CNN模型。相反,Jozefowicz在2016年將同樣的方法用於輸出詞向量v′w,並將這種方法稱爲CNN-Softmax。如圖4所示,如果我們在輸入端和輸出端加上CNN模型,輸出端CNN生成的向量v′w與輸入端CNN生成的向量必然不相同,因爲輸入和輸出的詞向量矩陣就不一樣。圖4:CNN-Softmax (Jozefowicz et al. (2016))儘管這個方法仍需要計算常規softmax的標準化,但模型的參數卻大大的減少:只需要保留CNN模型的參數,不需要保存整個詞向量矩陣dx|V|

。在測試階段,輸出詞向量v′w可以提前計算,所以性能損失不大。但是,由於字符串是在連續空間內表示,模型傾向於用平滑函數將字符串映射到詞向量,因此基於字符的模型往往無法區分拼寫相似但是含義不同的詞語。爲了消除上述影響,論文的作者增加了一個矯正因數,顯著地縮小了CNN-Softmax與傳統方法的性能差距。

通過調整矯正因數的維度,作者可以方便地取捨模型的大小與計算性能。

論文的作者還提到,前一層h的輸出可以傳入字符級別的LSTM模型,這個模型每次預測輸出詞語的一個字母。但是,這個方法的性能並不令人滿意

 

4.experiment

在tensoeflow環境下建模

數據集爲1B wordbRNCHMARK ,句子隨機排列,去除重複的,0.3%OOV用UNK表示。

利用困惑度評價語言模型, 設置字符輸入長度爲50,每一個詞加入開始符和截止符,並且pad到50長度。總共有256個字符。非ASCII符號,用字節序列代替。

LSTM層加入projection layer.有利於減小BPTT的步數。每一個LSTMlayer之前和之後都加入dropout., Character embedding CNN使用4096個feature, 結果匹配projection layer, 有利於減少參數。

訓練使用adagrad optimizer 學習速率0.2, batch size128,使用了clip gradients.一個32個GPU。使用importance sampling 估計,noise樣本8192.減少了100倍的計算代價。

 

本文做了該文的詳細PPT,需要的可以留言分享

 

 

 

 

 

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