文本分类经典论文解读(之二)textrnn, HAN, textrnn with multitask

本文同步发布于公众号:阿黎投喂舍

文本分类系列:

文本分类经典论文:fasttext,textcnn解读

分享 | 叮,情感分类从入门到放弃资料推荐来咯~

简介

上一篇文章基于深度学习的文本分类论文推荐——fasttext,textcnn介绍了文本分类中非常经典的三篇文章有关2个模型Fasttext和Textcnn,今天为大家推荐3篇论文,这3篇论文将RNN,多任务结构和attention应用到文本分类的任务中,对于想了解多任务和attention的同学来说是个很不错的入门论文哦~

Recurrent Convolutional Neural Networks for Text Classification

论文链接:http://www.nlpr.ia.ac.cn/cip/~liukang/liukangPageFile/Recurrent%20Convolutional%20Neural%20Networks%20for%20Text%20Classification.pdf

源码:https://github.com/roomylee/rcnn-text-classification

推荐理由:文本分类面对的最大的问题是文本的特征表示,传统的方法通常是文本转换成向量,但是忽略了文本的上下文的信息,因此有学者提出使用CNN来捕捉文本的上下文特征,但是CNN具有一个缺点就是CNN有一个固定的窗口大小,很难完全采集到文本的所有信息。因此本文提出了R-CNN结构。

模型分为三部分R-CNN结构,池化层和输出层。R-CNN部分是一个双向的循环神经网络,输入是单词的embedding,第i个位置的隐藏状态x_i受到他的左右两边的上下文的影响, 那么第i个位置的隐藏状态我们可以根据他的左边的上下文和右边的上下文分别描述:

c_l(w_i)=f(W^lc_l(w_{i-1})+W^{sl}e(w_{i-1}))

c_r(w_i)=f(W^lc_r(w_{i+1})+W^{sr}e(w_{i+1}))

其中w_{i-1},w_{i+1}分别表示位置i-1和i+1的隐藏转态,e(w_{i-1}),e(w_{i+1})分别表示位置i-1,i+1的词向量。其实这就是一个经典的双向RNN结构。R-CNN的输出结构再接max-pooling和softmax层最后的结果就是文本的分类结果。

作者在4个公开数据集上进行试验,发现R-CNN的效果优于LDA,CNN等当时已有的模型的效果。 为什么RNN的效果会比CNN的效果好呢?由于文本本身的特点,CNN作为一个固定的窗口大小,很难完全采集到文本的所有信息,而RNN因为当前的状态会受到上下文的影响,因此模型在学习的时候自然会考虑到文本的上下文的影响,而且影响的范围大于CNN的卷积核,因此RNN的效果优于CNN的效果。

Recurrent Neural Network for Text Classification with Multi-Task Learning

论文链接:https://arxiv.org/abs/1605.05101

推荐理由:作者针对文本分类任务提出了一个基于RNN的多任务结构,相比于单任务,多任务确实可以调高模型的识别效果。而且如果不了解多任务的同学可以顺便通过这篇文章了解一下多任务哦~

这是2016年发布与IJCAI的一篇文章。本文提出了一个基于RNN的多任务训练结构, 这个结构由3个模型组成,三个模型的功能分别是:

  • 第一个模型是一个单层的LSTM,不同的任务共享一个LSTM,输入是文本的embedding,不同的任务的embedding需要进行拼接,输出是不同任务的softmax结果。

  • 第二个模型是双层的LSTM,每个任务有不同的LSTM ,每个任务的结果由不同的LSTM输出,但是为了对两个任务有所连接,文中对LSTM的cell加入了一个门,使其可以控制另一个任务对本任务的影响状态。

  • 第三个模型是三层的LSTM,两个任务有不同的LSTM,但是文中引入了第三层LSTM来接收两个任务的隐藏状态,模型的输出还是不同任务的softmax结果。

因为这是一个多任务结构,因此不同任务的训练数据可以来自不同的数据集,训练的时候首先我们需要随机选择一个任务和这个任务所需要的训练集,然后针对该任务进行训练,然后重新选择任务重复以上步骤。因为模型1和模型3不同的任务有共享层,因此可以针对不同的任务再进行微调(这时候就已经有fine-tune的概念了)。

作者在电影评论数据集SST-1,SST-2,SUBJ,IMDB上进行了实验,文本的embedding在Wiki数据上采用word2vec进行训练。为了证明多任务的有效性,文中首先在各数据集上进行了单任务和多任务的对比,对比结果如下,可以看出多任务相比单任务确实有了一定的提升。

然后作者又和SOTA模型进行了对比,在SST-2和SUBJ数据集上本文的效果优于其他SOTA模型,SST-1和IMDB上效果略逊于SOTA模型。

Hierarchical Attention Networks for Document Classification

论文链接:https://www.cs.cmu.edu/~./hovy/papers/16HLT-hierarchical-attention-networks.pdf

源码:https://github.com/richliao/textClassifier

推荐理由:本文在对文章进行编码的时候引入了attention机制,实现过程发现效果超过了LSTM,CNN等模型的效果。

本文针对篇章级文本分类提出了一个Hierarchical的结构,为词级别的encoder和句子级别的encoder都增加了attention机制。

具体的怎么加的呢?模型的结构如图所示,一篇文章是由句子组成,句子由单词组成,这就是文章中天然存在的层级结构关系。因此在编码过程中,作者也考虑到了这种层级关系,由一个句子里所有单词的embedding相加得到句子的embedding,由一篇文章中句子的所有embedding相加得到篇章的embedding,然后经过softmax之后得到文章的分类。只不过在由单词embedding->句子embedding,句子embedding->篇章embedding中作者加入了attention机制:

u_{it}=tanh(W_wh_{it}+b_w)

{\alpha}_{it}=\frac {exp(u_{it}^Tu_w)}{\sum_{t}{u_{it}^Tu_w}}

s_i=\sum{​{\alpha}_{it}h_{it}}

其中h_it是单词的向量,通过一层全连接网络得到单词的隐变量,然后通过一个上下文向量u_w计算出每个单词的权重,最后句子向量是单词的权重和向量的乘机的求和。文章向量的计算方式和句子向量的计算方式相同。

作者在Yelp,IMDB, Yahoo问答和amazon评论上进行实验,模型的效果均超越了LSTM,CNN,SVM等模型的效果。

在篇章级文本分类中比较常见的做法是将文章转换成向量,这种做法和doc2vec的区别就是考虑到了文章的层级结构的关系,从word开始对文章进行编码,而且在编码过程中考虑到了文本之间的相关性,引入了attention也是非常值得关注的。

结语

这3篇论文的结构都不复杂,但是比较精巧的是结合了网络结构和一些比较常见的优化方法。就个人来说我最喜欢的是第二篇论文,在LSTM的结构中引入了多任务的训练方法,而且因为各任务之间共享了网络,所以需要针对任务进行微调,不知道也算不算是一种充分训练呢?

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值