当前位置:   article > 正文

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

基于规则的文本转换有哪些论文
2aa992c5e1f8f55a39fd257cd2a9d063.gif

点击上面蓝字关注阿黎

文本分类是自然语言处理领域一个非常经典的任务,一般文本分类分为三种,基于规则的文本分类,基于机器学习的文本分类和基于深度学习的文本分类。本文我们重点关注基于深度学习的文本分类,并为大家介绍文本分类中非常经典的fasttext和textcnn。

01 简介

文本分类是对给定文档,对文档进行归类的过程,常见的文本分类任务是垃圾邮件识别和情感分析。文本分类的处理大致分为文本预处理、文本特征提取、分类模型构建等。常见的文本分类方法一般分为三种,基于规则的文本分类,这种方法通常是基于词表;基于机器学习的文本分类,这种方法通常是将文章转换为向量然后采用传统的机器学习算法如SVM,GBDT等;第三种方法是基于深度学习的方法,关于文本分类的论文很多,这篇文章我们将为大家介绍几篇基于深度学习的文本分类的论文,由于篇幅有限本文将重点介绍fasttext和textcnn。

02 Bag of Tricks for Efficient Text Classification

论文链接:https://arxiv.org/pdf/1607.01759v2.pdf

源码:https://github.com/facebookresearch/fastText

9c3d18ba15902760816e61a8927b137c.png

推荐理由:传说中的fasttextfacebook推出的非常经典的文本分类模型,训练速度非常快,可以快速上手反复迭代哦

这是2016年由Facebook提出的一种比较迅速的词向量和文本分类方法,模型的结构类似于CBOW(连续词袋模型)都是由输入层,隐藏层,输出层组成,输出层的结果是一个特定的目标,例如预测下一个词汇之类的。但是fasttext和CBOW的区别是,如下图所示:35f99ed8ad0d8f1e80321dcd6767e6ea.png

fasttext的输入不仅是句子中词语的one-hot编码还有N-gram的特征,N-gram的特征默认是3~6gram,为了提高模型的训练速度,N-gram的查找采用了hashing trick。这样做的好处是,one-hot编码是没有考虑到词语之间的顺序的,加入N-gram特征可以让模型学习到词语之间的连续特征。

另一个区别是为了提高softmax计算的速度,fasttext采用了hierarchal softmax,也就是计算从根节点到某个分类的路径上的所有节点的softmax的总和,这样对于分类类别非常多的情况下,可以将时间复杂度由O(kh)降低到O(hlog2(k)),这样也可以提高模型的训练速度。

为了验证fasttext的效果,作者在情感分类和Tag识别上分别进行了实验,情感分类的实验结果如下所示,加了bigram的fasttext的效果在AG数据集上超过了char-cnn,char-rnn, VDCNN的效果,在其他数据集上略逊于其他模型或者持平。总体来说效果还是很不错的。fb4fdca5453d1fba83fb4ac76d58cc66.png

但是在训练速度上fasttext可以说远超其他模型,当然这也是fasttext的迷人之处了,在效果和速度上取得了一个很好的balance。a0cd62ff75210f29626067851ab0ac19.png

03 Convolutional Neural Networks for Sentence Classification

论文链接:https://arxiv.org/pdf/1408.5882.pdf

源码:github很多

ace256a3e49317314078e6a5b40a060e.png

推荐理由:textcnn文本分类必读论文77f9a38975d08619d4fd9a37e41be31b.png

谈到文本分类,TextCNN绝对是不能绕开的,本文作者将卷积应用到NLP任务中。模型的结构非常经典,输入层,卷积层,池化层和输出层。

1. 输入层是由文本的word embedding拼接的矩阵

2. 卷积层图中看着只有一层,但是实际上模型中有不同大小的卷积核,可以在不同的窗口大小下捕捉到文本的上下文信息。

3. 卷积层的结果拼接之后经过池化层,然后输入到全连接层,最后经过softmax可以得到文本分类的结果。

在以上结构上作者做了很多实验:

  • CNN-rand: 这是基础模型,word embedding被随机初始化
  • CNN-static: 模型使用预训练的word2vec初始化Embedding layer,对于那些在预训练的word2vec没有的单词,随机初始化
  • CNN-non-static: word embdding和CNN-static一样,只是训练过程中embedding层也一起训练
  • CNN-multichannel: Embedding layer有两个channel,一个channel为static,一个为non-static,fine-tune时只有一个channel更新参数。两个channel都是使用预训练的word2vec初始化的。

作者在7个数据集上进行实验,可以看出除了随机word embedding以外,预训练之后加载word embedding的效果都优于随机初始化。b6d67d3a5bf50f7b711da807bd41dc39.png

04 A Sensitivity Analysis of (and Practitioners’ Guide to) Convolutional Neural Networks for Sentence Classification

论文链接:https://arxiv.org/pdf/1510.03820.pdf

a8e04eb72c43203aa00f0f5458e62535.png

推荐理由:这篇文章可以看成是对textcnn的补充,作者做了大量的实验来探索什么样的参数和训练方法可以使textcnn的效果达到最优

在CNN在文本分类上取得一系列不错的成绩之后,本文将聚焦在可能影响模型的效果的其他因素上面。

因此本文采用的模型是textCNN模型,模型的输入是word embedding的拼接,卷积层有6个大小分别是2,3,4的卷积核,然后对卷积层的输出结果进行筹划拼接之后接softmax层最后输出分类结果。

有了这个基础的CNN模型之后本文将重点放在影响模型效果的其他因素上,文中对embedding生成方式,卷积核的大小,feature map的数量,激活函数,池化方法,正则化等其他因素对模型的影响。

通过多种实验,作者得出结论,embedding的生成方式,卷积核的大小,feature map的数量对模型效果有比较重要的影响,1-max pooling的效果要优于其他方法而正则化对模型的影响比较少。

05 结语

以上就是文本分类中比较经典的三篇论文啦,fasttext因为其优越的性能,知道现在训练word embedding,文本分类中还是会看到他的身影。textcnn在NLP领域中应用了卷积层,可以提取到上下文的信息,而且模型结构非常简单清晰,效果也不错,也是文本分类入门的经典哈哈。以上就是本文分享的内容啦,下篇我们会分享文本分类中同样经典的textrnn和HAN希望大家保持关注~

可能还想看

分享 | 叮,情感分类从入门到放弃资料推荐来咯~论文推荐|模型量化,数据增强,关系抽取相关论文推荐推荐系统相关资料推荐

b22489901df2814c996eb740c1434e69.png

e8f31ac91944570255142341071e7f16.png
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/350928
推荐阅读
相关标签
  

闽ICP备14008679号