DPCNN分类模型

news2024/9/25 12:34:15

        论文 Deep Pyramid Convolutional Neural Networks for Text Categorization 提出深层金字塔卷积网(DPCNN)是 word-level 的广泛有效的深层文本分类卷积神经网络,比 TextCNN(浅层CNN)性能明显提高。

        TextCNN 不能通过卷积获得文本的长距离关系依赖,DPCNN 通过加深网络,可以抽取长距离的文本依赖关系,

region embedding:包含多尺寸卷积滤波器的卷积层的卷积结果,类似word embedding;对一个文本区域/片段(比如3gram)进行一组卷积操作后生成的embedding,即向通过embedding层将文本转为向量,该向量中每行对应一个词,再通过 region embedding (tex-cnn) 构建如 3-gram,4-gram,5-gram 的向量。

        对 n-gram 卷积操作时有两种选择,一种是保留词序,即设置一组size=n*D 的二维卷积核对n-gram 卷积(D是word embedding维度),另一种是不保留词序(即词袋模型),即先对n-gram中n个词的embedding取均值得到一个size=D的向量,设置一组size=D的一维卷积核对该n-gram进行卷积。TextCNN 使用了保留词序的做法,而DPCNN使用的是词袋模型的做法,DPCNN作者认为前者容易造成过拟合,后者的性能却跟前者差不多。

等长卷积:为捕获长距离信息,需要深层CNN,如果直接使用等长卷积堆等长卷积,会让每个词位包含越来越多,越来越长的上下文信息,但效率很低,但会让每个词位的embedding描述语义描述的更加丰富准确,这样可以适当的堆两层来提高词位embedding的表示的丰富性。

三类卷积:

设序列长度为n,卷积核大小为m,步长为s,输入序列两端各填补p个零(zero padding),卷积层输出的序列为(n - m + 2p) / s + 1,

(1) 窄卷积:步长s=1,两端不补0,即p=0,卷积后输出长度为n-m+1

(2)宽卷积:步长s=1,两端补零p= m -1,卷积后输出长度为 n + m -1

(3) 等长卷积:步长s = 1,两端补零 p = (m-1)/2,卷积后输出长度为 n

池化:捕捉长距离依赖的,选用两层等长卷积提高embdding 的丰富性,然后使用downsampling(池化),在每一个卷积块(两层的等长卷积)后,使用一个 size=3 和 stride=2 的 maxpooling 池化,序列的长度就被压缩为原来的一半,感知的文本片段就比之前长了一倍。

固定filters数量:增加 filters 数量会导致总计算复杂度增加。DPCNN 通过对 filters 的数量修正,发现增加 filters 数量只会增加计算时间,没有提高精度。

        在表示好每个词位的语义后,很多邻接词或者邻接n-gram的词义是可以合并的,例如“小娟 姐姐 人 不要 太好”中的“不要”和“太好”虽然语义本来离得很远,但是作为邻接词“不要太好”出现时其语义基本等价为“很好”,这样完全可以把“不要”和“太好”的语义进行合并。合并的过程可以在原始的embedding space中进行的,毕竟原文中直接把“不要太好”合并为“很好”是很可以的哇,完全没有必要动整个语义空间。
        实际上,相比图像中这种从“点、线、弧”这种low-level特征到“眼睛、鼻子、嘴”这种high-level特征的明显层次性的特征区分,文本中的特征进阶明显要扁平的多,即从单词(1gram)到短语再到3gram、4gram的升级,很大程度上均满足“语义取代”的特性。而图像中就很难发生这种”语义取代“现象(例如“鼻子”的语义可以被”弧线“的语义取代嘛?)。
        因此DPCNN与ResNet 的区别是,DPCNN 固定了 filters 的数量,即固定了embedding space的维度,使得网络有可能让整个邻接词(邻接ngram)的合并操作在原始空间或与原始空间相似的空间中进行(实际中会不会这样做不一定,只是提供了一种条件),整个网络虽然形状上来看是深层的,但是从语义空间上来看完全可以是扁平的。而ResNet则是不断的改变语义空间,使得图像的语义随着网络层的加深不断的跳向更高 level 的语义空间。

1/2池化层:文本序列的长度会随着block数量的增加呈指数级减少,

