Fasttext (Bag of Tricks for Efficient Text Classification) 阅读笔记

本文介绍了Fasttext模型在文本分类中的应用,包括1维卷积、堆卷积等CNN方法,以及论文提出的n-gram、词查找表和CBOW结合的文本表示方式。Fasttext模型通过多层softmax和rank constraint实现参数共享,提高了训练效率。实验结果显示,Fasttext在速度和准确性上都有显著提升。
摘要由CSDN通过智能技术生成
论文原文 Bag of Tricks for Efficient Text Classification
论文信息 EACL2017
论文解读 Hytn Chen
更新时间 2020-02-23

文本分类相关方法

用作文本分类的卷积神经网络,有多个使用流程示意图如下

1维卷积

在这里插入图片描述

堆卷积(Goldberg Book)

在这里插入图片描述

延迟CNN(Kalchbrenner et al. 2016)

在这里插入图片描述

动态CNN

详见这篇文章解读

总结一下,CNN在文本分类中担任的主要角色就是encoding文本,之后可以用分类器解决分类的问题。CNN主要问题就是训练相对较慢,从而就限制了CNN不能在非常大的数据集上使用。

论文提出的模型

模型结构图如下

在这里插入图片描述

简单来讲就是文本表征+线性模型,这里的文本表征由n-gram,词查找表以及CBOW组成,线性模型由多层softmax和rank constraint组成(实现参数共享的效果)。

输入层:先看n-gram表征,很简单理解,假设一句话有N个词,1-gram就是单个词为一组,一共可以有N组;2-gram就是两个词为一组的排列组合,一共可以有 N ( N − 1 ) 2 \frac{N(N-1)}{2} 2N(N1)组,如果再多那字典(要索引到具体组别,一个组别一个序号)的维度就呈指数增长了,因此文中使用了哈希字典的方式来避免这样的情况发生(把所有的n-gram都哈希到buckets个桶中,哈希到同一个桶的所有n-gram共享一个embedding vector)。之所以使用n-gram就是为了保留一定的词序信息,或者抓取局部的信息。

隐层:图中的每个输入x都表示一个文本中的n-gram向量,隐层是输入词向量的平均值再乘以权重矩阵A所得,所以也就相当于将各个输入的向量加权求和作为句向量。

输出层:由隐层的输出结果再乘以权重矩阵B(线性变换)得到输出。

分类器:多层softmax分类器加cross entropy交叉熵损失函数。

整个模型的结构描述就是:词向量经过隐藏层再经过多层softmax得到预测值。最后的损失函数就是最小化负对数似然函数(交叉熵损失函数):
− 1 ∣ D ∣ ∑ i = 1 ∣ D ∣ y i log ⁡ ( softmax ⁡ ( W ∗ x i ) ) -\frac{1}{|D|} \sum_{i=1}^{|D|} y_{i} \log \left(\operatorname{softmax}\left(W * x_{i}\right)\right) D1i=1Dyilog(softmax(Wxi))
原文的损失函数如下
− 1 N ∑ n = 1 N y n log ⁡ ( f ( B A x n ) ) -\frac{1}{N} \sum_{n=1}^{N} y_{n} \log \left(f\left(B A x_{n}\right)\right)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值