情感分類《Convolutional Neural Networks for Sentence Classification》

Motivation

Razavian等人(2014)使用預訓練特徵提取器在圖像分類任務上取得了不錯的效果,同時CNN在自然語言處理的任務上的應用也很有效。受此啓發,本文作者使用預訓練的詞向量搭建一個簡單的CNN網絡。實驗表明:在句子分類任務上,預訓練的詞向量+簡單CNN模型往往比複雜的大型神經網絡的分類效果好。

 

核心思想:

一般情況下,使用CNN進行句子分類是先將單詞用向量表示,這個向量是隨機初始化的。然後在訓練過程中逐漸對詞向量進行更新,使相似的單詞在距離上相近,最終識別輸入句子的類型。(本文的Baseline

本文使用Mikoliv等人在100 billion個單詞上訓練的詞向量作爲以下三個模型的輸入:

  1. 在訓練過程中,這些詞向量始終不變(CNN-static);
  2. 在訓練過程中,允許對詞向量進行微調,即更新詞向量(CNN-non-static);
  3. 綜合上面兩種情況,設置兩個channel,一個channel的詞向量不變,一個微調(CNN-multichannel)。

 

模型結構:

實驗結果:

Baseline是效果最差,這也符合我們直觀理解。因爲從0訓練詞向量的效果,肯定不如使用大量預料訓練過的詞向量好。

雖然模型簡單,但上面三種模型的分類效果都能達到業界頂尖水平。CNN-non-static還是比CNN-static的效果更好一點,因爲CNN-non-static畢竟對詞向量進行更新,學習到了和訓練集相關的特徵。

總的來看CNN-non-static的效果最好,對於CNN-multichannel性能下降的一個合理的解釋是:不應該使用一整個非靜態的channel而是隻要增加一個可以修改的維度就可以了。

 

啓發:

  1. 對於在訓練集中未出現過的單詞,模擬預訓練單詞的分佈能夠達到更好的效果。論文中考慮了方差,所以考慮均值+方差的會不會更好一點。
  2. 使用Dropout往往會有意想不到的效果。
  3. CNN網絡的容量很大,能夠提升模型性能。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章