残差连接:初始化深度CNN时,各层权重都是初始化为一个很小的值,导致最开始的网络中,后续几乎每层的输入都是接近0,网络输出没意义,小权重也阻碍了梯度的传播,使得网络的初始训练阶段往往要迭代好久才能启动。
        同时就算网络启动完成,由于深度网络中仿射矩阵(每两层间的连接边)近似连乘,训练过程中网络也非常容易发生梯度爆炸或弥散问题(权重非共享,深度CNN比RNN要好些)。

        ResNet 中提出的残差连接是一种非常简单、合理、有效的解决方案。既然每个block的输入在初始阶段容易是0而无法激活,直接用一条线把region embedding层连接到每个block的输入乃至最终的池化层/输出层,这时 shortcut connection 由于连接到了各个block的输入(当然为了匹配输入维度,要事先经过对应次数的1/2池化操作),这时就相当于一个短路连接,即region embedding直接短路连接到了最终的池化层或输出层,DPCNN 就退化成了TextCNN,深度网络不好训练,就一层的TextCNN可是异常容易训练的,模型的起步阶段就是从TextCNN起步了,避免了深度CNN网络的冷启动问题了。
        有了shortcut后,梯度就可以忽略卷积层权重的削弱,从shortcut一路无损的传递到各个block手里,直至网络前端,缓解了梯度消失问题。
 

参考:

Pytorch实现中文文本分类任务(Bert,ERNIE,TextCNN,TextRNN,FastText,TextRCNN,BiLSTM_Attention, DPCNN, Transformer) - 知乎

DPCNN 模型详解 - 知乎

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

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

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

相关文章

Unity InputSystem (一)

什么是InputSystem InputSystem 是 2019 年 Unity 新推出的插件,输入系统包实现了一个系统来使用任何类型的输入设备来控制你的 Unity 内容。它旨在成为 Unity 的经典输入管理器更强大、更灵活、更可配置的替代品。 新输入系统基于事件,输入设备和动作逻…

Redis 哨兵和集群

文章目录1. 单机模式2. 主从架构3. 哨兵4. 集群模式5. 哈希槽是什么?1. 单机模式 Redis 单副本,采用单个 Redis 节点部署架构,没有备用节点实时同步数据,不提供数据持久化和备份策略,适用于数据可靠性要求不高的纯缓存…

【硬件外设使用】——SPI

【硬件外设使用】——SPI SPI基本概念SPI通信协议SPI使用方法pyb.spimachine.spi SPI可用的传感器 SPI基本概念 SPI是一种串行端口通信接口,它是一种同步的全双工协议,用于在数字电路之间传输数据。SPI代表串行外设接口,是一种非常流行的数字…

UDS诊断测试

UDS(Unified Diagnostic Services,统一的诊断服务)诊断协议是在汽车电子ECU环境下的一种诊断通信协议。这种通信协议被用在几乎所有由OEM一级供应商所制造的新ECU上面。这些ECU控制车辆的各种功能,包括电控燃油喷射系统&#xff0…

TI在物联网和AI边缘计算中落伍了吗?

摘要:本文介绍一下TI在边缘计算工作中所做的努力。 发明“人工智能”这个term的老头儿也不会想到人工智能在中国有多火。 不管是懂还是不懂,啥东西披上“人工智能“的面纱都能瞬间成为大项目。 学习AI 的年轻人认识NVIDIA,可能不太知道DSP是…

金毅:10x HTAP,企业级关系型数据库内核技术创新与演进

导语4月8日下午,为期两天的第十二届数据技术嘉年华(DTC 2023)在北京新云南皇冠假日酒店圆满落下帷幕。大会以“开源融合数字化——引领数据技术发展,释放数据要素价值”为主题,汇聚产学研各界精英到场交流。作为大会的…

网络原理之UDP

hi,大家好,又见面了,今天为大家介绍一下UDP的网络原理🐷🐷🐷 文章目录认识UDP报文格式UDP特点TCP,UDP应用场景基于UDP的应用层协议认识UDP报文格式 UDP特点 TCP,UDP应用场景 基于UDP的应用层协议 1.认识UDP报文格式 其实在真正传输的…

批量记录收支明细:手把手教你如何查看上个月的收支明细并打印。

记录收支明细太久,想要快速查看并筛选出上个月的某一个明细要如何进行查询,还要进行打印要如何操作?今天就由小编来教教大家要如何操作。 首先第一步,我们要进入晨曦记账本主页面,点击主页面上方功能栏里的“添加收支…

聚焦云原生安全|安全狗云甲荣膺CSA 2022安全金盾奖

