2017-基于DL的NLP研究近況

注:《Recent Trends in Deep Learning Based Natural Language Processing》的閱讀筆記,供內(nèi)部同事和有需要的朋友參考,首次閱讀NLP相關(guān)論文,如有不足歡迎指正。

1. 簡介

近幾年應(yīng)用DL方法解決NLP問題的熱度大增,主要得益于詞嵌入以及深度學(xué)習(xí)方法的成功。
比較常見的NLP典型任務(wù):

NER:命名實(shí)體識別(Named Entity Recognition,簡稱NER),又稱作“專名識別”,是指識別文本中具有特定意義的實(shí)體,主要包括人名、地名、機(jī)構(gòu)名、專有名詞等。
例子:Harry Potter meets Hermione Granger in Hogwarts.

SRL:語義角色標(biāo)注 (Semantic Role Labeling, SRL) 是一種淺層的語義分析技術(shù),標(biāo)注句子中某些短語為給定謂詞的論元 (語義角色) ,如施事、受事、時(shí)間和地點(diǎn)等。其能夠?qū)柎鹣到y(tǒng)、信息抽取和機(jī)器翻譯等應(yīng)用產(chǎn)生推動作用。
例子:Voldemort(施事) kills(謂詞) Cedric(受事) in graveyard(地點(diǎn)) last night(時(shí)間)

POS tagging:詞性標(biāo)注(Part-of-Speech tagging 或POS tagging),又稱詞類標(biāo)注或者簡稱標(biāo)注,是指為分詞結(jié)果中的每個(gè)單詞標(biāo)注一個(gè)正確的詞性的程序,也即確定每個(gè)詞是名詞、動詞、形容詞或其他詞性的過程。在漢語中,詞性標(biāo)注比較簡單,因?yàn)闈h語詞匯詞性多變的情況比較少見,大多詞語只有一個(gè)詞性,或者出現(xiàn)頻次最高的詞性遠(yuǎn)遠(yuǎn)高于第二位的詞性。

  • 文章結(jié)構(gòu)
    部分2介紹深度學(xué)習(xí)的基礎(chǔ):分布式表示的概念;部分3,4,5介紹各種深度學(xué)習(xí)算法以及其應(yīng)用于NLP任務(wù)的方式;部分6介紹強(qiáng)化學(xué)習(xí)和無監(jiān)督學(xué)習(xí)在NLP和語句表達(dá)學(xué)習(xí)的進(jìn)展;部分7介紹了記憶模塊和深度學(xué)習(xí)的結(jié)合;部分8總結(jié)了深度學(xué)習(xí)模型在NLP任務(wù)標(biāo)準(zhǔn)數(shù)據(jù)集上的表現(xiàn)。

2. 分布式表示

在分布式表示被提出之前,最常用的表征方法為one-hot編碼,即每個(gè)單詞會被轉(zhuǎn)換成一個(gè)獨(dú)特的二元向量,且只有一個(gè)非零項(xiàng)。這種方法嚴(yán)重地受到了稀疏性的影響,不能用來表示任何帶有特定含義的詞語。而N元模型(n-grams)在模擬廣義情境時(shí)嚴(yán)重受到了“維度災(zāi)難(curse of dimensionality)”問題的影響。
對于這種情況,科學(xué)家們想出來一個(gè)辦法,這個(gè)辦法是根據(jù)一個(gè)著名的假設(shè)——共現(xiàn)假設(shè),即一個(gè)詞可以用它周圍的詞來表示它。
基于這樣一種假設(shè),出現(xiàn)了共現(xiàn)矩陣來解決問題。

例如,對于三句話:“i like u”,“u like dog”,“i like cat”

他們的共現(xiàn)矩陣就是:


共現(xiàn)矩陣也存在著很大的缺點(diǎn),首先矩陣很稀疏,可以看到圖中很多地方為0,而對于不相似的句子,矩陣則更為稀疏。

如果想要降維,一般就會用到SVD矩陣分解。

