深度學(xué)習(xí)正在給自然語言處理帶來巨大的變革。但是,作為一個(gè)初學(xué)者,要從哪里起步才好呢?深度學(xué)習(xí)和自然語言處理都是很寬泛的領(lǐng)域。哪些方面才是最重要的,還有,深度學(xué)習(xí)又是從哪個(gè)層面深刻影響了 NLP 呢?
1. 關(guān)于這篇論文
這篇論文的標(biāo)題是「基于神經(jīng)網(wǎng)絡(luò)模型的自然語言處理入門」(A Primer on Neural Network Models for Natural Language Processing)。
對(duì)應(yīng)的論文 2015 年發(fā)表在 ArXiv 上。與其說是論文,不如說是一篇技術(shù)報(bào)告或者說是教程,面向研究員和學(xué)生,對(duì)基于深度學(xué)習(xí)方法的自然語言處理(NLP)作了綜合性的介紹。
這篇教程審視了針對(duì)自然語言處理的研究的幾個(gè)深度學(xué)習(xí)模型,以求自然語言的研究能加快神經(jīng)網(wǎng)絡(luò)技術(shù)的發(fā)展。
入門教程由曾是 Google Research 科學(xué)家和 NLP 研究員的 Yoav Goldberg (https://www.cs.bgu.ac.il/~yoavg/uni/) 編寫。這是一篇技術(shù)報(bào)告,有大約 62 頁以及 13 頁的參考文獻(xiàn)。
這對(duì)于初學(xué)者來說是很理想的教材,因?yàn)椋?/p>
它對(duì)讀者的基礎(chǔ)要求不高,不需要對(duì)先了解機(jī)器學(xué)習(xí)和語言處理的相關(guān)知識(shí);
涉及領(lǐng)域?qū)挿海撕芏嗌疃葘W(xué)習(xí)方法和自然語言處理的問題。
在這篇教程中,我希望能為 NLP 開發(fā)者和新手介紹一些基礎(chǔ)背景知識(shí),術(shù)語,實(shí)用工具以及方法論,從而明白其背后的神經(jīng)網(wǎng)絡(luò)模型的理論,應(yīng)用到他們自己的工作中。.. 面向的是那些有志于利用已有的,有價(jià)值的技術(shù),并創(chuàng)造新方法去解決他們最感興趣的 NLP 的人。
通常情況下,在語言學(xué)和自然語言處理中,關(guān)鍵的深度學(xué)習(xí)方法需要翻模(重命名)以建立有用的溝通橋梁。
最后,這篇 2015 年的入門教程在 2017 年出書了,書名為「Neural Network Methods for Natural Language Processing (http://amzn.to/2tXn2dZ)」。
2. 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
這一小節(jié)將介紹神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的不同類型,作為后面章節(jié)的參照。
全連接前饋神經(jīng)網(wǎng)絡(luò)是非線性學(xué)習(xí)器,因此在極大程度上可以隨意取代線性學(xué)習(xí)器。
這里介紹 4 種類型的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),這里著重介紹其應(yīng)用案例和參考文獻(xiàn):
全連接前饋神經(jīng)網(wǎng)絡(luò),例如多層感知網(wǎng)絡(luò);
帶有卷積和池化層的網(wǎng)絡(luò),例如卷積神經(jīng)網(wǎng)絡(luò);
循環(huán)神經(jīng)網(wǎng)絡(luò),例如長(zhǎng)短時(shí)記憶網(wǎng)絡(luò);
遞歸神經(jīng)網(wǎng)絡(luò)。
如果你只對(duì)應(yīng)用感興趣,以上內(nèi)容將為你提供直接尋找更多資源的線索。
3. 特征表示
這一節(jié)著重介紹深度學(xué)習(xí)模型訓(xùn)練稀疏或者密集型表示的各種方法。
也許,從稀疏輸入(sparse-input)線性模型到神經(jīng)網(wǎng)絡(luò)模型最大的飛躍,就是放棄將每一個(gè)特征作為一個(gè)維度的表示方式(所謂的 one-hot 表示),而使用密集型向量的表示方式。
NLP 分類系統(tǒng)的一般結(jié)構(gòu)總結(jié)如下:
提取核心語言特征的集合;
為每一個(gè)向量檢索關(guān)聯(lián)向量;
組合特征向量;
將組合向量反饋給非線性分類器。
這個(gè)結(jié)構(gòu)的關(guān)鍵在于使用密集型特征向量而不是稀疏特征向量,使用核心特征而不是特征組合。
需要注意在特征提取階段中,神經(jīng)網(wǎng)絡(luò)只有提取核心特征。這和傳統(tǒng)的基于線性模型的 NLP 不同,傳統(tǒng)的 NLP 的特征設(shè)計(jì)必須手動(dòng)設(shè)置以明確規(guī)定核心特征和其中的相互作用。
4. 前饋神經(jīng)網(wǎng)絡(luò)
這一節(jié)將提供前饋人工神經(jīng)網(wǎng)絡(luò)的速成課程。
以「A Primer on Neural Network Models for Natural Language Processing」中含兩個(gè)隱藏層的前饋神經(jīng)網(wǎng)絡(luò)為例。這些神經(jīng)網(wǎng)絡(luò)都是使用數(shù)學(xué)概念和腦啟發(fā)的形式而表示出來的。通常神經(jīng)網(wǎng)絡(luò)的研究論題包括如下幾個(gè):
表示能力(e.g. 一般近似);
一般非線性特征(e.g. 變換函數(shù));
輸出的變換(e.g. softmax);
詞匯嵌入(e.g. 嵌入式學(xué)習(xí)的密集型表征);
損失函數(shù)(e.g. 折葉(ReLU)和對(duì)數(shù)損失函數(shù))。
5. 詞嵌入
對(duì)于自然語言處理的神經(jīng)網(wǎng)絡(luò)方法來說,詞嵌入表征是很重要的論題。這一節(jié)將展開這一論題并舉幾個(gè)關(guān)鍵方法的例子。神經(jīng)網(wǎng)絡(luò)在 NLP 中的流行一個(gè)重要原因是嵌入方法的使用,在低維空間中將每一個(gè)特征表征為一個(gè)向量。我們將回顧以下幾個(gè)關(guān)于嵌入的論題:
隨機(jī)初始化(e.g. 以統(tǒng)一的隨機(jī)向量啟動(dòng));
有監(jiān)督特定任務(wù)的預(yù)訓(xùn)練(e.g. 遷移學(xué)習(xí));
無監(jiān)督預(yù)訓(xùn)練(e.g. 統(tǒng)計(jì)方法,如 word2vec 和 GloVe);
訓(xùn)練目標(biāo)(e.g. 目標(biāo)對(duì)輸出向量的影響);
上下文的選擇(e.g. 每一個(gè)詞受到的周圍的詞的影響)。
神經(jīng)詞嵌入方法源于語言模型化方法,即訓(xùn)練網(wǎng)絡(luò)以通過上文序列預(yù)測(cè)下一個(gè)詞。
6. 神經(jīng)網(wǎng)絡(luò)訓(xùn)練
這一節(jié)篇幅較大,著重介紹神經(jīng)網(wǎng)絡(luò)的訓(xùn)練方式,面向?qū)ι窠?jīng)網(wǎng)絡(luò)范式不熟悉的讀者。神經(jīng)網(wǎng)絡(luò)的訓(xùn)練是通過梯度方法,嘗試在一個(gè)訓(xùn)練數(shù)據(jù)集內(nèi)最小化損失函數(shù)的過程。
這一節(jié)重點(diǎn)關(guān)注隨機(jī)梯度下降(以及類似的 mini-batch)以及訓(xùn)練過程中的正則化方法。
有趣的是,神經(jīng)網(wǎng)絡(luò)的計(jì)算圖觀點(diǎn)的提出為一些實(shí)現(xiàn)深度學(xué)習(xí)模型的符號(hào)化數(shù)值程序庫(kù)(symbolic numerical libraries),如 Theano 和 TensorFlow 提供了很好的入門方法。
只要圖被建立起來,就能很直觀的理解前向計(jì)算(計(jì)算輸出結(jié)果)或者方向計(jì)算(計(jì)算梯度)。
7. 級(jí)聯(lián)(Cascading)和多任務(wù)學(xué)習(xí)
這一節(jié)將在前一節(jié)的基礎(chǔ)上,我們將總結(jié)級(jí)聯(lián) NLP 模型和多語言任務(wù)的學(xué)習(xí)模型。
級(jí)聯(lián)模型:利用神經(jīng)網(wǎng)絡(luò)模型的計(jì)算圖定義加入中間表征(編碼)以建立更加復(fù)雜的模型。例如,我們可以通過近鄰詞匯,以及/或者其組成特征建立一個(gè)前饋網(wǎng)絡(luò)來預(yù)測(cè)詞匯。
多任務(wù)學(xué)習(xí):各種相關(guān)的語言預(yù)測(cè)任務(wù),并不互相反饋,但會(huì)在任務(wù)中分享信息。
預(yù)測(cè)命名實(shí)體的邊界,以及語句的下一個(gè)詞匯,都依賴于一些潛在的句法-語義表征上。這些高級(jí)概念都是在神經(jīng)網(wǎng)絡(luò)語境中描述的,以在模型之間建立關(guān)聯(lián)的理解,或者在訓(xùn)練過程(誤差反向傳播)和預(yù)測(cè)過程中,共享信息。
8. 結(jié)構(gòu)化輸出的預(yù)測(cè)
這一節(jié)關(guān)注使用深度學(xué)習(xí)方法進(jìn)行結(jié)構(gòu)化預(yù)測(cè)的幾個(gè)自然語言處理任務(wù)的例子,比如,序列、決策樹和計(jì)算圖。
典型例子有序列標(biāo)注(e.g. 詞性標(biāo)注)的序列分割(分組,NER(命名實(shí)體識(shí)別)),以及句法分析。本節(jié)內(nèi)容包括基于貪婪算法的和以搜索為核心的結(jié)構(gòu)化預(yù)測(cè),而主要集中討論后者。
以搜索為核心是自然語言結(jié)構(gòu)化預(yù)測(cè)的一般方法。
9. 卷積層
這一節(jié)提供了卷積神經(jīng)網(wǎng)絡(luò)的速成課程,以及討論卷積網(wǎng)絡(luò)對(duì)自然語言處理研究帶來的變革。CNN 被證明在自然語言處理的分類任務(wù)上表現(xiàn)出色,比如情緒分析,e.g. 在文中尋找特定的子序列或者結(jié)構(gòu)進(jìn)行預(yù)測(cè)。
卷積神經(jīng)網(wǎng)絡(luò)一般被設(shè)計(jì)成在大型結(jié)構(gòu)中用以識(shí)別 indicative local predictors,并將其組合以生成結(jié)構(gòu)的固定大小的向量表征,捕捉這些 local aspects 對(duì)于預(yù)測(cè)任務(wù)來說是很有用的。
10. 循環(huán)神經(jīng)網(wǎng)絡(luò)
正如前一節(jié)一樣,這一節(jié)也將介紹一種特定的網(wǎng)絡(luò)和其在 NLP 中的應(yīng)用。比如,應(yīng)用 RNN 的序列建模。
循環(huán)神經(jīng)網(wǎng)絡(luò)允許在一個(gè)固定大小的向量中表示任意大小的結(jié)構(gòu)化輸入,而只關(guān)心輸入的結(jié)構(gòu)化性質(zhì)。
由于 RNNs 在 NLP 中很受歡迎,尤其是 LSTM,這一節(jié)將討論如下幾個(gè)關(guān)于循環(huán)的論題和模型:
RNN 抽象概念(e.g. 網(wǎng)絡(luò)圖中的循環(huán)連接);
RNN 訓(xùn)練過程(e.g. 沿時(shí)間的反向傳播);
多層(堆疊)RNN(e.g. 深度學(xué)習(xí)的「深」的解釋);
BI-RNN(e.g. 前向和反向序列作為輸入);
用于表示的 RNN 堆疊。
我們將集中討論 RNN 模型結(jié)構(gòu)或者結(jié)構(gòu)元素中,特別是:
接收器(acceptor):在完整輸入序列之后的輸出的損失計(jì)算;
編碼器(encoder):最后的向量作為輸入序列的編碼器;
變換器(transducer):在輸入序列中,每一次觀測(cè)生成一個(gè)輸出;
編碼器-譯碼器(encoder-decoder):輸入序列在被譯碼成輸出序列之前,編碼成一個(gè)固定長(zhǎng)度的向量。
11. 具體的 RNN 結(jié)構(gòu)
這一節(jié)將在上一節(jié)的基礎(chǔ)上討論特定的 RNN 算法。比如:
簡(jiǎn)單 RNN(SRNN);
長(zhǎng)短時(shí)記憶(LSTM);
門控循環(huán)單元(GRU)。
12. 模型建模
最后一節(jié)著重討論一種更加復(fù)雜的網(wǎng)絡(luò),學(xué)習(xí)樹型建模的遞歸神經(jīng)網(wǎng)絡(luò)。所謂的樹包括了句法樹,話語樹,甚至是表示(由一句話的幾個(gè)部分表達(dá)的)情緒的樹。我們希望在特定的樹節(jié)點(diǎn)上預(yù)測(cè)價(jià)值,價(jià)值預(yù)測(cè)以根節(jié)點(diǎn)為基礎(chǔ),或者為整棵樹或者部分樹指定一個(gè)預(yù)測(cè)值。
正如循環(huán)神經(jīng)網(wǎng)絡(luò)保持輸入序列的狀態(tài),遞歸神經(jīng)網(wǎng)絡(luò)保持樹節(jié)點(diǎn)的狀態(tài)。
這里有一個(gè)遞歸神經(jīng)網(wǎng)絡(luò)的例子,取自「A Primer on Neural Network Models for Natural Language Processing.」
-
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5554瀏覽量
122491 -
自然語言處理
+關(guān)注
關(guān)注
1文章
628瀏覽量
14021 -
nlp
+關(guān)注
關(guān)注
1文章
490瀏覽量
22487
發(fā)布評(píng)論請(qǐng)先 登錄
評(píng)論