非死book首次將29層深度卷積網絡用于自然語言處理

MartyL30 8年前發布 | 31K 次閱讀 自然語言處理 神經網絡

論文名稱:Very Deep Convolutional Networks for Natural Language Processing

摘要

在許多自然語言處理任務中起到主導地位的方法是循環神經網絡(RNN,尤其是長短時間記憶網絡,LSTM)和卷積神經網絡(ConvNets)。然而,相比于深度卷積網絡在計算機視覺領域中取得的巨大成功,這些網絡結構還是太過淺層了。我們提出了一種直接在字符級別上進行文本處理的新結構,但僅僅用了很少的卷積和池化操作。我們的實驗結果表明模型的性能與網絡深度成正比,一直用到 29 層卷積層,在多個文本分類任務中取得了重大的效果提升。據我們所知,這是深度卷積網絡第一次應用在自然語言處理任務中。

1、導語

自然語言處理的目標是用計算機來處理和分析文本,從中提取有用信息,最終用不同方式來表示相同的信息。我們可能想要給文本進行分類(比如:詞性標注或者情感分析),或者將文本結構化表示(比如:句法分析),或者是將某種形式的信息轉換為其他形式,保留所有或者部分內容(比如:機器翻譯、文本摘要)。文本處理的粒度從字符到單詞再到句子或者甚至是段落。

在一系列前人工作的基礎上,神經網絡在自然語言處理任務中的應用吸引了大量的研究者,并且系統地應用在了所有任務中。然而,神經網絡在自然語言處理的很多任務中都取得了不錯的結果,卻仍然沒有像在計算機視覺和語音識別領域中那么地遙遙領先。

卷積神經網絡,簡稱為 ConvNets,在計算機視覺領域中非常地成功。計算機視覺的早期研究中,研究者們通常都使用人工特征,比如 SIFT(尺度不變特征變換)被應用在分類器上。卷積網絡的基本思想是將特征提取和分類任務作為一個聯合訓練的任務。這種思想近些年被改進了很多,尤其是使用非常多卷積層和池化層來獲取輸入的多層次表示,最好的模型使用了超過 150 層的結構。

許多自然語言處理方法將詞作為基本單元,一個非常重要的步驟就是將詞表示為一個低維向量。這些詞向量現在在自然語言處理中運用地非常好,然而我們卻不知道該如何更好地表示一個詞序列,比如:整個句子,因為句子有著復雜的語法和語義關系。

通常,在同一個句子中,我們可能會面臨局部和長程依賴問題。當前,主流的做法是將句子當作一個符號序列(字符或者詞),然后用循環神經網絡來處理。符號通常按照從左向右的順序進行處理,循環神經網絡將整個句子用其內部狀態量進行記憶。最著名、最成功的循環神經網絡變種一定是長短時間記憶模型(LSTM),大量的工作證明了其解決自然語言處理任務中長程依賴問題的能力。然而,我們認為 LSTM 是一種解決序列處理問題的通用方法,但其缺乏具體任務結構。

我們打個比方說,眾所周知一個單隱藏層的全連接神經網絡理論上可以學習任何實數函數,但是如果用一個特定問題下的深度分層表示結構的話,可以取得更好的結果。借助于這些方法,搜索空間將被嚴重約束,隨機梯度下降算法將學習更有效的解。計算機視覺領域的卷積網絡就是一個典型的例子。我們認為,在某個程度上,在處理序列時,RNN 或者 LSTM 都可以被看作是一種全連接神經網絡的擴展模型。他們是非結構化的,并且不可以適應特別的任務,比如所有應用中都使用相同的 LSTM 單元,僅僅單元的數量是變化的,或者將用多層 LSTM。

RNN 通過沿時間(序列長度)展開來學習序列的表示常常引起爭論,然而我們卻認為深度在序列上的變化相當于是將第一個符號通過很多層進行線性操作之后傳遞到最后一個。LSTM 使用了門機制,這導致了近端的符號比遠端的符號被更好地記憶了。這種思路甚至啟發了研究者們,反向來處理序列,比如雙向 LSTM,在兩個方向上進行處理。還有一種做法是堆疊多層 LSTM,據我們所致超過四層就不會有提升了,雖然可能用了一些正則化的手段也無濟于事。