SVD的缺點(diǎn)就是運(yùn)算量太大了,這對于數(shù)以(沒法以數(shù)計(jì))的文本內(nèi)容來說,不具備可操作性。
2003年,Bengio提出了一個(gè)思路:詞可以通過矩陣來表示,而svd就是把這個(gè)維度降低,也就是說我們可以通過低維度的矩陣來表示整篇文章,每個(gè)詞用一個(gè)向量來表示,基于以下幾點(diǎn)假設(shè),構(gòu)建Neural Network Language Model模型。

  1. 假定每一個(gè)詞我們都可以用一個(gè)向量來表示
  2. 我們有個(gè)模型,可以把一個(gè)詞向量的輸入,通過加權(quán)計(jì)算得出這段序列新的詞向量輸出
  3. 將詞的權(quán)重與概率模型中的參數(shù)結(jié)合,一起學(xué)習(xí)
NNLM

如上,就是一個(gè)完整的輸入到輸出的NNLM過程,我們希望得到的矩陣是C,通過不斷優(yōu)化(優(yōu)化方式可以有很多選擇,比如梯度下降等)。

這個(gè)模型中間的tanh就是隱層,通過結(jié)合下邊的輸入矩陣來不斷計(jì)算,不斷優(yōu)化參數(shù)。這個(gè)模型主要成就就是將詞向量的表達(dá)和概率模型相結(jié)合,并首次提出了word embedding的概念(雖然沒有明確地叫這個(gè)名字)

2.1. 詞嵌入

直觀理解,詞嵌入就是將單詞映射到實(shí)數(shù)向量空間的過程,我們希望相似含義的詞在目標(biāo)向量空間中的距離比不相關(guān)詞的距離更近。通常用于深度學(xué)習(xí)模型的數(shù)據(jù)處理首層,目前比較一般的做法是根據(jù)上下文類型選擇的預(yù)訓(xùn)練好的“領(lǐng)域/任務(wù)參數(shù)”作為embedding層的初始參數(shù)(訓(xùn)練時(shí)不更新或微調(diào)后鎖定參數(shù)),可以更快更高效地完成數(shù)據(jù)處理的第一步任務(wù)。
如果按照NNLM的架構(gòu)實(shí)現(xiàn)詞嵌入的概念,最大的問題就是,運(yùn)算量太大了。于是Google的Mikolov做了個(gè)優(yōu)化實(shí)現(xiàn),模型總稱為Word2Vector。
word2vector 包含了兩種類型,Continuous Bag-of-Words Model 和 skip-gram model。

skip-gram資料傳送門
cbow資料傳送門
Pennington傳送門

2.2. 詞向量

2.1所說的詞嵌入是一種區(qū)別于‘單熱向量’的概念--僅僅是概念,而詞向量(word2vec)可以理解為一套實(shí)現(xiàn)word embedding的具體方法。作為典型的word2vec方法,CBOW由上下文詞計(jì)算目標(biāo)詞的條件概率,而skip-gram完全相反,由目標(biāo)詞計(jì)算上下文詞的條件概率。通常,上下文在目標(biāo)詞的前后兩個(gè)方向上取相同長度。一般在無監(jiān)督學(xué)習(xí)中,上下文的長度由任務(wù)的預(yù)測準(zhǔn)確率決定:當(dāng)準(zhǔn)確率隨上下文長度的增加而趨于收斂時(shí),停止增大其長度。

CBOW模型:
cbow,連續(xù)的詞袋模型,就是將文本看成是一個(gè)一個(gè)單獨(dú)的詞,然后通過一個(gè)位置附近的詞來推出這個(gè)位置可能的值。

在NNLM的基礎(chǔ)上將tanh的隱層去掉,而輸入的矩陣也不是one-hot稀疏向量,而是直接輸入經(jīng)過處理的低維綢密矩陣,之后再做一層求和運(yùn)算,將得到的結(jié)果與最后的softmax矩陣相乘。
至于為什么要用加法,似乎是谷歌發(fā)現(xiàn)加法好用,所以就用了。。。

