神經(jīng)網(wǎng)絡(luò)語(yǔ)言建模系列之一:基礎(chǔ)模型


近十幾年李茫,神經(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è)w_0,w_1,w_2,\cdots,w_T為來(lái)源于某種自然語(yǔ)言的詞序列,語(yǔ)言建模的目的就是構(gòu)建該自然語(yǔ)言中詞序列的分布武翎,然后用于評(píng)估某個(gè)詞序列的概率烈炭。如果給定的詞序列符合語(yǔ)用習(xí)慣,則給出高概率宝恶,否則給出低概率符隙。在語(yǔ)言建模過(guò)程中,采用了鏈?zhǔn)椒▌t卑惜,單個(gè)詞序列的概率被分解為序列中各個(gè)詞的條件概率的乘積膏执,而每個(gè)詞的條件概率為給定其上文時(shí)的該詞出現(xiàn)的概率。因此露久,上述詞序列的概率可表示為:

p(w_0^{T}) = \sum_{t=0}^{T}p(w_t|w_0^{t-1})

不難看出更米,上述模型的成立時(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ù)蒋情,即:

L =\frac{1}{T}\sum_{t=0}^{T}\log(p(w_t|w_0^{t-1}, \theta)) + R(\theta)

其中丁眼,\theta為語(yǔ)言模型的參數(shù)筷凤,R(\theta)為正則項(xiàng)。

? ? ? ?語(yǔ)言模型的性能通常采用困惑度(Perplexity, PPL)來(lái)衡量苞七,困惑度的定義如下:

PPL = \sqrt[T]{\prod^{T}_{i=0}\frac{1}{P(w_{i}{\mid}w_{0}^{i-1})}}=2^{-\frac{1}{T}\sum^{T}_{i=0}log_2P(w_{i}{\mid}w_{0}^{i-1})}

困惑度藐守,即模型編碼數(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ò)一般可表示為:

y =V\cdot{f(U{\cdot}x + b)} + M{\cdot}x + d

其中坦弟,U\in\mathbb{R}^{n_h\times{n_i}}V\in\mathbb{R}^{n_o\times{n_h}}為權(quán)重矩陣官地,n_i為輸入層的節(jié)點(diǎn)數(shù)酿傍, n_h為隱層的節(jié)點(diǎn)數(shù),n_o輸出層的節(jié)點(diǎn)數(shù)驱入,在語(yǔ)言模型中等于詞典的大小赤炒,M\in\mathbb{R}^{n_o\times{n_i}}為直接連接輸入層與輸出層的權(quán)重矩陣,b\in\mathbb{R}^{n_h}d\in\mathbb{R}^{n_o}分別為隱層和輸出層的偏置項(xiàng)亏较,y為輸出向量可霎,f(\cdot)為激活函數(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模型相似的方法處理上文信息,只考慮前n-1個(gè)詞叉讥,則當(dāng)前詞的條件概率近似地表示為:

p(w_t|w_0^{t-1}) \approx p(w_t|w_{t-n+1}^{t-1})

此處窘行,又引入了另一個(gè)假設(shè),即當(dāng)前詞只依賴(lài)于前n-1個(gè)詞图仓。

圖1 前向神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型

? ? ? ?建立語(yǔ)言模型的首要工作是從訓(xùn)練數(shù)據(jù)集中構(gòu)建詞典\mathcal{V}罐盔,并為每個(gè)詞賦予唯一的索引,然后構(gòu)建特征矩陣\mathcal{C}\in\mathbb{R}^{k{\times}m}救崔,其中k為詞典的大小惶看,m為特征向量的大小。特征矩陣\mathcal{C}的每行為對(duì)應(yīng)詞的特性向量六孵,即詞向量纬黎,通過(guò)詞的索引進(jìn)行查找。當(dāng)對(duì)當(dāng)前詞w_t進(jìn)行預(yù)測(cè)時(shí)劫窒,取其前n-1個(gè)詞的詞向量本今,并按照序列順序進(jìn)行拼接,形成模型的輸入向量x_{t-1}\in\mathbb{R}^{n_i},其中n_i = (n-1){\times}m诈泼。模型的輸出y\in\mathbb{R}^{k}為當(dāng)前上文信息下懂拾,詞典中各個(gè)詞的非歸一化的條件概率,需要采用Softmax函數(shù)對(duì)輸出概率進(jìn)行歸一化铐达,即:

p(v_i|w_{t-n+1}^{t-1}) = \frac{e^{y(v_{i},w_{t-n+1}^{t-1})}}{\sum_{j=1}^{k}e^{y(v_{j},w_{t-n+1}^{t-1})}}, i = 1, 2, ..., k

? ? ? ?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)可以表示為:

\begin{eqnarray} s_t &=& f(U{\cdot}x_t + W{\cdot}s_{t-1} + b) \\ y_t &=& V{\cdot}s_t + M{\cdot}x_t + d \end{eqnarray}

