文本分类问题不需要ResNet?小夕解析DPCNN设计原理(上)

历史回顾

回顾一下图像和文本的发展史,似乎这就是一场你追我赶的游戏。在上一阶段的斗争中,朴素贝叶斯、最大熵、条件随机场这些理论完备的统计机器学习模型使得文本分类、中文分词、NER等诸多自然语言处理问题取得了差强人意(释义:基本使人满意。顺带嘲讽一波误用该词的媒体们( ̄∇ ̄))的性能,而这些理论完备的模型却在图像分类这种基本的计算机视觉问题上都严重碰壁。

 

如今深度学习,或者具体点说卷积神经网络(CNN),为图像分类、目标检测等计算机视觉问题带来了蜕变式发展。从LeNet、AlexNet等,到Resnet、DenseNet,深层CNN一次次的刷新图像分类的极限,直至超越人类。但是在文本分类这个简单的问题上却迟迟未能等到深层CNN带来的惊喜。甚至都已经2017年了,依然有paper在讨论文本分类问题有没有必要用深度CNN网络的问题,并且最后的主要结论是没啥必要,一层就够了[1][2]。

 

猜想

出现这个现象的原因有三种,一种是文本分类问题真的已经做的足够好了(喂喂,真的要这样欺骗记几吗),一种是深度CNN网络确实不适合文本分类问题(emmmm这就比较忧伤了),还有一种是NLP领域还没有出现何恺明男神研究出一种适合学习自然语言文本的深度CNN网络。

 

其实第二种可能性确实让人比较沮丧,一旦有人说出来,可能就会出现恶性循环,直到有人做出有效的模型才能结束这个sad story。而冷静看的话,第三种则是很有可能的,最优化理论里有个经典的no-free-lunch(NFL)定理,暗示我们不要试图找一个解决所有AI问题的通用模型,而要根据具体问题来设计具体的算法和模型。而现有的很多paper的研究却貌似在忽略这个问题,从而得出一些不太靠谱的经验性结论,甚至包括一些顶会paper。

no-free-lunch延伸出的公平性比较问题

比如[1]试图说明文本分类问题里,word-level的模型(注:word-level模型是指以词为单位,character-level是指以字母/字符为单位)没必要做深,作者却拿TextCNN这个专门为文本分类问题设计的浅卷积模型与DenseNet这个为图像分类问题设计的深卷积模型做比较,发现DenseNet不如TextCNN于是结论说文本分类问题没什么必要用深层模型的呢,费力不讨好的呢。可是亲爱的,你可知道no-free-lunch?你可知道一个模型不针对数据集精调超参可有多大性能损失?

 

同样的,[2]也是做了一个没有什么意义的尝试,其作者精心为文本分类问题设计了一个character-level的深度卷积网,包括为其精调参数,却直接将设计完成的网络用在word-level的问题上,然后结果发现word-level的模型性能很差,显得好像word-level的模型是真的不能用深度CNN的哦,如果要用,请切换为char-level哦。看似让word-level和char-level保持同样的网络结构、层数和超参数是为了单一变量,实则恰好无视了no-free-lunch,私以为这样的比较结果是没有什么意义的。当然,这篇文章带来的数据资源以及其他贡献还是值得肯定的。

在no-free-lunch衍伸出的公平比较问题上,[3]是一篇做的不错的文章。其通过多维度比较word-level的精心设计的TextCNN模型与char-level的精心设计的VDCNN模型,从而相对谨慎的得出char-level的模型确实没有word-level模型高效的结论。表1是测试集性能比较。

表1

表2是两种模型的空间复杂度与时间复杂度的比较。

表2

由此各自的优劣就非常明显了。

 

那话说回来,文本分类问题中到底存不存在有效的深层word-level模型呢?

最起码小夕在前面指出了,前人的贬低深层word-level模型的依据都是片面、不可靠的,那么说明文首提到的第二种可能性依然没有成立,这时第三种可能性的机会来了。

 

2017年的ACL上有这么一篇文章,Deep Pyramid Convolutional Neural Networks for Text Categorization [5],论文中提出的DPCNN是严格意义上第一篇word-level的对文本分类有效的深层卷积网络。这篇文章貌似目前并没有引起广泛关注,然而其性能提升却撩起了小夕的浓厚兴趣。

小夕曾经做过相关研究,当时做实验时首先用的是1层CNN1层全连接的word-level模型,也就是2014Kim[4]的这个俗称的TextCNN模型,如图1

