語言建模一直均以分詞為最小單位皮迟,即詞級語言模型财喳。后來研究者嘗試在字符級別進行語言建模肛捍,提出了數(shù)種字符級的語言模型共虑,其中最為成功是Y. Kim and et. al. (2015)提出的模型。字符級語言模型的優(yōu)勢在于能夠解決未登錄詞的問題缠局,并且能夠將詞語的形態(tài)信息引入語言模型则奥,從而提升模型的性能。
1. 前言
? ? ? ?最初狭园,語言建模的研究主要集中在詞級別的語言模型逞度,而后研究者發(fā)現(xiàn)詞級別的語言模型存在諸多缺點。在詞級別的語言建模中妙啃,詞典通常較大档泽,一般在幾萬至幾十萬,導致語言模型的輸出層計算量巨大揖赴;盡管字典如此巨大馆匿,但不管如何擴展字典,詞級別的語言模型在應用中還是會遇到未登錄詞(Words Out of Vocabulary)的問題燥滑,一方面由于單詞的數(shù)量本就巨大渐北,又存在不同的變種,還有不斷出現(xiàn)的新詞铭拧,而未登錄詞是導致語言模型性能下降到重要因素之一赃蛛;詞級別的語言建模還忽略了詞本身所包含的形態(tài)信息,比如在英文中的前后綴搀菩、詞根等信息呕臂。針對詞級別語言模型存在的諸多問題,研究者開始探索字符級的語言模型肪跋,并提出了多種字符級語言模型的方案歧蒋,部分方案的結果并不理想,但也有些方案取得
2. 字符級模型
? ? ? ?字符級語言模型的研究也曾是深度學習語言建模的研究熱點之一州既,也產(chǎn)生了許多研究成果谜洽,提出許多字符級的語言模型方案,本文著重分析其中的兩種吴叶,然后簡要地介紹其他的模型方案阐虚。
2.1 純粹字符級模型
? ? ? ?建立字符級語言模型的直接想法就是將文本作為字符序列來處理,即將詞級別的語言模型中的詞替換為字符蚌卤,而模型的輸入序列由詞序列換為字符序列实束,這也是字符級模型研究的最初構思贸宏,其模型結構如圖1所示。
? ? ? ?研究結果顯示磕洪,直接采用上述方案進行字符級語言模型的構建并不成功,訓練異常的困難诫龙。I. Sutskever, J. Martens, G. Hinton (2011)首先嘗試通過神經(jīng)網(wǎng)絡實現(xiàn)字符級的語言模型析显,采用的是改進的循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Network, RNN),并且提出了新訓練策略签赃,即Hessian-Free (HF)優(yōu)化方法谷异,該研究的主要目的也是驗證該優(yōu)化方法 。至于字符級語言模型的效果并不理想锦聊,字符級語言模型生成的文本雖然看起來似乎遵循一定的語法歹嘹,但并不是很有說服力。A. Graves (2013)則是探索了循環(huán)神經(jīng)網(wǎng)絡在序列生成中的應用孔庭,其中包括利用字符級語言模型生成文本尺上。A. Graves (2013)的研究結果指出字符級語言模型的訓練比較困難,并且其性能也無法達到詞級別模型的水平圆到。A. Graves (2013)利用賓州樹庫(Penn Tree Bank, PTB)對比了詞級別的語言模型與字符級語言模型的性能怎抛,并引入 K. Jim, C. Giles, and B. Horne (1996)提出的權重噪聲的泛化方法,實驗結果如下表所示:
序號 | 模型 | 正則方法 | PPL |
---|---|---|---|
01 | Word-Model | - | 138 |
02 | Word-Model | 權重噪聲 | 126 |
03 | Char-Model | - | 167 |
04 | Char-Model | 權重噪聲 | 140 |
? ? ? ?理論上芽淡,由于字符向量無論在數(shù)量上還是大小上都遠小于詞向量马绝,輸出層也存在相同的情況。如果兩類模型的隱層采用相同的尺寸挣菲,那么字符級模型的容量將遠小于詞級別的模型富稻。使得兩者達到相同的容量,那么字符級模型的隱層應該遠大于詞級別模型白胀。在A. Graves (2013)的實驗中椭赋,兩類模型采用了相同大小的隱層,此甚至似乎不太合理或杠。但是由于隱層尺寸較大纹份,并且訓練數(shù)據(jù)量較小,該因素的影響可能并不太大廷痘。
? ? ? ?另外蔓涧,相對于詞序列,當將文本作為字符序列處理的時候笋额,序列的長度將顯著的增加元暴,一方面,時序上的計算次數(shù)將極大地增加兄猩;另一方面茉盏,對于十分長的序列鉴未,目前已有的神經(jīng)網(wǎng)絡并無法學習長的序列依賴關系,即使采用改進的循環(huán)神經(jīng)網(wǎng)絡鸠姨,如長短期記憶(Long Short Term Memory, LSTM)循環(huán)神經(jīng)網(wǎng)絡或者門限單元(Gated Recurrent Unit, GRU)循環(huán)神經(jīng)網(wǎng)絡铜秆。
2.2 字符級輸入模型 (Character-aware)
? ? ? ?針對純粹的字符級語言模型的研究結果并不理想,研究者就改變了思路讶迁,放棄了字符級語言模型的部分優(yōu)點连茧,選擇了折中的方案。Y. Kim and et. al. (2015)提出了Character-aware的字符級語言模型巍糯,即只在模型的輸入端采用字符級輸入啸驯,而輸出輸出端仍然沿用詞級模型,整個模型的結構如圖2所示祟峦。
? ? ? ?在Y. Kim and et. al. (2015)提出模型中罚斗,輸入端將每個詞當作字符序列進行處理,而后采用卷積網(wǎng)絡 (Convolutional Neural Network, CNN) 在字符序列上進行一維卷積宅楞,從而得到分詞的詞向量针姿。值得一提的是在每個分詞的字符序列前后都需要添加標志字符序列開始和結束的字符,如分詞language
轉化為字符序列為{,l,a,n,g,u,a,g,e,}
厌衙,其中{
分別}
表示分詞的字符序列的開始和結束搓幌,如果去除這樣的起始和結束標識,模型的性能將會有大幅的下降迅箩,甚至無法訓練出有用的語言模型溉愁。獲取了詞向量之后的模型與詞級別的模型基本相同,只是因為卷積層的引入(有時卷積層可能有多層)饲趋,模型的層次變深拐揭,會導致模型的訓練變得困難。于是奕塑,便引入了高速網(wǎng)絡層堂污,來改善網(wǎng)絡的訓練。高速網(wǎng)絡由R. Srivastava, K. Greff and J. Schmidhuber提出用于訓練深層網(wǎng)絡龄砰,主要是通過引入了門機制盟猖,使得信息在網(wǎng)絡層之間傳輸更為通暢。
? ? ? ?Character-aware語言模型的PPL指標相對于詞級別的語言模型有了顯著的改善换棚,也是最成功的字符級語言模型式镐。Y. Kim and et. al. (2015)在賓州樹庫(Penn Tree Bank, PTB)對模型進行了測試,實驗結果如下表所示:
序號 | 模型 | PPL | 模型大小 |
---|---|---|---|
01 | LSTM-Word-Small | 97.6 | 5M |
02 | LSTM-CharCNN-Small | 92.3 | 5M |
03 | LSTM-Word-Large | 85.4 | 20M |
04 | LSTM-CharCNN-Large | 78.9 | 19M |
從實驗結果上不難看出固蚤,相對詞級別的語言模型娘汞,Character-aware語言模型的PPL指標有了顯著的改善,尤其是當模型的規(guī)模較大時夕玩,Character-aware語言模型的參數(shù)也有所減少你弦。Character-aware語言模型的PPL之所以能夠有所改善惊豺,一方面解決了未登錄詞的問題,另一方面將詞的形態(tài)信息也引入了模型禽作,是的模型學習到更多的模式尸昧。因此,Character-aware語言模型實現(xiàn)了研究者對字符級語言模型的兩點期待旷偿,但是對于第三點期待烹俗,Character-aware語言模型不僅沒有實現(xiàn),還使得語言模型的計算有所增加狸捅。相對于詞向量,字符向量不僅數(shù)量更少累提,尺寸也小的多尘喝,一般為15
(詞向量的尺寸在100~500
)。而模型的參數(shù)的數(shù)量是相當?shù)恼悖鸵馕吨芏嗖糠謪?shù)轉移到了卷積網(wǎng)絡層和高速網(wǎng)絡層朽褪,而這兩部分是每次訓練或者預測都需要參與計算的。但由于卷積網(wǎng)絡的高并行的特性无虚,其計算時間并沒有過多的增加缔赠。Character-aware語言模型之所沒有完全取代詞級別的語言模型,主要在于其模型比較復雜友题,而且計算時間有所增加嗤堰,尤其在預測階段。
2.3 其他字符級模型
? ? ? ?相對前面討論的兩種字符級的語言模型度宦,其他類型的字符級語言模型似乎并沒有太多值得討論的價值踢匣,此處將對其進行簡要的介紹。R. Jozefowicz and et. al. (2016)對神經(jīng)網(wǎng)絡語言模型的局限性進行了研究戈抄,但是其研究的深度并不令人滿意离唬,此處不做深入的討論,僅僅介紹一下研究中提出的兩類字符級語言模型划鸽,如圖3所示输莺。
? ? ? ?圖3中左邊所示的模型基本結構與Y. Kim and et. al. (2015)所設計的字符級語言模型類似,只是將輸出層的權重矩陣替換為卷積網(wǎng)絡輸出的對應特征向量裸诽,稱為CNN Softmax嫂用。右側的模型則是對Y. Kim and et. al. (2015)的模型的輸出層進行了修改,將原先的輸出層替換為字符級的預測模型丈冬,即將原有隱層的輸出尸折,作為字符預測模型的輸入,依次預測目標詞的每個字符殷蛇。在百萬級詞語料庫(One Billion Word Bench, OBWB)的實驗結果如下表所示:
序號 | 模型 | PPL |
---|---|---|
01 | LSTM-Word | 30.6 |
02 | LSTM-CharCNN | 30.0 |
03 | LSTM-CharCNN + CNN softmax | 39.8 |
04 | LSTM-CharCNN + Char-prediction | 47.9 |
這兩類字符級語言模型不僅結構更為復雜实夹,其PPL指標也遠不如詞級別的語言模型以及Y. Kim and et. al. (2015)提出的字符級語言模型橄浓。
3. 總結
? ? ? ?理想的字符級語言模型,即模型的輸入與輸出均為字符級亮航,能夠解決詞級別語言模型的三大問題荸实,分別是巨大的計算量、未登錄詞以及詞形態(tài)的模式缴淋,但是由于諸多限制并不能完全實現(xiàn)准给,主要是目前的神經(jīng)網(wǎng)絡在長依賴的學習上還有許多不足。目前重抖,效果比較好并且最受關注的字符級語言模型就是Y. Kim and et. al. (2015)所提出的模型露氮,如圖2所示,然而由于計算量以及模型復雜度的問題钟沛,并沒有完全取代詞級別的語言模型畔规,往往是其其他應用中,將字符級別的特征與詞向量合并恨统,作為模型的輸入以提高模型在該任務中的性能叁扫。
? ? ? ?以上針對字符級語言模型的討論還是主要針對英文、德語畜埋、西班牙等字母為主的語言莫绣,而對于中文、韓文悠鞍、日文等方塊字為主的語言对室,字符級語言模型的研究比較少。直觀上來看咖祭,輸入和輸出層均為字符的字符級語言模型似乎更適合這類語言软驰,并且字符的數(shù)量遠小于詞的數(shù)量,并且能夠有效地解決未登錄詞問題心肪。但是詞邊界在語言模型中是非常重要的特征锭亏,能夠幫助語言模型更好地學習到目標語言的模式。從Y. Kim and et. al. (2015)處理詞的字符序列時硬鞍,在字符序列兩端添加起始與終止標識符就可以看出慧瘤。