Text-CNN:一种将CNN应用于NLP的方法.

Text-CNN是一种将CNN应用于NLP的方法,可解决sentiment analysis、question classification等问题。

Text-CNN的结构如下:

Text-CNN和传统的CNN结构类似,具有词嵌入层、卷积层、池化层和全连接层的四层结构。

1. 词嵌入层

词嵌入层(Word embedding)使用二维矩阵来表示长文本。

词嵌入将输入文本的每个词语通过空间映射,将One-Hot Representation转换成分布式表示(Distributed Representation),进而可以使用低维的词向量来表示每一个词语。

经过词嵌入,每个单词具有相同长度的词向量表示。将各个词语的向量表示连起来便可以得到二维矩阵。

得到词向量的方式有多种,常用的是Word2vec方法。

若使用预训练好的词向量,在训练模型的时候可以选择更新或不更新词向量,分别对应嵌入层状态为Non-staticStatic

2. 卷积层

卷积层的卷积核的宽度等于词向量的维度,经卷积后可以提取文本的特征向量。

与在图像领域应用类似,Text-CNN可以设置多个卷积核以提取文本的多层特征,长度为$N$的卷积核可以提取文本中的N-gram特征。

3. 池化层

池化层采取Max-over-time pooling,输出最大值,从而判断词嵌入中是否含N-gram

4. 全连接层

全连接层采用了Dropout防止过拟合,并使用Softmax函数输出各个类别的概率。