深度學習浪潮中的自然語言處理技術

哈工大SCIR發表於2016-08-01

1. 引言

語言是思維的載體,是人類交流思想、表達情感最自然的工具,也是人類區別其他動物的本質特性。自然語言處理(Natural Language Processing,簡稱NLP)主要研究用計算機來處理、理解以及運用人類語言(又稱自然語言)的各種理論和方法,屬於人工智慧領域的一個重要的研究方向,是電腦科學與語言學的交叉學科,又常被稱為計算語言學[1]。隨著網際網路的快速發展,網路文字成爆炸性增長,為自然語言處理提出了巨大的應用需求。同時,自然語言處理研究的進步,也為人們更深刻的理解語言的機理和社會的機制提供了一種新的途徑,因此具有重要的科學意義。

隨著深度學習技術在越來越多的任務中所取得的突破性進展,有越來越多相關領域的學者將注意力轉移到了人工智慧皇冠上的那顆明珠—自然語言處理問題上。如著名的機器學習專家,美國加州大學伯克利分校的 Michael Jordan教授說:“如果有一筆10億美金的資助,我會將它用於自然語言處理的研究”。深度學習研究的領軍人物之一,美國紐約大學教授、Facebook人工智慧研究院負責人Yann LeCun也曾表示“深度學習的下一個前沿課題是自然語言理解”[2]。

然而,由於自然語言所具有的歧義性、動態性和非規範性,同時語言理解通常需要豐富的知識和一定的推理能力,這些都為自然語言處理帶來了極大的挑戰。目前,機器學習技術為以上問題提供了一種可行的解決方案,成為研究的主流,該研究領域又被稱為統計自然語言處理[3]。一個統計自然語言處理系統通常由兩部分組成,即訓練資料(也稱樣本)和統計模型(也稱演算法)。我們總結了目前自然語言處理中常用的模型和資料,如下表所示:

深度學習浪潮中的自然語言處理技術

但是,傳統的機器學習方法在資料獲取和模型構建等諸多方面,都存在嚴重的問題:首先,為獲得大規模的標註資料,傳統方法需要花費大量的人力、物力、財力,僱用語言學專家進行繁瑣的標註工作。然而由於這種方法存在標註代價高、規範性差等問題,很難獲得大規模高質量的人工標註資料,由此帶來了嚴重的資料稀疏問題。

其次,在傳統的自然語言處理模型中,通常需要人工設計模型所需要的特徵以及特徵組合。這種人工設計特徵的方式,需要開發人員對所面對的問題有深刻的理解和豐富的經驗,這會消耗大量的人力和時間,即便如此也往往很難獲得有效的特徵。

近年來,如火如荼的深度學習技術為這兩方面的問題提供了一種可能的解決思路,有效推動了自然語言處理技術的發展。那麼,什麼是深度學習,它究竟給自然語言處理帶來了哪些創新性的想法,如何將深度學習技術更好的應用於自然語言處理,深度學習與自然語言處理的未來研究方向是什麼呢?本文試圖就這些問題加以回答。

2. 基於深度學習的自然語言處理

深度學習旨在模擬人腦對事物的認知過程,一般是指建立在含有多層非線性變換的神經網路結構之上,對資料的表示進行抽象和學習的一系列機器學習演算法。該方法已對語音識別、影像處理等領域的進步起到了極大的推動作用,同時也引起了自然語言處理領域學者的廣泛關注。

如下圖所示,深度學習為自然語言處理的研究主要帶來了兩方面的變化:一方面是使用統一的分散式(低維、稠密、連續)向量表示不同粒度的語言單元,如詞、短語、句子和篇章等;另一方面是使用迴圈、卷積、遞迴等神經網路模型對不同的語言單元向量進行組合,獲得更大語言單元的表示。除了不同粒度的單語語言單元外,不同種類的語言、甚至不同模態(語言、影像等)的資料都可以通過類似的組合方式,表示在相同的語義向量空間中,然後通過在向量空間中的運算來實現分類、推理、生成等各種能力,並應用於各種相關的任務之中。下面我們分別對這兩方面加以詳細的闡述:

深度學習浪潮中的自然語言處理技術

2.1 分散式表示(Distributed Representation)


深度學習最早在自然語言處理中的應用是神經網路語言模型[4],其背後的一個基本假設是使用低維、稠密、連續的向量表示詞彙,又被稱為分散式詞表示(Distributed Word Representation)或詞嵌入(Word Embedding)。從直覺上來講,使用該項技術,可以將相似的詞彙表示為相似的向量,如“馬鈴薯”和“土豆”的詞向量比較相似。這樣,如果我們在訓練資料中只觀察到了“馬鈴薯”,即使在測試的時候出現了“土豆”,我們也能通過詞向量判斷其與“馬鈴薯”比較相似,從而在一定程度上緩解了自然語言處理中常見的資料稀疏問題。

在理論上,將原有高維、稀疏、離散的詞彙表示方法(又稱One-hot表示)對映為分散式表示是一種降維方法,可有效克服機器學習中的“維數災難(Curse of Dimensionality)”問題,從而獲得更好的學習效果。同時這種分散式表示的表達能力更強,理論上其表達能力與其維度成指數關係,而傳統離散表示是線性關係。另外一種對分散式詞表示的理解是,不同維度表示了詞的不同主題,各維度上的數值表示了一個詞對於不同主題的權重,這相當於將原來線性不可分的一個詞抽取出其各個屬性,從而更有利於分類(最終還是線性分類)。這就好比我們要區分不同種族的人,只通過人名(相當於傳統的離散詞表示方式)不好區分,而如果能將每個人抽取出各種“屬性-值”對(相當於轉換為分散式詞表示),如眼睛的顏色、鼻子的高度等,就更容易進行人種的區分了。

分散式詞表示近年來被廣泛應用於自然語言處理中,通常有直接和間接兩種應用方式。所謂直接應用,即使用學習到的分佈詞表示進行詞語之間的相似度計算或者句法語義關係的學習。事實上,對詞語之間相似度的表達能力,也一度被用於評價學習獲得的分散式詞表示,常用的評測集有WordSim-353 (英文)等。

另一方面,分散式詞表示能夠在一定程度上表達特定的句法語義關係則是其另一個非常有趣的性質。這種性質首先由Mikolov等發現[5],他們通過對資料的觀察,發現滿足相同句法或語義關係的兩個詞對,其分散式表示的差向量也非常接近,如:V(“Woman” )-V(“Man” )≈V(“Queen” )-V(“King” )。這意味著,只需要通過簡單的向量運算,就可以表達詞彙之間所蘊含的句法或語義關係。該性質後來被廣泛應用於知識圖譜(Knowledge Graph)或本體(Ontology)的構建等任務[6]。

分散式詞表示的另一方面應用為間接應用,即將其作為上層系統的輸入,利用該表示的各種優秀性質,提高上層系統的準確率。最簡單的做法是將分散式詞表示作為額外的特徵輸入給上層系統[7],這樣上層系統可以不進行任何修改,仍然使用傳統的線性模型,通過分散式詞表示增強詞彙特徵的泛化能力,提高準確率。另一種做法是將上層系統替換為多層非線性神經網路模型,這樣分散式詞表示在作為特徵輸入給系統的同時,也可以通過反向傳播機制進行微調(Fine-tuning),從而更加適用於具體的自然語言處理任務。

2.2 語義組合(Semantic Composition)


分散式詞表示的思想可以進一步擴充套件,即通過組合(Composition)的方式來表示短語、句子甚至是篇章等更大粒度的語言單元。目前,主要通過三種神經網路結構來實現不同的組合方式,即:迴圈神經網路(順序組合)、卷積神經網路(區域性組合)和遞迴神經網路(根據句法結構進行組合)[8]。下面我們以句子“我 喜歡 紅 蘋果”為例,說明不同組合方式的基本原理及其優缺點,具體可以參見上圖中“深度學習”部分。

