DCNN

对句子进行分类的模型,论文使用动态卷积兼容不同长度的句子

什么是 DCNN ?

  • DCNN 是一个对句子进行分类的模型,如正负样本判定、情感分析等
  • DCNN 提出一种动态 pooling 的方法对句子进行建模,解决不同句子长度的问题

DCNN 的网络结构?

  • 从下往上看,包含 4 个阶段:
  • 输入层:首先是 7 个词汇组成的句子,查询词汇表得到词向量 (7x4)
  • 第一次宽卷积 + 5-max pooling:经过 1D 的宽卷积后,特征变为 (11x4),对该特征的第一维计算 k-max pooling,这里 k=5, 所以输出特征是 (5,4)
  • 第二次宽卷积 + 折叠 + 3-max pooling:再次经过宽卷积输出特征 (6,4),对第二维特征,这里使用了折叠的思路,即以步长为 2 分组,将其相加为一组输出,得到 (6,2), 再次经过 k-max pooling 输出 (3,2)
  • 输出:将特征 Flatten 后,使用 Linear 层进行句子分类
  • 注意:绘图虽然看起来像 2D 卷积,但是每次还是使用 1D 卷积,所谓宽卷积就是在特征矩阵边上填充 0 再卷积,使得生成的新特征矩阵更大

DCNN 的宽卷积?

  • 其实就是输入四周填充后的 1D 卷积,使得卷积后的特征矩阵更大

DCNN 的 k-max pooling?

  • 原始的 map pooling 是取最大的 1 个值,k-max pooling 是取最大的 topk 个值,使用该方法,使得不管多长的句子都会被会转为长度为 K 的矩阵

DCNN 的折叠操作?

  • 折叠操作是对词特征 (N,D) 的第二维进行折叠,折叠的思路是两两分组,然后分组内相加即可
  • 特征折叠,相当于对同 “一个词汇的词汇表示” 进行管理,避免只使用 1D 卷积,没有跨特征计算的缺点

参考:

  1. DCNN 阅读笔记 - 知乎
  2. A Convolutional Neural Network for Modelling Sentences (DCNN) 阅读笔记_dynamic k max pooling-CSDN 博客
  3. 句子建模经典论文 A Convolutional Neural Network for Modelling Sentences 学习笔记 - CSDN 博客