其中笋籽,W\in\mathbb{R}^{n_h{\times}n_h}為權(quán)重矩陣,s_t\in\mathbb{R}^{n_h}t時(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所示。

圖2 循環(huán)神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型

? ? ? ?循環(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)可表示為:

\begin{eqnarray} i_t &=& \sigma(U_i{\cdot}x_t + W_i{\cdot}s_{t-1} + V_i{\cdot}c_{t-1} + b_i) \\ f_t &=& \sigma(U_f{\cdot}x_t + W_f{\cdot}s_{t-1} + V_f{\cdot}c_{t-1} + b_f) \\ g_t &=& f(U{\cdot}x_t + W{\cdot}s_{t-1} + V{\cdot}c_{t-1} + b) \\ c_t &=& f_t * c_{t-1} + i_t * g_t \\ o_t &=& \sigma(U_o{\cdot}x_t + W_o{\cdot}s_{t-1} + V_o{\cdot}c_{t} + b_o) \\ s_t &=& o_t * f(c_t) \\ y_t &=& V{\cdot}s_t +M{\cdot}x_t + d \end{eqnarray}
其中,i_t情组,f_t燥筷,o_t\in\mathbb{R}^{n_h}分別為輸入門(mén)、遺忘門(mén)和輸出門(mén)院崇,c_t\in\mathbb{R}^{n_h}為內(nèi)部記憶單元肆氓,U_iU_f底瓣,U_i谢揪, U\in\mathbb{R}^{n_h\times{n_i}}W_iW_f拨扶,W_o凳鬓,W\in\mathbb{R}^{n_h\times{n_h}}V_i患民,V_f缩举,V_oV\in\mathbb{R}^{n_h\times{n_h}}酒奶,M\in\mathbb{R}^{n_o\times{n_i}}均是權(quán)重矩陣蚁孔,b_ib_f惋嚎,b_o杠氢,b\in\mathbb{R}^{n_h}d\in\mathbb{R}^{n_o}為偏置項(xiàng),f(\cdot)為隱層的激活函數(shù)另伍,\sigma(\cdot)門(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)可以表示為:
\begin{eqnarray} r_t &=& \sigma(U_r{\cdot}x_t + W_r{\cdot}s_{t-1} + b_r) \\ z_t &=& \sigma(U_z{\cdot}x_t + W_z{\cdot}s_{t-1} + b_z) \\ g_t &=& f(U{\cdot}x_t + W{\cdot}(r_t * s_{t-1}) + b) \\ s_t &=& z_t * s_{t-1} + (1 - z_t) * g_t \\ y_t &=& V{\cdot}s_t +M{\cdot}x_t + d \end{eqnarray}
其中,r_t\in\mathbb{R}^{n_h}為重置門(mén)投放,z_t\in\mathbb{R}^{n_h}為更新門(mén)奈泪,U_rU_z灸芳,U\in\mathbb{R}^{n_h\times{n_i}}涝桅,W_rW_z烙样,W\in\mathbb{R}^{n_h\times{n_h}}苹支,V\in\mathbb{R}^{n_h\times{n_h}}M\in\mathbb{R}^{n_o\times{n_i}}均為權(quán)重矩陣误阻,b_rb_zb\in\mathbb{R}^{n_h}d\in\mathbb{R}^{n_o}為偏置項(xiàng)究反,f(\cdot)為隱層的激活函數(shù)寻定,\sigma(\cdot)門(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所示富岳。

圖3 卷積神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型

? ? ? ?與上述的神經(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)前詞w_t進(jìn)行預(yù)測(cè)時(shí)蚁飒,將上文詞序列的詞向量按順序進(jìn)行拼接,形成特征矩陣\mathcal{F}\in\mathbb{R}^{m{\times}t}萝喘。卷積核的高度與向量的大小一致淮逻,需要設(shè)計(jì)多種寬度的卷積核琼懊,并且相同尺寸的卷積核可以有多個(gè),然后在特征矩陣\mathcal{F}上進(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))

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末艘绍,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子秫筏,更是在濱河造成了極大的恐慌诱鞠,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,682評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件跳昼,死亡現(xiàn)場(chǎng)離奇詭異般甲,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)鹅颊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)墓造,“玉大人堪伍,你說(shuō)我怎么就攤上這事∶倜觯” “怎么了帝雇?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,083評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)蛉拙。 經(jīng)常有香客問(wèn)我尸闸,道長(zhǎng),這世上最難降的妖魔是什么孕锄? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,763評(píng)論 1 295
  • 正文 為了忘掉前任吮廉,我火速辦了婚禮,結(jié)果婚禮上畸肆,老公的妹妹穿的比我還像新娘宦芦。我一直安慰自己,他們只是感情好轴脐,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,785評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布调卑。 她就那樣靜靜地躺著,像睡著了一般大咱。 火紅的嫁衣襯著肌膚如雪恬涧。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,624評(píng)論 1 305
  • 那天碴巾,我揣著相機(jī)與錄音溯捆,去河邊找鬼。 笑死餐抢,一個(gè)胖子當(dāng)著我的面吹牛现使,可吹牛的內(nèi)容都是我干的低匙。 我是一名探鬼主播,決...
    沈念sama閱讀 40,358評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼碳锈,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼顽冶!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起售碳,我...
    開(kāi)封第一講書(shū)人閱讀 39,261評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤强重,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后贸人,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體间景,經(jīng)...
    沈念sama閱讀 45,722評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年艺智,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了倘要。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,030評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡十拣,死狀恐怖封拧,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情夭问,我是刑警寧澤泽西,帶...
    沈念sama閱讀 35,737評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站缰趋,受9級(jí)特大地震影響捧杉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜秘血,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,360評(píng)論 3 330
  • 文/蒙蒙 一味抖、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧直撤,春花似錦非竿、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,941評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至蓖乘,卻和暖如春锤悄,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背嘉抒。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,057評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工零聚, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,237評(píng)論 3 371
  • 正文 我出身青樓隶症,卻偏偏與公主長(zhǎng)得像政模,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蚂会,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,976評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容