查看原文
其他

第8.1节 TextCNN模型

空字符 月来客栈 2024-01-21

各位朋友大家好,欢迎来到月来客栈,我是掌柜空字符。

本期推送内容目录如下,如果本期内容对你有所帮助,欢迎点赞、转发支持掌柜!

  • 8.1 TextCNN模型
    • 8.1.1 TextCNN网络结构
    • 8.1.2 文本分词
    • 8.1.3 TextCNN实现
    • 8.1.4 小结
  • 引用

经过第4章和第7章内容的介绍,我们对于深度学习中常见的两种网络结构CNN和RNN已经有了清晰的认识。CNN主要应用于处理在空间位置上具有相互依关系的特征数据,而RNN则主要应用于处理在时间维度上具有前后依赖的特征数据。可尽管如此,我们依旧可以根据CNN或者其与RNN的相应结合体来完成时序数据的特征提取过程。在本章内容中,笔者将会介绍多种基于CNN和RNN的变体模型以及相应的应用案例。

8.1 TextCNN模型

虽然CNN主要用于对输入矩阵相邻空间位置上的信息进行特征编码,但是其同样可以通过多尺度的卷积窗口来刻画时序数据在序列上的特征信息,例如比较经典的TextCNN[1]文本分类模型。TextCNN的核心思想便是基于词的粒度将每个词通过一个固定长度的向量来表示(即词向量,相关内容将在第9.2节内容中进行介绍);然后再将一个句子中所有词的词向量垂直堆叠构成一个的矩阵,其中表示该句中词的个数,表示词向量的维度;最后再采用固定宽度的多尺度卷积核()进行特征提取并完成后续任务。

8.1.1 TextCNN网络结构

TextCNN利用卷积操作对文本进行局部特征提取,通过不同大小的卷积核捕捉不同长度的局部特征,从而识别出文本中的关键信息。在TextCNN中,整个网络模型总体上分为3层,卷积层、池化层和全连接分类层,网络结构如图8-1所示。

图 8-1 TextCNN网络结构图

在图8-1中,最左侧为一个的特征矩阵,其中每一行均为一个4维向量,每个向量表示词表中固定的一个词。基于这样的表示方法,对于任意文本来说我们都可以将其表示成一个固定宽度特征矩阵,并且此时我们可以将其看做是一个单通道的特征图。进一步,TextCNN采用了3个不同窗口长度(分别为3、4、和5)的卷积核进行卷积处理。此时,由于卷积核的宽度同特征图的宽度一致,因此卷积结束后得到的便是一个一维的向量。可以看出,基于这样的卷积操作本质上也可以看作是在对文本的局部序列信息进行特征提取,其长度便依赖于卷积核的窗口长度。

在完成卷积操作完成之后,再通过最大化池化操作对每个特征图进行特征提取,此时的每个通道将会变成一个标量值。最后,再将所有结果拼接起来得到一个向量作为文本的特征表示,并追加一个分类层完成后续的分类任务。虽然TextCNN网络结构看似比较简单,但是在实际运用中往往都能取得较好的结果,并且训练速度快不容易过拟合。

为你认可的知识付费,欢迎订阅本专栏阅读更多优质内容!

对机器学习感兴趣的客官也可点击购买掌柜编写的《跟我一起学机器学习》

继续滑动看下一个

第8.1节 TextCNN模型

空字符 月来客栈
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存