自然語言處理(Natural Language Processing,NLP)已經慢慢演變為計算機科學領域與人工智慧領域中的一個重要方向,高效地用自然語言與計算機進行通信,被視為解決人工智慧完備(AI-complete)的核心問題之一,其中存在著一系列挑戰。
科技知名博主Sebatian Ruder近期的一篇文章討論了NLP領域近15年來的的八個主要近期進展,重點是基於神經網絡的方法。
八個自然語言處理重大裡程碑:
2001年 - 神經語言模型
2008年 - 多任務學習
2013年 - Word嵌入
2013年 - NLP的神經網絡
2014年 - 序列到序列模型
2015年 - 注意力機制
2015年 - 基於記憶的神經網絡
2018年 - 預訓練語言模型
其他重要裡程碑
非神經裡程碑
2001年 - 神經語言模型(Neurallanguage models)
語言建模是在給定前面的單詞的情況下,預測文本中的下一個單詞的任務。它可能是最簡單的語言處理任務,但卻具有實際應用,如智能鍵盤和電子郵件回復建議。
語言建模有著深厚的歷史。Bengio等人於2001年提出了第一個神經語言模型,它是一種前饋神經網絡,如下圖1所示。
圖1:前饋神經網絡語言模型
以某詞語之前出現的n個詞語作為輸入向量。今天,這樣的向量被稱為大家熟知的詞嵌入(word embeddings)。這些單詞嵌入被連接並饋入隱藏層,然後將其輸出提供給softmax層。
最近,前饋神經網絡已經被用於語言建模的遞歸神經網絡和長期短期記憶網絡所取代。近年來已經提出了許多擴展經典LSTM的新語言模型。儘管有這些發展,但經典的LSTM仍然是一個強大的基礎模型。更好地理解語言模型究竟捕捉了哪些信息,也是當今一個活躍的研究領域。
語言建模是無監督學習的一種形式,Yann LeCun也將預測性學習稱為獲取常識的先決條件。關於語言建模最值得注意的方面可能是,儘管它很簡單,但它是本文討論的許多後期進展的核心:
Word嵌入:word2vec的目標是簡化語言建模。
序列到序列模型:這種模型通過一次預測一個單詞來生成輸出序列。
預訓練語言模型:這些方法使用語言模型中的表示來進行轉移學習。
這意味著NLP的許多重要最新進展可以歸結為一種語言建模形式。為了做「真正的」自然語言理解,需要新的方法和模型。
2008年 - 多任務學習(Multi-tasklearning)
多任務學習是在多個任務下訓練的模型之間共享參數的一般方法。在神經網絡中,這可以通過綁定不同層的權重來輕鬆完成。多任務學習的想法於1993年由Rich Caruana首次提出,並應用於道路跟蹤和肺炎預測(Caruana,1998)。直觀地說,多任務學習鼓勵模型學習對許多任務有效的表徵描述。這對於學習一般的低級表示,集中模型的注意力或在有限量的訓練數據的設置中特別有用。
Collobert在2008年首次將多任務學習應用於NLP的神經網絡。在這一框架下,詞嵌入矩陣被兩個在不同任務下訓練的模型共享,如圖2所示。
圖2:語嵌入矩陣的共享
共享單詞嵌入使模型能夠在單詞嵌入矩陣中協作和共享一般的低級信息,這通常構成模型中最大數量的參數。Collobert和Weston在2008年的論文中證明了它在多任務學習中的應用。它引領了諸如預訓練單詞嵌入和使用卷積神經網絡(CNN)之類的方法,這些方法僅在過去幾年中被廣泛採用。他們也因此獲得了2018年機器學習國際會議(ICML)的「時間測試」獎。
多任務學習現在用於各種NLP任務,並且利用現有或「人工」任務已成為NLP指令集中的有用工具。雖然通常預先定義參數的共享,但是在優化過程期間也可以學習不同的共享模式。隨著模型越來越多地評估多項任務以評估其泛化能力,多任務學習越來越重要,最近又有提出了多任務學習的專用基準。
2013年 - 詞嵌入(Word embeddings)
詞嵌入在2001年首次出現。而Mikolov等人在2013年作出的主要創新——是通過刪除隱藏層和近似目標來使這些單詞嵌入的訓練更有效。雖然這些變化本質上很簡單,但它們與高效的word2vec(word to vector,用來產生詞向量的相關模型)組合在一起,使得大規模的詞嵌入模型訓練成為可能。
Word2vec有兩種風格,可以在下面的圖3中看到:CBOW(continuous bag-of-words)和skip-gram。它們的目標不同:一個基於周圍的單詞預測中心詞,而另一個則相反。
圖3:CBOW和skip-gram架構
雖然這些嵌入在概念上與使用前饋神經網絡學習的嵌入技術沒有什麼不同,但是對非常大的語料庫的訓練使它們能夠捕獲諸如性別,動詞時態和國家之類的單詞之間的某些關係,這可以看出在下面的圖4中。
圖4:word2vec捕獲的關係
這些關係及其背後的意義引發了對嵌入詞的初步興趣,許多研究調查了這些線性關係的起源。然而,使詞嵌入成為目前自然語言處理領域中重要一步的,是由於將預訓練的詞嵌入矩陣用於初始化可以提高大量下遊任務性能。
雖然捕獲的關係word2vec具有直觀且幾乎神奇的質量,但後來的研究表明word2vec沒有任何固有的特殊性:通過矩陣分解也可以學習單詞嵌入和通過適當的調整,像SVD和LSA這樣的經典矩陣分解方法可以獲得類似的結果。
從那時起,許多工作已經開始探索單詞嵌入的不同方面(正如原始論文的引用次數所示)。儘管有許多發展,但word2ve仍然是一種流行的選擇並且在今天被廣泛使用。Word2vec的範圍甚至超出了單詞級別:帶有負抽樣的skip-gram,一個基於本地環境學習嵌入的方便目標,已被應用於學習句子的表示,甚至超越NLP到網絡和生物序列等。
一個特別令人興奮的方向是將不同語言的單詞嵌入投影到同一空間中以實現(零射擊)跨語言轉移。越來越有可能以完全無監督的方式(至少對於類似語言)學習良好的投影,這開啟了低資源語言和無監督機器翻譯的應用。
2013年 - 用於自然語言處理的神經網絡(Neural networks for NLP)
2013年和2014年標誌著神經網絡模型開始在NLP中被採用的時間。三種主要類型的神經網絡成為使用最廣泛的:循環神經網絡(recurrent neural networks)、卷積神經網絡(convolutionalneural networks)和結構遞歸神經網絡(recursive neural networks)。
遞歸神經網絡(RNN)是處理NLP中普遍存在的動態輸入序列的理想選擇。Vanilla RNNs很快被經典的長期短期記憶網絡(LSTM)所取代,後者證明其對消失和爆炸梯度問題更具彈性。在2013年之前,仍然認為RNN很難訓練;Ilya Sutskever的博士論文是改變這一局面的一個關鍵例子。LSTM細胞的可視化可以在下面的圖5中看到。雙向LSTM通常用於處理左右上下文。
圖5:LSTM網絡(來源:Chris Olah)
隨著卷積神經網絡(CNN)被廣泛用於計算機視覺,它們也開始應用於語言(Kalchbrenner等,2014;Kim等,2014)。用於文本的卷積神經網絡僅在兩個維度上操作,其中濾波器僅需要沿時間維度移動。下面的圖6顯示了NLP中使用的典型CNN。
圖6:用於文本的卷積神經網絡(Kim,2014)
卷積神經網絡的一個優點是它們比RNN更容易並行化,因為每個時間步的狀態僅取決於本地環境(通過卷積運算)而不是像RNN中的所有過去狀態。 CNN可以使用擴張的卷積擴展到更寬的感受域,以捕捉更廣泛的背景(Kalchbrenner等,2016)。CNN和LSTM也可以組合和堆疊,並且可以使用卷積來加速LSTM。
RNN和CNN都將語言視為一個序列。然而,從語言學的角度來看,語言本質上是等級的:單詞被組成高階短語和子句,它們本身可以根據一組生產規則遞歸地組合。將句子視為樹而不是序列的語言啟發思想產生了遞歸神經網絡,這可以在下面的圖7中看到。
圖7:結構遞歸神經網絡(Socher等,2013)
自下而上構建序列的結構遞歸神經網絡,與從左至右或從右至左對序列進行處理的循環神經網絡相比,有著明顯的不同。在樹的每個節點處,通過組合子節點的表示來計算新表示。由於樹也可以被視為在RNN上施加不同的處理順序,因此LSTM自然地擴展到樹形結構取代序列。
不僅可以擴展RNN和LSTM以使用分層結構。不僅可以根據本地語言而且可以基於語法背景來學習單詞嵌入(Levy&Goldberg,2014);語言模型可以基於句法堆棧生成單詞(Dyer等,2016);圖形卷積神經網絡可以樹狀結構運行(Bastings等,2017)。
2014年 - 序列到序列模型(Sequence-to-sequence models)
2014年,Sutskever等人提出了序列到序列學習,一種使用神經網絡將一個序列映射到另一個序列的通用框架。在該框架中,編碼器神經網絡逐符號地處理句子並將其壓縮成矢量表示;然後,解碼器神經網絡基於編碼器狀態逐個預測輸出符號,在每個步驟中將先前預測的符號作為預測下一個的輸入,如下面的圖8所示。
圖8:序列到序列模型(Sutskever等,2014)
機器翻譯成了這個框架的殺手級應用。 2016年,谷歌宣布開始用神經MT模型替換其基於單片短語的MT模型(Wu等,2016)。根據Jeff Dean的說法,這意味著用500行神經網絡模型替換500,000行基於短語的機器翻譯代碼。
由於其靈活性,該框架現在是自然語言生成任務的首選框架,不同的模型承擔編碼器和解碼器的角色。重要的是,解碼器模型不僅可以以序列為條件,而且可以以任意表示為條件。這使得例如基於圖片生成描述(Vinyals等人,2015)(如圖9),基於表格的文本(Lebret等人,2016),基於源的描述、代碼更改(Loyola等,2017),以及許多其他應用程式成為可能。
圖9:基於圖像生成標題(Vinyals等,2015)
序列到序列學習甚至可以應用於NLP中常見的結構化預測任務,其中輸出具有特定結構。為簡單起見,輸出是線性化的,如下面圖10中的選區解析所示。神經網絡已經證明了在給予選區解析的足夠數量的訓練數據(Vinyals等,2015)和命名實體識別(Gillick等,2016)等的情況下,能夠直接學習產生這種線性化輸出的能力。
圖10:線性化選區分析樹(Vinyals等,2015)
用於序列和解碼器的編碼器通常基於RNN,但是可以使用其他模型類型。新架構主要來自機器翻譯的工作,機器翻譯將作為序列到序列架構的培養皿。最近的模型是深度LSTM(Wu等,2016)、卷積編碼器(Kalchbrenner等,2016;Gehring等,2017)、變換器(Vaswani等,2017)將在下一個討論部分,以及LSTM和變壓器的組合(Chen等,2018)。
2015年 - 注意力機制(Attention)
注意力(Bahdanau等,2015)是神經MT(NMT)的核心創新之一,也是使NMT模型優於基於經典短語的MT系統的關鍵思想。序列到序列學習的主要瓶頸是它需要將源序列的整個內容壓縮成固定大小的矢量。注意通過允許解碼器回顧源序列隱藏狀態來減輕這種情況,然後將其作為加權平均值提供給解碼器的附加輸入,如下面的圖11所示。
圖11:注意力機制(Bahdanau等,2015)
注意力機制是神經網絡機器翻譯 (NMT) 的核心創新之一,廣泛適用,並且可能對任何需要根據輸入的某些部分做出決策的任務有用。它已被應用於句法分析(Vinyals等,2015)、閱讀理解(Hermann等,2015)和單樣本學習(Vinyals等,2016)等等。輸入的甚至不需要是一個序列,可以包括其他表示,比如圖像的描述(圖 12)。注意力的一個有用的副作用是,通過根據注意力量檢查輸入的哪些部分與特定輸出相關,它提供了罕見的對模型內部運作機制的觀察。
圖12:圖像字幕模型中的視覺注意,指示模型在生成單詞「飛盤」時所遵循的內容。(Xu等,2015)
注意也不僅限於查看輸入序列;自我注意可用於查看句子或文檔中的周圍單詞以獲得更多上下文敏感的單詞表示。多層自我關注是Transformer架構的核心(Vaswani等,2017),這是目前最先進的NMT模型。
2015年 - 基於記憶的神經網絡(Memory-based networks)
注意力可以看作是模糊記憶的一種形式,其中記憶由模型的過去隱藏狀態組成,模型選擇從記憶中檢索的內容。有關注意事項及其與內存的關聯的更詳細概述,請查看此文章。已經提出了許多具有更明確記憶的模型。它們有不同的變體,例如神經圖靈機(Neural Turing Machines)、記憶網絡(Memory Network)、端到端的記憶網絡(End-to-end Memory Newtorks)、動態記憶網絡(DynamicMemory Networks)、神經可微計算機(Neural Differentiable Computer)、循環實體網絡(RecurrentEntity Network)。
通常基於與當前狀態的相似性來訪問存儲器,類似於注意機制,並且通常可以寫入和讀取存儲器。模型在實現和利用內存方面有所不同。例如,端到端內存網絡多次處理輸入並更新內存以啟用多個推理步驟。神經圖靈機還具有基於位置的尋址,允許他們學習簡單的電腦程式,如排序。基於內存的模型通常應用於任務,其中保留較長時間跨度的信息應該是有用的,例如語言建模和閱讀理解。存儲器的概念非常通用:知識庫或表可以用作存儲器,而存儲器也可以基於整個輸入或其特定部分來填充。
2018年 - 預訓練語言模型(Pretrained language models)
預訓練的詞嵌入與上下文無關,僅用於初始化模型中的第一層。最近幾個月,一系列監督任務被用於預訓練神經網絡(Conneau等,2017;McCann等,2017; Subramanian等,2018)。相比之下,語言模型只需要未標記的文本;因此,培訓可以擴展到數十億單詞的語料、新域和新語言。2015年首次提出了預訓練語言模型(Dai&Le,2015);直到最近,它們才被證明對各種各樣的任務都有益。語言模型嵌入可以用作目標模型中的特徵(Peters等,2018),或者可以對目標任務數據微調語言模型(Ramachandran等,2017; Howard&Ruder,2018)。添加語言模型嵌入比許多不同任務的最新技術有了很大的改進,如下面的圖13所示。
圖13:改進的語言模型嵌入(Peters等,2018)
已經展示了預訓練語言模型,可以用更少的數據進行學習。由於語言模型僅需要未標記的數據,因此對於標記數據稀缺的低資源語言尤其有用。
其他裡程碑
其他一些發展不如上面提到的那麼普遍,但仍然具有廣泛的影響。
比如基於字符的描述(Character-based representations),在字符上使用CNN或LSTM來獲得基於字符的單詞表示是相當普遍的,特別是對於形態學豐富的語言和形態信息很重要或具有許多未知單詞的任務。據我所知,基於特徵的表示首先用於序列標記(Lample等,2016;Plank等,2016)。基於字符的表示減少了必須以增加的計算成本處理固定詞彙表的需要,並且能夠實現諸如完全基於字符的NMT之類的應用(Ling等人,2016; Lee等人,2017)。
對抗學習(Adversarial learning)已經全面入侵和顛覆了及其計算領域,並且在NLP中也以不同的形式使用。對抗性示例越來越廣泛地被廣泛使用,不僅作為探測模型和理解其失敗案例的工具,而且還使它們更加強大(Jia&Liang,2017)。 (虛擬)對抗性訓練,即最壞情況的擾動(Miyato等,2017; Yasunaga等,2018)和域對抗性損失(Ganin等,2016; Kim等,2017)是有用的正規化的形式可以同樣使模型更加堅穩。生成對抗網絡(GAN)對於自然語言生成來說,還不是太有效(Semeniuta等,2018),但是例如在匹配分布時是有用的(Conneau等,2018)。
強化學習(Reinforcement learning)已經被證明對於具有時間依賴性的任務是有用的,例如在訓練期間選擇數據(Fang等,Wu等,2018)和建模對話(Liu等,2018)。RL對於直接優化諸如反向強化學習在獎勵太複雜而無法指定的環境中可能是有用的,例如視覺敘事(Wang等,2018)。
非神經裡程碑
在1998年以及隨後的幾年中,引入了FrameNet項目(Baker等,1998),這導致了語義角色標記的任務,這是一種淺層語義分析,至今仍在積極研究中。在21世紀初期,與自然語言學習會議(CoNLL)共同組織的共同任務催化了核心NLP任務的研究,如分塊(Tjong Kim Sang等,2000),命名實體識別(Tjong Kim Sang等,2003),以及依賴性解析(Buchholz等,2006)等。許多CoNLL共享任務數據集仍然是當今評估的標準。
2001年,引入了條件隨機區域(CRF; Lafferty等,2001),這是最具影響力的序列標記方法之一,在ICML 2011中獲得了時間測試獎.CRF層是核心部分目前最先進的模型用於序列標記問題與標籤相互依賴性,如命名實體識別(Lample等,2016)。
2002年,提出了雙語評估替代研究(BLEU; Papineni等,2002)度量,這使得MT系統能夠擴展,並且仍然是目前MT評估的標準度量。同年,引入了結構化先行者(Collins,2002),為結構化感知工作奠定了基礎。在同一次會議上,引入了情感分析,這是最受歡迎和廣泛研究的NLP任務之一(Pang等,2002)。這三篇論文都獲得了2018年NAACL的時間測試獎。
2003年引入了潛在的dirichlet分配(LDA; Blei等,2003),這是機器學習中使用最廣泛的技術之一,它仍然是進行主題建模的標準方法。2004年,提出了新的最大邊際模型,它們更適合捕獲結構化數據中的相關性而不是SVM(Taskar等,2004a; 2004b)。
2006年,OntoNotes(Hovy等,2006)引入了一個具有多個注釋和高交互注入協議的大型多語言語料庫。 OntoNotes已被用於培訓和評估各種任務,例如依賴性解析和共參考解析。 Milne和Witten(2008)在2008年描述了維基百科如何用於豐富機器學習方法。到目前為止,維基百科是用於訓練ML方法的最有用的資源之一,無論是用於實體連結和消歧,語言建模,作為知識庫還是各種其他任務。
2009年,提出了遠程監督的想法(Mintz等,2009)。遠程監督利用來自啟發式或現有知識庫的信息來生成可用於從大型語料庫中自動提取示例的噪聲模式。遠程監督已被廣泛使用,並且是關係提取,信息提取和情感分析以及其他任務中的常用技術。
本文來源前瞻網,轉載請註明來源。本文內容僅代表作者個人觀點,本站只提供參考並不構成任何投資及應用建議。(若存在內容、版權或其它問題,請聯繫:service@qianzhan.com) 品牌合作與廣告投放請聯繫:0755-33015062 或 hezuo@qianzhan.com