RNN是專門用于處理順序資訊的神經網絡的方法。RNN将計算應用于以先前計算結果為條件的輸入序列。這些序列通常由固定大小的标記向量表示,他們被順序送至循環單元。下圖說明了一個簡單的RNN架構。

RNN的主要優勢在于能夠記憶先前的計算結果并在目前計算中使用該資訊。這使得RNN模型适合于在任意長度的輸入中都具有上下文依賴性,這樣可以為輸入建立适當的組合。RNN已被用于研究各種NLP任務,例如機器翻譯、圖像字幕和語言模組化等。
與CNN模型相比,RNN模型在特定的自然語言任務中可以同樣有效甚至更好。因為它們模拟了資料不同的方面,這才會使它們有效,具體的效果取決于任務所需的語義。
RNN期望的輸入通常是單熱(one-hot)編碼或詞嵌入,但在某些情況下,它們與由CNN模型構造的抽象表征耦合。簡單的RNN容易遭受
消失的梯度問題,這使得網絡難以學習和調整較早層中的參數。其他變體正在出現已解決這個問題,例如
長短期記憶(LSTM)網絡,
殘留網絡(ResNets)和
門控循環網絡(GRU)後來被引入以克服這一限制。
變體LSTM由三個門(輸入,遺忘和輸出門)組成,并通過三者的組合計算隐藏狀态。GRU類似于LSTM,但隻包含兩個門,效率更高,因為它們不那麼複雜。一項
研究表明,很難說RNN哪些門控更有效,通常隻是根據可用的計算能力來挑選它們。研究及實驗表明各種基于LSTM的模型用于序列到序列映射(通過編碼器-解碼器架構),其适用于機器翻譯,文本摘要,人工對話模組化,問題回答,基于圖像的語言生成以及其他任務。
總的來說,RNN可以用于許多NLP系統,例如:
·字級分類(NER);
·語言模組化;
·句子級别分類(例如,情感極性);
·語義比對(例如,将消息與對話系統中的候選響應相比對);
·自然語言生成(例如,機器翻譯,視覺QA和圖像字幕);
注意力機制本質上,
是一種技術,其受益于允許上述基于RNN架構的解碼器使用最後隐藏狀态以及基于輸入隐藏狀态序列計算的資訊(即上下文矢量)的需要。這對于需要在輸入和輸出文本之間進行某些對齊的任務特别有用。
注意力機制已成功用于
機器翻譯,文本摘要,
圖像字幕,對話生成和
基于内容(aspect-based)的情感分析。并且已經有人提出了各種不同形式和類型的注意力機制,它們仍然是NLP研究人員研究各種應用的重要領域。
遞歸神經網絡(Recursive Neural Network)
與RNN類似,遞歸神經網絡是對連續資料模組化非常适用。這是因為語言可以被視為遞歸結構,其中單詞和短語構成層次結構中其他更進階别的短語。在這種結構中,非終端節點由其所有子節點的表示來表示。下圖說明了下面的一個簡單的遞歸神經網絡。
在基本遞歸神經網絡形式中,組合函數(即網絡)以自下而上的方法組合成分來計算更進階别短語的表示(參見上圖)。在變體
MV-RNN中,單詞由矩陣和向量表示,這意味着由網絡學習的參數表示每個成分的矩陣。另一種變型,即
遞歸神經張量網絡(RNTN),使得輸入矢量之間的更多互動能夠避免大的參數産生,如MV-RNN的情況。遞歸神經網絡更能顯示出靈活性,并且它們可以與LSTM單元耦合以處理諸如梯度消失之類的問題。
遞歸神經網絡用于各種應用,例如:
·解析;
·利用短語級表示來進行情緒分析;
·語義關系分類(例如,主題消息);
·句子相關性;
強化學習強化學習是通過機器學習的方法,訓練代理執行離散動作,然後獎勵。正在通過強化學習來研究幾種自然語言生成(NLG)任務,例如文本摘要。
強化學習在NLP上的應用受到一些問題的阻力。當使用基于RNN的發生器時,标準答案會被模型生成的答案所取代,這會迅速提升錯誤率。此外,對于這樣的模型,詞級訓練的目标不同于測試度量的目标,例如用于機器翻譯和對話系統的n-gram重疊測量,
BLEU。由于這種差異,目前的NLG類型系統往往會産生不連貫,重複和枯燥的資訊。
為了解決上述問題,業内采用稱為
REINFORCE的強化算法來解決NLP任務,例如
圖像字幕和機器翻譯。這個強化學習架構由一個代理(基于RNN的生成模型)組成,它與外部環境互相作用(在每個時間步驟看到的輸入詞和上下文向量)。代理根據政策(參數)選擇一個動作,該政策會在每個時間步驟預測序列的下一個單詞。然後代理會更新其内部狀态(RNN的隐藏單元)。這一直持續到達最終計算獎勵序列的結尾。獎勵功能因任務而異,例如,在句子生成任務中,獎勵可以是資訊流。
盡管強化學習方法顯示出了希望,但它們需要适當地處理動作和狀态空間,這可能限制模型的表達能力和學習能力。記住,獨立的基于RNN的模型力求表現力和表達語言的自然能力。
對抗訓練也被用來訓練語言生成器,其目的是欺騙訓練有素的鑒别器,以區分生成的序列和真實的序列。如果一個對話系統,通過policy gradient(政策網絡),可以在強化學習範例下建構任務,其中鑒别器就像人類圖靈測試員一樣,鑒别器基本上是受過訓練以區分人類和機器生成的對話。
無 監 督學 習無監督的句子表征學習涉及以無監督的方式将句子映射到固定大小的向量。分布式表征從語言中捕獲語義和句法屬性,并使用輔助任務進行訓練。
研究員與用于學習詞嵌入的算法類似,提出了
跳過思維模型,其中任務是基于中心句子預測下一個相鄰句子。使用seq2seq架構訓練該模型,其中解碼器生成目标序列,并且編碼器被視為通用特征提取器-甚至在該過程中學習了字嵌入。該模型基本上學習輸入句子的分布式表征,類似于在先前語言模組化技術中如何為每個單詞學習詞嵌入。
深度生成模型諸如
變分自動控制器(VAE) 生成對抗網絡(GAN)之類的深度生成模型也可以應用于NLP中,通過從潛在代碼空間生成逼真句子的過程來發現自然語言中的豐富結構。
衆所周知,由于無限制的潛在空間,标準的自動編碼器無法生成逼真的句子。VAE在隐藏的潛在空間上施加先驗分布,使模型能夠生成适當的樣本。VAE由編碼器和發生器網絡組成,編碼器和發生器網絡将輸入編碼到潛在空間中,然後從潛在空間生成樣本。訓練目标是在生成模型下最大化觀測資料的對數似然的變分下界。下圖說明了用于句子生成
的基于RNN的VAE。
生成模型對于許多NLP任務是有用的,并且它們本質上是靈活的。例如,與标準自動編碼器相比,基于RNN的VAE生成模型被提出用于産生更多樣化且格式良好的句子。其他模型允許将結構化變量(例如,時态和情感)結合到潛在代碼中以生成合理的句子。
由兩個競争網絡組成的
GAN(生成器和鑒别器)也被用于生成逼真的文本。例如,将LSTM用作生成器,CNN用作區分真實資料和生成樣本的鑒别器。在這種情況下,CNN表示二進制句子分類器。該
模型能夠在對抗訓練後生成逼真的文本。
除了鑒别器的梯度不能通過離散變量适當地反向傳播的問題之外,深層生成模型同時也是難以評估的。近年來已經提出了許多解決方案,但這些解決方案尚未标準化。
記憶體增強網絡(Memory-Augmented Network)
在輸出結果生成階段由注意力機制通路的隐藏向量表示模型的“内部存儲器”。神經網絡還可以與某種形式的記憶體耦合,以解決
視覺QA 語言模組化 POS标記 情感分析等任務。例如,為了解決QA任務,将支援事實或常識知識作為存儲器的形式提供給模型。
動态存儲器網絡是對先前基于存儲器的模型的改進,其采用神經網絡模型用于輸入表征、注意力機制和應答機制。
結論到目前為止,我們現在已經知道了基于神經網絡的模型(如CNN和RNN)的容量和有效性。我們也意識到将強化學習、無監督方法和深度生成模型正在被應用于複雜的NLP任務(如可視化QA和機器翻譯)。注意力機制和記憶增強網絡在擴充基于神經的NLP模型的能力方面是強大的。結合這些強大的技術,我們相信會找到令人信服的方法來處理語言的複雜性。
參考文獻:“
基于深度學習的自然語言處理的最新趨勢”-Tom Young,Devamanyu Hazarika,Soujanya Poria和Erik Cambria,IEEE計算智能雜志,2018年。
本文由
阿裡雲雲栖社群組織翻譯。
文章原标題《deep-learning-nlp-overview-recent-trends》
作者:
Elvis Saravia譯者:烏拉烏拉,審校:。
文章為簡譯,更為詳細的内容,請檢視
原文