CNN是当前在自然语言处理中与RNN紧密结合的两个最常见的深度学习模型。图1显示了在NLP任务中使用CNN模型的典型网络结构。一般来说,输入的单词或单词是通过单词嵌入来表达的,从而将原始的一维文本信息输入转换为二维输入结构。假设输入X包含m个字符,并且每个字符的词嵌入长度为d,则输入为m * d的二维向量。图1在此处可以看到自然语言处理中CNN模型的典型网络结构。由于NLP中的句子长度不同,因此CNN输入矩阵的大小不确定,这取决于m的大小。卷积层本质上是特征提取层。可以设置超参数F以指定设置了多少个特征提取器(过滤器)。对于过滤器,您可以想象输入矩阵中有k * d个移动窗口。第一个单词开始向后移动,其中k是Filter指定的窗口大小,d是单词嵌入的长度。对于某个时刻的窗口,通过神经网络的非线性变换,该窗口中的输入值将转换为某个特征值。随着窗口继续向后移动,与该过滤器相对应的特征值被连续生成以形成该过滤器。特征向量。这是从卷积层提取特征的过程。每个过滤器都以这种方式运行以形成不同的特征提取器。合并层对滤镜的特征执行降维操作以形成最终特征。通常,将全连接层神经网络连接到Pooling层之后,以形成最终的分类过程。可以看出,卷积和池化是CNN中两个最重要的步骤。下面我们重点介绍NLP中CNN模型的常见Pooling操作方法。 | CNN中TIme的最大池化操作NLP CNN模型中的最大TIme池化操作是最常见的下采样操作。这意味着对于某个过滤器要提取多个特征值的情况,仅将得分最高的值作为Pooling层的保留值,并丢弃所有其他特征值。最大值表示仅保留这些功能中最强的功能,而其他较弱的功能则被丢弃。类的特征。 CNN中的“最大池化”操作具有几个优点:首先,此操作可以确保特征位置和旋转的不变性,因为无论强特征出现在哪里,都可以提出它,而无论其出现的位置如何。对于图像处理,此位置和旋转不变性是一个好功能,但对于NLP,此功能不一定是一件好事,因为在许多NLP应用程序中,该功能的位置信息非常重要,例如,对象通常出现在句子的开头,对象通常出现在句子的结尾,依此类推。实际上,此位置信息有时对于分类任务仍然很重要,但是Max Pooling基本上会丢弃此信息。其次,MaxPooling可以减少模型参数的数量,这有助于减少模型的过度拟合问题。因为在执行Pooling操作之后,通常将2D或1D数组转换为单个值,所以对于后续的卷积层或完全连接的隐藏层,无疑会减少单个Filter的参数或隐藏层神经元的数量。此外,对于NLP任务,Max Pooling还具有其他优势。在这里,可变长度输入X可以分类为固定长度输入。由于CNN通常经常在末端连接完全连接的层,并且需要预先确定神经元的数量,因此,如果输入的长度可变,则难以设计网络结构。如前所述,CNN模型的输入X的长度是不确定的,并且通过Pooling操作,每个Filter取一个固定值,因此有多少Filters,在Pooling层中有多少神经元,因此可以进行连接该层中神经元的数量是固定的(如图2所示),这一优势也非常重要。 < nbsp;>图2。合并层中神经元的数量等于过滤器的数量。但是,CNN模型采用MaxPooling Over TIme也有一些值得注意的缺点:首先,如上所述,特征的位置信息在此步骤中完全丢失。实际上,特征的位置信息保留在卷积层中,但是通过采用唯一的最大值,现在Pooling层只知道最大值,而位置信息却没有保留。另一个明显的缺点是:有时某些强大的功能会多次出现,例如我们常见的TF.IDF格式