NLP&深度學習:近期趨勢概述(二)
遞迴神經網路(RNN)
RNN 是專門用於處理順序資訊的神經網路的方法。RNN將計算應用於以先前計算結果為條件的輸入序列。這些序列通常由固定大小的標記向量表示,他們被順序送至迴圈單元。下圖說明了一個簡單的RNN框架。
RNN 的主要優勢在於能夠記憶先前的計算結果並在當前計算中使用該資訊。這使得RNN模型適合於在任意長度的輸入中都具有上下文依賴性,這樣可以為輸入建立適當的組合。RNN已被用於研究各種NLP任務,例如機器翻譯、影象字幕和語言建模等。
與CNN模型相比,RNN模型在特定的自然語言任務中可以同樣有效甚至更好。因為它們模擬了資料不同的方面,這才會使它們有效,具體的效果取決於任務所需的語義。
RNN 期望的輸入通常是單熱(one-hot)編碼或詞嵌入,但在某些情況下,它們與由CNN模型構造的抽象表徵耦合。簡單的RNN容易遭受 ofollow,noindex"> 消失的梯度問題 ,這使得網路難以學習和調整較早層中的引數。其他變體正在出現已解決這個問題,例如 長短期記憶( LSTM )網路 , 殘留網路( ResNets ) 和 門控迴圈網路( GRU ) 後來被引入以克服這一限制。
RNN變體
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 ) 和 sarial_network" target="_blank" rel="nofollow,noindex"> 生成對抗網路( 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 譯者:烏拉烏拉,審校:。
文章為簡譯,更為詳細的內容,請檢視 原文 。