我們相信自然語言處理的挑戰將會是聯合任務來學習整個句子的分層表示,本文針對這個目標提出了使用更多卷積層的深度網絡結構,最多到 29 層。我們這種結構的設計受到了計算機視覺最近一些研究成果的啟發。

本文的結構如下。之前已經有很多的研究嘗試用卷積網絡來做文本處理,我們將在下一節中總結和討論先前工作之間的關系和區別。在第三節將會詳細描述本文的模型結構。在很多句子分類任務中進行了評測,詳細的任務描述和實驗結果將會放在第四節。本文的模型在所有任務中均取得了最好的成績,本文在最后討論了未來的研究發展思路。

2、相關研究

現在已經有很多關于情緒分析的研究,或更廣泛地,關于語句分類任務的研究。最初的方法遵循經典的兩階段步驟,包括提取(人工生成的)特征,然后進入分類階段。典型的特征包括詞袋模型以及 n 元模型,以及他們的詞頻-反向詞頻數據(TF-IDF)。在 Zhang 等人的論文中[20],這一技術就被與 ConvNets 做了比較。我們在實驗中使用的是同一個語料庫。最近出現的一種方法是,將單詞或字符投射到高維空間,然后將這些向量結合,得到對輸入語句的固定長度的表征,最終,這些表征作為輸入值進入分類器。最簡單的結合是基于元素求均值,但這一方法經常效果不佳,因為所有關于符號順序的概念都被忽略了。

另一類方法是遞歸神經網絡。其主要內容是,使用一個通常稱為語法分析工具的外部工具,來具體說明不同的詞向量是如何結合的。在每一結點上,左側和右側的上下文會通過所有結點共享的加權值被結合[16]。頂端結點的狀態則會被輸入分類器。遞歸神經網絡(RNN)可以被視為一種周期性的神經網絡的特殊情況:按照一定順序進行結合,通常是從左往右。RNN 的最終狀態,會被作為該語句的固定尺寸表征來使用,或者最終成為所有隱藏狀態的結合。

最早在自然語言處理領域(NLP)使用卷積神經網絡的應該是[3, 4],接著,卷積神經網絡被用于語句分類[12, 11, 20]。我們會在下文更詳細地探討這些技術。如果沒有另外說明,所有方法皆操作于投射在高維空間的單詞之上。

Kim 的論文展示了一個非常淺的神經網[12]:一個卷積層(包含多個寬度和過濾器)漸漸與一個最大池化層相連接,最后的分類器則使用一個含有漏失的全連接層。實驗結果包含了六個不同的數據庫,特別是 Stanford Sentiment Treeban (SST)。Kalchbrenner 等人的論文也展示了一個相似的系統[11],但是他們使用了五個卷積層。另外一個重要的區別是,他們還使用了多個短時k-最值池化層,而這使得系統能獨立于特征的位置,來決定在句子中第k重要的特征,并保留它們之間的順序。k 值由句子長度和當前層在網絡中的位置決定。Zhang 等人的論文[20] 是第一篇完全從字符層面進行情緒分析的研究。他們的系統最多使用六個卷積層,其連接著三個全連接分類層,同時他們使用尺寸為 3 和 7 的卷積核,以及簡單最大池化層。這篇論文還有一個有趣的地方是,作者們將一些大型數據集用于文本分類。我們使用的是一樣的實驗配置(見 4.1 節)。dos Santos 和 Gatti 的論文[5]也使用了字符層面的信息:一個單詞的所有字符向量通過最大值操作相結合,并作為一個整體與詞向量信息一起使用。其整體結構是非常淺的,只有兩個卷積層,但其在 SST 和 Stanford 推ter Sentiment corpus 語料庫的一個小型數據集上的表現非常好。

在計算機視覺領域,將遞歸和卷積網絡相結合,也是許多人在探索的結構,而其目標是「取二者之精華」,如[14]。同樣的想法最近也被應用在了句子分類上[19],這篇論文中使用一個最多只有五層的卷積網絡,來學習輸入到一個長短時記憶的高層特征。作者們最初的目標是使用參數極少的網絡,得到像 Zhang 等人一樣的操作[20]。他們的報告結果與 Zhang 等人[20] 的結果十分相近,甚至在某些數據集上的表現比 ConvNets 還要更好。