迴圈神經網路(RNN,Recurrent Neural Network)從左至右順序的對句子中的單元進行兩兩組合,首先將“我”和“喜歡”組合,生成隱層h1,然後將h1與“紅”進行組合,生成h2,以此類推。傳統的迴圈神經網路模型存在嚴重的梯度消失(Vanishing Gradient)或者梯度爆炸(Exploding Gradient)問題,尤其是當句子較長,即網路的層數較多時。深度學習中一些常用的技術,如使用ReLU啟用函式、正則化以及恰當的初始化權重引數等都可以部分解決這一問題。另一類更好的解決方案是減小網路的層數,以LSTM和GRU等為代表的帶門迴圈神經網路(Gated RNN)都是這種思路,即通過對網路中門的控制,來強調或忘記某些輸入,從而縮短了其前序輸入到輸出的網路層數,從而減小了由於層數較多而引起的梯度消失或者爆炸問題。

卷積神經網路(CNN,Convolutional Neural Network)目前被廣泛應用於影像處理領域,它考慮了生物神經網路中的區域性接收域(Reception Field)性質,即隱含層神經元只與部分輸入層神經元連線,同時不同隱含層神經元的區域性連線權值是共享的。這一性質在很多自然語言處理的任務中也有所體現,如對評論文字進行分類,最終的褒貶性往往由區域性的一些短語決定,同時不需要顧及這些短語在文字中的位置資訊。例如,只要評論中含有“我 喜歡”,就說明該評論是褒義的。由於存在區域性接收域性質,各個隱含神經元的計算可以並行的進行,這就可以充分利用現代的硬體裝置(如GPU),加速卷積神經網路的計算,這一點在迴圈神經網路中是較難實現的。

遞迴神經網路(RecNN,Recursive Neural Network)首先對句子進行句法分析,將順序結構轉化為樹狀結構,然後利用該結構來構建深度神經網路。因此在對句子“我 喜歡 紅 蘋果”進行組合時,首先組合“紅”和“蘋果”,生成隱層h1,然後再組合“喜歡”和h1,獲得h2,以此類推。由此可見,該方法充分考慮了語言的遞迴組合性質,不會出現在迴圈或者遞迴神經網路中可能出現的任意無意義的組合,如“喜歡 紅”等。同時,對於如語義關係分類等任務,往往需要識別兩個距離較遠的實體之間的語義關係,如句子“在哈爾濱工業大學本科生院成立典禮上,校長周玉表示,……”中,“哈爾濱工業大學”和“周玉”距離較遠,他們中間的詞彙往往對迴圈或者卷積神經網路模型構成了干擾,而遞迴神經網路利用句法結構,會將兩個實體的距離拉近,從而去除不必要的干擾,提升分析的準確率。當然,遞迴神經網路模型也受限於句法分析的準確率,因為一旦句法分析出現了錯誤,則會產生錯誤的組合方式,從而影響最終的結果。

2.3 應用


通過組合,產生不同粒度語言單元的(向量)表示方式,然後通過在向量空間中的運算,就可以支撐多種多樣的應用。例如,想要識別兩個句子是否互為複述(Paraphrase),就可以使用以上任意一種神經網路結構,將兩個句子分別表示為兩個向量,並通過在其之上再構建神經網路構成二元分類器的方式,判斷兩個向量之間是否互為複述[9]。然後通過反向傳播(Back Propagation)演算法,就可以學習獲得三個神經網路的引數。

另外,兩個單元也可以是不同的粒度,如完形填空,空白處的上下文可以使用神經網路表示為向量,候選詞也可以使用向量表示,然後同樣使用另一個神經網路模型判斷它們之間是否匹配從而判斷填入該詞是否合適。

