近十幾年李茫,神經(jīng)網(wǎng)絡(luò)語(yǔ)言建模(Language Modeling, LM)一直是人工智能領(lǐng)域的研究熱點(diǎn)秸侣,多種神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)被引入到語(yǔ)言建模中。其中搏色,前向神經(jīng)網(wǎng)絡(luò)是最早被引入到語(yǔ)言建模中的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)烁焙,隨后是循環(huán)神經(jīng)網(wǎng)絡(luò)骄蝇,包括標(biāo)準(zhǔn)循環(huán)神經(jīng)網(wǎng)絡(luò)赚窃、長(zhǎng)短期記憶循環(huán)神經(jīng)網(wǎng)絡(luò)和門(mén)限循環(huán)單元神經(jīng)網(wǎng)絡(luò)鹦倚,接著卷積神經(jīng)網(wǎng)絡(luò)也在語(yǔ)言建模中取得了出乎意料的成功掀鹅。
1. 前言
? ? ? ?語(yǔ)言建模(Language Modeling, LM)作為人工智能領(lǐng)域的基礎(chǔ)任務(wù)之一乐尊,在諸如自然語(yǔ)言處理(Natural Language Processing, NLP)限府、語(yǔ)音識(shí)別(Speech Recognition)、機(jī)器翻譯(Machine Translation, MT)等以自然語(yǔ)言為處理對(duì)象的任務(wù)中起到了關(guān)鍵的作用。雖然語(yǔ)言建模僅在語(yǔ)音識(shí)別中有直接的應(yīng)用,但對(duì)語(yǔ)言建模具有深刻的理解有助于更好地理解上述任務(wù)褐啡,語(yǔ)言建模的思想即是人工智能領(lǐng)域處理自然語(yǔ)言的基本思想回溺。另外春贸,語(yǔ)言建模的相關(guān)技術(shù)通郴炻埽可以直接或者間接地應(yīng)用到其他任務(wù)中遗遵。
? ? ? ?在神經(jīng)網(wǎng)絡(luò)(Neural Network, NN)被成功應(yīng)用于語(yǔ)言建模之前,主流的語(yǔ)言模型為N-gram模型逸嘀,采用計(jì)數(shù)統(tǒng)計(jì)的方式,在離散空間下表示語(yǔ)言的分布崭倘。由于缺乏對(duì)詞的相似性的有效表示翼岁,N-gram語(yǔ)言模型存在嚴(yán)重的數(shù)據(jù)稀疏問(wèn)題。雖然引入平滑技術(shù)司光,但數(shù)據(jù)稀疏問(wèn)題仍不能得到有效的解決琅坡。神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型則采用分布式的方式表示詞,即通常所說(shuō)的詞向量残家,將詞映射到連續(xù)的空間內(nèi)榆俺,有效地解決了數(shù)據(jù)稀疏問(wèn)題。并且神經(jīng)網(wǎng)絡(luò)具有很強(qiáng)的模式識(shí)別能力坞淮,神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型的性能遠(yuǎn)優(yōu)于N-gram模型茴晋。但由于神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型的計(jì)算復(fù)雜度遠(yuǎn)高于N-gram模型,在對(duì)實(shí)時(shí)性有要求的應(yīng)用場(chǎng)合回窘,如語(yǔ)音識(shí)別诺擅,仍采用N-gram語(yǔ)言模型。N-gram語(yǔ)言建模方面的研究啡直,推薦閱讀Goodman (2001)的論文烁涌,該篇論文對(duì)N-gram語(yǔ)言建模的相關(guān)技術(shù)進(jìn)行了細(xì)致的對(duì)比分析苍碟,建模的工具包則可以參考SRILM。本文將只對(duì)神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型進(jìn)行詳細(xì)的介紹撮执,并分析不同神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)在語(yǔ)言建模中的優(yōu)劣驰怎。
2. 語(yǔ)言模型
? ? ? ?語(yǔ)言建模的對(duì)象是自然語(yǔ)言,即人類(lèi)文明發(fā)展過(guò)程中自然演化的語(yǔ)言二打,不包括編程語(yǔ)言县忌、世界語(yǔ)等。但嚴(yán)格地講继效,自然語(yǔ)言也并不完全是自然產(chǎn)生的症杏,而是人為創(chuàng)造出來(lái)的。另外瑞信,自然語(yǔ)言的表現(xiàn)形式通常分為語(yǔ)音與文字厉颤,而語(yǔ)言建模主要針對(duì)某種自然語(yǔ)言對(duì)應(yīng)的文字系統(tǒng),因此將該任務(wù)稱(chēng)為“文字系統(tǒng)建模 (Writing System Modeling, WSM)”更為嚴(yán)謹(jǐn)凡简。通常獲取某種文字系統(tǒng)下的文本所表達(dá)的信息逼友,需要了解對(duì)應(yīng)文字系統(tǒng)的內(nèi)部結(jié)構(gòu),以及其與相應(yīng)自然語(yǔ)言的對(duì)應(yīng)關(guān)系秤涩。而語(yǔ)言模型僅從文本中構(gòu)建帜乞,能夠表示的只有文字系統(tǒng)本身的內(nèi)部結(jié)構(gòu)信息。雖然采用“文字系統(tǒng)建目鹁欤”更為嚴(yán)謹(jǐn)黎烈,但為了與主流的研究一致,仍然沿用“語(yǔ)言建脑纫ィ”的命名習(xí)慣照棋。
? ? ? ?假設(shè)為來(lái)源于某種自然語(yǔ)言的詞序列,語(yǔ)言建模的目的就是構(gòu)建該自然語(yǔ)言中詞序列的分布武翎,然后用于評(píng)估某個(gè)詞序列的概率烈炭。如果給定的詞序列符合語(yǔ)用習(xí)慣,則給出高概率宝恶,否則給出低概率符隙。在語(yǔ)言建模過(guò)程中,采用了鏈?zhǔn)椒▌t卑惜,單個(gè)詞序列的概率被分解為序列中各個(gè)詞的條件概率的乘積膏执,而每個(gè)詞的條件概率為給定其上文時(shí)的該詞出現(xiàn)的概率。因此露久,上述詞序列的概率可表示為:
不難看出更米,上述模型的成立時(shí)需要前提假設(shè),即在詞序列中毫痕,每個(gè)詞只依賴(lài)于其上文征峦,而與下文無(wú)關(guān)迟几。不論是依據(jù)語(yǔ)言使用的直觀體驗(yàn),還是人工智能的諸多實(shí)踐栏笆,都驗(yàn)證了該假設(shè)是不成立的类腮。在自然語(yǔ)言處理中,如何同時(shí)考慮上下文信息已有許多研究成果蛉加,此處不進(jìn)行展開(kāi)討論蚜枢。
? ? ? ?語(yǔ)言模型的目標(biāo)是評(píng)估詞序列的概率锭硼,模型的訓(xùn)練采用最大似然評(píng)估準(zhǔn)則主届,最大化模型在訓(xùn)練數(shù)據(jù)上的似然概率。語(yǔ)言模型訓(xùn)練的目標(biāo)函數(shù)就采用似然函數(shù)蒋情,即:
其中丁眼,為語(yǔ)言模型的參數(shù)筷凤,
為正則項(xiàng)。
? ? ? ?語(yǔ)言模型的性能通常采用困惑度(Perplexity, PPL)來(lái)衡量苞七,困惑度的定義如下:
困惑度藐守,即模型編碼數(shù)據(jù)所需要的平均字節(jié)數(shù)的指數(shù),用于衡量模型預(yù)測(cè)樣本的好壞程度蹂风。語(yǔ)言模型的困惑度越小卢厂,意味著語(yǔ)言模型的分布更接近測(cè)試數(shù)據(jù)的分布。
3. 神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型
? ? ? ?神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型引起廣泛關(guān)注是在Bengio et al. (2003)提出前向神經(jīng)網(wǎng)絡(luò)(Feed-forward Neural Network, FNN)語(yǔ)言模型之后硫眨,但對(duì)神經(jīng)網(wǎng)絡(luò)語(yǔ)言建模的研究可以追溯到更早之前足淆,如Schmidhuber (1996),Xu and Rudnicky (2000)等礁阁。但由于神經(jīng)網(wǎng)絡(luò)訓(xùn)練困難,基于當(dāng)時(shí)的硬件條件模型訓(xùn)練的時(shí)間較長(zhǎng)族奢。直到Bengio et al. (2003)發(fā)布其研究成果姥闭,神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型才引起學(xué)術(shù)界以及工業(yè)界的興趣。隨后Mikolov et al. (2010)將循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network, RNN)引入語(yǔ)言建模越走,使得語(yǔ)言模型的性能得到較大的提升棚品。接著循環(huán)神經(jīng)網(wǎng)絡(luò)的改進(jìn)版本,長(zhǎng)短期記憶(Long Short Term Memory, LSTM)循環(huán)神經(jīng)網(wǎng)絡(luò)以及門(mén)限循環(huán)單元(Gated Recurrent Unit, GRU)神經(jīng)網(wǎng)絡(luò)廊敌,相繼地被用于進(jìn)一步改善語(yǔ)言建模的性能铜跑。另外,卷積神經(jīng)網(wǎng)絡(luò)也出乎意料地在語(yǔ)言建模中取得了成功骡澈,性能也能夠與循環(huán)神經(jīng)網(wǎng)絡(luò)相比肩锅纺。
3.1 前向神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型
? ? ? ?前向神經(jīng)網(wǎng)絡(luò),又被稱(chēng)為全連接(Fully Connected Neural Network)神經(jīng)網(wǎng)絡(luò)肋殴,是最早被引入到語(yǔ)言建模中的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)囤锉。前向神經(jīng)網(wǎng)絡(luò)一般可表示為:
其中坦弟,,
為權(quán)重矩陣官地,
為輸入層的節(jié)點(diǎn)數(shù)酿傍,
為隱層的節(jié)點(diǎn)數(shù),
輸出層的節(jié)點(diǎn)數(shù)驱入,在語(yǔ)言模型中等于詞典的大小赤炒,
為直接連接輸入層與輸出層的權(quán)重矩陣,
和
分別為隱層和輸出層的偏置項(xiàng)亏较,
為輸出向量可霎,
為激活函數(shù)。
? ? ? ?Bengio et al. (2003)提出的前向神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型的結(jié)構(gòu)如圖1所示宴杀。由于前向神經(jīng)網(wǎng)絡(luò)不具備學(xué)習(xí)時(shí)序依賴(lài)關(guān)系的能力癣朗,如果預(yù)測(cè)當(dāng)前詞時(shí),考慮所有上文會(huì)比較困難旺罢。一方面旷余,當(dāng)上文較長(zhǎng)時(shí),網(wǎng)絡(luò)的輸入節(jié)點(diǎn)數(shù)會(huì)較大扁达;另一方面正卧,當(dāng)前詞的上文是變長(zhǎng)的,不易處理跪解。因此炉旷,前向神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型采用了與N-gram模型相似的方法處理上文信息,只考慮前個(gè)詞叉讥,則當(dāng)前詞的條件概率近似地表示為:
此處窘行,又引入了另一個(gè)假設(shè),即當(dāng)前詞只依賴(lài)于前個(gè)詞图仓。
? ? ? ?建立語(yǔ)言模型的首要工作是從訓(xùn)練數(shù)據(jù)集中構(gòu)建詞典罐盔,并為每個(gè)詞賦予唯一的索引,然后構(gòu)建特征矩陣
救崔,其中
為詞典的大小惶看,
為特征向量的大小。特征矩陣
的每行為對(duì)應(yīng)詞的特性向量六孵,即詞向量纬黎,通過(guò)詞的索引進(jìn)行查找。當(dāng)對(duì)當(dāng)前詞
進(jìn)行預(yù)測(cè)時(shí)劫窒,取其前
個(gè)詞的詞向量本今,并按照序列順序進(jìn)行拼接,形成模型的輸入向量
,其中
诈泼。模型的輸出
為當(dāng)前上文信息下懂拾,詞典中各個(gè)詞的非歸一化的條件概率,需要采用Softmax函數(shù)對(duì)輸出概率進(jìn)行歸一化铐达,即:
? ? ? ?Bengio et al. (2003)在其2001年版本的論文中提出了兩種模型結(jié)構(gòu)岖赋。除了上述被稱(chēng)為直連結(jié)構(gòu)(Direct Architecture)的模型,還有一種稱(chēng)為循環(huán)結(jié)構(gòu)(Cycling Architecture)的模型瓮孙。在循環(huán)模型中唐断,針對(duì)詞典中的每個(gè)詞都訓(xùn)練了一個(gè)預(yù)測(cè)模型,每個(gè)模型只輸出對(duì)應(yīng)詞的未歸一化的條件概率杭抠,然后采用Softmax對(duì)所有輸出進(jìn)行歸一化處理脸甘。兩種模型在布朗語(yǔ)料庫(kù)上的測(cè)試結(jié)果如下表所示:
序號(hào) | 模型 | PPL | 備注 |
---|---|---|---|
01 | 3-gram模型語(yǔ)言模型 | 348 | - |
02 | 直連前向神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型 | 265 | - |
03 | 循環(huán)前向神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型 | 270 | - |
? ? ? ?實(shí)驗(yàn)結(jié)果顯示,直連結(jié)構(gòu)的模型性能與循環(huán)結(jié)構(gòu)模型的PPL幾乎相當(dāng)偏灿。目前循環(huán)結(jié)構(gòu)的模型已不再被關(guān)注丹诀,因?yàn)橹边B結(jié)構(gòu)的模型的PPL略高,并且結(jié)構(gòu)更緊湊翁垂。另外铆遭,實(shí)驗(yàn)數(shù)據(jù)顯示前向神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型的PPL遠(yuǎn)低于3-gram語(yǔ)言模型,體現(xiàn)了神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型的優(yōu)越性沿猜。在Bengio et al. (2003)的論文中枚荣,輸入層與輸出層之間的直接連接層以及隱層的偏置項(xiàng)對(duì)模型性能的影響得到了分析。引入直接連接層啼肩,能夠幫助模型快速學(xué)習(xí)數(shù)據(jù)中的線(xiàn)性關(guān)系橄妆,但會(huì)使模型的泛化能力降低,從而使得模型的PPL值略有上升祈坠,但訓(xùn)練速度加快害碾。而添加或者去除隱層的偏置項(xiàng)并不會(huì)對(duì)模型性能造成明顯的影響。
3.2 循環(huán)神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型
? ? ? ?前向神經(jīng)網(wǎng)絡(luò)缺乏學(xué)習(xí)時(shí)序依賴(lài)的能力颁虐,而循環(huán)神經(jīng)網(wǎng)絡(luò)則是被設(shè)計(jì)用來(lái)處理時(shí)序問(wèn)題的蛮原。Bengio et al. (2003)指出采用循環(huán)神經(jīng)網(wǎng)絡(luò)進(jìn)行語(yǔ)言建模會(huì)獲得更好的性能,而后Mikolov et al. (2010)對(duì)循環(huán)神經(jīng)網(wǎng)絡(luò)語(yǔ)言建模進(jìn)行了研究另绩,并取得了更好的效果。Mikolov et al. (2010)所采用的是標(biāo)準(zhǔn)循環(huán)神經(jīng)網(wǎng)絡(luò)花嘶,其一般結(jié)構(gòu)可以表示為:
其中笋籽,為權(quán)重矩陣,
為
時(shí)刻隱層的狀態(tài)椭员。
? ? ? ?循環(huán)神經(jīng)網(wǎng)絡(luò)引入了中間隱層狀態(tài)车海,從而將信息沿著時(shí)序向后傳播。在循環(huán)神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型中,對(duì)當(dāng)前詞進(jìn)行預(yù)測(cè)時(shí)侍芝,只需要將其上一個(gè)詞的詞向量作為輸入研铆,其余上文的信息通過(guò)隱層狀態(tài)輸入。因此州叠,循環(huán)神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型的結(jié)構(gòu)與前向神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型有所不同棵红,其具體結(jié)構(gòu)如圖2所示。
? ? ? ?循環(huán)神經(jīng)網(wǎng)絡(luò)的詳細(xì)研究成果推薦參閱Mikolov (2012)的博士論文咧栗。除了循環(huán)神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型本身的研究逆甜,論文還介紹了其他傳統(tǒng)的語(yǔ)言建模技術(shù),并與神經(jīng)網(wǎng)絡(luò)語(yǔ)言建模進(jìn)行對(duì)比致板。另外交煞,還提出了神經(jīng)網(wǎng)絡(luò)語(yǔ)言建模的優(yōu)化方法,如通過(guò)模型組合降低PP L斟或,基于詞類(lèi)加速模型計(jì)算等素征。模型的研究實(shí)驗(yàn)在賓州樹(shù)庫(kù)(Penn Tree Bank, PTB)上進(jìn)行,部分測(cè)試結(jié)果如下表所示:
序號(hào) | 模型 | PPL | 備注 |
---|---|---|---|
01 | 3-gram語(yǔ)言模型 | 148.3 | - |
02 | 5-gram語(yǔ)言模型 | 141.2 | - |
03 | 前向神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型 | 140.2 | - |
03 | 循環(huán)神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型 | 124.7 | - |
從上表中的數(shù)據(jù)可以看出萝挤,循環(huán)神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型具有顯著的優(yōu)勢(shì)御毅,而前向神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型與5-gram語(yǔ)言模型相比,已不具備明顯的優(yōu)勢(shì)了平斩。
? ? ? ?雖然標(biāo)準(zhǔn)循環(huán)神經(jīng)網(wǎng)絡(luò)被設(shè)計(jì)用于解決時(shí)序問(wèn)題亚享,但研究過(guò)程中發(fā)現(xiàn),標(biāo)準(zhǔn)循環(huán)神經(jīng)網(wǎng)絡(luò)存在梯度縮減(Vanishing Gradient)或者梯度爆炸(Exploding Gradient)的問(wèn)題绘面,導(dǎo)致其無(wú)法學(xué)習(xí)時(shí)序上的長(zhǎng)期依賴(lài)關(guān)系欺税。針對(duì)這個(gè)問(wèn)題,長(zhǎng)短期記憶循環(huán)神經(jīng)網(wǎng)絡(luò)引入了門(mén)限機(jī)制揭璃,使得循環(huán)神經(jīng)網(wǎng)絡(luò)能夠?qū)W習(xí)到更長(zhǎng)期的時(shí)序依賴(lài)關(guān)系晚凿。長(zhǎng)短期記憶循環(huán)神經(jīng)網(wǎng)絡(luò)由Hochreiter and Schmidhuber (1997)提出,而后被Gers and J. Schmidhuber (2000)瘦馍,Cho et al. (2014)等進(jìn)一步改進(jìn)優(yōu)化歼秽,其一般結(jié)構(gòu)可表示為:
其中,情组,
燥筷,
分別為輸入門(mén)、遺忘門(mén)和輸出門(mén)院崇,
為內(nèi)部記憶單元肆氓,
,
底瓣,
谢揪,
,
,
拨扶,
凳鬓,
,
患民,
缩举,
,
酒奶,
均是權(quán)重矩陣蚁孔,
,
惋嚎,
杠氢,
和
為偏置項(xiàng),
為隱層的激活函數(shù)另伍,
門(mén)限單元的激活函數(shù)鼻百,一般采用Sigmoid函數(shù)。
? ? ? ?長(zhǎng)短期記憶循環(huán)神經(jīng)網(wǎng)絡(luò)在語(yǔ)言建模中的最初研究來(lái)源于論文Sundermeyer et al. (2012)摆尝,其語(yǔ)言模型的結(jié)構(gòu)與圖2所示的結(jié)構(gòu)類(lèi)似温艇,只是將標(biāo)準(zhǔn)循環(huán)神經(jīng)網(wǎng)絡(luò)更換為長(zhǎng)短期記憶循環(huán)神經(jīng)網(wǎng)絡(luò)。在賓州樹(shù)庫(kù)上進(jìn)行試驗(yàn)堕汞,結(jié)果顯示與標(biāo)準(zhǔn)循環(huán)神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型相比勺爱,長(zhǎng)短期記憶循環(huán)神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型的PPL減少了8%。
? ? ? ?門(mén)限循環(huán)單元神經(jīng)網(wǎng)絡(luò)作為與長(zhǎng)短期記憶循環(huán)神經(jīng)網(wǎng)絡(luò)同等受歡迎的循環(huán)網(wǎng)絡(luò)結(jié)構(gòu)讯检,同樣受到語(yǔ)言建模研究者的青睞琐鲁。門(mén)限循環(huán)單元網(wǎng)絡(luò)也引入了門(mén)限機(jī)制來(lái)解決循環(huán)網(wǎng)絡(luò)中梯度傳遞的問(wèn)題,但其只引入了兩個(gè)門(mén)機(jī)制人灼,因此計(jì)算量會(huì)比相同規(guī)模的長(zhǎng)短期記憶循環(huán)神經(jīng)網(wǎng)絡(luò)要少围段,其一般結(jié)構(gòu)可以表示為:
其中,為重置門(mén)投放,
為更新門(mén)奈泪,
,
灸芳,
涝桅,
,
烙样,
苹支,
,
均為權(quán)重矩陣误阻,
,
,
和
為偏置項(xiàng)究反,
為隱層的激活函數(shù)寻定,
門(mén)限單元的激活函數(shù),一般也采用Sigmoid函數(shù)精耐。
? ? ? ?Jozefowicz et al. (2015)研究了不同循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)在多種人工智能任務(wù)中表現(xiàn)狼速,其中包括語(yǔ)言建模任務(wù)。針對(duì)語(yǔ)言建模任務(wù)的研究卦停,同樣是在賓州樹(shù)庫(kù)上進(jìn)行的向胡,試驗(yàn)結(jié)果如下表所示:
序號(hào) | 模型 | PPL | 備注 |
---|---|---|---|
01 | 標(biāo)準(zhǔn)循環(huán)神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型 | 124.7 | - |
02 | 長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型 | 81.4 | - |
03 | 長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型 | 79.83 | 遺忘門(mén)的偏置項(xiàng)設(shè)為1.0 |
04 | 門(mén)限循環(huán)單元神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型 | 91.7 | - |
在語(yǔ)言建模中,長(zhǎng)短期記憶循環(huán)神經(jīng)網(wǎng)絡(luò)在諸多循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)中顯現(xiàn)出顯著的優(yōu)勢(shì)惊完,并且當(dāng)將遺忘門(mén)的偏置項(xiàng)設(shè)為1.0時(shí)僵芹,模型的性能能夠進(jìn)一步提高。在這項(xiàng)研究成果發(fā)表之后小槐,長(zhǎng)短期記憶循環(huán)神經(jīng)網(wǎng)絡(luò)的遺忘門(mén)的偏置項(xiàng)通常默認(rèn)設(shè)置為1.0拇派。另外,此處值得一提凿跳,Jozefowicz et al. (2015)指出件豌,除了語(yǔ)言建模任務(wù),在其他任務(wù)中門(mén)限循環(huán)單元神經(jīng)網(wǎng)絡(luò)的性能均優(yōu)于長(zhǎng)短期記憶循環(huán)神經(jīng)網(wǎng)絡(luò)控嗜。但是實(shí)際情況卻比較奇怪茧彤,目前在其他人工智能任務(wù)中,依然是長(zhǎng)短期記憶循環(huán)神經(jīng)網(wǎng)絡(luò)出現(xiàn)的頻率較高疆栏。
3.3 卷積神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型
? ? ? ?卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN)的優(yōu)勢(shì)在于特征提取曾掂,并在計(jì)算機(jī)視覺(jué)(Computer Vision, CV)領(lǐng)域取得了巨大的成功。而對(duì)于語(yǔ)言建模這類(lèi)序列問(wèn)題承边,一直認(rèn)為循環(huán)神經(jīng)網(wǎng)絡(luò)的性能會(huì)優(yōu)于卷積神經(jīng)網(wǎng)絡(luò)遭殉。然而,Dauphin et al. (2016)嘗試采用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行語(yǔ)言建模博助,并引入了門(mén)限單元來(lái)降低深層卷積網(wǎng)絡(luò)的訓(xùn)練難度险污,取得了出乎意料的成功,其模型的結(jié)構(gòu)如圖3所示富岳。
? ? ? ?與上述的神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型相比蛔糯,除了神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)不同之外,卷積神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型的輸入數(shù)據(jù)的形式也有所改變窖式。對(duì)當(dāng)前詞進(jìn)行預(yù)測(cè)時(shí)蚁飒,將上文詞序列的詞向量按順序進(jìn)行拼接,形成特征矩陣
萝喘。卷積核的高度與向量的大小一致淮逻,需要設(shè)計(jì)多種寬度的卷積核琼懊,并且相同尺寸的卷積核可以有多個(gè),然后在特征矩陣
上進(jìn)行一維卷積爬早,采用最大池化(Maxpooling)操作得到最終的特征向量哼丈。該特征向量作為網(wǎng)絡(luò)輸出層的輸入,而輸出層與上述神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型一致筛严。Dauphin et al. (2016)使用的實(shí)驗(yàn)語(yǔ)料庫(kù)為百萬(wàn)級(jí)詞語(yǔ)料庫(kù)(One Billion Word Bench, OBWB)醉旦,實(shí)驗(yàn)結(jié)果如下表所示:
序號(hào) | 模型 | PPL | 備注 |
---|---|---|---|
01 | 長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型 | 43.9 | 1層,2048個(gè)節(jié)點(diǎn)桨啃,1GPU |
02 | 長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型 | 39.8 | 2層车胡,2048個(gè)節(jié)點(diǎn) ,1GPU |
03 | 長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型 | 30.6 | 2層照瘾,分別為8192匈棘,1024個(gè)節(jié)點(diǎn),32GPUs |
04 | 卷積神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型 | 38.1 | 13層网杆,1268個(gè)節(jié)點(diǎn)羹饰,1GPU |
根據(jù)上表的數(shù)據(jù),取得最好結(jié)果的模型是長(zhǎng)短期記憶循環(huán)神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型碳却,但是該模型的規(guī)模巨大队秩,訓(xùn)練成本非常高。在訓(xùn)練成本相當(dāng)?shù)那闆r下昼浦,卷積神經(jīng)網(wǎng)絡(luò)由于并行性較高馍资,可以采用較大規(guī)模的網(wǎng)絡(luò)結(jié)構(gòu),得到與長(zhǎng)短期記憶循環(huán)神經(jīng)網(wǎng)絡(luò)相當(dāng)?shù)慕Y(jié)果关噪∧裥罚可以說(shuō)卷積神經(jīng)網(wǎng)絡(luò)與基于注意力機(jī)制的轉(zhuǎn)換網(wǎng)絡(luò)(Transformer)類(lèi)似,主要優(yōu)勢(shì)在于高并行性使兔,能夠訓(xùn)練規(guī)模較大的模型建钥。但在語(yǔ)言建模這類(lèi)時(shí)序問(wèn)題上仍存在明顯的缺陷,首先由于卷積網(wǎng)絡(luò)的平移不變性虐沥,無(wú)法區(qū)分詞的順序熊经,針對(duì)這個(gè)問(wèn)題的解決方法是引入了位置向量。另一個(gè)問(wèn)題是卷積網(wǎng)絡(luò)不能學(xué)習(xí)時(shí)序上的長(zhǎng)期依賴(lài)關(guān)系欲险,只是從詞序列中提取出豐富的N-gram特征镐依。對(duì)于循環(huán)神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò),哪個(gè)更適合用于語(yǔ)言建模并沒(méi)有確定的結(jié)論天试,但需要明白各自的優(yōu)劣槐壳。循環(huán)神經(jīng)網(wǎng)絡(luò)可以學(xué)習(xí)時(shí)序上的長(zhǎng)期依賴(lài)關(guān)系,但由于計(jì)算量的問(wèn)題限制了模型的規(guī)模喜每;而卷積神經(jīng)網(wǎng)絡(luò)雖然缺乏長(zhǎng)期依賴(lài)關(guān)系的表示能力务唐,但由于其高并行性雳攘,可以訓(xùn)練較大規(guī)模的網(wǎng)絡(luò),提取豐富的N-gram特征绍哎。
4. 概括總結(jié)
? ? ? ?相對(duì)于傳統(tǒng)的語(yǔ)言建模技術(shù)来农,神經(jīng)網(wǎng)絡(luò)語(yǔ)言建模技術(shù)具有顯著的優(yōu)勢(shì)。采用分布式表示方法崇堰,將詞映射到連續(xù)空間,有效地解決了數(shù)據(jù)稀疏問(wèn)題涩咖,并且獲得的詞向量能夠體現(xiàn)出詞與詞之間的相似性海诲。另外,由于神經(jīng)網(wǎng)絡(luò)的強(qiáng)大的模式學(xué)習(xí)能力檩互,在采用PP L為性能指標(biāo)時(shí)特幔,神經(jīng)網(wǎng)絡(luò)語(yǔ)言建模遠(yuǎn)優(yōu)于傳統(tǒng)的語(yǔ)言建模方法。在多種神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)中闸昨,循環(huán)神經(jīng)網(wǎng)絡(luò)與卷積神經(jīng)網(wǎng)絡(luò)均優(yōu)于前向網(wǎng)絡(luò)蚯斯,而兩者不分伯仲,各有優(yōu)劣饵较。其中拍嵌,循環(huán)神經(jīng)網(wǎng)絡(luò)的諸多變形中,以長(zhǎng)短期記憶循環(huán)神經(jīng)網(wǎng)絡(luò)的性能最佳循诉。雖然神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型目前取得最好的結(jié)果横辆,但仍然存在諸多需要進(jìn)行改進(jìn)的問(wèn)題。近十幾年茄猫,許多優(yōu)化技術(shù)被提出用于改進(jìn)神經(jīng)網(wǎng)絡(luò)語(yǔ)言建模的性能狈蚤。針對(duì)神經(jīng)網(wǎng)絡(luò)語(yǔ)言建模的研究基本可以分為兩個(gè)方向,其一是減少神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型的計(jì)算量划纽,包括訓(xùn)練階段和預(yù)測(cè)階段脆侮;另一個(gè)方向是改變數(shù)據(jù)的輸入形式,從而引入更多的自然語(yǔ)言中的模式勇劣,從而提高模型的性能靖避。
? ? ? ?神經(jīng)網(wǎng)絡(luò)語(yǔ)言建模在實(shí)際應(yīng)用中的最大障礙就是其計(jì)算量過(guò)大,導(dǎo)致無(wú)法滿(mǎn)足實(shí)時(shí)性要求芭毙,因此在語(yǔ)音識(shí)別的實(shí)際應(yīng)用中筋蓖,仍然傾向于采用N-gram語(yǔ)言模型。甚至在沒(méi)有實(shí)時(shí)性要求的應(yīng)用場(chǎng)合退敦,其計(jì)算的時(shí)間成本也是不能接受的粘咖。神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型的計(jì)算量主要集中在模型的輸出層,模型的輸出層的網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)等于詞典的大小侈百,一般能達(dá)到幾十萬(wàn)瓮下,甚至幾百萬(wàn)翰铡。由于需要采用Softmax對(duì)輸出概率進(jìn)行歸一化處理,不可避免的需要對(duì)所有節(jié)點(diǎn)進(jìn)行計(jì)算讽坏,導(dǎo)致較大的計(jì)算量锭魔。降低神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型的計(jì)算量的研究,也就主要是減少輸出層的計(jì)算量路呜。迄今為止迷捧,已有許多優(yōu)化技術(shù)被提出,用于加速神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型的計(jì)算胀葱,包括重要性采樣(Importance Sampling)漠秋、層級(jí)Softmax(Hierarchical Softmax)、噪聲對(duì)比評(píng)估(Noise Contrastive Estimation, NCE)等抵屿。這些優(yōu)化技術(shù)均能夠有效的改善神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型的計(jì)算速度庆锦,但其中部分只能夠加速訓(xùn)練階段的計(jì)算,如重要性采樣和噪聲對(duì)比評(píng)估轧葛,并且大多數(shù)都是以犧牲模型精度為代價(jià)搂抒。這些加速技術(shù)在實(shí)際應(yīng)用中也會(huì)存在諸多問(wèn)題,而且時(shí)間成本仍然相對(duì)較高尿扯,因此仍然需要研究出更有效的加速技術(shù)求晶。
? ? ? ?在神經(jīng)網(wǎng)絡(luò)語(yǔ)言建模中,文本數(shù)據(jù)的表示可以分為兩個(gè)層面:句子和詞姜胖。針對(duì)這兩個(gè)層面的數(shù)據(jù)表示誉帅,都有許多研究成果被提出,尤其是針對(duì)詞的表達(dá)右莱,目的均是希望將更多的自然語(yǔ)言中的模式輸入語(yǔ)言模型中蚜锨。語(yǔ)言建模過(guò)程中,文本的最小表示單位為詞慢蜓,并采用分布式表示方式亚再,即通常所說(shuō)的詞向量。然而晨抡,語(yǔ)言(更準(zhǔn)確地講是文字系統(tǒng))的最小表示單位并不是詞氛悬,如英文的詞由多個(gè)字母組成,中文的詞由一個(gè)或多個(gè)字符組成耘柱,而單個(gè)字符又可以拆分為偏旁部首如捅,韓文的詞一般也有多個(gè)字符,字符又有多個(gè)音節(jié)字符调煎。豐富詞表示的方法就將字符級(jí)別或者更低級(jí)別的信息引入到詞向量中镜遣。目前相關(guān)的研究大多針對(duì)特定的語(yǔ)言進(jìn)行,甚至需要對(duì)應(yīng)語(yǔ)言的專(zhuān)業(yè)知識(shí)士袄。對(duì)于句子層面悲关,研究的目的則是在預(yù)測(cè)當(dāng)前詞時(shí)谎僻,能夠同時(shí)利用上下文的信息,而不是只利用單向的文本信息寓辱。
作者:施孫甲由 (原創(chuàng))