图1

小夕发现TextCNN果然在几个大规模文本分类数据集上取得了不错的效果。然而,小夕多次尝试加深CNN却发现模型性能总是收效甚微甚至不升反降。当时小夕似乎都要信了[1]的结论,感觉word-level的模型在文本分类问题上太难做深了。虽然觉得不能像[1]那样直接把DenseNet拿来用,然而并没有探索出太有效的深层结构。所以认认真真研究了一下这篇文章,并且做了一小部分复现,发现确实是有必要好好体会和总结一下这个网络的设计思想的。

 

DPCNN一方面在冷启动和梯度消失问题上借鉴了ResNet中的Highway/Shortcut结构,另一方面让DPCNN在冷启动阶段去等效为TextCNN,使得其理论上不至于比TextCNN更差,另一方面就是一个巧妙的设计trick将各个block的embedding约束到相似(甚至可能相同)的空间(毕竟文本里的embedding是比较“扁平”的,很可能三四个词描述的语义完全可以用一个词替代)。下面详细介绍这三点。

首先丢上(a)DPCNN与(b)TextCNN(文中称为ShallowCNN)、(c)ResNet的对比图,如图2。

 图2

呜,好困哇,坚持了一下还是没写完。迷迷糊糊的发现后半部分写的有点乱,还是从中间截断,先发引人入胜又戛然而止的前半部分吧~明天补完尾巴再把后半部分重新整理一下再推送哦,啾咪啾咪~

参考文献

[1] Le H T, Cerisara C, Denis A. Do Convolutional Networks need to be Deep for Text Classification?[J]. arXiv preprint arXiv:1707.04108, 2017. [2] Zhang X, Zhao J, LeCun Y. Character-level convolutional networks for text classification[C]//Advances in neural information processing systems. 2015: 649-657.[3] Rie Johnson and Tong Zhang. 2016. Convolutional neural networks for text categorization: Shallow word-level vs. deep character-level.arXiv:1609.00718 .[4] Kim Y. Convolutional neural networks for sentence classification[J]. arXiv preprint arXiv:1408.5882, 2014.[5] Johnson R, Zhang T. Deep pyramid convolutional neural networks for text categorization[C]//Proceedings of the 55th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers). 2017, 1: 562-570.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/481117.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Tensorflow】TensorFlow的嵌入layer和多层layer

计算图中的操作 # python 3.6 import tensorflow as tf import numpy as npsess tf.Session()# 将张量和占位符对象组成一个计算图,创建一个简单的分类器# 一、计算图中的操作 # 1. 声明张量和占位符,创建numpy数组,传入计算图操作 x_vals …

文本分类问题不需要ResNet?小夕解析DPCNN设计原理(下)

哎呀呀,说好的不拖稿的又拖了两天T_T,小夕过一阵子分享给你们这两天的开心事哦。后台催稿调参系列的小伙伴们不要急,下一篇就是第二篇调参文啦。好啦,接着上一篇文章,直接搬来DPCNN、ShallowCNN、ResNet的对比图。从图…

注意力机制-深度学习中的注意力机制+注意力机制在自然语言处理中的应用

1 深度学习中的注意力机制 https://mp.weixin.qq.com/s?__bizMzA4Mzc0NjkwNA&mid2650783542&idx1&sn3846652d54d48e315e31b59507e34e9e&chksm87fad601b08d5f17f41b27bb21829ed2c2e511cf2049ba6f5c7244c6e4e1bd7144715faa8f67&mpshare1&scene1&src…

【TensorFlow】常用的损失函数及其TensorFlow实现

1 损失函数 定义:将随机事件或其有关随机变量的取值映射为非负实数以表示该随机事件的“风险”或“损失”的函数。 应用:作为学习准则与优化问题相联系,即通过最小化损失函数求解和评估模型。 分类:回归问题、分类问题 2 回归问…

从经典文本分类模型TextCNN到深度模型DPCNN

