Convolutional Neural Networks for Sentence Classification 閱讀筆記 === ###### tags: `thesis` [論文連結](https://arxiv.org/pdf/1408.5882.pdf) ## 1. 簡介 本文將CNN應用於預訓練好的詞向量上進行文字分類,在很少的參數量以及簡單的tunning後,在static channel就有不錯的成果。對於較特定的任務,使用non-static的網路架構可以得到更好的表現,是CNN在文字分類上的先驅之作,也是當時state of the art的研究。 ## 2.模型架構  和傳統的CNN並無太大的差異,大致可分為輸入層、卷積層、池化層以及輸出層。 再輸入層的部分,先將文字轉換成一個k維詞向量,輸入句子中含有n個詞,因此輸入層為n*k的向量,可以想像成把文字轉換為圖片,圖片大小為n*k。 而根據詞向量的轉換方式,作者也推出了幾種不同的模型,分別為: - CNN-rand:所有的詞向量皆為隨機初始,在訓練過程中透過反向傳播更新詞向量。 - CNN-static:使用word2vec進行詞向量的轉換,並且在訓練過程中固定此向量不再調整。 - CNN-non-static:使用word2vec進行詞向量的轉換,但在過程中會根據輸入進行微調(fine-tunning)。 - CNN-multichannel:使用兩個channel進行訓練(圖片分類中RGB三個channel的概念),其中一個channel使用CNN-static,另一個使用CNN-non-static。 而卷積層的卷積操作基本上與圖片相同,然有一個最大的分別是,在本文中的卷積核的size,其寬度會和詞向量的維度相同,目的在於完整捕捉每個詞。舉例來說,輸入層的詞向量維度為64維,那麼卷積核的大小就會是n*64,因為每個詞由64個維度共同決定,因此不可分割開來卷積;而n的設置就代表一次要卷積幾個字。綜合上述,可以用一維卷積來理解NLP中的CNN,在理解上會比較容易。 透過這樣特殊的卷積,可以得到一條寬度為一的長條輸出(feature map),將其通過max over time pooling後接到softmax全連接層,便可以得到所要預測的分類。 ## 3.實驗設計 - 資料集: - MR:電影評論資料集,內容為一句評論,分類標籤為正評/負評。 - SST-1:史丹佛感情樹資料集,五類標籤分別為(非常正面/正面/中/負面/非常負面) - SST-2:史丹佛感情樹,僅有正/負標籤。 - Subj:分類一句話為主觀/客觀。 - TREC:TREC問題資料集,分類標籤為(關於人/地點/數學...等等) - CR:顧客回饋資料集,分類為正面及負面。 - MPQA:句子極性分析,極端/非極端。 - 實驗細節: 使用ReLu作為非線性函數,drop rate為0.5,捲積核size分別為3、4、5各100張,mini-batch size為50。詞向量使用word2vec訓練的部分,維度為300,OOV部分則隨機初始。 - 實驗結果:  使用CNN的結果較先前研究成果都來得好一點,而使用non-static架構模型在訓練過程中的fine-tuned又較static好上一些;至於multi-channel的成果和non-static則沒有太大的差異。 而沒有pre-trained的詞向量在實驗結果上則遠遠不及於有預訓練的版本,藉此可發現有預訓練的詞向量在NLP實驗中會是重要的一項因素。  在static和non-static架構中各詞彙的最近相似詞,可以發現原先word2vec的訓練結果中,bad的最相近詞是good,可能是基於兩詞在詞性、使用場合以及語句構建的面向上使word2vec誤判為相近詞彙,而逗點和驚嘆號等符號之相近詞亦無太大相關;然而在fine tuned之後的non-static架構中則可以正確找到相似、有相關的詞彙。 ## 4.結論 本文在NLP的文字分類任務上使用了CNN,發現CNN在文本分類任務上的可行性,且經fine tuned後的模型可以得到較好的成果,而此CNN僅使用一層捲積層,透過預訓練的詞向量就得到比許多先前研究還好的成果。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up