文本分类模型_文本分类中的经典深度学习模型
众所周知,文本分类是NLP领域中十分基础的任务,大部分文本分类模型稍加修改就可以应用到其他任务中。下面介绍几个经典的文本分类模型。
图中被引数来源google学术(2019/5/16)
1. textCNN
作为一个经典的神经网络模型,CNN具有极强的特征提取能力,而且运行速度比RNNs要快的多。当CNN在计算机视觉领域取得巨大成功之后,人们自然想到如何将CNN应用到自然语言处理任务中。然而,其关键问题便是如何选择卷积核的尺寸、如何解释卷积核在NLP任务中的意义。
textCNN[1]采用的卷积核大小为 ,其中 是词向量的维度, 作为超参数由人工选择。作者认为这样可以捕捉句子中的n-grams,即如果选择的卷积核分别为 、 、 就表示捕捉了句子中的1-gram、2-gram、3-gram。接着通过一个max-pooling层,捕捉其中最重要的特征,同时还可以解决句子长度不一的问题。
textCNN的结构
作为一个14年提出的模型,textCNN简单有效,十分强大。
2. DCNN
DCNN[2](Dynamic Convolutional Neural Network)和textCNN有些相似,但是从另一个角度来考虑卷积这件事的。
作者认为在建模句子时,词的顺序是非常重要的,循环神经网络(Recurrent neural networks)可以利用词语间的顺序,但是生成的向量会偏向于句子中的最后一个词,所以它适合用在语言模型中,不适合文本分类任务。而递归神经网络[3](Recursive neural networks)通过句法解析树将句子合成一个向量,可以较好的利用词语间的顺序,但它依赖于句法解析树,不容易推广。
RNTN的结构
于是,作者提出可以使用卷积+k-max-pooling动态建模句子的句法结构。其中k-max-pooling指的是进行pooling时选择前k个最大的值。如下图所示,蓝色的线就是k-max-pooling所选择的句法结构。
通过DCNN捕捉句法结构
在DCNN中,卷积核的高度并没有设置为词向量的维度,而是为1。此外,DCNN中D体现在对k-max-pooling中k的动态选择上。在DCNN可以看出k表示了每一层节点的个数,所以k随着层数的增加而会逐渐减少,如下图由5到3。文章给出了k的计算方式,感兴趣的同学去看文章吧。
DCNN的网络结构
3. RCNN
与DCNN中相似,作者认为递归神经网络(Recursive neural networks)和循环神经网络(Recurrent neural networks)虽然利用词之间的顺序,但都存在一些问题。与之对比,CNN不依赖于句法解析树,也没有偏向的问题(bias problem)。但CNN中的问题在于难以决定卷积核的宽度:较小的卷积窗口会造成关键信息的损失,而较大的卷积窗口会使得参数空间过大。
于是,作者提出了RCNN[4](Recurrent Convolutional Neural Network),抛弃了CNN中的卷积核结构,而使用RNN来捕捉单词的上下文。只看上面一句话,你肯定和我当时一样云里雾里了。我们来看下面的图!
RCNN的结构
在上图中,一个单词 经过双向RNN得到 ,它们分别保存了单词 的上下文,接着将 与 对应的词向量拼接在一起得到 ,即
经过一个全连接网络得到 。这便是RCNN的卷积层,之后max-pooling层则和普通的CNN一样。
从下图中,我们可以看到CNN的性能随着卷积核窗口的大小先增加后下降,并且RCNN的性能优于CNN。由于textCNN是同时取多个卷积窗口,所以根据本文无法判断RCNN和textCNN性能谁好谁坏,但是RCNN为我们设计网络结构提供一个非常好的思路。
RCNN和CNN的性能对比
文章还列举出了由RCNN获得的关键词。文章将在max-pooling层被选择次数最多的词视为关键词。
情感分类中通过RCNN获得的类别关键词
4. HAN
前面的模型都是面向句子的,而现实中的许多分类任务是面向文档的。于是,有学者在2016年提出了HAN[5](Hierarchical Attention Networks),从名字我们就可以看出此模型的两个关键点分别是层次结构和Attention。
HAN的网络结构分两部分,首先通过attention机制将一句话合成为一个向量 ,然后再次通过attention机制将一个文档中的所有句子合成为一个向量 ,再接一个全连接层输出预测结果。
han的网络结构
合词成句的时候,(1) 首先使用一个双层的GRU获得第 个句子第 个单词的隐含表示 ;(2) 接下来, 首先经过全连接层生成 ,然后计算 与向量 的相似度 ,通过相似度 和 得到句子的加权表示。其中,是网络中可学习的参数,用以衡量单词对分类任务的重要程度,可以理解为判断单词是否为停用词的一个向量。
合句成文与合词成句类似,对应的向量 用来衡量句子的相似度程度。
这种层次结构使得HAN在文档分类中的性能得到大幅提升。此外,文章展示了单词在合词成句时的权重分布,从下图(b)-(f)中可以看出,随着情感倾向由负变为正,good的平均权重逐渐增加。
情感分类任务中good的attention权重分布
由于HAN使用了RNN,它的时间和空间开销均大大超过textCNN。后续有文章[6]保持HAN中的层次结构,但是去掉了其中的RNN结构以优化时间开销,但引起的关注不大。
参考
[1] Kim Y. Convolutional neural networks for sentence classification[J]. arXiv preprint arXiv:1408.5882, 2014.
[2] Kalchbrenner N, Grefenstette E, Blunsom P. A convolutional neural network for modelling sentences[J]. arXiv preprint arXiv:1404.2188, 2014.
[3] Socher R, Perelygin A, Wu J, et al. Recursive deep models for semantic compositionality over a sentiment treebank[C]//Proceedings of the 2013 conference on empirical methods in natural language processing. 2013: 1631-1642.
[4] Lai S, Xu L, Liu K, et al. Recurrent convolutional neural networks for text classification[C]//Twenty-ninth AAAI conference on artificial intelligence. 2015.
[5] Yang Z, Yang D, Dyer C, et al. Hierarchical attention networks for document classification[C]//Proceedings of the 2016 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies. 2016: 1480-1489.
[6] Gao S, Ramanathan A, Tourassi G. Hierarchical convolutional attention networks for text classification[R]. Oak Ridge National Lab.(ORNL), Oak Ridge, TN (United States), 2018.
@张义策
版权声明
本文版权归《张义策》,转载请自行联系。
历史文章推荐:
学习率和batchsize如何影响模型的性能?
深度相机室内实时稠密三维重建简介
SFFAI分享 | 马聪:NLP中的生成式预训练模型【附PPT与视频资料】
一幅图真正理解LSTM的物理结构
再谈人脸识别损失函数综述
初学者|今天掌握SnowNLP好不好
【AI产品】深扒美图秀秀中掳获万千少女芳心的“AI秘籍”
旷视研究院新出8000点人脸关键点,堪比电影级表情捕捉
PointNet系列论文解读
你正在看吗??
文本分类模型_文本分类中的经典深度学习模型相关推荐
- tflearn教程_利用 TFLearn 快速搭建经典深度学习模型
使用 TensorFlow 一个最大的好处是可以用各种运算符(Ops)灵活构建计算图,同时可以支持自定义运算符(见本公众号早期文章<TensorFlow 增加自定义运算符>).由于运算符的 ...
- nlp中的经典深度学习模型(二)
attention和transformer都是面试重点. 文章目录 3 seq2seq+Attention 3.1 Sequence to Sequence Model 3.1.2 模型介绍 3.1. ...
- nlp中的经典深度学习模型(一)
文章目录 1 DNN与词向量 1.1 DNN 1.2 skip-gram 1.3 简单句子分类模型DAN 2 RNN+LSTM+GRU 2.1 RNN 2.2 LSTM 2.3 LSTM变种 2.4 ...
- 二分类最优阈值确定_AI初识:深度学习模型评估,从图像分类到生成模型
加入极市专业CV交流群,与6000+来自腾讯,华为,百度,北大,清华,中科院等名企名校视觉开发者互动交流!更有机会与李开复老师等大牛群内互动! 同时提供每月大咖直播分享.真实项目需求对接.干货资讯汇总 ...
- babyion 加载obj模型_在vue中使用babylonjs引入3d模型,打印mesh数据正常且无报错,但未在场景中显示,请问是什么环节出现了问题?...
已解决,由于项目是由vue-cli3搭建的,将obj模型放入public后需要用es6语法引入. 首先在return中定义publicPath: process.env.BASE_URL 然后在引用路 ...
- 文本分类模型_文本分类模型之TextCNN
六年的大学生涯结束了,目前在搜索推荐岗位上继续进阶,近期正好在做类目预测多标签分类的项目,因此把相关的模型记录总结一下,便于后续查阅总结. 一.理论篇: 在我们的场景中,文本数据量比较大,因此直接采用 ...
- textcnn文本词向量_文本分类模型之TextCNN
六年的大学生涯结束了,目前在搜索推荐岗位上继续进阶,近期正好在做类目预测多标签分类的项目,因此把相关的模型记录总结一下,便于后续查阅总结. 一.理论篇: 在我们的场景中,文本数据量比较大,因此直接采用 ...
- 深度学习模型保存_解读计算机视觉的深度学习模型
作者 | Dipanjan(DJ)Sarkar 来源 | Medium 编辑 | 代码医生团队 介绍 人工智能(AI)不再仅限于研究论文和学术界.业内不同领域的企业和组织正在构建由AI支持的大规模应用 ...
- AI Earth 深度学习模型替换数值天气预报模型中的参数化方案-大气辐射传输方案
1.背景 太阳辐射和热辐射是大气和海洋运动的最根本的驱动力.大气辐射传输过程实际上已经可以通过一种叫做LBLRTM的辐射模型精确计算,但是LBLRTM模型同时也最为耗时.因此,有各种各样的辐射传输参数 ...
最新文章
- 力扣(LeetCode)刷题,简单+中等题(第32期)
- 在Android上使用Socket
- .NET Socket服务编程之-高效连接接入编
- 计算机专业博士发论文,计算机专业本科、硕士、博士学位论文编写方法浅析
- unix修改服务器时间格式,处理unix中的日期格式
- 【C语言】用指针描述数组,实现选择法排序
- ssh解决root_unlock_time问题
- Python实现A*算法解决N数码问题
- 用微软的压力测试工具进行拒绝服务攻击
- 关于批判性思维(Critical Thinking)
- 无线网络dns服务器是多少,中国移动宽带dns是多少?
- web开发设为首页、添加到收藏夹实现方法
- 权力的游戏——读《原则2 :应对变化中的世界秩序》(中)
- 计算机改变世界英语作文,2013年3月3日托福独立写作范文:年轻人改变世界(英文版)...
- Elasticsearch - Indices stats 获取索引级别的统计信息之三 【indexing】索引操作信息
- 成都计算机考证培训机构
- 实战详解Maven部署(deploy)jar到私有仓库Nexus及如何引入私仓jar包
- VS2019程序打包(带sql sever转access数据库)
- python之鸭子类型(22)
- 双移线驾驶员模型,多项式双移线模拟
热门文章
- 【Elasticsearch】es 脑裂
- 【面试题】HashMap 面试 21 问
- 95-136-040-源码-Operator-Operator简介
- 【Flink】Class class org.apache.flink.types.Row cannot be used as a POJO type because not all fields a
- SpringMVC : SpringMVC注解
- 从入门到入土:MySQL完整学习指南,包教包会!
- 最详细的 Spring Boot 多模块开发与排坑指南
- 多次面试美团后,我整理了这几个必备的技术栈!
- 解决一个用Idea的Docker插件远程部署SpringBoot的失败问题
- 2018-2019-2 20165235《网络对抗技术》Exp7 网络欺诈防范