• 目录:

    • 1、应用场景
    • 2、优缺点
    • 3、FastText的原理
    • 4、FastText词向量与word2vec对比

目录:

1、应用场景

fastText是一种Facebook AI Research在16年开源的一个文本分类器。 其特点就是fast。相对于其它文本分类模型,如SVM,Logistic Regression和neural network等模型,fastText在保持分类效果的同时,大大缩短了训练时间。

2、优缺点

  1. 适合大型数据+高效的训练速度:能够训练模型“在使用标准多核CPU的情况下10分钟内处理超过10亿个词汇”
  2. 支持多语言表达:利用其语言形态结构,fastText能够被设计用来支持包括英语、德语、西班牙语、法语以及捷克语等多种语言。FastText的性能要比时下流行的word2vec工具明显好上不少,也比其他目前最先进的词态词汇表征要好。
  3. fastText专注于文本分类,在许多标准问题上实现当下最好的表现(例如文本倾向性分析或标签预测)。

3、FastText的原理

fastText 方法包含三部分:模型架构、层次 Softmax 和 N-gram 特征。

fastText 模型输入一个词的序列(一段文本或者一句话),输出这个词序列属于不同类别的概率。
序列中的词和词组组成特征向量,特征向量通过线性变换映射到中间层,中间层再映射到标签。
fastText 在预测标签时使用了非线性激活函数,但在中间层不使用非线性激活函数。
fastText 模型架构和 Word2Vec 中的 CBOW 模型很类似。不同之处在于,fastText 预测标签,而 CBOW 模型预测中间词。
第一部分:fastText的模型架构类似于CBOW,两种模型都是基于Hierarchical Softmax,都是三层架构:输入层、 隐藏层、输出层。

CBOW模型又基于N-gram模型和BOW模型,此模型将W(t−N+1)……W(t−1)W(t−N+1)……W(t−1)作为输入,去预测W(t)
fastText的模型则是将整个文本作为特征去预测文本的类别。

第二部分:层次之间的映射
将输入层中的词和词组构成特征向量,再将特征向量通过线性变换映射到隐藏层,隐藏层通过求解最大似然函数,然后根据每个类别的权重和模型参数构建Huffman树,将Huffman树作为输出。

具体的数学求解过程可参考博客:
https://blog.csdn.net/yick_liao/article/details/62222153

第三部分:fastText的N-gram特征
常用的特征是词袋模型(将输入数据转化为对应的Bow形式)。但词袋模型不能考虑词之间的顺序,因此 fastText 还加入了 N-gram 特征。
“我 爱 她” 这句话中的词袋模型特征是 “我”,“爱”, “她”。这些特征和句子 “她 爱 我” 的特征是一样的。
如果加入 2-Ngram,第一句话的特征还有 “我-爱” 和 “爱-她”,这两句话 “我 爱 她” 和 “她 爱 我” 就能区别开来了。当然,为了提高效率,我们需要过滤掉低频的 N-gram。
在fastText 中一个低维度向量与每个单词都相关。隐藏表征在不同类别所有分类器中进行共享,使得文本信息在不同类别中能够共同使用。这类表征被称为词袋(bag of words)(此处忽视词序)。在 fastText中也使用向量表征单词 n-gram来将局部词序考虑在内,这对很多文本分类问题来说十分重要。
举例来说:fastText能够学会“男孩”、“女孩”、“男人”、“女人”指代的是特定的性别,并且能够将这些数值存在相关文档中。然后,当某个程序在提出一个用户请求(假设是“我女友现在在儿?”),它能够马上在fastText生成的文档中进行查找并且理解用户想要问的是有关女性的问题。

4、FastText词向量与word2vec对比

FastText= word2vec中 cbow + h-softmax的灵活使用
灵活体现在两个方面:

  1. 模型的输出层:word2vec的输出层,对应的是每一个term,计算某term的概率最大;而fasttext的输出层对应的是
    分类的label。不过不管输出层对应的是什么内容,起对应的vector都不会被保留和使用;
  2. 模型的输入层:word2vec的输入层,是 context window 内的term;而fasttext 对应的整个sentence的内容,包括term,也包括 n-gram的内容;
    两者本质的不同,体现在 h-softmax的使用。

Word2vec的目的是得到词向量,该词向量 最终是在输入层得到,输出层对应的 h-softmax 也会生成一系列的向量,但最终都被抛弃,不会使用。
fasttext则充分利用了h-softmax的分类功能,遍历分类树的所有叶节点,找到概率最大的label(一个或者N个)。

