zoukankan      html  css  js  c++  java
  • Fasttext模型总结

    Fasttext模型结构

    Fasttext模型结构CBOW模型结构

    左图是Fasttext,右图是CBOW,可以看出Fasttext模型与CBOW的模型结构有点像,都有输入层、隐藏层、输出层,但二者还是有挺大区别的,二者的区别如下:

    1. 输入层:

      • CBOW:输入的是每个词的One-hot向量;
      • Fasttext:输入的是每个词的词嵌入向量。
    2. 隐藏层:

      • CBOW:先将输入层的每个One-hot向量乘以词嵌入矩阵,得到每个词的词嵌入向量,再求和取平均;
      • Fasttext:直接对输入层的词向量求和取平均。
    3. 输出层:

      • CBOW:原始的CBOW使用Softmax方法,输出的类别是词表中的每个词;
      • Fasttext:使用Hiererachical softmax方法简化softmax计算,提升训练速度;另外Fasttext的输出是文章的类别。

    Fasttext的特点

    1. fastText引入了subword n-gram的概念,解决了词形变化(morphology)的问题、低频词、未登录词的问题。

    2. fastText更适用于样本数量大、类别标签多的任务,一般能够得到很好的效果,大多数情况下强于传统的BOW + LR/SVM分类器。更重要的是,训练效率非常之高。

    Fasttext的缺点

    subword n-gram信息的加入,不但解决了低频词未登录词的表达的问题,而且对于最终任务精度一般会有几个百分点的提升。唯一的问题就是由于需要估计的参数多,模型可能会比较膨胀。不过,Facebook也提供了几点压缩模型的建议:

    1. 采用hash-trick。由于n-gram原始的空间太大,可以用某种hash函数将其映射到固定大小的buckets中去,从而实现内存可控;

    2. 采用quantize命令,对生成的模型进行参数量化和压缩;

    3. 减小最终向量的维度。

    需要注意的是以上几种方法都会以一定的精度损失为代价,尤其是维度的压缩,具体可以实践中再权衡。

    参考资料

    Bag of Tricks for Efficient Text Classification

    fastText,智慧与美貌并重的文本分类及向量化工具

  • 相关阅读:
    浏览器从输入URL到渲染出页面发生了什么
    按需加载controller——angular
    依赖注入——angular
    qrcode-reader——二维码识别
    Dynamic Web TWAIN——网页扫描SDK
    WebSocket-Node
    关机命令 shutdown
    datagrid——jQuery EasyUI
    双屏显示——NW.js
    css换行用省略号代替
  • 原文地址:https://www.cnblogs.com/elisha/p/14033109.html
Copyright © 2011-2022 走看看