一种基于CNN的自动化提取n-gram feanture的文本分类模型

本文介绍了一种用于文本分类的密集连接卷积神经网络(CNN),该模型结合了多尺度特征注意力机制,旨在解决传统CNN静态窗口卷积带来的问题。通过深度而非宽度增加模型复杂度,并利用跳层连接传递信息,使模型能更准确地识别文本中的n-gram特征。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天写的博客主要参考了清华大学黄民烈老师团队2018年在IJCAI上发表的paper《Densely Connected CNN with Multi-scale Feature Attention for Text Classification》。
这篇paper其实就是使用基于CNN的网络来进行文本的情感分类,但是它针对的问题是传统的多层次的CNN网络使用static窗口来进行卷积,每次针对句子中提取n-gram feature 都是一样的,如果遇到以下例子,就会影响模型的准确性:
这里写图片描述
在该样例中,不管是单纯的1-gram还是3-gram都不太合适:针对“nice”这个单词需要1-gram,但是针对“without being patronizing”这个词组需要3-gram。如何设计模型,让其能够自动地识别这种区别,是这篇paper主要解决的问题。

在正式介绍模型之前,作者提出了“a deeper model is more elegant than a wider solution”。因为使用小窗口的deeper model在模型高层次部分,其卷积器真正观测到的原始句子序列中的视野是越来越大的。于是,参照在图像处理中常见的一种结构,作者设计了一种网络结构如下所示:
这里写图片描述
左边是模型的逻辑运作示意图,右边是模型的真实实现示意图。其实图中最需要关注的就是那几条红线。假设模型的层次一共是lll层,那么第lll层结果计算公式如下所示:
Xl=f(Wl,[X1,X2,.......Xl−1])X_l=f(W_l,[X_1,X_2,.......X_{l-1}])Xl=f(Wl,[X1,X2,.......Xl1])
其中参数矩阵WlW_lWl维度为Wl∈R(l−1)∗k∗w∗kW_l \in R^{(l-1)*k*w*k}WlR(l1)kwk,其中w代表了宽度,一个k代表了卷积器的个数,一个k代表了中间词向量的维度。可以看出这里面X1X_1X1,X2X_2X2Xl−1X_{l-1}Xl1都是维度为m∗km*kmk的矩阵,mmm代表了句子中单词的个数。在使用卷积处理之后,结果依然是l−1l-1l1个维度为m∗km*kmk结果矩阵,然后使用矩阵的对位相加操作得当最终的XlX_lXlm∗km*kmk

按照这样的计算方式,最终模型的输出层有X1,X2....XlX_1,X_2....X_lX1,X2....Xl,每一个矩阵的每一行都代表了以该行号为下标的n-gram,接下来就是设计一种attention从中选择对分类最有意义的n-gram。整个过程如下图所示:
这里写图片描述

假设xli∈Rkx_l^i \in R^kxliRk代表第l层下标为i的语义向量,设sli=∑j=1kxli(j)s_l^i=\sum_{j=1}^k x_l^i(j)sli=j=1kxli(j)
xatteni=∑l=1Lαlixlix_{atten}^i=\sum_{l=1}^L \alpha_l^i x_l^ixatteni=l=1Lαlixli
其中 alphai=softmax(MLP(si))alpha^i=softmax(MLP(s^i))alphai=softmax(MLP(si))
si=[s1i,s2i,....sLi]s^i=[s^i_1,s^i_2,....s^i_L]si=[s1i,s2i,....sLi]
αi=[α1i,α2i,.....αLi]\alpha^i=[\alpha_1^i,\alpha_2^i,.....\alpha_L^i]αi=[α1i,α2i,.....αLi]
最终句子的表征为Xatten=[xatten1,xatten2,.....,xattenm]X_{atten}=[x_{atten}^1,x_{atten}^2,.....,x_{atten}^m]Xatten=[xatten1,xatten2,.....,xattenm]。接下来得到的XattenX_{atten}Xatten会送入到后续的处理模型中。

感觉这个输入信号直接通过跳层传到后续网络结构中的思想还是很有价值的,和深度残差网络的构造思想很像,以后可以灵活加以应用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值