参考:
https://blog.csdn.net/sinat_26917383/article/details/54850933
https://blog.csdn.net/yick_liao/article/details/62222153

FastText原理总结相关推荐

  1. 转:fastText原理及实践(达观数据王江)

    http://www.52nlp.cn/fasttext 1条回复 本文首先会介绍一些预备知识,比如softmax.ngram等,然后简单介绍word2vec原理,之后来讲解fastText的原理,并 ...

  2. win10+python3.6下安装fastText+fastText原理和使用

    fastText的安装+原理和使用 1. 安装fastText 运行环境: win10+Python 3.6+64位 1.1 报错: 直接运行 pip install fastText, 会报以下错误 ...

  3. FastText原理

    一.简介 fasttext是facebook开源的一个词向量与文本分类工具,在2016年开源,典型应用场景是"带监督的文本分类问题".提供简单而高效的文本分类和表征学习的方法,性能 ...

  4. fastText原理和文本分类实战

            9. 结论 在小节中,详细展示了如果在wikipedia上获得词向量,对于其他语言也都可以同样运行,下面网址提供了fastText在词向量上的多个预训练模型,可以参考使用预训练模型网址 ...

  5. [转] fastText

    mark- from : https://www.jiqizhixin.com/articles/2018-06-05-3 fastText的起源 fastText是FAIR(Facebook AIR ...

  6. FastText情感分析和词向量训练实战——Keras算法练习

    fasttext是facebook开源的一个词向量与文本分类工具 ,其最大的优点就是快,同时不失精度. 此算法有两个主要应用场景: 文本分类 词向量训练 工业界碰到一些简单分类问题时,经常采用这种简单 ...

  7. 【NLP傻瓜式教程】手把手带你fastText文本分类(附代码)

    写在前面 已经发布: [NLP傻瓜式教程]手把手带你CNN文本分类(附代码) [NLP傻瓜式教程]手把手带你RNN文本分类(附代码) 继续NLP傻瓜式教程系列,今天的教程是基于FAIR的Bag of ...

  8. 【论文复现】使用fastText进行文本分类

    写在前面 今天是补笔记的一天... 今天的论文是来自Facebook AI Research的Bag of Tricks for Efficient Text Classification 也就是我们 ...

  9. [转]Facebook 开源的快速文本分类器 FastText

    比深度学习快几个数量级,详解Facebook最新开源工具--fastText 导读:Facebook声称fastText比其他学习方法要快得多,能够训练模型"在使用标准多核CPU的情况下10 ...

最新文章

  1. 批处理如何做到等待用户输入一个值(dos命令行)
  2. Lightroom Classic CC8.2安装教程 IT宝盒 10-14 20:32
  3. JZOJ 5441. 【NOIP2017提高A组冲刺11.1】序列
  4. jQuery 输入框 在光标位置插入内容, 并选中
  5. hdu - 2586 How far away ?(最短路共同祖先问题)
  6. 细学PHP 14 mysql-4
  7. 发布中文搜索引擎数据库 TngouDB
  8. 使Eclipse下支持编写HTML/JS/CSS/JSP页面的自动提示。
  9. CVE-2020-11945 Squid未授权整数溢出分析
  10. 使用PHP脚本远程部署git项目
  11. javaScript与MVC
  12. MySQL服务器停机迁移
  13. javascript(基础)_对数组的遍历方法总结(find, findIndex, forEach,)
  14. 9点EXCEL计算公式
  15. 解决在Access中显示ActiveX部件不能创建对象
  16. 来自陈沙克日志的收藏
  17. 区块链从业者地摊致富秘籍
  18. vue项目国际化 vue-i18n以及踩坑解决 小姐姐手把手教你VUE国际化~
  19. 常用商务邮箱:常用商务邮箱注册
  20. 序列密码知识整理(一 简介)

热门文章

  1. 如何读H.264的标准和代码
  2. 集合源码阅读:ArrayList
  3. C# 反射 (Reflect)
  4. linux配置防火墙,开启端口
  5. 关于jedis2.4以上版本的连接池配置,及工具类
  6. C# 从Excel中读取时间数据
  7. Android 通信 EventBus
  8. BestCoder Round #39 解题报告
  9. 使用matlab画半透明椭圆
  10. Kevin专栏---如何制作试用版安装包