如今深度学习已经成为NLP领域的标配技术,在图像中大为成功的卷积神经网络(CNN)也开始广泛渗透到文本分类、机器翻译、机器阅读等NLP任务中。但是,在ACL2017以前,word-level的文本分类模型(以单词为语义单位…

从特征分解到协方差矩阵:详细剖析和实现PCA算法

从特征分解到协方差矩阵:详细剖析和实现PCA算法本文先简要明了地介绍了特征向量和其与矩阵的关系,然后再以其为基础解释协方差矩阵和主成分分析法的基本概念,最后我们结合协方差矩阵和主成分分析法实现数据降维。本文不仅仅是从理论上阐述各种…

NLP中常用文本分类模型汇总

如今深度学习已经成为NLP领域的标配技术,在图像中大为成功的卷积神经网络(CNN)也开始广泛渗透到文本分类、机器翻译、机器阅读等NLP任务中。但是,在ACL2017以前,word-level的文本分类模型(以单词为语义单位…

【TensorFlow】随机训练和批训练的比较与实现

一、随机训练和批训练 随机训练:一次随机抽样训练数据和目标数据对完成训练。批训练:一次大批量训练取平均损失来进行梯度计算,批量训练大小可以一次上扩到整个数据集。批训练和随机训练的差异:优化器方法和收敛的不同批训练的难…

「小公式」平均数与级数

喵喵喵,小夕最近准备复习一下数学和基础算法,所以可能会推送或者附带推送点数学和基础算法的小文章。说不定哪天就用(考)到了呢( ̄∇ ̄)注意哦,与头条位的文章推送不同,「小公式」和「…

最新出炉-阿里 2020届算法工程师-自然语言处理(实习生)以及补充:快递最短路径

问题2感觉跟下面的分苹果类似; 问题 G: 分梨 题目描述 zzq非常喜欢吃梨,有一天他得到了ACMCLUB送给他的一筐梨子。由于他比较仗义,就打算把梨子分给好朋友们吃。现在他要把M个梨子放到N个盘子里面(我们允许有的盘子为空&#xff0…

如何匹配两段文本的语义?

喵喵喵,好久不见啦。首先很抱歉大家期待的调参手册(下)迟迟没有出稿,最近两个月连着赶了4个DDL,整个人都不好了。最近几天终于有时间赶一下未完成的稿子了。在赶DDL的时候夹着写了这篇文章,就先发布这一篇吧…

【TensorFlow】实现简单的鸢尾花分类器

代码实现及说明 # python 3.6 # TensorFlow实现简单的鸢尾花分类器 import matplotlib.pyplot as plt import tensorflow as tf import numpy as np from sklearn import datasetssess tf.Session()#导入数据 iris datasets.load_iris() # 是否是山鸢尾 0/1 binary_target …

偏差-方差全面解释

偏差(Bias)与方差(Variance) 目录: 为什么会有偏差和方差?偏差、方差、噪声是什么?泛化误差、偏差和方差的关系?用图形解释偏差和方差。偏差、方差窘境。偏差、方差与过拟合、欠拟合…

「小算法」回文数与数值合法性检验

喵喵喵,小夕最近准备复习一下数学和基础算法,尽量每篇推送下面会附带点数学和基础算法的小文章。说不定哪天就用(考)到了呢( ̄∇ ̄)注意哦,与头条位的文章推送不同,「小公式」和「小算…

【TensorFlow】实现、训练并评估简单的回归模型和分类模型

1 回归模型 回归算法模型用来预测连续数值型,其目标不是分类值而是数字。为了评估这些回归预测值是否与实际目标相符,我们需要度量两者间的距离,打印训练过程中的损失,最终评估模型损失。 这里使用的例子是从均值为1、标准差为0…

史上最通熟易懂的检索式聊天机器人讲解

喵喵喵,一不小心又匿了三个月,突然诈尸害不害怕( ̄∇ ̄) 小夕从7月份开始收到第一场面试邀请,到9月初基本结束了校招(面够了面够了T_T),深深的意识到今年的对话系统/chatbot方向是真的…

Python pandas数据分析中常用方法

官方教程 读取写入文件 官方IO 读取 写入 read_csv       to_csv read_excel      to_excel read_hdf       to_hdf read_sql       to_sql read_json      to_json read_msgpack (experimental)   to_msgpack (experimental) read_html    …

小哥哥,检索式chatbot了解一下?

喵喵喵,一不小心又匿了三个月,突然诈尸害不害怕( ̄∇ ̄) 小夕从7月份开始收到第一场面试邀请,到9月初基本结束了校招(面够了面够了T_T),深深的意识到今年的对话系统/chatbot方向是真的…

领域应用 | 中医临床术语系统

本文转载自公众号中医药知识组织与标准。什么是中医药术语系统?它是干什么用的呢?中医药术语系统是运用计算机与信息技术等工具,对中医药学各领域中的事物、现象、特性、关系和过程进行标记和概括,并为每个概念赋予指称形成概念体…