Skip-gram模型:
可以理解為CBOW的倒敘。

image.png

通過得到一個(gè)詞,預(yù)測它周圍詞的概率。

單word詞嵌入方法存在明顯缺陷:

  1. 難以對詞組做分布式表達(dá),最近的解決方式--從無標(biāo)簽數(shù)據(jù)學(xué)習(xí)n-gram嵌入
  2. 受限于上下文window的尺寸,有些詞(例如好或壞)的上下文可能沒什么不同甚至完全一樣,這對情感分析任務(wù)的影響非常大,解決嘗試:SSWE

盡管Word2Vec模型的效果超過了許多經(jīng)典算法,但是仍需要一種能捕獲文本長短期順序依賴關(guān)系的解決方法。對于這個(gè)問題,第一種解決方法為經(jīng)典的循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Networks),它利用數(shù)據(jù)的時(shí)間性質(zhì),使用存儲在隱含狀態(tài)中的先前單詞信息,有序地將每個(gè)單詞傳輸?shù)接?xùn)練網(wǎng)絡(luò)中。
事實(shí)證明,這種網(wǎng)絡(luò)能很好地處理局部依賴關(guān)系,但是由于“梯度消失”問題,很難訓(xùn)練出理想效果。
為了解決這個(gè)問題,Schmidhuber等人提出了一種新型網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),即長短期記憶模型(Long Short Term Memory)。它通過在網(wǎng)絡(luò)中引入一種叫做記憶單元的特殊結(jié)構(gòu)來解決該問題。這種復(fù)雜機(jī)制能有效獲取單元間更長期的依賴關(guān)系,且不會顯著增加參數(shù)量。

現(xiàn)有的很多常用結(jié)構(gòu)也是LSTM模型的變體,例如mLSTM模型或GRU模型。這得益于提出了基于自適應(yīng)簡化的記憶單元更新機(jī)制,顯著減少了所需的參數(shù)量。

特別說明,詞嵌入高度依賴于任務(wù)類型。

一般的詞嵌入算法難以區(qū)分多義詞,Upadhyay的工作利用不同語言的同步訓(xùn)練解決此問題

2.3. 字符嵌入

在特定的NLP任務(wù)中,字符嵌入方法可以處理富詞形態(tài)語言:結(jié)合詞嵌入用于NER任務(wù);或獨(dú)立應(yīng)用

字符嵌入用于OOV處理:中文字符嵌入模型,極大提升語義分類準(zhǔn)確率。
OOV handling:非規(guī)范用語處理(解決單詞或字不在詞表集中的問題)

3. 卷積神經(jīng)網(wǎng)絡(luò)

詞向量將單個(gè)詞映射到向量空間中,更高一階的工作則是基于詞向量將連續(xù)詞(句子,文章)提取特征。典型任務(wù)包括情感分析,文章概述,機(jī)器翻譯,自動問答系統(tǒng)等。
典型的CNN做法是,將單詞通過查表的方式轉(zhuǎn)化為向量序列,輸入CNN網(wǎng)絡(luò)中,提取特征向量,CNN特別適合提取n-gram的突出特征。


詞分類預(yù)測的CNN架構(gòu)

3.1 基礎(chǔ)CNN

3.1.1 語句建模

一般都是運(yùn)用上述方法,逐句生成向量,每句話生成的向量序列應(yīng)用max pooling取最大值。
非常適用于獲取包含豐富語義信息的抽象表達(dá)。


CNN語句建模

3.1.2 窗口方法

語句建模不適合用于基于詞的預(yù)測任務(wù),如NER,SRL,POS tagging等,因此有些工作運(yùn)用CNN的kernel機(jī)制實(shí)現(xiàn)詞預(yù)測任務(wù):假設(shè)詞標(biāo)簽主要取決于其相鄰詞的標(biāo)簽,則可以根據(jù)上文的kernel與數(shù)據(jù)的乘積,預(yù)測下文的詞。
詞分類的終極目標(biāo):為整句生成標(biāo)簽序列。相關(guān)方法:CRF。
CRF算法,即條件隨機(jī)場算法(conditional random field algorithm),Lafferty于2001年,在最大熵模型和隱馬爾科夫模型的基礎(chǔ)上,提出的一種判別式概率無向圖學(xué)習(xí)模型,是一種用于標(biāo)注和切分有序數(shù)據(jù)的條件概率模型。

