2014年,Sutskever等人提出序列到序列學習,一種通過神經網絡将一個序列映射到另一個序列的通用架構。在該架構中,編碼器神經網絡逐個符号地處理句子并将其壓縮成矢量表示; 然後,解碼器神經網絡基于編碼器狀态逐個符号地預測輸出符号,在每個步驟中将先前預測的符号作為輸入,如下面的圖8所示。

機器翻譯成了這個架構的殺手級應用。2016年,谷歌宣布開始用NMT模型替換其基于單片短語的MT模型(Wu et al.,2016)。根據
Jeff Dean的說法,這意味着用500線性神經網絡模型替換500,000行基于短語的MT代碼。
由于其靈活性,該架構現在是自然語言生成任務的首選架構,不同的模型承擔編碼器和解碼器的角色。重要的是,解碼器模型不僅可以以序列為條件,而且可以以任意表示為條件。這使得例如基于圖像生成标題(Vinyals等人,2015)(如下面的圖9中可見),基于表格的文本(Lebret等人,2016),以及基于源代碼更改的描述(Loyola等,2017),以及許多其他應用程式。
序列到序列學習甚至可以應用于NLP中常見的結構化預測任務,其中NLP輸出具有特定結構。簡單地說,輸出是線性化的,如下面圖10中的consituency解析所示。神經網絡已經證明了在給予consituency解析的足夠數量的訓練資料(Vinyals等,2015)和命名實體識别(Gillick等,2016)等的情況下,能夠直接學習産生這種線性化輸出的能力。
用于序列和解碼器的編碼器通常基于RNN,但是也可以使用其他模型類型,最新的架構主要來自作為序列到序列架構的培養皿MT的工作。最近的模型是卷積編碼器(Kalchbrenner等,2016; Gehring等,2017),變換器(Vaswani等,2017),将在下一個部分讨論,以及LSTM和變壓器的組合(Chen等,2018)。
2015- 注意力注意力(Bahdanau等,2015)NMT)的核心創新之一,也是使NMT模型優于基于經典短語的MT系統的關鍵思想。序列到序列學習的主要瓶頸是它需要将源序列的整個内容壓縮成固定大小的矢量。注意力通過允許解碼器回顧源序列隐藏狀态來減輕這種情況,然後将其作為權重平均值提供給解碼器的附加輸入,如下面的圖11所示。
注意力有不同的形式(Luong等,2015)在
這裡檢視簡要概述。 注意力廣泛适用并且可能對任何需要根據輸入的某些部分做出決策的任務有用。它已被應用于consituency解析(Vinyals等,2015),閱讀了解(Hermann等,2015)和一次性學習(Vinyals等,2016)等。甚至輸入不需要是序列,但可以包括其他表示,如圖像字幕的情況(Xu et al.,2015),可以在下面的圖12中看到。注意力的一個有用的副作用是,通過根據注意力量檢查輸入的哪些部分與特定輸出相關。
注意力也不僅限于檢視輸入序列;自-注意力可用于檢視句子或文檔中的周圍單詞以獲得更多上下文敏感的單詞表示。多層自-注意力是Transformer架構的核心(Vaswani等,2017),這是目前最先進的NMT模型。
基于記憶的網絡注意力可以看作是模糊記憶的一種形式,其中記憶由模型的過去隐藏狀态組成,模型選擇從記憶中所檢索的内容。有關注意事項及其與記憶關聯的更詳細概述,請檢視
此文章。許多具有更明确記憶的模型已經被提出,它們有不同的變體,例如神經網絡圖靈機(Graves et al,2014),記憶網絡(Weston et al.,2015)[70]和端到端的記憶網絡(Sukhbaatar et al.,2015),動态記憶網絡( Kumar等,2015),可微神經計算機(Graves等,2016)和遞歸實體網絡(Henaff等,2017)。
通常基于與目前狀态的相似性來通路記憶體,類似于注意力,并且通常可以寫入和讀取存儲器,模型在實作和利用記憶體方面有所不同。例如,端到端記憶網絡多次處理輸入并更新記憶體以啟用多個推理步驟。神經圖靈機還具有基于位置的尋址,允許它們學習簡單的計算機程式,如排序。基于記憶的模型通常應用于其中保留較長時間跨度資訊的有用任務,例如語言模組化和閱讀了解。存儲器的概念非常通用:知識庫或表可以用作存儲器,而存儲器也可以基于整個輸入或其特定部分來填充。
2018 預訓練語言模型預訓練的詞嵌入與上下文無關,而且僅用于初始化模型中的第一層。最近幾個月,一系列監督任務被用于預訓練神經網絡(Conneau等,2017; McCann等,2017; Subramanian等,2018)。相比之下,語言模型隻需要未标記的文本; 是以,訓練可以擴充到數十億個tokens,新領域和新語言。 2015年首次提出了預訓練語言模型(Dai&Le,2015); 直到最近,它們才被證明對各種各樣的任務都有益。 語言模型嵌入可以用作目标模型中的特征(Peters等,2018),或者可以對目标任務資料微調語言模型(Ramachandran等,2017; Howard&Ruder,2018)。添加語言模型嵌入比許多任務的最新技術有了很大的改進,如下面的圖13所示。
預訓練語言模型可以用更少的資料進行學習,由于語言模型僅需要未标記的資料,是以對于标記資料稀缺的低資源語言尤其有用。有關預訓練語言模型的更多資訊,請參閱
本文。
其他裡程碑 基于字元的表示:在字元上使用CNN或LSTM來獲得基于字元的詞表示是相當普遍的,特别是對于形态學豐富的語言和形态資訊很重要或具有許多未知單詞的任務。據我所知,基于字元的表示首先用于序列标記(Lample等,2016; Plank等,2016)。基于字元的表示減少了必須以增加計算成本處理固定詞彙表的需要,并且能夠實作諸如完全基于字元的NMT之類的應用(Ling等人,2016; Lee等人,2017)。
對抗性學習:對抗性方法已經在風暴中占據了ML的領域,并且在NLP中也以不同的形式使用。對抗性示例越來越廣泛地被廣泛使用,不僅作為探測模型和了解其失敗案例的工具,而且還使它們更加具有魯棒性(Jia&Liang,2017)。對抗性訓練:域對抗性損失(Ganin等,2016; Kim等,2017)是可以同樣使模型更加健壯的有用的正規化形式。生成對抗網絡(GAN)對于自然語言生成來說還不是太有效(Semeniuta等,2018),但是例如在比對分布時是有用的(Conneau等,2018)。
強化學習:強化學習已經被證明對于具有時間依賴性的任務是有用的,例如在訓練期間選擇資料(Fang等,2017; Wu等,2018)和模組化對話(Liu等,2018)。RL對于直接優化諸如ROUGE或BLEU之類的非可微結束度量而不是優化替代損失(例如摘要中的交叉熵(Paulus等,2018; Celikyilmaz等,2018)和機器翻譯也是有效的。(Ranzato等人,2016),反向強化學習在犒賞太複雜而無法指定的環境中可能是有用的,例如視覺叙事(Wang et al。,2018)。
本文由
阿裡雲雲栖社群組織翻譯。
文章原标題《a-review-of-the-recent-history-of-natural-language-processing》
作者:
Sebastian Ruder譯者:虎說八道,審校:。
文章為簡譯,更為詳細的内容,請檢視
原文