一、h-softmax
在面对label众多的分类问题时,fastText设计了一种hierarchical softmax函数。使其具有以下优势:
- (1)适合大型数据+高效的训练速度:能够训练模型“在使用标准多核CPU的情况下10分钟内处理超过10亿个词汇”,特别是与深度模型对比,fastText能将训练时间由数天缩短到几秒钟。
- (2)支持多语言表达:利用其语言形态结构,fastText能够被设计用来支持包括英语、德语、西班牙语、法语以及捷克语等多种语言。
可以认为,FastText= (word2vec中)CBOW + h-softmax;其结构为:输入 - 隐层 - h-softmax
基本原理
- 根据标签(label)和频率建立霍夫曼树;(label出现的频率越高,Huffman树的路径越短)
- Huffman树中每一叶子结点代表一个label;
二、理论分析
层次之间的映射
将输入层中的词和词组构成特征向量,再将特征向量通过线性变换映射到隐藏层,隐藏层通过求解最大似然函数,然后根据每个类别的权重和模型参数构建Huffman树,将Huffman树作为输出。
模型的训练
Huffman树中每一叶子结点代表一个label,在每一个非叶子节点处都需要作一次二分类,走左边的概率和走右边的概率,这里用逻辑回归的公式表示
如何做到fast