11  文献分类的神经模型

文本分类描述了一类问题:预测推文和电影评论的情绪,以及电子邮件分类为垃圾邮件和普通邮件等等。深度学习方法在文本分类方面非常出色,在一系列学术基准标准问题上实现了最好的结果。在本章中,您将了解到在开发文本分类的深度学习模型时要考虑的一些最佳实践。阅读本章后,您将了解:

  • 在开始文本分类问题时要考虑深度学习方法的一般组合,。
  • 首先从架构层面给出如何配置超参数的具体建议。
  • 未来深度网络可能是文本分类领域中最具灵活性和处理能力强大的工具。

11.1 概览

本教程分为以下几部分:

  1. Word Embedding模型+ CNN =文本分类
  2. 使用单层CNN架构
  3. 配置CNN超参数
  4. 考虑字符级CNN
  5. 考虑更深入的CNN进行分类

11.2 Word Embedding模型+ CNN =文本分类

文本分类的问题涉及到文档单词如何使用单词嵌入编码和卷积神经网络(CNN)学习如何分类文档。Yoav Goldberg在自然语言处理深度学习的入门读物中评论说,神经网络通常提供比经典线性分类器更好的性能,特别是与预训练的字嵌入一起使用时。

网络的非线性以及容易集成预训练的字嵌入的能力通常获得更高的分类准确性。

A Primer on Neural Network Models for Natural Language Processing, 2015

他还指出卷积神经网络在文档分类中是有效的,即因为它们能够以提取输入序列中的位置不变的显着特征(例如,令牌或令牌序列)。

具有卷积和池化层的网络对于分类任务非常有用,在分类任务中我们期望找到关于类成员明显的局部线索,但是这些线索可以出现在输入中的不同位置。[...]我们知道某些单词序列是该主题的明显特征,并不一定在乎它们在文档中出现在什么地方。卷积层和池化层允许模型学习如何找到这样的特征,不管它们的在输入序列的位置。

A Primer on Neural Network Models for Natural Language Processing, 2015.

因此,该体系结构由三个关键部分组成:

  • 词嵌入:单词的分布式表示,其中具有相似含义的不同单词(基于其用法)也具有相似的表示。
  • 积模型:一种特征提取模型,用于从使用单词嵌入表示的文档中提取显着特征。
  • 全连接模型:根据预测输出对提取的特征进行解释。

Yoav Goldberg在他的书中强调了CNN作为特征提取器模型的作用:

... CNN本质上是一个特征提取架构。它本身并不构成一个独立的,有用的网络,而是要集成到一个更大的网络中,并接受训练以与其协同工作以产生最终结果。CNNs层的职责是提取对手头的整体预测任务有用的有意义的子结构。

Page 152, Neural Network Methods for Natural Language Processing, 2017.

11.3 使用单层CNN架构

单层CNN用于文档分类可以获得不错结果,主要原因在于过滤器上具有不同大小的内核,可以在不同比例下对单词表示进行分组。Yoon Kim在研究使用预训练词嵌入模型进行卷积神经网络分类任务时发现,使用预先训练的静态单词向量非常有效,他建议在非常大的文本语料库上训练的预训练单词嵌入,例如从Google新闻中训练的1000亿个词汇的免费Word2Vec向量,可以提供用于自然语言处理的良好通用特征。

尽管对超参数的调整很少,但是具有一层卷积的简单CNN表现得非常好,我们的结果增加了我们对预训练词嵌入模型的信心,即无监督的单词向量训练是NLP深度学习的重要组成部分

Convolutional Neural Networks for Sentence Classification, 2011.

他还发现,对单词向量进行进一步的根据任务特点调整可以提供额外的性能提升。Kim描述了使用CNN进行自然语言处理的一般方法:句子映射到嵌入向量,可用作模型的矩阵输入,使用不同大小的内核(例如,一次23个字)逐字输入执行卷积,然后使用最大池化层处理所得到的特征以压缩或汇总所提取的特征。

该模型结构源于Ronan Collobert等人2011的论文Natural Language Processing (almost) from Scratch,在那篇论文中,他们提出了一个单一的端到端神经网络模型,具有卷积和池化层,可用于一系列基本的自然语言处理问题。Kim提供了一个有助于查看使用不同大小的过滤器内核的图表,在图表中不同的过滤器内核使用不同颜色(红色和黄色)表示。

 

 

 

 

 

取自Convolutional Neural Networks for Sentence Classification

11.1:用于自然语言处理的CNN过滤器和轮询架构的示例。

有用的是,他阐述了他所选择的模型配置,通过网格搜索和一系列7个文本分类任务中使用发现,总结如下

  • 传递函数:整流线性。
  • 内核大小:2,4,5
  • 过滤器数量:100
  • 丢弃率:0.5
  • 权重正则化(L2):3
  • 批量大小:50
  • 更新规则:Adadelta

这些配置可用于您自己实验的起点。

11.4 深入CNN超参数

在调整文档分类问题的卷积神经网络时,一些超参数比其他参数更重要。Ye Zhang Byron Wallace对配置单层卷积神经网络进行文档分类所需的超参数进行了灵敏度分析,该研究的动机是他们声称模型对其配置很敏感。

