本文是针对“A Convolutional Neural Network for Modelling Sentences”论文的阅读笔记和代码实现。这片论文的主要贡献在于其提出了一种动态pooling的方法。传统卷积神经网络中所用到的pooling方法一般是max-pooling,且pooling的size是固定不变的。本文通过k-max-pooling的方法可以在高层获取句子中位置较远的词语之间的联系。其整体思路如下图所示:
下面我们介绍一下论文所提出的模型,模型主要包含了per-dim的卷积层、folding层和k-max的pooling层。per-dim卷积层和前面一篇博客中介绍的是一样的,针对embed_size的每个维度分别进行卷积。folding层就是简单的将相邻的两个dim的值进行求和,从而实现维度的降低。k-max pooling层是选出最大的k个值而不是向传统的pooling层那样仅选出最大值。其模型架构如下图所示:
卷积层
这里使用的是per-dim卷积核,其作用如上图中的红色方框所示,不再进行过多介绍。不过需要注意的是,本文中的卷积方式是“宽卷积”。所谓宽卷积指的是在卷积过程中对输入的边缘进行PADDING补零。这样得到的输

本文详细介绍了基于CNN的句子分类模型——动态卷积神经网络(DCNN),重点关注动态k-max pooling层。该模型通过per-dim卷积层、folding层和k-max pooling层捕捉句子中词语之间的长距离依赖,其中k-max pooling能动态选取不同层的最大k个值,保留位置信息。此外,folding层通过相邻维度求和降低了模型复杂度。
最低0.47元/天 解锁文章
2532

被折叠的 条评论
为什么被折叠?



