引言
这是Yoon Kim发表于2014年的EMNLP上的论文,也就是经常说到的TextCNN。
CNN一开始提出来是作为图像或者语音这种特征连续任务的处理方式,这篇论文则是尝试将CNN用于文本这种离散型的任务中。
模型
前面说到CNN是处理连续型数据的,所以对于文本而言,就需要进行离散特征连续化,目前比较流行的应该是word2vec的方式,另外对于长度不同的文本就需要考虑padding了,网络结构如下:
其中n为文本长度,k为向量维数
Channels
上图中,文本被表示成为两层,可以考虑不同的初始化方式及训练时进不进行向量的修改。
Embedding
这里就是将文本转为向量的过程,论文中使用了两种方式,随机初始化和使用预训练的词向量,最终结果来看,使用预训练的词向量对结果有显著的提升。
Convolutional
卷积层采用(h, d)大小的filter,其中d为embedding后词向量的维数,h则选择不同不小构造不同的filter,示例图中则是构造了h分别为2和3的两个,最终得到shape分别为(7, 1)和(6, 1)两种类型的输出。
另一个是对卷积后的输出做一个非线性变换,也就是常说的激活函数,具体公式如下: