自然語言處理(NLP)中的深度學習發展史和待解難題

2020-12-04 量子位

王小新 編譯自 sigmoidal量子位 出品 | 公眾號 QbitAI

自然語言處理(NLP)是指機器理解並解釋人類寫作與說話方式的能力。近年來,深度學習技術在自然語言處理方面的研究和應用也取得了顯著的成果。

技術博客Sigmoidal最近發布了一篇文章,作者是機器學習工程師Rafal。

這篇文章討論了自然語言處理方法的發展史,以及深度學習帶來的影響。量子位編譯如下:

在深度學習時代來臨前

在2006年Hinton提出深度信念網絡(DBN)之前,神經網絡是一種極其複雜且難以訓練的功能網絡,所以只能作為一種數學理論來進行研究。

在神經網絡成為一種強大的機器學習工具之前,經典的數據挖掘算法在自然語言處理方面有著許多相當成功的應用。我們可以使用一些很簡單且容易理解的模型來解決常見問題,比如垃圾郵件過濾、詞性標註等。

但並不是所有問題都能用這些經典模型來解決。簡單的模型不能準確地捕捉到語言中的細微之處,比如諷刺、成語或語境。

基於總體摘要的算法(如詞袋模型)在提取文本數據的序列性質時效果不佳,而N元模型(n-grams)在模擬廣義情境時嚴重受到了「維度災難(curse of dimensionality)」問題的影響,隱馬爾可夫(HMM)模型受馬爾可夫性質所限,也難以克服上述問題。

這些方法在更複雜的NLP問題中也有應用,但是並沒有取得很好的效果。

第一個技術突破:Word2Vec

神經網絡能提供語義豐富的單詞表徵,給NLP領域帶來了根本性突破。

在此之前,最常用的表徵方法為one-hot編碼,即每個單詞會被轉換成一個獨特的二元向量,且只有一個非零項。這種方法嚴重地受到了稀疏性的影響,不能用來表示任何帶有特定含義的詞語。

Word2Vec方法中被投射到二維空間中的單詞表徵

然而,我們可以嘗試關注幾個周圍單詞,移除中間單詞,並通過在神經網絡輸入一個中間單詞後,預測周圍單詞,這就是skip-gram模型;或是基於周圍單詞,進行預測中間單詞,即連續詞袋模型(CBOW)。當然,這種模型沒什麼用處,但是事實證明,它可在保留了單詞語義結構的前提下,用來生成一個強大且有效的向量表示。

進一步改進

儘管Word2Vec模型的效果超過了許多經典算法,但是仍需要一種能捕獲文本長短期順序依賴關係的解決方法。對於這個問題,第一種解決方法為經典的循環神經網絡(Recurrent Neural Networks),它利用數據的時間性質,使用存儲在隱含狀態中的先前單詞信息,有序地將每個單詞傳輸到訓練網絡中。

循環神經網絡示意圖

事實證明,這種網絡能很好地處理局部依賴關係,但是由於「梯度消失」問題,很難訓練出理想效果。

為了解決這個問題,Schmidhuber等人提出了一種新型網絡拓撲結構,即長短期記憶模型(Long Short Term Memory)。它通過在網絡中引入一種叫做記憶單元的特殊結構來解決該問題。這種複雜機制能有效獲取單元間更長期的依賴關係,且不會顯著增加參數量。

現有的很多常用結構也是LSTM模型的變體,例如mLSTM模型或GRU模型。這得益於提出了基於自適應簡化的記憶單元更新機制,顯著減少了所需的參數量。

在計算機視覺領域中,卷積神經網絡已經取得了很好的應用,遲早會延伸到自然語言處理研究中。目前,作為一種常用的網絡單元,一維卷積已成功應用到多種序列模型問題的處理中,包括語義分割、快速機器翻譯和某些序列轉換網絡中。由於更容易進行並行計算,與循環神經網絡相比,一維卷積在訓練速度上已提高了一個數量級。

了解常見的NLP問題

有許多任務,涉及到計算機與人類語言之間的交互,這可能對人類來說是一件簡單的小事,但是給計算機帶來了很大的麻煩。這主要是由語言中細微差異引起的,如諷刺、成語等。

按照複雜程度,下面列出了當前還處於探索階段的多個NLP領域:

最常見的領域是情緒分析(Sentiment Analysis),這方面也許最為簡單。它通常可歸結為確定說話者/作者對某個特定主題的態度或情感反應。這種情緒可能是積極的、中性的和消極的。文末的連結1給出了一篇關於使用深度卷積神經網絡學習Twitter情緒的經典文章。連結2的一個有趣實驗偶然發現,深度循環網絡也可用來辨識情緒。

生成對話網絡中的多個激活神經元。明顯看出,即使進行無監督訓練,網絡也能分辨出不同情緒類別。

我們可以將這種方法應用到文件分類(Document Classification)中,這是一個普通的分類問題,而不是為每篇文章打幾個標籤。連結3的論文通過仔細比較算法間差異,得出深度學習也可作為一種文本分類方法的結論。

接下來將要介紹一個真正有挑戰的領域——機器翻譯(Machine Translation)。這是一個與先前兩個任務完全不同的研究領域。我們需要一個預測模型,來輸出一個單詞序列,而不是一個標籤。在序列數據研究中,深度學習理論的加入給這個領域帶來了巨大的突破。通過連結4的博文中,你可以了解更多關於循環神經網絡在機器翻譯中的應用。

我們可能還想要構建一個自動文本摘要(Text Summarization)模型,它需要在保留所有含義的前提下,提取出文本中最重要的部分。這需要一種算法來了解全文,同時能夠鎖定文章中能代表大部分含義的特定內容。在端到端方法中,可以引入注意力機制(Attention Mechanisms)模塊來很好地解決這個問題。

關於注意力機制的詳細內容可參考量子位先前編譯過的文章《自然語言處理中的注意力機制是幹什麼的?

最後一個領域為自動問答(Question Answering),這是一個與人工智慧極其相關的研究方向。相關模型不僅需要了解所提出的問題,而且需充分了解文本中的關注點,並準確地知道在何處尋找答案。關於深度學習在自動問答中的詳細說明,請查看連結5的相關博文。

GNMT英譯法的注意力機制示意圖。

由於深度學習為各種數據(如文本和圖像)提供相應的向量表徵,你可以利用不同的數據特性構建出不同模型。

於是,就有了圖片問答(Visual Question Answering)研究。這種方式比較簡單,你只需要根據給出圖像,回答相應問題。這項工作簡單到聽起來好像一個七歲小孩就能完成,但是深層模型在無監督情況下不能輸出任何合理的結果。連結6的文章給出了相關模型的結果和說明。

總結

我們可以發現,深度學習在自然語言處理中也取得了很好的效果。但是由於計算和應用等問題,我們仍需要進一步了解深度神經網絡,一旦可以掌控深度學習,這將永遠改變遊戲規則。

相關連結

1.Twitter情緒分類:

http://casa.disi.unitn.it/~moschitt/since2013/2015_SIGIR_Severyn_TwitterSentimentAnalysis.pdf

2.基於深度循環網絡的文本情緒辨識:

https://blog.openai.com/unsupervised-sentiment-neuron/

3.基於RNN網絡的文本分類:

https://arxiv.org/pdf/1703.01898.pdf

4.循環神經網絡在機器翻譯中的應用:

https://medium.com/@ageitgey/machine-learning-is-fun-part-5-language-translation-with-deep-learning-and-the-magic-of-sequences-2ace0acca0aa

5.深度學習在自動問答中的應用:

https://einstein.ai/research/state-of-the-art-deep-learning-model-for-question-answering

6.圖片問答中的文本表徵:

https://arxiv.org/pdf/1705.06824.pdf

【完】

