带监督的文本分类算法FastText

该算法由facebook在2016年开源,典型应用场景是“带监督的文本分类问题”。

模型

模型的优化目标如下:

其中,$<x_n,y_n>$是一条训练样本,$y_n$是训练目标,$x_n$是normalized bag of features。矩阵参数A是基于word的look-up table,也就是A是词的embedding向量。$Ax_n$矩阵运算的数学意义是将word的embedding向量找到后相加或者取平均,得到hidden向量。矩阵参数B是函数f的参数,函数f是一个多分类问题,所以$f(BAx_n)$是一个多分类的线性函数。优化目标是使的这个多分类问题的似然越大越好。

将优化目标表示为图模型如下:

与word2vec的区别

这个模型与word2vec有很多相似的地方,也有很多不相似的地方。相似地方让这两种算法不同的地方让这两

相似的地方:

  1. 图模型结构很像,都是采用embedding向量的形式,得到word的隐向量表达。
  2. 都采用很多相似的优化方法,比如使用Hierarchical softmax优化训练和预测中的打分速度。

不同的地方:

  1. word2vec是一个无监督算法,而fasttext是一个有监督算法。word2vec的学习目标是skip的word,而fasttext的学习目标是人工标注的分类结果。
  2. word2vec要求训练样本带有“序”的属性,而fasttext使用的是bag of words的思想,使用的是n-gram的无序属性。

V.S. 深度神经网络

fasttext只有1层神经网络,属于所谓的shallow learning,但是fasttext的效果并不差,而且具备学习和预测速度快的优势,在工业界这点非常重要。

  • 比一般的神经网络模型的精确度还要高。
  • 训练和评估速度快几百倍。10分钟内就可以在一台多核CPU训练10亿词汇。1分种内完成100万句子在31万中类型中的分类。

文献


作者:EasonZhao链接:http://www.jianshu.com/p/b7ede4e842f1來源:简书著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
时间: 2024-10-01 04:25:04

带监督的文本分类算法FastText的相关文章

基于协同训练的半监督文本分类算法

标签: 半监督学习,文本分类 作者:炼己者 --- 本博客所有内容以学习.研究和分享为主,如需转载,请联系本人,标明作者和出处,并且是非商业用途,谢谢! 如果大家觉得格式看着不舒服,也欢迎大家去看我的简书 半监督学习文本分类系列 用半监督算法做文本分类(sklearn) sklearn半监督学习(sklearn) 基于自训练的半监督文本分类算法 一. 摘要 本文主要讲述基于协同训练的半监督算法做文本分类,用三个差异性比较大的分类器对未标注数据进行标注,它们可以进行交叉验证,大大提升了对未标注数据

step by step带你RCNN文本分类

本文参考原文-http://bjbsair.com/2020-03-25/tech-info/6304/ **传统文本分类 ** 之前介绍的都是属于深度神经网络框架的,那么在Deep Learning出现或者风靡之前,文本分类是怎么做的呢? 传统的文本分类工作主要分为三个过程:特征工程.特征选择和不同分类机器学习算法. 1.1 特征工程 对于文本数据的特征工程来说,最广泛使用的功能是bag-of-words.tf-idf等.此外,还可以设计一些更复杂的特征,比如词性标签.名词短语以及tree k

基于朴素贝叶斯分类器的文本分类算法

源代码下载:NaviveBayesClassify.rar Preface 文本的分类和聚类是一个比较有意思的话题,我以前也写过一篇blog<基于K-Means的文本聚类算法>,加上最近读了几本数据挖掘和机器学习的书籍,因此很想写点东西来记录下学习的所得. 在本文的上半部分<基于朴素贝叶斯分类器的文本分类算法(上)>一文中简单介绍了贝叶斯学习的基本理论,这一篇将展示如何将该理论运用到中文文本分类中来,具体的文本分类原理就不再介绍了,在上半部分有,也可以参见代码的注释. 文本特征向量

&lt;Python&gt;&lt;有监督&gt;kNN--近邻分类算法

有监督的kNN近邻算法: (1)计算已知类别数据集中的点与当前点之间的距离 (2)按照距离递增次序排序 (3)选取与当前点距离最小的k个点 (4)确定前k个点所在类别的出现频率 (5)返回前k个点出现频率最高的类别作为当前点的预测分类 #数据样例 1 2:a 1 3:a 1 4:a 1 5:b 6 2:b 6 3:b 100 200:c 101 199:c 300 444:d 299 50:d 1000 10000:d #版本0:纯python "kNN" from math impo

step by step带你HAN文本分类

本文参考原文-http://bjbsair.com/2020-03-25/tech-info/6302/ 今天来看看网红Attention的效果,来自ACL的论文Hierarchical Attention Networks for Document Classification **论文概述 ** 近年来,在NLP领域,好像最流行的就是RNN.LSTM.GRU.Attention等及其变体的组合框架.这篇论文里作者就对文本的结构进行分析,使用了双向GRU的结构,并且对Attention进行调整

文本分类需要CNN?No!fastText完美解决你的需求(前篇)

http://blog.csdn.net/weixin_36604953/article/details/78195462?locationNum=8&fps=1 文本分类需要CNN?No!fastText完美解决你的需求(前篇) fastText是个啥?简单一点说,就是一种可以得到和深度学习结果准确率相同,但是速度快出几个世纪的文本分类算法.这个算法类似与CBOW,可爱的读着是不是要问CBOW又是个什么鬼?莫急,听小编给你慢慢到来,一篇文章,让你了解word2vec的原理,CBOW.Skip-

文本分类需要CNN?No!fastText完美解决你的需求(后篇)

http://blog.csdn.net/weixin_36604953/article/details/78324834 想必通过前一篇的介绍,各位小主已经对word2vec以及CBOW和Skip-gram有了比较清晰的了解.在这一篇中,小编带大家走进业内最新潮的文本分类算法,也就是fastText分类器.fastText与word2vec的提出者之所以会想到用fastText取代CNN(卷积神经网络)等深度学习模型,目的是为了在大数据情况下提高运算速度. 其实,文本的学习与图像的学习是不同的

文本分类(六):使用fastText对文本进行分类--小插曲

http://blog.csdn.net/lxg0807/article/details/52960072 环境说明:python2.7.linux 自己打自己脸,目前官方的包只能在linux,mac环境下使用.误导大家了,对不起. 测试facebook开源的基于深度学习的对文本分类的fastText模型 fasttext python包的安装: pip install fasttext 1 第一步获取分类文本,文本直接用的清华大学的新闻分本,可在文本系列的第三篇找到下载地址. 输出数据格式:

文本分类:survey

作者:尘心链接:https://zhuanlan.zhihu.com/p/76003775 简述 文本分类在文本处理中是很重要的一个模块,它的应用也非常广泛,比如:垃圾过滤,新闻分类,词性标注等等.它和其他的分类没有本质的区别,核心方法为首先提取分类数据的特征,然后选择最优的匹配,从而分类.但是文本也有自己的特点,根据文本的特点,文本分类的一般流程为:1.预处理:2.文本表示及特征选择:3.构造分类器:4.分类. 通常来讲,文本分类任务是指在给定的分类体系中,将文本指定分到某个或某几个类别中.被