Kim Y . Convolutional Neural Networks for Sentence Classification[J]. Eprint Arxiv, 2014.
Abstract
文章主要内容是作者做的一系列实验,使用在预训练词向量上训练的卷积神经网络(cnn)用于句子级分类任务。多个基准测试的结果表明,微调学习特定于任务的向量可以进一步提高性能。
作者还对架构进行了简单的修改,允许使用特定于任务的向量和静态向量。
实验包括cnn在7个任务中的4个任务上达到了sota,其中包括情感分析和问题分类。
Introduction
词向量,本质上是特征提取器在词的维度中编码词的语义特征。在这样的密集表示中,语义接近的词在低维向量空间中同样接近 (欧几里得或余弦距离)。
卷积神经网络 (CNN) 使用卷积滤波器提取局部特征。
作者训练了一个简单的 CNN,在从无监督神经语言模型中获得的词向量(googlenews2013)之上有一层卷积。我们最初保持单词向量静态并且只学习模型的其他参数。尽管很少调整超参数,但这个简单的模型在多个基准测试中取得了出色的结果,这表明预训练的向量是“通用”特征提取器,可用于各种分类任务。通过微调学习特定于任务的向量会导致进一步的改进。我们最后描述了对架构的简单修改,以允许通过具有多个通道来使用预训练和任务特定的向量。
与图像分类类似,本文的工作从预先训练的深度学习模型中获得的特征提取器在各种任务上表现良好——包括与特征提取器所执行的原始任务非常不同的任务。
Model
图1是Collobertet的CNN架构的变体,是句子中第i个词对应的k维变量,长度为n的句子表示为:
滑动窗口长度为h以产生新特征c(卷积核filter)
用不同长度的h生成不同的feature map
使用最大池化取最大值,同时解决了句子长度不等的问题。再传递到softmax层。
Regularization
使用dropouto是逐个元素相乘
Datasets and Experimental Setup
对于所有数据集,设置h为3、4、5,卷积核的数量都为100,dropout,对于没有验证集的数据,选取训练集的10%用作验证集。使用google公开的word2vec。
文章对模型的几种变体进行了实验:
CNN-rand:基础模型中所有单词都是随机初始化的,然后在训练期间进行修改。
CNN-static:一个带有来自 word2vec 的预训练向量的模型。所有单词——包括随机初始化的未知单词——都保持静态,并且只学习模型的其他参数。
CNN-non-static:与上面相同,但预训练的向量针对每个任务进行了微调。
CNN-multichannel:有两组词向量模型,(2+3)初始化都使用word2vec
结果:预训练带来的提升非常大
[论文阅读]《Convolutional Neural Networks for Sentence Classification》