TDNN: Time delayed neural network,用于獲取更大的上下文范圍,進(jìn)而提升窗口方法的準(zhǔn)確度。

3.2 典型應(yīng)用

CNN based,可以將隨機(jī)初始化的卷積核訓(xùn)練成特定任務(wù)的n-gram特征感知算子,缺陷是無法解決詞之間的長距離依賴。
DCNN在語句語義模型上解決上述缺陷。

涉及情緒分析的NLP任務(wù)同樣需要有效的情緒極性的抽象。研究51將詞嵌入的結(jié)果拼接再以CNN處理。另外,短句的情緒分析難度通常都要高于長句的情緒分析,研究52的工作在短句情緒分析上做了改進(jìn),利用語義聚類為短句提供額外信息,CNN用于連接語義聚類單元。
DCNN用于自動摘要:利用不同層次的filter學(xué)習(xí)到語句、全文級別的關(guān)鍵信息。
CNN用于語義匹配:利用CNN提取文件的主要信息向量,與匹配請求對比,給出最符合請求本意的文件。

自動問答領(lǐng)域,利用CNN提取語義計(jì)算語義相似度,進(jìn)而選擇最適合的知識庫。隨后MCCNN引入立體匹配,從多角度分析和理解問題。

DMCNN:dynamic-multi-pooling代替最大池化,用于克服max-pooling帶來的信息丟失問題

CNN-HMM用于在語音識別中發(fā)現(xiàn)不同講話個(gè)體聲音頻率的不變性。

雖然不擅長與機(jī)器翻譯,但也有人用CNN做語義相似性和上下文相似性評估

對于挖掘上下文語義線索,CNN很得力。但是,CNN依賴大量數(shù)據(jù)訓(xùn)練,需要保持大量參數(shù);另外,CNN本身不善對遠(yuǎn)距離關(guān)聯(lián)建模。

4. 循環(huán)神經(jīng)網(wǎng)絡(luò)

RNN本身的‘循環(huán)’特性決定了其本身適合處理序列型數(shù)據(jù)。
應(yīng)用--語言建模,機(jī)器翻譯,語音識別,圖像字幕

4.1 RNN基礎(chǔ)屬性分析

雖然從模型構(gòu)成角度上,RNN似乎更適合處理語音類的序列數(shù)據(jù),但也有些研究論證了RNN不一定比CNN優(yōu)勝。

4.2 常用于NLP任務(wù)的RNN

simple-rnn,lstm,gru

4.3 應(yīng)用

4.3.1 詞級別分類

雙向LSTM + CRF -- NER

4.3.2 語句分類

研究25用LSTM為推文生成向量以支持情感分析。
和CNN的kernel相似,LSTM的隱藏狀態(tài)也可以用來做語義匹配。

4.3.3 語言生成

機(jī)器翻譯,圖像字幕等任務(wù)中,RNN扮演生成模型,此時(shí)RNN通常作為decoder出現(xiàn)在模型中
seq2seq:通常輸出是另一種形式的序列(另一種語言for機(jī)器翻譯,答案for自動問答)
DMN:dynamic memory network,問答領(lǐng)域很通用的框架,深入研究的話值得了解一下。

4.4 注意力機(jī)制

對于文本很長或者富信息文本,encoder不一定能編碼最相關(guān)的部分。受此啟發(fā),注意力機(jī)制應(yīng)運(yùn)而生,注意力機(jī)制允許decoder查閱輸入序列以關(guān)注最相關(guān)的部分。
機(jī)器翻譯、自動摘要、圖像字幕均有應(yīng)用。
基于方面(aspect)的情感分析,研究104應(yīng)用此機(jī)制讓模型集中于語句中選定的區(qū)域。
另有MemNet應(yīng)用“多跳注意力”,讓模型關(guān)注多個(gè)重點(diǎn)信息區(qū)域以提升模型表現(xiàn)。

