NLP paper精读(六)——Bag of Tricks for Efficient Text Classification

Abstract

本文提出了一种简单高效的文本分类基线方法——fastText。实验表明效果与神经网络分类器相同的情况下,fastText的耗时显著降低。

Introduction

最近的文本分类方法都采用基于神经网络的模型,虽然这些模型在实际的表现上非常好,但是他们在训练和测试阶段都非常慢,这就限制了,其应用在超大语料上的可能性。

在文本分类的任务中,线性分类器可以认为是一个强大的基线模型。

在本文的工作中,针对上下文文本分类,我们探寻了将这些基线方法扩展到大语料库和高位输出空间中的方法。

评测方法在命名标签预测和情感分析两种任务上进行。

Model architecture

一种简单的文本分类方法是BoW+线性分类器。然而线性分类器并不能共享特征与类别的参数,所以泛化性很差。

本文提出的模型图如下:
在这里插入图片描述
整个FastText的模型类似于Word2Vec的CBOW模型,但不同点在于embedding的内容有所区别,还有整个任务是在做一个文本分类的任务。

损失函数为:
在这里插入图片描述
其中y为类别标签,x为特征向量,AB均为参数矩阵。A为embedding-table,B为hidden layer 到output layer的参数。

Hierarchical softmax

利用哈夫曼树,加速训练过程。

N-gram features

由于普通词袋模型会忽略词汇与词汇之间的语序信息。所以引入了N-gram的特征。这里只是一个思想,并不确定到底是如何使用哪些特征。

其中N-gram可以是:(我、喜欢、中国)

  1. word-level:我喜欢、喜欢中国
  2. char-level:<我、我>、<喜、喜欢、欢>、<中、中国、国>

Experiment

从以下的实验结果可以看出,在达到深度神经网络的效果下,FastText速度更快,耗时更少。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Discussion and conclusion

本文,提出了一种简单的文本分类的方法FastText。在许多任务中,在取得与神经网络相同效果的情况下,训练速度提升了很多数量级。

一点思考

fastText和word2vec的区别与联系

相似之处:
1.模型架构类似,都采用了embedding表达。
2.采用了同样的优化方法,层序softmax

不同之处:
1.输出:word2vec输出层对应于每一个词,计算某个词的概率最大。而fasttext输出层对应的是分类标签。
2.输入:word2vec是context window中的词,而fasttext会将整个sentence 或者 documents作为输入,同时还会构造n-gram特征。

Reference

[1] https://www.cnblogs.com/huangyc/p/9768872.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值