Effective Use of Word Order for Text Categorization with Convolutional Neural Networks

Effective Use of Word Order for Text Categorization with Convolutional Neural Networks

背景

       CNN充分用於圖像數據去探索圖像的1D結構,本文作者將CNN用於文本數據,探索數據的1D結構(例如詞序)。與利用低維數據作爲輸入不同,作者直接用CNN作用與高維的文本數據。這樣做的好處在於可以學習出小的文本區域的的embedding(局部特徵) 。

Introduction

      文本分類就是自動識別出文本的類別,常見的文本分類應用主要有主題分類、郵件檢測和情感分析等。一個常用的方法就是將文檔利用詞袋模型(bag-of-word)表示成文檔向量,在利用分類器(eg.SVM)進行分類,該方法只能表示文檔中的詞是否出現過,但是忽略了詞與詞之間的順序。爲了解決這個問題,最簡單的方法就是講bi-gram代替uni-gram。但是當n>1時,n-gram在文本分類上並不是有效的。爲了在文本分類任務上利用詞序關係,本文采用CNN(因爲CNN可以充分利用數據的內部結構,每個卷積核都與文本數據的小區域相關)。目前CNN已經廣泛應用於entity search, sentence modeling, word embedding learning, product feature mining等。

      在多數的CNN中,第一層都是embedding層。一般分爲兩種,一種是與embedding與後續網絡一起訓練;另一種則是用大量預料訓練好的embedding(不再改變)。本文爲了研究CNN在文本分類上的有效性,避免其他因素的影響,所以採用embedding層與後續網絡一起訓練的形式。CNN的本質就是將固定大小局部區域進行特徵提取,因此,embedding層就是學習每一個詞的embedding,就是CNN的size=1的特殊情況。

模型結構

    卷積網絡就是每一個單元對局部區域利用非線性函數進行特徵提取,將提取的特徵進行拼接經過pooling層,最終輸入分類層進行分類,網絡結構如下圖。CNN最大的特徵就是權重共享(weight sharing)。這種權重共享可以幫助學習有用的特性,而不考慮它們的位置,同時保留有用特性出現的位置。

      CNN在文本中的應用,假設D =(w1,w2,...) ,其中每一個詞都屬於詞典V。現在需要經文檔進行表示,但是需要保證文檔中詞序關係。最簡單的做法就是將每一個詞利用one-hot編碼,然後將文檔中的詞串聯起來,從而形成文檔向量。

seq-CNN

利用one-hot模型表示每一個詞,對於bi-gram,則將相鄰的兩個詞形成向量。例如“I love it”,則表示如下:

bow-CNN

    當n-gram的n過大時,或者詞典過大時,seq-CNN的表示方式,會使得向量維度過大,從而造成過多的參數需要學習,加大算法的計算複雜度,因此bow-CNN採用bag-of-word的形式進行表示。同樣地,“I love it”採用2-gram將表示如下:

     無論是seq-CNN還是bow-CNN,輸出都是變化的長度,如下圖。如果使用傳統的pooling層,會將輸出大小的可變性傳遞下去,因此本文固定pooling單元的個數,動態改變pooling單元作用區域大小來獲得國定大小的輸出。The dynamic k-max pooling of (Kalchbrenner et al., 2014) for sentence modeling extends it to take the k largest values where k is a function of the sentence length,
but it is again over the entire data, and the operation is limited to max-pooling。

實驗

  • 激活函數採用sigmod(x) = max(x,0)
  • 目標函數:MSE+L2
  • 優化函數:SGD

BaseLine Method

  • 線性核SVM
  • bag-of-wprd作爲輸入的全連接網絡

Data

  • IMDB,電影評論數據,用於情感分析
  • Elec: 電子產品評論數據,用於情感分析
  • RCV1:Reuters新聞文章數據,用於主題分類

論文:https://arxiv.org/pdf/1412.1058.pdf

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章