5. 遞歸神經(jīng)網(wǎng)絡(luò)

5.1 基礎(chǔ)模型

語言本身的結(jié)構(gòu)是遞歸的:字構(gòu)成詞,詞構(gòu)成句,句構(gòu)成章。遞歸神經(jīng)網(wǎng)絡(luò)就是用遞歸樹的形狀特點(diǎn),對語言建模。


遞歸神經(jīng)網(wǎng)絡(luò)

值得了解:[RNTN]

5.2 應(yīng)用

分詞
基于分詞樹和遞歸神經(jīng)網(wǎng)絡(luò),研究4實(shí)現(xiàn)了短語級的情感分析框架

6. 深度強(qiáng)化模型和深度無監(jiān)督模型

6.1 基于深度強(qiáng)化學(xué)習(xí)的序列生成

RNN被當(dāng)做RL中的agent,每個(gè)時(shí)刻與對應(yīng)的上下文交互;RNN的參數(shù)定義了agent的policy,agent根據(jù)policy決定下一步的action,即預(yù)測下一個(gè)單詞。每一個(gè)action后,agent會更新內(nèi)部狀態(tài),即rnn的隱藏單元。預(yù)測到序列結(jié)束后,agent會獲得reward。

6.2 無監(jiān)督語句表達(dá)學(xué)習(xí)

和詞嵌入的skip-gram一樣,句子的分布式表達(dá)也可以用無監(jiān)督學(xué)習(xí)模式:skip-thought model
另外,研究123的結(jié)果表明,預(yù)訓(xùn)練句子編碼初始化LSTM參數(shù),會提升預(yù)測效果。

6.3 深度生成模型

VAE:
RNN-based VAE:用于合并整句的分布式潛在表征
研究128提出通過用指定的語義學(xué)習(xí)解開的潛在表示來生成其屬性受控的句子

GAN:
研究127提出了一個(gè)基于LSTM和CNN的應(yīng)用框架進(jìn)行對抗訓(xùn)練以產(chǎn)生逼真的文本。

7. 記憶增強(qiáng)網(wǎng)絡(luò)

注意力機(jī)制貯存的編碼器隱藏向量,可以認(rèn)為是模型的內(nèi)部記憶。
很多NLP任務(wù)(QA,POS tagging,和情感分析)都可以抽象為(記憶,問題,答案)三元組,
具體案例可參見上文已經(jīng)提到的DMNMemNet

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前面的文章主要從理論的角度介紹了自然語言人機(jī)對話系統(tǒng)所可能涉及到的多個(gè)領(lǐng)域的經(jīng)典模型和基礎(chǔ)知識。這篇文章,甚至之后...
    我偏笑_NSNirvana閱讀 14,424評論 2 64
  • Deep Learning 算法已經(jīng)在圖像和音頻領(lǐng)域取得了驚人的成果,但是在 NLP 領(lǐng)域中尚未見到如此激動人心的...
    MobotStone閱讀 3,134評論 1 12
  • 1.NLP當(dāng)前熱點(diǎn)方向 詞法/句法分析 詞嵌入(word embedding) 命名實(shí)體識別(Name Entit...
    __Aragorn閱讀 6,321評論 1 9
  • 確認(rèn)好商業(yè)需求后,執(zhí)行產(chǎn)品上線的基本流程如下: 名字策劃,于此同時(shí)可以開始提前申請?zhí)O果開發(fā)者賬號,和安卓應(yīng)用市場的...
    樂活的燁先生閱讀 830評論 0 2
  • 今日,亞信找不到梳子,據(jù)說從初中帶到現(xiàn)在,然后,找我說了好多次!我坐在屋子里,隔壁不斷傳來她聲嘶力竭的聲音,我的梳...
    覓雪尋梅閱讀 298評論 0 0

友情鏈接更多精彩內(nèi)容