用于文本分類的卷積神經網絡
摘要+介紹
卷積神經網絡(CNN)最開始被應用在計算機視覺,但是后來被研究應用在了自然語言處理里面的語義解析、搜索、語句模型等傳統的自然語義處理任務,并且取得了顯著的效果。使用CNN在預先訓練的詞向量上進行訓練,可以用于句子級分類任務。本文證明了:1.利用僅有少量超參數的CNN在多個NLP任務上取得了較好的成果 2.預訓練的向量是可用于各種分類任務的“通用”特征提取器。
模型

圖1
如圖1所示:
輸入層 圖中最左側是n×k×channel矩陣,表示一句話的n個詞語,每個詞語是一個k維向量;值得注意的是輸入層是多通道的,本文提出了一種multi-channel(見模型變體中的CNN-multichannel)方法,將兩種不同的embedding拼到了一起。
卷積層 進行卷積操作(圖中第二部分),卷積核的尺寸為m×k×depth,因此每次卷積的時候都是整行整行的進行。m=1時就類似于unigram特征,m=2時類似于bigram特征。采用不同的m進行卷積操作便可以獲得不同的feature map。
池化層 進行池化操作(圖中第三部分),池化層filter形狀為convLength×1,通過池化操作得到文本的特征表示。
全連接層+softmax層 圖中第四部分,獲得代表屬于不同類別的概率向量以完成分類。
數據集

圖2
圖2中,c代表分類數量,l代表句子平均長度,N代表句子數量,|V|代表詞匯數量,|Vpre|代表預訓練的詞向量集中包含的單詞數量
MR Movie reviews(包含正面/負面評論)
SST-1 Stanford Sentiment Treebank(MR的擴展,包含非常正面/正面/中性/負面/非常負面評論)
Subj Subjectivity dataset(包含主觀/客觀句子)
TREC TREC question dataset(將某問題分類為六種類型)
CR Customer reviews(包含正面/負面評論)
MPQA Opinion polarity detection subtask of the MPQA dataset
模型變體
采用了以下四種模型:
CNN-rand 所有詞向量都隨機初始化,并在訓練過程中不斷學習
CNN-static 使用了Word2Vec預訓練向量,未知的單詞則隨機初始化;二者都保持不變,只學習模型的其他參數
CNN-non-static 同上,但預訓練向量會在訓練過程中進行微調
CNN-multichannel 具有兩組詞向量(CNN-static和CNN-non-static的兩組向量)
結果

圖3
根據圖3所示,CNN-rand表現不佳,而CNN-static表現十分出色,這說明了使用預訓練的向量可以大幅提高模型性能。
通過CNN-non-static的結果可知,預訓練向量是很好的“通用”特征提取器,可以跨數據集使用。對每個任務的預訓練向量進行微調可以進一步提高模型性能。
通過CNN-multichannel的結果可知,CNN-multichannel在小數據集上好于CNN-singlechannel。起初希望通過multichannle的方式避免過擬合,使詞向量盡量不要偏離預訓練的詞向量的同時也使詞向量適應于具體的任務。