4月13日,第六届云安全联盟大中华区大会“年度颁奖典礼”表彰仪式顺利开展。作为国内云原生安全领导厂商,安全狗也收到邀请出席此次活动。​ 此次活动上,“年度颁奖典礼”作为重要环节之一,获得业界的关注。安全狗旗下云原生安全产…

zabbix介绍及部署(超详细讲解)

目录 1.zabbix的基本概述 2.zabbix的构成 1、Server 2、web页面 3、数据库 4、proxy 5、Agent 3.zabbix的监控对象 4.zabbix的常用术语 5.zabbix的工作流程 1、主动模式 2、被动模式 6.zabbix进程详解 7.zabbix的监控框架 1、server_client架构 2、zabbix_prox…

一文搞懂C#工程中程序数据库文件.pdb(符号文件)的作用,延伸搞懂Debug/Release、AnyCPU(首选32位)/x86/x64/ARM的区别

一、准备工作 MS引用:在 Visual Studio 调试器(C#、C、Visual Basic、F#)中指定符号 (.pdb) 和源文件 MS引用:为 C#、ASP.NET 或 Visual Basic 项目 (.NET Framework) 生成符号文件 MS引用:用…

ASP.NET动态Web开发技术第6章续

第6章续ASP.NET内置对象一.预习笔记 1.ASP.NET提供了七大内置对象,Page、Request、Response、Application、Session、Server和Cookies。这些对象使用户更容易收集通过浏览器请求发送的信息、响应浏览器以及存储用户信息,以实现其他特定的状态管理和页面…

【动力节点】杜老师Vue笔记——Vue程序初体验

目录 一、Vue程序初体验 1.1 下载并安装vue.js 1.2 第一个Vue程序 1.3 Vue的data配置项 1.4 Vue的template配置项 一、Vue程序初体验 可以先不去了解Vue框架的发展历史、Vue框架有什么特点、Vue是谁开发的,对我们编写Vue程序起不到太大的作用,…

云HIS源码 基层卫生健康云HIS源码

云HIS全称为基于云计算的医疗卫生信息系统(Cloud-BasedHealthcareInformationSystem),是运用云计算、大数据、物联网等新兴信息技术,按照现代医疗卫生管理要求,在一定区域范围内以数字化形式提供医疗卫生行业数据收集、…

正版软件 Directory Opus 12 Pro Windows 平台上的资源管理器,定是功能完全、可定制化程度高的那款。

Directory Opus 是一款 Windows 平台上的资源管理器,定是功能最完全、可定制化程度最高的那款。你可以通过它完成几乎所有操作,包括查看图片元信息、预览图片、阅读文本文件内容、批量重命名、操作压缩文件以及 FTP 同步请求等。 Directory Opus 是一款由…

QGIS数据可视化学习笔记00——为什么用QGIS以及QGIS设置中文界面

一、为什么用QGIS? 1、qgis的概念 qgis原称Quantum GIS,是开源的桌面地理信息系统软件。 qgis是一款桌面版gis软件,他是基于qt平台使用c开发出来gis软件。 2、qgis的主要特点 1.支持多种GIS数据文件格式 2.集成或支持其他开源GIS&#…

rust的并发以及kv server网络处理和网络安全部分

理解并发和并行 Golang 的创始人之一,对此有很精辟很直观的解释:并发是一种同时处理很多事情的能力,并行是一种同时执行很多事情的手段。 我们把要做的事情放在多个线程中,或者多个异步任务中处理,这是并发的能力。在多…

postman同时传递文件和对象参数

属性 required true 意思为 必填对象属性 /*** descroptions: 再保临分请求* author: c* date: 2023/1/9 14:26* version: 1.0*/public class UwReinsureReportReqDTO extends BaseInfoReqDTO implements Serializable {private static final long serialVersionUID -59047…

No message available问题解决

概述 在EFK日志查询平台断断续续看到若干个应用的报错信息: 排查 上述截图里报错的类(省略掉Import语句后): Slf4j RestController public class FilterErrorController extends BasicErrorController {public FilterErrorC…

Pytorch安装与测试

1.Anaconda安装 官方网址:www.anaconda.com 找到anaconda的历史安装版本,我安装的是此版本 一直使用默认安装下来即可 1.1安装下来打开终端,创建python环境 1.2创建完成后 创建完成后,通过pip list发现没有torch 2.pytorch安装 进入pytorch官网:PyTor…