深度學習用於文本分類的論文及代碼集錦
[1] Convolutional Neural Networks for Sentence Classification
Yoon Kim
New York University
EMNLP 2014
http://www.aclweb.org/anthology/D14-1181
這篇文章主要利用CNN基於預訓練好的詞向量中對句子進行分類。作者發現利用微調來學習任務相關的詞向量可以提升模型效果。
網絡結構示例如下
各個數據集統計信息如下
各模型結果對比如下
a
通道對模型結果影響示例如下
代碼地址
https://github.com/yoonkim/CNN_sentence (Theano)
https://github.com/dennybritz/cnn-text-classification-tf (Tensorflow)
https://github.com/harvardnlp/sent-conv-torch (Torch)
相關研究組
http://nlp.seas.harvard.edu/ (哈佛大學)
我是分割線
[2] A Convolutional Neural Network for Modelling Sentences
Nal Kalchbrenner
University of Oxford
ACL 2014
http://www.aclweb.org/anthology/P14-1062
這篇文章提出一種動態卷積神經網絡,並將其用於句子中的語義建模。該網絡中的池化算子為動態k最大池化法,該算子用於線性序列。本文中的網絡可以處理變長的句子,並對句子推理出特征圖,該特征圖不僅可以捕獲短距離關系,也可以捕獲長距離關系。另外,該網絡不依賴解析樹,可以用於任何種類的語言。
網絡結構示例如下
寬窄卷積對比如下
整體結構如下
各模型結果對比如下
模型結果示例如下
代碼地址
https://github.com/FredericGodin/DynamicCNN (Theano/Lasagne)
我是分割線
[3] Character-level Convolutional Networks for Text Classification
Xiang Zhang et al.
NIPS 2015
https://papers.nips.cc/paper/5782-character-level-convolutional-networks-for-text-classification.pdf
這篇文章主要討論字符級別的卷積神經網絡。
模型結構示例如下
卷積層示例如下
全連接層示例如下
數據集統計信息如下
各模型結果對比如下
代碼地址
https://github.com/zhangxiangxiao/Crepe (Torch)
https://github.com/mhjabreel/CharCNN (Tensorflow)
https://github.com/srviest/char-cnn-text-classification-pytorch (PyTorch)
我是分割線
[4] Hierarchical Attention Networks for Document Classification
Zichao Yang et al.
Carnegie Mellon University, Microsoft Research
NAACL-HLT 2016
http://www.aclweb.org/anthology/N16-1174
這篇文章提出分層注意力網絡用於文檔分類。該模型的分層結構可以對應到文檔的分層結構;該網絡的注意力機制包含單詞級別和句子級別的兩種注意力機制,這有助於發現文檔中的重要內容。
分層注意力網絡結構如下
數據集統計信息如下
各方法結果對比如下
代碼地址
https://github.com/richliao/textClassifier (keras)
https://github.com/ematvey/hierarchical-attention-networks (Tensorflow)
https://github.com/EdGENetworks/attention-networks-for-classification (Pytorch)
我是分割線
[5] Recurrent Convolutional Neural Networks for Text Classification
Siwei Lai et al.
Chinese Academy of Sciences
AAAI 2015
https://www.aaai.org/ocs/index.php/AAAI/AAAI15/paper/viewFile/9745/9552
這篇文章提出循環卷積神經網絡用於文本分類,無需人工設計特征。循環結構用於捕捉上下文信息,該結構相對傳統基於窗口的神經網絡方法可以減少噪聲。該文中利用最大值池化法來自動選擇文本中比較重要的詞,使其對文本分類作用較大。
網絡結構示例如下
數據集統計信息如下
各方法效果對比如下
上下文窗口大小影響示例如下
代碼地址
https://github.com/airalcorn2/Recurrent-Convolutional-Neural-Network-Text-Classifier (Keras)
我是分割線
[6] Very Deep Convolutional Networks for Text Classification
Alexis Conneau et al.
Facebook AI Research
ACL 2017
http://www.aclweb.org/anthology/E17-1104
這篇文章利用VDCNN在字符級別上處理文本,並且卷積和池化算子都比較小,即所依賴的單元數較少。該文中利用了29個卷積層。
樣本及標簽示例如下
網絡結構如下
其中卷積塊結構如下
各卷積塊對應的卷積層數如下
數據集統計信息如下
各方法效果對比如下
代碼地址
https://github.com/geduo15/Very-Deep-Convolutional-Networks-for-Natural-Language-Processing-in-tensorflow (TensorFlow)
https://github.com/zonetrooper32/VDCNN (TensorFlow keras)
我是分割線
[7] Do Convolutional Networks Need to Be Deep for Text Classification?
Hoa T. Le et al.
LORIA
AAAI 2018
https://aaai.org/ocs/index.php/WS/AAAIW18/paper/viewFile/16578/15542
這篇文章討論了文本分類中卷積網絡的深度的重要性。
淺寬卷積神經網絡示例
字符級別的DenseNet示例如下
Dense Block 示例如下
各模型效果對比如下
數據集統計信息如下
代碼地址
https://github.com/lethienhoa/Very-Deep-Convolutional-Networks-for-Natural-Language-Processing (Tensorflow)