相關焦點

  • 【超全資源】自然語言處理(NLP)入門學習資源清單(部分資料下載)
    v=nfoudtpBV68&list=PL6397E4B26D00A269 •  斯坦福CS224d:自然語言處理的深度學習[更高級的機器學習算法、深度學習和NLP的神經網絡架構]http://cs224d.stanford.edu/syllabus.html •  Coursera:自然語言處理簡介[由密西根大學提供的NLP
  • 國內自然語言處理(NLP)研究組
    Lab)ByteDance AI Lablab.toutiao.com中科院計算所自然語言處理研究組歡迎來到中科院計算所自然語言處理組網站nlp.ict.ac.cn中科院自動化研究所語音語言技術研究組中文信息處理組nlpr-web.ia.ac.cn中國科學院軟體研究所中文信息處理實驗室中科院軟體所中文信息處理實驗室www.icip.org.cn
  • 實踐入門NLP:基於深度學習的自然語言處理
    特別是最近兩年,基於深度學習的自然語言處理逐漸取得了一定進展,在人機對話、問答系統、語言翻譯等方向的應用也一直是自然語言處理中的熱門話題,而這些應用的實現,基本依賴於底層技術和模型的進步,再加上自然語言處理領域也算是一個多學科交叉的行業,自然語言處理的未來發展對於很多相關學科和方向都具有深遠的影響力。
  • 從語言學到深度學習NLP,一文概述自然語言處理
    本文從兩篇論文出發先簡要介紹了自然語言處理的基本分類和基本概念,再向讀者展示了深度學習中的 NLP。這兩篇論文都是很好的綜述性入門論文,希望詳細了解自然語言處理的讀者可以進一步閱讀這兩篇論文。本文第一部分介紹了自然語言處理的基本概念,作者將 NLP 分為自然語言理解和自然語言生成,並解釋了 NLP 過程的各個層級和應用,這一篇論文很適合讀者系統的了解 NLP 的基本概念。
  • 重磅發布 | 牛津大學Deep NLP深度自然語言處理課程17年最新(漢化視頻)
    大數據文摘作品,轉載要求見文末大數據文摘重磅推出牛津大學深度學習與自然語言處理課程(Deep NLP)漢化視頻!大數據文摘視頻團隊在今年又獲得重磅資源,牛津大學深度學習與自然語言處理課程(Deep NLP)!大數據文摘已聯繫課程主講人取得翻譯授權,並聯合北京郵電大學模式識別實驗室組織了視頻漢化,免費發布。 所以大家可以看到中文字幕了!開不開心!
  • 深度學習在NLP中的運用?從分詞、詞性到機器翻譯、對話系統
    本文由機器之心編輯,「機器之心」專注生產人工智慧專業性內容,適合開發者和從業者閱讀參考。點擊右上角即刻關注。自然語言是人類知識的抽象濃縮表示,而自然語言理解是人工智慧研究領域中極具挑戰的一個分支。上次,《自然語言處理在 2017 年有哪些值得期待的發展?
  • NLP入門+實戰必讀:一文教會你最常見的10種自然語言處理技術
    大數據文摘作品編譯:糖竹子、吳雙、錢天培自然語言處理(NLP)是一種藝術與科學的結合,旨在從文本數據中提取信息。在它的幫助下,我們從文本中提煉出適用於計算機算法的信息。從自動翻譯、文本分類到情緒分析,自然語言處理成為所有數據科學家的必備技能之一。在這篇文章中,你將學習到最常見的10個NLP任務,以及相關資源和代碼。為什麼要寫這篇文章?
  • 自然語言處理深度學習的7個應用
    原文:7 Applications of Deep Learning for Natural Language Processing作者:Jason Brownlee翻譯:無阻我飛揚摘要:在這篇文章中,作者詳細介紹了自然語言處理深度學習的7種應用,以下是譯文。自然語言處理領域正在從統計方法轉變為神經網絡方法。
  • 自然語言處理的最佳實踐
    雷鋒網 AI 開發者按,近年來,自然語言處理(NLP)在質量和可用性方面快速增長,這有助於推動人工智慧解決方案的實際落地。在過去的幾年裡,研究人員一直在將新的深度學習方法應用於 NLP。數據科學家開始從傳統的方法轉向最先進的(SOTA)深度神經網絡(DNN)算法,這種算法使用的語言模型經過了大文本語料庫的預訓練。
  • 深度學習與自然語言處理的工作概述及未來發展
    深度學習是機器學習的一個領域,研究複雜的人工神經網絡的算法、理論、及應用。自從2006年被Hinton等提出以來[1],深度學習得到了巨大發展,已被成功地應用到圖像處理、語音處理、自然語言處理等多個領域,取得了巨大成功,受到了廣泛的關注,成為當今具有代表性的IT先進技術。
  • 2019自然語言處理前沿論壇 五大議題全面解析NLP技術前沿
    詞向量的引入開啟了深度學習應用於自然語言處理的時代。相比於靜態詞向量,動態詞向量可以根據上下文,更好地處理一詞多義現象,大幅提高自然語言處理多個任務的準確率。車萬翔介紹了研究組基於動態詞向量開展的相關工作,包括跨語言動態詞向量[1]、few-shot learning、輕量級動態詞向量模型等。
  • 中文NLP福利!大規模中文自然語言處理語料
    新智元推薦來源:AINLP作者:徐亮【新智元導讀】本文介紹一個中文自然語言處理語料庫項目:nlp_chinese_corpus ,初步貢獻了幾個已經預處理好的中文語料,包括維基、新聞和百科語料,可直接下載使用。
  • NLP 與 NLU:從語言理解到語言處理
    同理,在自然語言處理領域中,自然語言處理(NLP)的概念是否會讓位於自然語言理解(NLU)? 或者兩個概念之間的關係是否變得更微妙,更複雜,抑或只是技術的發展?在這篇文章中,我們將仔細研究NLP和NLU的概念以及它們在AI相關技術中的優勢。值得注意的是,NLP和NLU儘管有時可以互相交換使用,但它們實際上是兩個有一些重疊的不同概念。
  • 人工智慧難點之——自然語言處理(NLP)
    (NLP)是人工智慧和語言學領域的分支學科。(人工智慧主要包含以下幾個方面: 自動推理-計算語言學-計算機視覺-進化計算-專家系統-自然語言處理-機器人學)自然語言處理(NLP)是資訊時代最重要的技術之一。理解複雜的語言也是人工智慧的重要組成部分。
  • 科普丨什麼是NLP(自然語言處理)
    自然語言處理(NLP)是一種專業分析人類語言的人工智慧。Siri的工作過程就是自然語言處理在實踐中應用的一個鮮活案例。NLP正在成為我們生活中不可或缺的一部分,其與機器學習、深度學習一起達成的高度遠遠優於幾年前取得的成就。在本文中我們將深入了解NLP是如何應用、如何工作的。NLP可以做些什麼?
  • 閒談深度學習在自然語言處理領域的5大關鍵優勢
    在自然語言處理領域,深度學習將給予最大的幫助,深度學習方法主要依靠一下這五個關鍵優勢,閱讀本文將進一步了解自然語言處理的重要深度學習方法和應用。 在自然語言處理領域,深度學習的承諾是:給新模型帶來更好的性能,這些新模型可能需要更多數據,但不再需要那麼多的語言學專業知識。
  • 深度| 深度學習概覽之自然語言處理:從基本概念到前沿研究
    選自Adit Deshpande blog作者:Adit Deshpande機器之心編譯參與:趙華龍、王宇欣、吳攀本文是 Adit Deshpande 的 Deep Learning Research Review 系列文章的第三篇,總結和解讀了深度學習在自然語言處理領域的應用。
  • CNCC 2019 | 劉群:基於深度學習的自然語言處理,邊界在哪裡?
    近日,在北京語言大學舉辦的第四屆語言與智能高峰論壇上,華為諾亞方舟實驗室語音語義首席科學家劉群教授高屋建瓴,細緻分析了深度學習時代NLP的已知與未知。他從自然語言處理基於規則、統計到深度學習的範式遷移出發,探討了深度學習方法解決了自然語言處理的哪些問題以及尚未解決哪些問題。
  • 一文讀懂Smartbi的自然語言處理(NLP)技術
    例如,人類語言雖然有一定的規則,但是在真實使用中往往伴隨大量的噪音和不規範性。理性主義方法的一大弱點就是魯棒性差,只要與規則稍有偏離便無法處理。而對於經驗主義方法而言,又不能無限地獲取語言數據進行統計學習,因此也不能夠完美地理解人類語言。
  • 自然語言處理全家福:縱覽當前NLP中的任務、數據、模型與論文
    選自Github作者:Sebastian Ruder機器之心編譯參與:思源、曉坤自然語言處理有非常多的子領域,且很多都沒有達到令人滿意的性能。本文的目的是追蹤自然語言處理(NLP)的研究進展,並簡要介紹最常見 NLP 任務的當前最佳研究和相關數據集。