NLP深度学习:近期趋势概述(一)
在最近發表的論文中,Young及其同事匯總了基于深度學習的自然語言處理(NLP)系統和應用程序的一些最新趨勢。本文的重點介紹是對各種NLP任務(如視覺問答(QA)和機器翻譯)最新技術(SOTA)結果的回顧和比較。在這篇全面的綜述中,你可以詳細了解NLP深度學習的過去,現在和未來。此外,你還將學習一些?在NLP中應用深度學習的最佳實踐。其中主題包括:?
1、分布式表示的興起(例如,word2vec);
2、卷積,循環和遞歸神經網絡;
3、在強化學習中的NLP的應用;
4、無監督模型在表示學習中的最新進展;
5、將深度學習模型與增強記憶策略相結合;
?
什么是NLP?
自然語言處理(NLP)涉及構建計算機算法以自動分析和表示人類語言。基于NLP的系統現在已經實現了廣泛的應用,例如Google強大的搜索引擎,以及最近阿里巴巴的語音助手天貓精靈。NLP還可用于教授機器執行復雜的自然語言相關任務的能力,例如機器翻譯和對話生成。
長期以來,用于研究NLP問題的大多數方法都采用淺機器學習模型和耗時的手工制作特征。由于大多數的語言信息用稀疏表示(高維特征)表示,這導致諸如維數災難之類的問題。然而,隨著最近詞嵌入(低維,分布式表征)的普及和成功,與傳統的機器學習模型(如SVM或邏輯回歸)相比,基于神經的模型在各種語言相關任務上取得了優異的成果。
?
分布式表征
如前所述,手工制作的特征主要用于模擬自然語言任務,直到神經網絡的方法出現并解決了傳統機器學習模型所面臨的一些問題,如維數的災難。
詞嵌入:?分布向量,也稱為詞嵌入,基于所謂的分布假設-出現在類似語境中的單詞具有相似的含義。Word嵌入是在任務上預先訓練的,其目標是基于其上下文預測單詞,通常使用淺層神經網絡。下圖說明了Bengio及其同事提出的神經語言模型?。
詞向量傾向于嵌入語法和語義信息,并在各種NLP任務中負責SOTA,例如情感分析和句子組成。
分布式表征在過去被大量用于研究各種NLP任務,但是當連續的詞袋(CBOW)和skip-gram模型被引入該領域時,它才開始流行起來。它們很受歡迎,因為它們可以有效地構建高質量的詞嵌入,并且它們可以用于語義組合(例如,'man'+'royal'='king')。
Word2vec:2013年左右,Mikolav等人提出了CBOW和skip-gram模型。CBOW是構造詞嵌入的神經網絡方法,其目的是在給定上下文單詞的情況下計算目標單詞的條件概率。另一方面,Skip-gram是構建詞嵌入的神經網絡方法,其目標是在給定中心目標單詞的情況下預測周圍的上下文單詞(即條件概率)。對于兩種模型,通過計算(以無監督的方式)預測的準確性來確定單詞嵌入維度。
使用詞嵌入方法的挑戰之一是當我們想要獲得諸如“hot potato”或“Boston Globe”之類的短語的矢量表示時。我們不能簡單地組合單個單詞矢量表示,因為這些短語不代表單個單詞的含義的組合。當考慮更長的短語和句子時,它會變得更加復雜。
word2vec模型的另一個限制是使用較小的窗口大小(window sizes)產生類似的嵌入,用于對比諸如“好”和“壞”之類的單詞,這對于這種區分很重要的任務(例如情感分析)是不可取的。詞嵌入的另一個限制是它們依賴于使用它們的應用程序,即為每個新任務重新訓練任務特定的嵌入是一個探索的選項,但這通常是計算上昂貴的,并且可以使用負抽樣更有效地解決。Word2vec模型還存在其他問題,例如沒有考慮多義因素和其他可能從訓練數據中浮現的偏見。
字符嵌入:對于諸如詞性(POS)標記和命名實體識別(NER)之類的任務,查看單詞中的形態信息(例如字符或其組合)是有用的。這對于形式豐富的語言也很有用,例如葡萄牙語,西班牙語和中文。由于我們在字符級別分析文本,因此這些類型的嵌入有助于處理未知單詞問題,因為我們不再表示需要為了高效計算目的而需要減少的大詞匯表。
最后,重要的是要理解即使字符級和字級嵌入都已成功應用于各種NLP任務,但長期影響仍受到質疑。例如,Lucy和Gauthier最近發現,詞向量受限于它們如何很好地捕捉單詞背后的概念意義的不同方面。換句話說,他們聲稱只有分布式語義不能用于理解單詞背后的概念。最近,在自然語言處理系統的背景下,對意義表征進行了重要的辯論。
?
卷積神經網絡(CNN)
?CNN基本上是基于神經網絡的方法,其應用于構成單詞或n-gram以提取更高級特征的特征函數。由此產生的抽象特征已被有效地用于情感分析,機器翻譯和問答(QA)系統,以及其他任務。Collobert和Weston是首批將基于CNN的框架應用于NLP任務的研究人員之一。他們的方法的目標是通過查找表將詞轉換為矢量表示,這使得一種原始的詞嵌入方法,可以在神經網絡訓練期間學習權重(見下圖)。
為了利用基本的CNN進行句子建模,首先要先將句子標記為單詞,進一步將其轉換為d??維的詞嵌入矩陣(即輸入嵌入層)。然后,在該輸入嵌入層上應用卷積濾波器,其包括應用所有可能窗口大小(window size)的濾波器以產生所謂的特征映射。然后進行最大池操作,對每個過濾器應用最大操作以獲得固定長度輸出并減小輸出的維數,并且該過程產生最終句子表征。
通過增加上述基本的CNN的復雜性并使其適應于執行基于詞的預測,可以研究諸如NER,物體檢測和POS(詞性標記)的其他NLP任務。這需要基于窗口(window)的方法,其中對于每個單詞,考慮相鄰單詞(句子)的固定大小窗口。然后將獨立的CNN應用于句子中,并且訓練目標是預測窗口中心的單詞,也稱為單詞級分類。
CNNs的一個缺點是無法建模-長距離依賴關系,這對于各種NLP任務很重要。為了解決這個問題,CNN已經與時間延遲神經網絡(TDNN)耦合,后者在訓練期間可以立即實現更大的上下文范圍。在不同的NLP任務中表現成功的其他有用類型的CNN,例如情緒預測和問題類型分類,被稱為動態卷積神經網絡(DCNN)。DCNN使用動態k-max池策略,其中過濾器可以在執行句子建模時動態地跨越可變范圍。
CNN還用于更復雜的任務,對于不同長度的文本,例如物體檢測,情感分析,短文本分類和諷刺檢測。然而,其中一些研究報告說,在將基于CNN的方法應用于Twitter文本等微觀文本時,外部知識是必要的。證明CNN有用的其他任務是查詢-文檔匹配,語音識別,機器翻譯和問答等。另一方面,DCNN被用于分層學習捕獲并將低級詞匯特征組合成用于文本的自動概括的高級語義概念。
總體而言,CNN是有效的,因為它們可以在上下文窗口中挖掘語義線索,但是它們難以保持連續順序和模擬遠距離的上下文信息。RNN更適合這種類型的學習,接下來將對它們進行討論。
原文鏈接
本文為云棲社區原創內容,未經允許不得轉載。
總結
以上是生活随笔為你收集整理的NLP深度学习:近期趋势概述(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 10行代码让你轻松搞定对象检测
- 下一篇: AI开发者福音!阿里云推出国内首个基于英