【文本分类】A C-LSTM Neural Network for Text Classification
·摘要:
本文作者将CNN和RNN(LSTM)结合使用,应用到了NLP的文本分类任务中。
·参考文献:
[1] A C-LSTM Neural Network for Text Classification 论文链接:https://arxiv.org/abs/1511.08630
[1] 摘要
· 论文结合CNN和RNN(LSTM)模型提出了C-LSTM模型,应用于文本分类。
· C-LSTM利用CNN提取抽象的高级特征,并将其送入长短期记忆递归神经网络(LSTM)中得到句子表示。最终通过全连接层来做分类任务。
· C-LSTM既能捕捉短语的局部特征(CNN),也能捕捉句子的序列信息(LSTM)。
[2] 介绍
2.1、NLP中CNN与RNN的优缺点:
CNN能够从时间或空间数据中学习局部响应,但缺乏学习序列相关性的能力;另一方面,RNN专门用于序列建模,但不能并行提取特征。
2.2、C-LSTM核心思想:
CNN | LSTM | C-LSTM |
嵌入层 | 嵌入层 | 嵌入层 |
卷积层 | LSTM层 | 卷积层 |
池化层 | 全连接层 | LSTM层 |
全连接层 | 全连接层 |
C-LSTM模型将CNN卷出来的窗口特征
,组织成序列化窗口特征
作为LSTM的输入。通过这种方式,不是直接从输入的句子构建LSTM,而是首先将每个句子转换为连续的窗口(n-gram)特征。
在网络结构中的全连接层之前,所做的工作都是在寻找一种最好的文本向量化表示方法。
2.3、C-LSTM模型图:
官方图:
如上图,设有一个batch中的一个文本[“The”,“movie”,“is”,“awesome”,"!"]。卷积核边长为3 x 4,卷积通道为4。那么对于初始的文本向量,会产生出4通道的3 x 1维feature map。然后再把多通道的feature map中对应位置提取在一起,作为LSTM的输入。
池化层会破坏卷积后的序列性,所以模型中没有池化。
【注一】这里卷积核宽度为embedding层维度,这样卷积后的一个通道的size为n行一列,转置一下就是个一维数组了。
【注二】 在torchtext中,如果想把卷积层的输出作为LSTM层的输入的话,需要设置LSTM层的input_size等于卷积层的filter_num(卷积通道数)。
[3] 疑问?
1、CNN中卷积核的长宽设置问题,宽不等于embedding_dims时,时什么情况?
2、如何比较不同模型之间的精度?同一模型每次运行的精度都不一样。
相关文章
- 开心档-软件开发入门之Ruby 数组(Array)
- 开心档-软件开发入门之Ruby CGI Cookie
- 开心档-软件开发入门之Ruby 块
- 开心档-软件开发入门之Ruby CGI Session
- 管理精力,而非时间
- 产品通道晋升踩坑及评委提问记录
- 对用户体验最有用的诠释,重读《用户体验要素》
- 用ChatGPT写的小说竟然有模有样
- Pipeline as Code的优势和劣势
- DevOps到底是什么?2个基础1个核心
- 腾讯轻量云服务器1000g流量够用吗?
- 腾讯云2核2g服务器够用吗?
- 腾讯云轻量应用服务器支持ipv6?
- 谁来拯救香飘飘?
- 腾讯云服务器流量用完了会怎么样?
- ATT&CK实战系列-红队实战(二)
- 【最全】为Typecho站点更改好看的字体-ProMax
- 一文带你看透短信验证码
- Best Buy 百思买DROP SHIP EDI业务测试场景
- MathType6.9免费版数学公式编辑器