總而言之,我們沒有看到在句子分類上使用超過六個卷積層的研究,也沒有看見對更深層網絡的嘗試,或者它們對改善結果并沒有幫助。這與近來計算機視覺領域使用更深層網絡的潮流大相徑庭,后者使用多達 19 層的網絡[15],有時甚至達到 152 層[7]。在本篇文章接下來的部分,我們會描述我們使用的非常深的卷積結構,并報告在 Zhang 等人使用的語料庫下的結果。我們的實驗顯示,使用更深的網絡能夠提升操作結果,而其最多達到 29 個卷積層。

3、架構

之前大多數卷積網絡在自然語言處理任務中應用時,只采用了非常淺層的網絡結構(最多到 6 層),然后用不同大小窗口的卷積層進行組合,比如擴展 3、5、7 個符號。

這種思路受啟發于從文本序列中提取 n 元特征的方法,不同的 n 對應著不同的符號大小。

本文中,我們采用了具有很多層的網絡結構,每一層的卷積符號大小為 3。

在深度分層模型中,用一個四層的卷積網絡來處理 9 個符號的序列,可以自主學習如何組合這些不同的 3 組元特征。

本文模型的結構實際上可以看做是一種考慮時序的 VGG 網絡(注:VGG 是牛津大學提出的一種卷積網絡)結構。同時,我們也考察了同樣類型的 ResNet(注:ResNet 是微軟提出的一種卷積網絡)結構。本文模型結構可參見圖1:

其中每一個卷積塊可參見圖2:

4、實驗評測

本文在八組大型分類數據集上進行了評測,數據集如下表:

實驗結果:

本文模型在大型數據集上表現尤為突出,甚至是只用很淺的深度。

模型的性能隨著深度地增加而提升。

最大池化技術比其他池化技術表現更好。

本文模型在所有卷積網絡模型中是最領先的。

如果網絡再深一些的話,將會降低準確率,而 ResNet 中的快速連接技術(shortcut connections)可以來解決這個問題。

本文模型如果應用在類別更多的文本分類任務中效果會更明顯。

5、結論

我們遵循以下兩種設計原則提出了這個新的自然語言處理結構:1)基于表示文本的最小表示進行操作,例如字符。2)利用本地操作的深度堆棧,例如卷積層和卷積符號為3的最大池化,來學習句子的高層次表示。

我們用八個完全開放的大規模數據集對這個結構進行評估,結果表明,當增加卷積層的深度增到29層,模型的性能一直穩定提高,性能與網絡深度成正比。我們模型的網絡深度遠比早前發布的所有卷積神經網絡的深度都要深,并且在所有的數據集評估中表現都要更好。

據我們所知,這是第一次將卷積神經網絡應用于自然語言處理的「深度的優勢」展現出來。視覺是復合而成的,所以卷積網絡很適合圖像處理。像素構成形狀和輪廓。在卷積網絡中,高級特征可以從低級特征中推導而來,就形成了層次化表示。

卷積網絡的卷積過濾器創建了規模和復合度持續增加的模式:例如,從輪廓到形狀再到臉。一幅圖像和一小段文本有許多相似的屬性。在許多語言中,文本也是復合的。例如字符組成 n 元文法、詞根、詞、短語及句子。這些相似的屬性有利于對計算機視覺和自然語言處理進行對比。并且我們相信,未來的研究將會關注使文本處理模型更深。

我們的工作是達成這個目標的首次嘗試。在這篇論文里,我們側重于將深度卷積神經網絡用于句子分類任務。同時,類似的理念也可以用于其他序列處理任務,特別是基于神經網絡的機器翻譯。需要注意的是,這兩種任務在概念上是不同的。一方面,對于句子分類,系統需要提取出典型特征并且忽略與分類任務無關的信息(比如詞法)。另一方面,在基于神經網絡的機器翻譯中,句子中的所有信息都必須保留。是否要對這個模型結構進行調整,使之能夠應對用深度卷積編碼器進行序列到序列的處理,還需要進一步調研。

 

來自: http://www.dataguru.cn/article-9453-1.html

 

 本文由用戶 MartyL30 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!