這種以向量的形式表示,然後再計算的思想可以擴充套件為多種語言,從而實現機器翻譯等功能。對於機器翻譯,我們首先將源語言表示為向量,該向量代表了源語言的語義資訊,然後根據該向量,逐詞的生成目標語言[10]。這套方法又被稱為編碼-解碼(Encoder-Decoder)或者序列到序列(seq2seq,sequence to sequence)的框架。現實情況中,很難用一個向量表示源語言全部的資訊,所以在生成一個目標語言詞的時候,如果能有其對應的源語言詞作為輸入,則生成的詞會更準確。由於兩種語言之間的詞並非一一對應,所以很難判斷當前的目標語言的詞是由那個源語言生成的,於是人們設計出注意力(Attention)機制[11],即當前目標語言的詞是全部源語言的詞經過加權求和後的向量及前一個目標詞的隱含層向量(ht-1)共同生成的,每個權重由ht-1和每個源語言詞的隱層向量(hs)共同決定,源語言的詞權重越大說明其對生成該目標語言的貢獻越大,這其實也隱含說明這兩個詞越對齊。

以上的這種seq2seq思想又可以進一步被應用於更多的自然語言處理任務中,如抽象式文摘(Abstractive Summarization)這一前人很難觸及的任務。傳統的文摘研究多集中於抽取式文摘(Extractive Summarization),即從篇章中摘取重要的句子組成文摘,而缺乏有效的手段能夠將句子打破。基於seq2seq技術,就可以將原文表示為一個向量,然後通過該向量,逐詞的生成連貫的文摘,從而不受限於必須抽取原文中的句子。

再進一步將該思想進行擴充套件,我們是否也可以將圖片或者視訊表示為向量,然後在生成對應的文字描述呢?這正是影像字幕生成(Image Caption Generation)這一非常有趣的研究任務所採用的基本思想,其中影像的向量可以由卷積神經網路來生成[12]。

