雷锋网消息,近日 FAIR 实验室在官方博客中指出,目前 fastText 资料库已经能够在智能手机及小型电脑上使用,而且内存只需要几百千字节,充分增强了 fastText 的延展性。
为实现这一目的,FAIR 实验室需要尽可能减少 fastText 模型在运转时所消耗的内存。Facebook 的 FAISS 团队与 fastText 团队进行合作,发布论文《FastText.zip: Compressing Text Classification Models》(FastText.zip:压缩文本分类模型),能够克服模型迁移到小型存储设备存在的挑战。
Facebook 团队一直努力在提升精度的同时尽可能地减少计算的复杂度,让实际应用在使用的过程中变得更加灵活方便。而在机器学习拓展的过程中,团队所面临的问题在于,需要涉及一个通用库来解决文本分类问题。因此,fastText 应运而生,针对文本表达和分类帮助建立量化的解决方案。
FAIR 实验室去年开源了资料库 fastText,雷锋网此前也做过覆盖。
FAIR fastText 的具体实现原理过程有两篇相关论文阐述,分别是《Bag of Tricks for Efficient Text Classification》(高效的文本分类技巧)和《Enriching Word Vectors with Subword Information》(使用子字信息丰富词汇向量)。当时开源的资料库对内存要求较高,动辄数 GB,因此主要支持笔记本电脑及 X86 用户。
对于有大量类别的数据集,fastText 采用了分层分类器,将不同的类别整合进树形结构中。并且结合线性及多类别的对数模型,能够大量减少训练的时间,也减少了训练的复杂度。利用类别不均衡的客观事实,研究人员采用 Huffman 算法建立用于表征类别的树形结构。并且根据树形出现的频率高低,深度也有所不同,这样一来也提升了计算效率。
FAIR 实验室采用低维度向量对文本进行表征。高向量自然能提升准确性,但所耗费的训练时间和计算量也较多。研究显示,如果有正确的表征与足够庞大的语料库,那么即便是低维度向量也可以得到最优的结果。在编码期间,向量的大小会通过常规获得低维向量的优化方法来获得。团队通过「bag-of-words」(词袋)提取特征和线性分类器以训练模型。因为词袋并不能识别句子中的单词顺序,所总结的高频单词特征并不能与低频率单词共享,导致低频单词的准确率也要稍低。「n-gram」模型能够解决词序问题,但也会增加训练的复杂度、时间和相应的费用。fastText 部分采用了「n-gram」,通过选择主题词前后的词数以平衡训练时间与准确度的关系。
结果显示,fastText 比起目前非常流行的 word2vec 以及最先进的形态词表征方式有着更好的表现,且兼容多种语言。除准确度外,fastText 也有着更快的速度,比起目前表现最好的神经网络,它的运行速度快 1000 到 10000 倍。这是使用低级线性模型和标准功能(如二进制)的结果。
而兼容小型设备后,相信 fastText 能在未来服务更多的用户,雷锋网也将持续关注。
相关论文:
FastText.zip: Compressing Text Classification Models
Bag of Tricks for Efficient Text Classification
via facebook