fastText原理及应用
来源:互联网 发布:数据研究中心美国大学 编辑:程序博客网 时间:2024/06/07 15:06
本文转载自: http://blog.csdn.net/yick_liao/article/details/62222153
简介
fastText是一种Facebook AI Research在16年开源的一个文本分类器。
其特点就是fast。相对于其它文本分类模型,如SVM,Logistic Regression和neural network等模型,fastText在保持分类效果的同时,大大缩短了训练时间,这些都可以在作者的paper中看到。
原理
模型架构
fastText的架构和word2vec中的CBOW的架构类似,因为它们的作者都是Facebook的科学家Tomas Mikolov,而且确实fastText也算是words2vec所衍生出来的。
Continuous Bog-Of-Words
fastText
fastText的模型架构类似于CBOW,两种模型都是基于Hierarchical Softmax,都是三层架构:输入层、 隐藏层、输出层。
CBOW模型又基于N-gram模型和BOW模型,此模型将
fastText的模型则是将整个文本作为特征去预测文本的类别。
层次之间的映射
将输入层中的词和词组构成特征向量,再将特征向量通过线性变换映射到隐藏层,隐藏层通过求解最大似然函数,然后根据每个类别的权重和模型参数构建Huffman树,将Huffman树作为输出。
模型的训练
Huffman树中每一叶子结点代表一个label,在每一个非叶子节点处都需要作一次二分类,走左边的概率和走右边的概率,这里用逻辑回归的公式表示
正类别的概率:
负类别的概率:
每个label都会有又一条路径,对于训练样本的特征向量
其中:
极大似然估计
当模型是条件概率分布,损失函数可用对数函数表示,经验风险最小化等价于极大似然估计。
对数似然函数:
目标函数:
将上述所用到的式子不断的带入带入再带入,变换变换再变换,就变成了一个只关于
如何做到fast
在作者的paper中讲到,当类别的数量巨大时,计算线性分类器的计算量相当高,更准确的说,计算复杂度是
建立Huffman树结合优先队列,计算复杂度可以是
在用n个训练样本进行训练时,根据每个类别出现的次数作为权重来建Huffman树,出现次数多的类别的样本,路径就短,出现次数少的类别的样本,路径就长。经过计算,单个样本在经过训练时所需的时间复杂度应该是
但fastText在预测时,计算复杂度仍然是
- fastText原理及应用
- fastText原理及应用
- fasttext
- FastText
- 数据库原理及应用
- 数据库原理及应用
- 数据库原理及应用
- NAT原理及应用
- Ajax原理及应用
- MEPG2原理及应用
- Ajax原理及应用
- FFT原理及应用
- COM原理及应用
- LPC11C14GPIO原理及应用
- LPC11C14GPIO原理及应用
- ping原理及应用
- Filter原理及应用
- AJAX原理及应用
- C# WPF 实现鼠标固定在指定范围内运动
- jQuery EasyUI中的Layout布局(二)
- CS231n课程笔记翻译8:神经网络笔记 part3
- [leetcode] 231. Power of Two
- 剑指offer题65
- fastText原理及应用
- #2017 Multi-University Training Contest
- 矩阵中的路径—递归
- 如何向一个Fragment传递参数---setArguments方法的介绍
- 网页打开本地应用程序
- Java学习之ArrayList和LinkedList
- cartographer源码分析(21)-sensor-ordered_multi_queue.h
- ios 基础控件系列之 UIScrollView 初识
- xynu第二次比赛