不幸的是,基于CNN的模型(即使是简单的模型)的缺点是它们需要使用者指定要使用的模型的确切结构并设置其超参数。对于初学者来说,搞定这些参数的设定看起来像黑色艺术,让初学者无所适从,因为模型中有许多自由参数。

A Sensitivity Analysis of (and PractitionersGuide to) Convolutional Neural Networks for

Sentence Classification, 2015.

他们的目标是提供可用于在新文本分类任务上配置CNN的常规配置。它们提供了对模型体系结构的精确描述以及用于配置模型的决策点,如下所示。

确定

 

11.2:句子分类的卷积神经网络结构。摘自卷积神经网络的句子敏感性分析(和从业者指南)。

该研究提供了许多有用的发现,可以作为配置用于文本分类的浅CNN模型的起点。一般调查结果如下:

  • 预训练的Word2VecGloVe嵌入的选择因问题而异,并且两者都比使用一个热编码的单词向量表现更好。
  • 内核的大小很重要,应针对每个问题进行调整。
  • 要素图的数量也很重要,应该进行调整。
  • 1-max池通常优于其他类型的池。
  • Dropout对模型性能影响不大。

他们继续提供更具体的启发式方法,如下所示:

  • 使用Word2VecGloVe字嵌入作为起点,并在拟合模型时进行调整。
  • 跨不同内核大小的网格实验,以找到问题的最佳配置,范围为1-10
  • 实验100-600的过滤器数量,并同时实验0.0-0.5的丢弃率那个最合适。
  • 尝试使用tanhrelu和线性激活函数。

值得注意的是,这些都是在单个句子作为输入的文本二分类模型上发现的。

11.5 考虑字符级CNN

文本文档可以使用字符级表示方式进行建模并作为卷积分网络的输入,该卷积神经网络能够学习单词、句子、段落等的相关层次结构。张翔等使用基于字符的文本表示作为卷积神经网络的输入,这个方法的发现,如果CNN可以学习抽象显着的细节,那么清理和准备文本所需的所有劳动密集型工作都可以克服。

......除了先前研究ConvNets不需要关于语言的句法或语义结构的知识之外,深层ConvNets进一步的不需要单词知识。这种工程的简化对工作于不同语言的单个系统来说可能是至关重要的,因为无论是否可以分割成单词,字符总是构成单词必要的基础单元。仅处理字符还具有以下优点:可以自然地学习诸如拼写错误和表情符号之类的异常字符组合。

Character-level Convolutional Networks for Text Classification, 2015.

该模型以固定大小的字母表读入one-hot编码字符,编码字符以块或1,024个字符的序列读取,输入6个卷积层的堆栈随后是池化层,在输出端是3个完全连接的层以进行预测。

 

11.3:基于字符的卷积神经网络用于文本分类。

取自Character-level Convolutional Networks for Text Classification

该模型取得了一些成功,在大文本语料的问题上表现更好。

  • ...分析表明,字符级的ConvNet是一种有效的方法。[...]我们的模型在比较中的表现取决于许多因素,例如数据集大小,文本是否经过挑选以及字母表的选择。
  • Character-level Convolutional Networks for Text Classification, 2015.

使用这种方法的扩展版本的结果,在下一部分所述的后续文章中被推到了更高技术水平。

11.6 考虑更深入的CNN进行分类

尽管用于文本分类任务的标准和可重用的网络结构尚未被开发出来,但是使用非常深的卷积神经网络可以得到很好的结果。Alexis Conneau等人,对用于自然语言处理的相对较浅的网络结构以及用于计算机视觉应用的更深层网络的成功发表了看法。例如,Kim(上文)将模型限制为单个卷积层。

本文中使用的用于自然语言的网络结构限于5层和6层,这与计算机视觉中使用的成功网络结构(具有19层甚至152层)形成鲜明地对比。他们建议并证明使用非常深的卷积神经网络模型(称为VDCNN)对分层特征学习有帮助的。

...我们建议使用多个卷积层的深层架构来实现这一目标,最多使用29层。我们的网络结构设计受到计算机视觉最近进展的启发[...]所提出的深度卷积网络显示出比以前的ConvNets方法能得到更好的结果。

Very Deep Convolutional Networks for Text Classification, 2016.

他们方法的关键是采用字符嵌入模型,而不是词嵌入。

我们提出了一种用于文本处理的新架构(VDCNN),它直接在字符级别操作,并且仅使用小卷积和池化操作。

Very Deep Convolutional Networks for Text Classification, 2016.

一组8个大型文本分类任务的结果显示出深层网络结构比浅层网络表现的性能更好,具体而言,在撰写本文时,除了两个测试数据集之外的其他所有数据集都获得了更好的结果。总的来说,他们通过尝试更深层的架构方法得出一些重要发现:

  • 非常深的架构在小型和大型数据集上都可以很好的工作。
  • 更深的网络减少了分类错误发生。
  • 与其他更复杂的池类型相比,Max-pooling可获得更好的效果。
  • 通常更深层连接会降低准确性;网络结构中多使用的简短连接这一点很重要。

......这是第一次在NLP中显示卷积神经网络的深度效益

Very Deep Convolutional Networks for Text Classification, 2016.


0 条 查看最新 评论

没有评论
暂时无法发表评论