情感分类《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网络的容量很大,能够提升模型性能。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章