TextCNN

构建词向量矩阵,然后使用 2 D 卷积学习其特征,对句子进行分类学习

什么是 TextCNN ?

  • 利用卷积神经网络对句子进行分类的模型

TextCNN 的网络结构?

  • 输入:对于输入长度为 n 的句子,假设每个词汇用长度为 d 的向量表示,那么模型输入是 (n,d) 的矩阵,上图是 (n,d,2),是因为词向量既有随机初始化的,也有已使用 word2vec 学习过的,论文分为 static 和 non-static 两个矩阵
  • 卷积:对 (n,d,2) 矩阵使用 (2,d)、(3,d) 的 2D 卷积在不同通道上提取特征,每次卷积输出一个值,并将输出拼接到矩阵 (n,1,4) 上
  • 分类:首先对 (n,1,4) 矩阵的第一维使用 max-pooling, 得到 (1,4) 输出,然后使用 linear 层分类即可

TextCNN 的输入情况?

  • CNN-rand: 所有的 word vector 都是随机初始化的,同时当做训练过程中优化的参数;
  • CNN-static: 所有的 word vector 直接使用无监督学习即 Google 的 Word2Vector 工具 (COW 模型) 得到的结果,并且是固定不变的
  • CNN-non-static: 所有的 word vector 直接使用无监督学习即 Google 的 Word2Vector 工具 (COW 模型) 得到的结果,但是会在训练过程中被 Fine tuned
  • CNN-multichannel: CNN-static 和 CNN-non-static 的混合版本,即两种类型的输入,论文使用该输入

参考:

  1. https://zhuanlan.zhihu.com/p/24758451
  2. https://zhuanlan.zhihu.com/p/59988106