具体的CNN可以参考这篇文章:卷积神经网络
这次就先简单介绍下1D的CNN,再介绍CNN再文本中的应用
首先我们有单词的词向量,如下
然后我们用上面的卷积核在词向量上面做卷积,词向量的维度此时成为输入的channel,对上面的序列的向量做卷积以后得到(字母代表单词首字母)
使用padding的文本一维卷积
也可以设置多个filters
也能进行max pooling
上面都是步长为1的,也可以设置步长为2的
卷积完成以后的大小是,只有一个filters的时候,设W为原始单词的长度,H为filters长度,S为步长,则卷积以后的大小为:
CNN在计算机视觉领域取得了很好的结果,同时它可以应用在文本分类上面。
文本分类的关键在于准确提炼文档或者句子的中心思想,而提炼中心思想的方法是抽取文档或句子的关键词作为特征,基于这些特征去训练分类器并分类。因为CNN的卷积和池化过程就是一个抽取特征的过程,当我们可以准确抽取关键词的特征时,就能准确的提炼出文档或句子的中心思想。
卷积神经网络首次应用于文本分类可以说是在2004年Yoon Kim 在 “Convolutional Neural Networks for Sentence Classification” 一文中提出(虽然第一个用的并不是他,但是在这篇文章中提出了4种Model Variations,并有详细的调参),本文也是基于对这篇文章的理解。接下来将介绍text-CNN模型
text-CNN模型
论文使用的模型主要包括五层,第一层是embedding layer,第二层是convolutional layer,第三层是max-pooling layer,第四层是fully connected layer,最后一层是softmax layer.
下图具体展示了如何使用cn