一文了解自然语言处理神经史(上)
2019獨角獸企業重金招聘Python工程師標準>>>
摘要:?越來越火的NLP到底經歷了什么?
本文擴展了Herman Kamper和我在2018年深度學習Indaba組織的自然語言處理前沿課程。整個課程的幻燈片都可以在這里找到,這篇文章將主要討論NLP中基于神經網絡方法的近期進展。
免責聲明:本文嘗試將大約15年NLP的發展歷程濃縮為今天最相關的八個里程碑,因此遺漏了許多相關和重要的發展。特別是,它嚴重偏向于當前的神經方法,這可能給人留下此期間沒有其他有影響力方法的錯誤影響。
2001年-神經語言模型
語言建模是在給定前面的單詞的情況下預測文本中的下一個單詞的任務。?它可能是最簡單的語言處理任務,具有實際應用,如智能鍵盤和電子郵件響應建議(Kannan et al.,2016)。語言建模有著豐富的歷史。基于n-gram的經典方法采用平滑處理看不見的n-gram(Kneser&Ney,1995)。Bengio等人于2001年提出了第一種神經語言模型,一種前饋神經網絡,如下圖1所示。
該模型把n個可以在表C中查找的先前單詞向量表示作為輸入。現在,這種向量被稱為詞嵌入。這些詞嵌入被連接并送入隱藏層,然后將其輸出提供給softmax層。想要了解更多該模型的信息,請查看此文章。
最近,前饋神經網絡已被用于語言建模的遞歸神經網絡(RNN; Mikolov等人,2010)和長短期記憶網絡(LSTM; Graves,2013)所取代。近年來已經提出了許多經典LSTM的新語言擴展模型(請參閱此頁面以獲得概述)。盡管有這些發展,但經典的LSTM仍然是一個強大的基線(Melis等,2018)。即使Bengio等人的經典前饋神經網絡在某些環境中也與更復雜的模型競爭,但這些通常只學會考慮最近的詞(Daniluk等,2017)。如何理解這些語言模型捕獲的信息是一個活躍的研究領域(Kuncoro等,2018; Blevins等,2018)。
語言建模通常是應用RNN時的首選訓練場,并成功捕捉到了想象力,許多人通過Andrej的博客文章開始了解。語言建模是無監督學習的一種形式,Yann LeCun也將預測性學習作為獲取常識的先決條件(參見NIPS 2016的Cake幻燈片)。?關于語言建模最顯著的方面可能是,盡管它很簡單,但它是本文討論的許多后期進展的核心:
詞嵌入:word2vec的目標是簡化語言建模;
序列到序列模型:這種模型通過一次預測一個詞來生成輸出序列;
預訓練語言模型:這些方法使用語言模型中的表示來進行遷移學習;
這反過來意味著NLP中許多最重要的最新進展減少為一種語言建模形式。?為了做“真正的”自然語言理解,僅僅從原始形式的文本中學習可能是不夠的,我們將需要新的方法和模型。
2008-多任務學習
多任務學習是在多個任務上訓練的模型之間共享參數的一般方法。在神經網絡中,這可以通過綁定不同層的權重來輕松實現。多任務學習的想法在1993年由Rich Caruana首次提出,并應用于道路跟蹤和肺炎預測(Caruana,1998)。直觀地說,多任務學習鼓勵模型學習對許多任務有用的表示。特別對于學習一般的低級表示,集中模型的注意力或在有限量的訓練數據的設置中特別有用。有關多任務學習的更全面概述,請查看此文章。
Collobert和Weston于2008年首次將多任務學習應用于NLP的神經網絡。?在他們的模型中,查找表(或詞嵌入矩陣)在兩個在不同任務上訓練的模型之間共享,如下面的圖2所示。
共享詞嵌入使模型能夠在詞嵌入矩陣中協作和共享一般的低級信息,這通常構成模型中最大數量的參數。Collobert和Weston在2008年的論文中證明了它在多任務學習中的應用,它引領了諸如預訓練詞嵌入和使用卷積神經網絡(CNN)之類的思想,這些思想僅在過去幾年中被廣泛采用。它贏得了ICML 2018的時間考驗獎(參見此時的時間考驗獎論文)。
多任務學習現在用于各種NLP任務,并且利用現有或“人工”任務已成為NLP指令集中的有用工具。有關不同附加任務的概述,請查看此文章。雖然通常預先定義參數的共享,但是在優化過程期間也可以學習不同的共享模式(Ruder等,2017)。隨著模型越來越多地在多項任務中被評估來評估其泛化能力,多任務學習越來越重要,最近提出了多任務學習的專用基準(Wang et al,2018; McCann et al,2018)。
2013-詞嵌入
文本的稀疏向量表示,即所謂的詞袋模型,在NLP中具有悠久的歷史。正如我們在上面所看到的,早在2001年就已經使用了詞或詞嵌入的密集向量表示。?Mikolov等人在2013年提出的主要創新,是通過移動隱藏層和近似目標來使這些詞嵌入的訓練更有效率。雖然這些變化本質上很簡單,但它們與高效的word2vec一起實現了大規模的詞嵌入訓練。
Word2vec有兩種模式,可以在下面的圖3中看到:連續的詞袋(CBOW)和skip-gram。它們的目標不同:一個基于周圍的詞預測中心詞,而另一個則相反。
雖然這些嵌入在概念上與使用前饋神經網絡學習的嵌入技術沒有什么不同,但是對非常大的語料庫的訓練使它們能夠捕獲諸如性別,動詞時態和國家–首都關系之類的詞之間的某些關系,由圖4可知:
這些關系及其背后的意義引發了對嵌入詞的初步興趣,許多研究調查了這些線性關系的起源(Arora等,2016; Mimno&Thompson,2017; Antoniak&Mimno,2018; Wendlandt等,2018))。然而,使用預訓練嵌入作為初始化的固定詞嵌入,把它作為當前NLP的主要內容被證明可以提高各種下游任務的性能。
雖然捕獲的關系word2vec具有直觀且幾乎神奇的性能,但后來的研究表明word2vec沒有任何固有的特殊性:通過矩陣分解也可以學習詞嵌入(Pennington等,2014; Levy&Goldberg,2014)和通過適當的調整,經典的矩陣分解方法(如SVD和LSA)可以獲得類似的結果(Levy等,2015)。
從那時起,許多工作已經開始探索詞嵌入的不同方面,可以通過這篇文章了解一些趨勢和未來方向。盡管有許多發展,但word2ve仍然是如今被廣泛使用的一種流行的選擇。Word2vec的范圍甚至超出了詞級別:帶有負抽樣的skip-gram,一個基于本地環境學習嵌入的方便目標,已被應用于學習句子的表示(Mikolov&Le,2014; Kiros et al.,2015)-甚至超越NLP,應用到網絡(Grover&Leskovec,2016)和生物序列(Asgari&Mofrad,2015)等。
一個特別令人興奮的方向是將不同語言的詞嵌入投影到同一空間中以實現(零射擊)跨語言轉移。越來越有可能以完全無監督的方式(至少對于類似語言)學習良好的投影,這開啟了低資源語言和無監督機器翻譯的應用(Lample等,2018; Artetxe等,2018)。請查看(Ruder等,2018)的概述。
2013年-NLP的神經網絡
2013年和2014年是神經網絡模型開始應用于NLP的標志年份。三種主要類型的神經網絡被廣泛使用:遞歸神經網絡、卷積神經網絡、循環神經網絡。
遞歸神經網絡(RNN)是處理NLP中普遍存在的動態輸入序列問題的明顯選擇。?Vanilla RNNs(Elman,1990)很快被經典的長短期記憶網絡(Hochreiter&Schmidhuber,1997)所取代,后者證明其對消失和爆炸梯度問題更具彈性。在2013年之前,RNN仍然被認為很難訓練,Ilya Sutskever的博士論文是改變這種現狀的一個關鍵例子。LSTM細胞可視化可以在下面的圖5中看到。雙向LSTM(Graves等,2013)通常用于處理左右上下文。
隨著卷積神經網絡(CNN)被廣泛用于計算機視覺,它們也開始應用于文本(Kalchbrenner等,2014; Kim等,2014)。用于文本的卷積神經網絡僅在兩個維度上操作,其中濾波器僅需要沿時間維度移動。下面的圖6顯示了NLP中使用的典型CNN。
卷積神經網絡的一個優點是它們比RNN更可并行化,因為每個時間步的狀態僅取決于本地環境(通過卷積運算)而不是像RNN取決過去所有狀態。CNN可以使用擴張卷積擴展到更寬的感受野,以捕捉更廣泛的背景(Kalchbrenner等2016)。?CNN和LSTM也可以組合和堆疊,并且可以使用卷積來加速LSTM。
RNN和CNN都將語言視為一個序列。然而,從語言學的角度來看,語言本質上是等級的:單詞被組成高階短語和子句它們本身可以根據一組生產規則遞歸地組合。將句子視為樹而不是序列的語言啟發思想產生了遞歸神經網絡,這可以在下面的圖7中看到:
與從左到右或從右到左處理句子的RNN相比,遞歸神經網絡從下到上構建序列的表示。在樹的每個節點處,通過組合子節點的表示來計算新表示。由于樹也可以被視為在RNN上施加不同的處理順序,因此LSTM自然地擴展到樹。
RNN和LSTM不僅僅可以被擴展來使用分層結構,而且不僅可以根據本地語言學習詞嵌入,而且可以基于語法背景來學習詞嵌入(Levy&Goldberg,2014);語言模型可以基于句法堆棧生成單詞(Dyer et al。,2016);?圖形卷積神經網絡可以在樹上運行(Bastings等,2017)。
原文鏈接
轉載于:https://my.oschina.net/u/1464083/blog/2962863
總結
以上是生活随笔為你收集整理的一文了解自然语言处理神经史(上)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vuls漏洞扫描工具
- 下一篇: windows 批处理bat,设置定时关