Keras自然语言处理(十四)
第十一章 文献分类的神经网络
文本分类描述了文本上的一个问题:预测推文和电影评论的情绪,电子邮件的分类(垃圾邮件和普通邮件)。深度学习方法在文本分类方面非常出色,在一系列学术基准标准问题上实现了最好结果。在本章中,你将了解到开发一个深度学习模型来处理文本分类问题。你将在接下来了解到:
- 在开始文本分类问题时,要考虑深度学习方法的一般组合
- 首先从架构层面给出如何配置超参数的具体建议
- 未来深度网络可能是文本分类领域中最具有灵活性和处理能力强大的工具
11.1 概述
本章分为以下几个部分:
- 词嵌入+CNN = 文本分类
- 使用单层CNN架构
- 配置CNN参数
- 考虑字符级CNN
- 考虑更深入的CNN分类
11.2 词嵌入+CNN= 文本分类
文本分类的问题涉及到文档单词如何使用,词嵌入编码和神经网络学习如何分类文档。神经网络通常比经典线性分类器有更好的性能,特别是与预训练的词嵌入在一起使用时。词嵌入我们在上一章中已经介绍了,不太懂的同学可以看看我前面的文章。我们不做更多的介绍。CNN,即卷积神经网络,一种特征模型。CNN本质是一种特征提取架构,它本身并不构成一个独立的,有用的网络,而是要集成到更大的网络中。
11.3 使用单层CNN结构
单层CNN用于文档分类可以获得不错的结果,主要是因为过滤器上具有不同大小的内核,可以在不同比例下对单词j进行分组。Yoon Kim在研究使用预训练词嵌入卷积神经模型进行词分类时发现卷积神经对静态单词向量的效果非常有效,为此他建议在非常大的文本语料库上训练的预训练单词嵌入,例如Google新闻中训练的100亿个词汇的免费Word2Vec向量,可提供用于自然语言处理的良好通用特征。
他还发现对单词向量进行进一步的调整能获得额外的性能提升。Kim描述了使用CNN进行自然语言处理的一般方法:
句子映射到嵌入向量,可用作模型的矩阵输入,使用大小不同的内核逐步执行卷积,然后使用最大池化处理所得到的的特征或汇总特征。
11.4 深入CNN超参数
在调整文档分类的卷积神经网络的过程中,一些超参数比其他参数更重要。这里我们仅仅得出一些结论性的东西其具体原理和实验方法我们不做解释。
基于CNN模型的缺点是其在模型中确切结构和超参数。对于初学者来说,无法理解和站在哪个角度去设置这种超参数,这让很多初学者无所适从,因为模型组有很多自由参数。
一般使用CNN模型时,会有如下发现:
- 预训练的Word2Vec和Glove嵌入的选择因自己所面临的问题而定,两者都是使用一个热编码的单词向量
- 内核的大小很重要,应该针对不同的问题自行调整
- 最大池化层要好于其他类型的池化层,在特定问题上也可以选择其他池化层,例如平均池化层
- Dropout对CNN模型影响不大