編者按:Elvis Saravia是“國立清華大學(xué)”(***)的博士生,主要研究NLP和情感計(jì)算。今年8月,Tom Youn等人更新了去年發(fā)表在IEEE雜志上的重磅文章《Recent Trends in Deep Learning Based Natural Language Processing》,總結(jié)了到今年為止,基于深度學(xué)習(xí)的自然語言處理(NLP)系統(tǒng)和應(yīng)用程序的一些最新趨勢。為了方便更多人閱讀,Elvis Saravia總結(jié)了這篇文章的主要內(nèi)容,回顧和比較了各類NLP任務(wù)中的最新技術(shù)。
在這篇綜述中,讀者可以詳細(xì)了解這一年來學(xué)界的一些大動(dòng)作,它包含以下主題:
分布式表征的興起(例如word2vec)
卷積、循環(huán)和RNN
在強(qiáng)化學(xué)習(xí)中的應(yīng)用
句子的無監(jiān)督表征學(xué)習(xí)的最新進(jìn)展
深度學(xué)習(xí)模型與記憶增強(qiáng)的結(jié)合
什么是NLP?
自然語言處理是通過構(gòu)建計(jì)算算法自動(dòng)分析、表征人類自然語言的一個(gè)學(xué)科領(lǐng)域。如今,基于NLP的系統(tǒng)已經(jīng)實(shí)現(xiàn)廣泛應(yīng)用,比如Google強(qiáng)大的搜索引擎、亞馬遜的語音助手Alexa。NLP還可以幫助機(jī)器執(zhí)行和復(fù)雜自然語言有關(guān)的任務(wù),比如機(jī)器翻譯和對(duì)話生成。
長期以來,研究人員進(jìn)行NLP研究主要依賴各種機(jī)器學(xué)習(xí)模型,以及手工制作的特征。但這么做帶來的隱患是由于語言信息被稀疏表征表示,會(huì)出現(xiàn)維度詛咒之類的問題。而隨著近年來詞嵌入(低維、分布式表征)的普及和成功,和傳統(tǒng)機(jī)器學(xué)習(xí)模型(如SVM、logistic回歸)相比,基于神經(jīng)網(wǎng)絡(luò)的模型在各種語言相關(guān)任務(wù)上取得了優(yōu)異的成果。
分布式表征
如前所述,手工制作的特征主要用于模擬自然語言任務(wù),它在神經(jīng)網(wǎng)絡(luò)被廣泛應(yīng)用于NLP前,一直使研究人員飽受維度詛咒困擾。
詞嵌入
詞嵌入是一種基于分布假設(shè)(出現(xiàn)在類似語境中具有相似含義的詞)的分布向量,它的作用是把一個(gè)維數(shù)為所有詞的數(shù)量的高維空間嵌入到一個(gè)維數(shù)低得多的連續(xù)向量空間中。通常情況下,詞嵌入會(huì)在任務(wù)上進(jìn)行預(yù)訓(xùn)練,用淺層神經(jīng)網(wǎng)絡(luò)基于上下文預(yù)測單詞。下圖是Bengio及其同事當(dāng)年提出的神經(jīng)語言模型:
詞向量傾向于嵌入語法和語義信息,而這種做法在各種NLP任務(wù)中(如情感分析)都取得了最先進(jìn)的成果。
事實(shí)上,分布式表征在過去已經(jīng)被大量用于研究,但正是連續(xù)詞袋模型(CBOW)和Skip-Gram模型正式進(jìn)入這個(gè)領(lǐng)域后,它才真正流行起來。這也確實(shí)是當(dāng)前一種非常受歡迎的方法,因?yàn)樗粌H能有效構(gòu)建高質(zhì)量的詞嵌入,還能被用于語義組合(如'man'+'royal'='king')。
Word2vec
2013年,Mikolav等人提出CBOW和skip-gram模型,這是Word2Vec模型中的兩個(gè)主要類別。其中,CBOW模型是一種構(gòu)建詞嵌入的神經(jīng)方法,它的目標(biāo)是基于給定上下文和給定窗口大小,預(yù)測目標(biāo)單詞(input word)的條件概率。同樣的,skip-gram模型也是一種構(gòu)建詞嵌入的神經(jīng)方法,但不同的是,它的目標(biāo)是在給定中心目標(biāo)單詞的情況下,預(yù)測上下文。
對(duì)于這兩種模型,詞嵌入的維度是由(以無監(jiān)督的方式)計(jì)算預(yù)測的準(zhǔn)確率確定的。
使用詞嵌入的限制之一是當(dāng)我們想要獲得諸如“hot potato”或“Boston Globe”之類短語的向量表示時(shí),我們不能簡單地組合單個(gè)詞的向量表示,因?yàn)檫@些短語不代表單個(gè)詞的語義組合。因此當(dāng)短語或句子很長的時(shí)候,整個(gè)問題會(huì)變得很復(fù)雜。
Word2vec模型的另一個(gè)限制是使用較小的窗口為對(duì)比單詞產(chǎn)生類似的嵌入,比如 “good”和“bad”,在一些比較重視這類差異的任務(wù)中(如情感分析),這種做法并不可取。此外,詞嵌入還高度依賴它們的應(yīng)用場景。為每個(gè)新任務(wù)重新訓(xùn)練特定的嵌入確實(shí)有意義,但這通常意味著高昂的計(jì)算成本,而且我們能通過負(fù)采樣達(dá)到一樣的效果。
Word2vec模型還存在其他問題,比如沒有考慮多義性因素、訓(xùn)練數(shù)據(jù)中存在偏見等……
字符嵌入
對(duì)于諸如詞性標(biāo)記(POS)和命名實(shí)體識(shí)別(NER)之類的任務(wù),查看詞匯的詞法信息是有用的,尤其是像葡萄牙語、西班牙語和中文這些構(gòu)詞方法十分豐富的語言。我們是在字符級(jí)別分析文本,因此對(duì)于某些未知詞匯,利用這種嵌入方法有助于我們?cè)诓灰氪笮驮~典的情況下,幫助模型解決問題。
最后需要注意的是,雖然字符級(jí)和字級(jí)的嵌入已經(jīng)成功應(yīng)用于各種NLP任務(wù),但它們?cè)陂L期內(nèi)仍將受到質(zhì)疑。例如,Lucy和Gauthier最近的一項(xiàng)研究發(fā)現(xiàn),一些標(biāo)準(zhǔn)詞嵌入無法編碼許多顯著的常規(guī)感知特征,而且這些缺陷和詞與詞之間的相似性預(yù)測誤差密切相關(guān)。換句話說,如果我們只用分布式語義,它其實(shí)是無法理解單詞背后的概念的。上個(gè)月,Jacob Andreas等人也在自然語言處理系統(tǒng)的背景下就意義表征進(jìn)行了激烈辯論。
卷積神經(jīng)網(wǎng)絡(luò)(CNN)
CNN基本上就是一種基于神經(jīng)的方法,它可以被看作是基于單詞或n-gram提取更高級(jí)別特征的特征函數(shù)。如今,CNN提取的抽象特征已經(jīng)被有效應(yīng)用于情感分析、機(jī)器翻譯和問答系統(tǒng)等任務(wù)。Collobert和Weston是首批將基于CNN的框架應(yīng)用于NLP任務(wù)的研究人員之一。他們的方法的目標(biāo)是通過查找表將單詞轉(zhuǎn)換為向量表示,由此產(chǎn)生原始詞嵌入,可以在網(wǎng)絡(luò)訓(xùn)練期間學(xué)習(xí)權(quán)重(見下圖)。
為了用CNN進(jìn)行句子建模,首先,他們把句子標(biāo)記成一個(gè)個(gè)單詞,進(jìn)一步將其轉(zhuǎn)換為d維的詞嵌入矩陣;然后,他們?cè)谠撉度雽由蠎?yīng)用卷積filter,產(chǎn)生所謂的特征映射;之后再進(jìn)行最大池化操作,對(duì)每個(gè)filter應(yīng)用最大操作以獲得固定長度輸出并減小輸出的維數(shù);最后,產(chǎn)生最終的句子表示。
通過向上述基礎(chǔ)CNN添加更多的復(fù)雜性因素,使其適應(yīng)執(zhí)行基于詞的預(yù)測,我們可以用它研究諸如NER、情感分析和POS等問題。它的重點(diǎn)是需要一種基于窗口的方法,即對(duì)于每個(gè)詞,考察它相鄰詞匯(子句)的窗口大小。有了這個(gè)窗口,我們就能把CNN應(yīng)用于子句,預(yù)測窗口中心單詞——這也被稱為詞級(jí)分類。
但CNN的一個(gè)缺點(diǎn)是無法建模長距離依賴關(guān)系,這對(duì)所有NLP任務(wù)來說都很重要。為了解決這個(gè)問題,現(xiàn)在研究人員已經(jīng)把CNN和時(shí)延神經(jīng)網(wǎng)絡(luò)(TDNN)結(jié)合在一起,由后者在訓(xùn)練期間實(shí)現(xiàn)更大的上下文范圍。另外,動(dòng)態(tài)卷積神經(jīng)網(wǎng)絡(luò)(DCNN)也已經(jīng)在不同任務(wù)上取得了成功,比如情緒預(yù)測和問題分類,它的特殊之處在于池化層,它用了一種動(dòng)態(tài)k-max池化,能讓filter在句子建模過程中動(dòng)態(tài)地跨越可變范圍,使句子中相隔甚遠(yuǎn)的兩個(gè)詞之間都能產(chǎn)生語義聯(lián)系。
CNN還能基于長短不一的文本被用于更復(fù)雜的任務(wù),比如目標(biāo)檢測、情感分析、短文本分類和諷刺檢測。然而,其中一些研究論文稱,當(dāng)將基于CNN的模型用于分析twitter等微型文本時(shí),我們必須引入外部知識(shí)。此外,CNN在query-document matching、語音識(shí)別、機(jī)器翻譯和問答上也有一定的用處,在涉及從低級(jí)詞匯中提取特征以形成高度語義概括的任務(wù)中,DCNN也經(jīng)常出現(xiàn)。
總體而言,CNN是有用的,因?yàn)樗鼈兛梢栽谏舷挛拇翱谥型诰蛘Z義線索,但它們?cè)诎赃B貫性和長距離語義關(guān)系時(shí),還有一定欠缺。橡膠之下,RNN還是個(gè)更好的選擇。
遞歸神經(jīng)網(wǎng)絡(luò)(RNN)
RNN是一種專門處理序列信息的神經(jīng)網(wǎng)絡(luò),它循環(huán)往復(fù)地把前一步的計(jì)算結(jié)果作為條件,放進(jìn)當(dāng)前的輸入中。這些序列通常由固定大小的標(biāo)記向量表示,按順序逐個(gè)輸入循環(huán)神經(jīng)元。下面是RNN的簡單圖示:
相比CNN,RNN的優(yōu)勢是能把之前處理好的信息并入當(dāng)前計(jì)算,這使它適合在任意長度的序列中對(duì)上下文依賴性進(jìn)行建模。目前,RNN一直是各類NLP研究的常規(guī)選擇,比如機(jī)器翻譯、圖像字幕和語言建模等。
但這并不意味著RNN相對(duì)CNN有絕對(duì)的優(yōu)勢,因?yàn)樗鼈兡M的是數(shù)據(jù)完全不同的兩個(gè)方面,所以兩者能發(fā)揮多少作用需要看具體應(yīng)用場景,取決于任務(wù)所需的語義。
一般來說,RNN的輸入是one-hot編碼或詞嵌入,但它也能像CNN一樣接收抽象表征。簡單的RNN容易出現(xiàn)梯度消失,這意味著難以學(xué)習(xí)和難以調(diào)整較早層中的參數(shù)。為了解決這個(gè)問題,研究人員們陸續(xù)提出了LSTM、ResNets和GRU等多種變體。
RNN的變體
LSTM由三個(gè)門(輸入、遺忘和輸出)構(gòu)成,它通過三者控制信息流,獲取長距離依賴關(guān)系。GRU和LSTM很相近,不同的是它只有兩個(gè)門,更簡單,效率也更高。但一項(xiàng)研究也表明,目前我們很難判斷RNN的哪些門更重要,它們的選用主要還是取決于可用的算力?,F(xiàn)在基于LSTM的模型已經(jīng)能解決序列到序列的映射(通過編碼器-解碼器框架),在機(jī)器翻譯、文本摘要、人工對(duì)話建模、回答模型、基于圖像的語言生成等任務(wù)中都有不錯(cuò)的應(yīng)用。
總的來說,RNN在NLP領(lǐng)域的用處是廣泛的:
字級(jí)分類(例如,NER)
語言建模
句子級(jí)別分類(例如,情感極性)
語義匹配(例如,將消息與對(duì)話系統(tǒng)中的候選響應(yīng)相匹配)
自然語言生成(例如,機(jī)器翻譯、視覺QA和圖像字幕)
注意力機(jī)制
從本質(zhì)上說,注意力機(jī)制的作用對(duì)象是基于編碼器-解碼器框架的RNN,它能讓解碼器利用最后的隱藏狀態(tài),以及基于輸入隱藏狀態(tài)序列計(jì)算的信息(如上下文向量),這對(duì)于需要上下文對(duì)齊的任務(wù)有奇效。
當(dāng)前注意力機(jī)制已經(jīng)成功被用于機(jī)器翻譯、文本摘要、圖像字幕、對(duì)話生成和情感分析。雖然有研究人員已經(jīng)提出了各種不同形式和類型的注意力機(jī)制,但未來它仍是NLP領(lǐng)域的一大重點(diǎn)研究方向。
遞歸神經(jīng)網(wǎng)絡(luò)
與RNN類似,遞歸神經(jīng)網(wǎng)絡(luò)是對(duì)連續(xù)數(shù)據(jù)建模的一種機(jī)制。而語言恰好可以被看成是“遞歸結(jié)構(gòu)”,其中單詞和子短語可以組成句子層次結(jié)構(gòu)中更高級(jí)的短語。在這種結(jié)構(gòu)中,非終端節(jié)點(diǎn)由其所有子節(jié)點(diǎn)的表征來表示,下面是一幅示意圖:
基礎(chǔ)RNN計(jì)算高級(jí)別短語的方法是自下而上組合成分,在它變體的MV-RNN中,單詞由矩陣和向量表示,這意味著每個(gè)成分(單詞/短語)被表示為參數(shù)矩陣。這種做法的弊端是可能會(huì)出現(xiàn)特別大的參數(shù),而為了解決這個(gè)問題,研究人員又提出了另一種RNN變體:遞歸神經(jīng)張量網(wǎng)絡(luò)(RNTN)——它通過在輸入向量之間添加更多交互,對(duì)參數(shù)大小進(jìn)行了限制。
目前,RNN比較常見于以下領(lǐng)域:
語法分析
利用短語級(jí)表征來進(jìn)行情緒分析
語義關(guān)系分類(例如,主題消息)
句子相關(guān)性
強(qiáng)化學(xué)習(xí)
強(qiáng)化學(xué)習(xí)包含傳統(tǒng)機(jī)器學(xué)習(xí)方法、訓(xùn)練智能體和設(shè)置獎(jiǎng)勵(lì)。近年來它在自然語言生成(NLG)任務(wù)中嶄露頭角,如文本生成,但這個(gè)趨勢從本質(zhì)上看是一種“被迫轉(zhuǎn)型”。
和其他NLP任務(wù)一樣,以往研究人員在研究NLG任務(wù)時(shí)用的大多也是RNN,但基于RNN的生成器存在一個(gè)難以解決的問題,就是它的原理是用模型輸出單詞代替句子原本單詞,這就不可避免地會(huì)快速提高錯(cuò)誤率。再加上我們不能用其他任務(wù)的性能衡量標(biāo)準(zhǔn)來評(píng)估語言生成模型,綜合影響之下,現(xiàn)在的NLG模型只能生成重復(fù)、矛盾、平淡的表達(dá)。
為了解決上述問題,學(xué)界向強(qiáng)化學(xué)習(xí)伸出了橄欖枝,它也確實(shí)在圖像字幕和機(jī)器翻譯中表現(xiàn)出色。在NLP任務(wù)中,強(qiáng)化學(xué)習(xí)框架由一個(gè)智能體(基于RNN的生成模型)組成,它與外部環(huán)境(在每個(gè)時(shí)間步看到的輸入詞和上下文向量)相互作用。智能體根據(jù)策略(參數(shù))選擇一個(gè)動(dòng)作,該策略涉及在每個(gè)時(shí)間步預(yù)測序列的下一個(gè)單詞,每次完成預(yù)測后,智能體會(huì)更新其內(nèi)部狀態(tài)。預(yù)測完整個(gè)任務(wù)后,我們?cè)俳y(tǒng)計(jì)智能體的獎(jiǎng)勵(lì)收集情況,獎(jiǎng)勵(lì)設(shè)置因任務(wù)而異,在NLG中,它們的獎(jiǎng)勵(lì)可能是信息流。
盡管強(qiáng)化學(xué)習(xí)給了學(xué)界希望,但具體在用它時(shí)需要適當(dāng)?shù)靥幚韯?dòng)作和狀態(tài)空間,避免過大空間影響智能體訓(xùn)練、探索。此外,生成對(duì)抗也開始被用于訓(xùn)練語言生成模型,這在對(duì)話系統(tǒng)中可能有一些用處,可以區(qū)分哪些話是人類說的,哪些是機(jī)器生成的。
無監(jiān)督學(xué)習(xí)
無監(jiān)督句子表征學(xué)習(xí)涉及以無監(jiān)督的方式將句子映射為固定大小的向量。它使用的分布式表征經(jīng)輔助任務(wù)訓(xùn)練,能從語言中捕獲語義和句法屬性。
skip-thoughts模型,和學(xué)習(xí)詞嵌入的算法類似,可以基于中心句預(yù)測上一個(gè)/下一個(gè)相鄰句子。該模型采用了當(dāng)下流行的seq2seq框架,其中解碼器負(fù)責(zé)生成目標(biāo)序列,編碼器可以被看作是通用特征提取器——甚至能在提取過程中學(xué)習(xí)詞嵌入。
深度生成模型
現(xiàn)如今NLP領(lǐng)域最流行的深度生成模型有變分自動(dòng)編碼器(VAE)和生成對(duì)抗神經(jīng)網(wǎng)絡(luò)(GAN),它們能在潛在空間生成逼真的句子,并從中發(fā)現(xiàn)豐富的自然語言結(jié)構(gòu)。
眾所周知,由于潛在空間沒有約束,標(biāo)準(zhǔn)句子自編碼器生成的文本通常很“假”。VAE通過在隱藏的潛在空間上施加先驗(yàn)分布,能使生成的句子接近人類自然語言表述。它由編碼器和生成器網(wǎng)絡(luò)兩部分構(gòu)成,執(zhí)行任務(wù)時(shí),編碼器和生成器網(wǎng)絡(luò)先將輸入編碼到潛在空間中,然后從潛在空間生成樣本。它的訓(xùn)練目標(biāo)是最大化生成器網(wǎng)絡(luò)中的對(duì)數(shù)似然的變分下界。
下面是一個(gè)基于RNN的VAE:
GAN本身十分靈活,所以它在很多NLP任務(wù)上都有用武之地。比如,和標(biāo)準(zhǔn)自編碼器相比,一個(gè)基于RNN的VAE生成模型可以產(chǎn)生形式更多樣化、表述更規(guī)整的句子。而其他基于GAN的模型也能把結(jié)構(gòu)化變量(如時(shí)態(tài)、情緒)結(jié)合進(jìn)來,生成更符合語境的句子。
除此之外,GAN也可以被用來訓(xùn)練模型,使之能生成更貼近人類表述的文本。比如我們可以把LSTM用作生成器,把CNN作為區(qū)分真實(shí)數(shù)據(jù)和生成樣本的判別器。
但它也有問題,一個(gè)是不能反向傳播,第二個(gè)是這些深度生成模型本質(zhì)上都是黑盒,它們目前還缺乏標(biāo)準(zhǔn)化的評(píng)估工具。
記憶增強(qiáng)神經(jīng)網(wǎng)絡(luò)
神經(jīng)網(wǎng)絡(luò)中可以存儲(chǔ)的信息量稱為網(wǎng)絡(luò)容量(network capacity)。一般來講,利用一組神經(jīng)元來存儲(chǔ)信息的容量和神經(jīng)元的數(shù)量以及網(wǎng)絡(luò)的復(fù)雜度成正比。如果要存儲(chǔ)越多的信息,神經(jīng)元數(shù)量就要越多或者網(wǎng)絡(luò)要越復(fù)雜。為了增強(qiáng)網(wǎng)絡(luò)容量,一種比較簡單的方式是引入結(jié)構(gòu)化的記憶模塊,將和任務(wù)相關(guān)的短期記憶保存在記憶中,需要時(shí)再進(jìn)行讀取。這種裝備外部記憶的神經(jīng)網(wǎng)絡(luò)也稱為記憶網(wǎng)絡(luò)(MN)或記憶增強(qiáng)神經(jīng)網(wǎng)絡(luò)(MANN)。
目前研究人員在這個(gè)方向做出的進(jìn)展有動(dòng)態(tài)記憶網(wǎng)絡(luò),它們?cè)赒A、語言建模、POS標(biāo)記和情感分析等任務(wù)上有不錯(cuò)的表現(xiàn)。
結(jié)論
到目前為止,我們已經(jīng)探討了基于神經(jīng)網(wǎng)絡(luò)的模型(如CNN和RNN)的優(yōu)點(diǎn)和局限,介紹了強(qiáng)化學(xué)習(xí)、無監(jiān)督學(xué)習(xí)和深度學(xué)習(xí)在NLP任務(wù)上的可能性,也知道了注意機(jī)制和記憶增強(qiáng)網(wǎng)絡(luò)在提高NLP神經(jīng)網(wǎng)絡(luò)模型性能上的能力。通過結(jié)合以上所有先進(jìn)技術(shù),我們已經(jīng)能以令人信服的方式讓機(jī)器理解語言的復(fù)雜性。
但正如《NAACL研討會(huì)深思:NLP泛化模型背后的虛假和脆弱》這篇文章揭露的,現(xiàn)在的許多NLP模型依然充滿脆弱和虛假,未來,我們還需要把研究重心放到引入常識(shí)性知識(shí)和人類行為建模上。
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4717瀏覽量
100010 -
機(jī)器翻譯
+關(guān)注
關(guān)注
0文章
139瀏覽量
14837 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5422瀏覽量
120593
原文標(biāo)題:NLP深度學(xué)習(xí):近期趨勢的總體概述
文章出處:【微信號(hào):jqr_AI,微信公眾號(hào):論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論