另外,一些傳統的自然語言處理任務,如詞性標註、句法語義分析等也都受益於深度學習方法。我們以基於轉移的句法分析器為例,該方法使用一系列由初始到終止的狀態(State或Configuration)表示句法分析的過程,一個狀態經過一個轉移動作(Action),如移進(Shift)或歸約(Reduce),變為一個新的狀態。我們的目的就是要學習一個分類器,其輸入為一個狀態,輸出為該狀態下最可能的動作。具體介紹可以參見Google最新發布的SyntaxNet文件 (https://github.com/tensorflow/models/tree/master/syntaxnet )。傳統的方法通過抽取一系列人工定義的特徵來表示狀態,即分類的依據,如棧(Stack)頂的詞、詞性,快取(Buffer)頂的詞、詞性以及各種特徵組合等。顯然,這種人工定義特徵的方式存在特徵定義不完備等問題。因此, 可以採用任一種神經網路結構,如LSTM迴圈神經網路[13],來更全面地表示一個狀態,從而省去了繁瑣的特徵定義過程,並能夠獲得更好的分類效果。

2.4 資料


在應用以上深度學習模型的過程中,一個比較棘手的問題是隨著網路變得越來越複雜,其表示能力也越來越強,其中的引數也越來越多,由此帶來的問題是如果訓練資料規模不夠大,則很容易使模型陷入過擬合的狀態。

傳統利用語言學專家進行資料標註的方法需要花費大量的人力、物力、財力,存在標註代價高、規範性差等問題,很難獲得大規模高質量的人工標註資料。為了解決資料獲取的難題,比較直接的是利用眾包的方式獲取大規模的標註資料。當然,對於大公司而言,還可以利用寶貴的平臺資料,如搜尋引擎的日誌、聊天記錄等。除此之外,還可以利用大規模的弱標註資料,其實生文字自身就是非常有價值的弱標註資料,藉此我們已經能夠訓練語言模型、詞或句子的分散式向量表示等等。另外,我們還需要積極尋找大規模的弱標註資料,如DeepMind曾利用新聞網站提供的人工新聞摘要資料自動生成完型填空資料[14]、電子商務網站中使用者對商品的評分資料等等。

最後,受到影像處理研究的啟發,我們還可以利用大規模人工自動構造資料,如可以通過對原始影像進行旋轉、伸縮等操作,獲取更多的訓練影像,在自然語言處理中,是否也可以通過對文字進行一定的變換,從而獲得大規模的訓練資料呢?如將正規文字中的詞隨機地替換為錯誤的詞,從而構建語法糾錯任務的訓練資料等。相關的研究還處於起步階段,相信今後會被給予更多的關注。

3. 總結

通過分散式表示以及語義組合這兩個特性,深度學習為自然語言處理帶來了很多新的發展機遇:一方面可以通過更好地表達特徵,來提高自然語言處理系統的效能;另一方面通過seq2seq等機制,實現過去較難實現的一些任務。為了更好地訓練深度學習模型,尋找和構建大規模弱標註資料成為我們需要關注的另一個主要的研究方向。

基於深度學習的自然語言處理技術方興未艾,不但目前已近取得了良好的效果,而且具有非常廣闊的研究前景。首先,可以進一步發揮分散式表示和語義組合的潛力,擴充更多的應用,如目前被很多大公司關注的閱讀理解問題;其次,除了多粒度、多語言以及多模態以外,不同的學習任務也可以共享同一套向量表示,從而將一種任務中學習獲得的表示應用於另一種任務中,實現遷移學習或多工學習這些更類似人類學習的方式;再次,很多自然語言處理任務,如對話生成,有賴於更大的上下文或者語境的,傳統基於人工定義特徵的方式很難對其進行建模,而深度學習模型則提供了一種對語境進行建模的有效方式;最後,無論何種神經網路模型,都是基於固定的網路結構進行組合,我們是否有可能基於動態變化的網路結構進行學習呢?傳統的有監督學習框架很難實現該目標,而強化學習(Reinforcement Learning)框架為我們提供了一種自動學習動態網路結構的途徑。

參考文獻

[1] 宗成慶, 統計自然語言處理, 北京: 清華大學出版社, 2013. 

[2] C. Manning, “Computational linguistics and deep learning,” Computational Linguistics,  41(4), pp. 701-707, 2015. 

[3] C. Manning , H. Schütze, Foundations of Statistical Natural Language Processing, Cambridge, MA: MIT Press, 1999. 

[4] Y. Bengio, R. Ducharme, P. Vincent , C. Jauvin, “A Neural Probabilistic Language Model,” Journal of Mahcine Learning Research, 2003. 

[5] T. Mikolov, W.-t. Yih 和 G. Zweig, “Linguistic Regularities in Continuous Space Word Representations,”NAACL-HLT-2013, Atlanta, 2013. 

[6] R. Fu, J. Guo, B. Qin, W. Che, H. Wang , T. Liu, “Learning Semantic Hierarchies: A Continuous Vector Space Approach,”ACL-2014, Baltimore, 2014. 

[7] J. Guo, W. Che, H. Wang, T. Liu, “Revisiting Embedding Features for Simple Semi-supervised Learning,”EMNLP-2014, Doha, 2014. 

[8] Y. LeCun, Y. Bengio, G. Hinton, “Deep Learning,” Nature, 2015. 

[9] R. Socher, H. Eric, J. Pennington, A. Y. Ng, C. D. Manning, “Dynamic Pooling and Unfolding Recursive Autoencoders for Paraphrase Detection,”NIPS-2011, Granada, 2011. 

[10] D. Bahdanau, K. Cho, B. Yoshua, “Neural Machine Translation by Jointly Learning to Align and Translate,” CoRR, abs/1409.0473, 2014. 

[11] V. Mhih, N. Heess, A. Graves, K. Kavukcuoglu, “Recurrent Models of Visual Attention,”NIPS-2014, 2014. 

[12] Karpathy and L. Fei-Fei, “Deep Visual-Semantic Alignments for Generating Image Descriptions,”CVPR-2015, 2015. 

[13] Dyer, M. Ballesteros, W. Ling, A. Matthews, N. Smith, “Transition-Based Dependency Parsing with Stack Long Short-Term Memory,”ACL-2105, Beijing, 2015. 

[14] K. M. Hermann, T. Kočiský, E. Grefenstette, L. Espeholt, W. Kay, M. Suleyman, P. Blunsom, “Teaching Machines to Read and Comprehend,” CoRR, abs/1506.03340, 2015. 

本文來源於哈工大SCIR

原文連結點選即可跳轉

深度學習浪潮中的自然語言處理技術

相關文章