王小新 編譯自 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
【完】