文章详情广告pc

深挖Facebook快准狠的秘密

UBAS姜海军
原创 947       2018-10-29  
摘要:Facebook AI research 「快」的心得

脸书人工智能实验室(Facebook AI Research)表示:传统文本分类方法很深入,但是否太慢了?

大数据时代,已有的文本分类方法限制了它们在大规模数据集上的广泛使用,已渐渐不能满足对信息处理的高速要求。


文本的学习与图像的学习不同。图像学习中,机器临摹一个大师的画作,临摹次数越多会越接近原作,但一般情况下,文本学习并不需要过多隐藏层、过复杂的神经网络。


举个例子,现在有这样一句话:“她很漂亮”,如果让你去学习理解,听的次数多少,对于这句话的理解并没有提升。文本分类工具也是如此,为什么要折磨模型?它也不想深度学习几万遍,过度解读这句简单的赞美啊!


对,模型并不需要过复杂的神经网络,就可以很好的对这句话进行学习。


所以,用简单的网络对自然语言进行学习,可以快速、高质量的得到结果。正因如此,Facebook AI Research 提出了 FastText, 一个既能满足文本分类准确率的同时又能缩短分类时间的文本分类工具。


其实验数据显示,通过使用一个标准多核 CPU 可以在10 min完成对10亿多个单词的训练,并在 1 min内将50万个句子分成 31.2 万个类别


下面我们就来了解FastText本尊究竟有多高效吧!


一分钟看懂最潮的「FastText」


FastText原理包含三部分: 架构模型,层次SoftMax和N-gram特征


1.

>>>架构模型<<<


FastText的模型架构含3层架构:输入层、隐藏层和输出层。


它的原则是「将整个文本作为特征」去预测文本的类别。将输入层中的词和词组构成特征向量,再将特征向量通过线性变换映射到隐藏层,隐藏层求解最大似然函数,然后根据每个类别的权重和模型参数构建 Huffman树,将Huffman 树作为输出。



2.

>>>分层SoftMax<<<


针对任务类别多、复杂程度高的状况,FastText 模型使用了层次 Softmax 技巧(而非扁平式架构)。


层次 SoftMax 技巧建立在Huffman编码的基础上,对标签进行编码,能够极大地缩小模型预测目标的数量。考虑到线性以及多种类别的对数模型,这大大减少了训练复杂性和测试文本分类器的时间。


FastText 也利用了类别(class)不均衡这个事实,通过使用 Huffman 算法建立用于表征类别的树形结构。因此,频繁出现类别的树形结构的深度要比不频繁出现类别的树形结构的深度要小,这也使得进一步的计算效率更高。



3.

>>>N-gram特征<<<


文本分类或句子分类,我们常用的特征是词袋模型。但BOW不能考虑词之间的顺序,因此 FastText 还加入了 N-gram 特征。


举个例子,“喜欢吃苹果不”和“不喜欢吃苹果”这两句在 Word2vec 中会被当作同一句话。而FastText 模型用 N-gram 解决了这个问题,FastText 模型在隐藏层加入了N-gram 词汇向量。


为了将线性分类器扩展到更多大的数据集上,FastText通过使用 N-grams,来缩小线性模型和深度模型之间的准确度差距,能够取得与深度学习分类器相近的准确率,并且在训练和评估上要比深度学习分类器快很多。当然,为了提高效率,我们需要过滤掉低频的 N-gram。


亮点表彰


超高效

适合大型数据+高效的训练速度:能够训练模型“在使用标准多核CPU的情况下10分钟内处理超过10亿个词汇”,特别是与深度模型对比,FastText能将训练时间由数天缩短到几秒钟


支持多语言表达

利用其语言形态结构,FastText能够被设计用来支持包括英语、德语、西班牙语、法语以及捷克语等多种语言。它还使用了一种简单高效的纳入子字信息的方式,在用于像捷克语这样词态丰富的语言时,这种方式表现得非常好,这也证明了精心设计的字符 N-gram 特征是丰富词汇表征的重要来源。


FastText的性能要比时下流行的Word2vec工具明显好上不少,也比其他目前最先进的词态词汇表征要好!


效果不输深度学习

听起来是抖机灵的工具,最终效果如何?

FastText与基于深度学习方法的Char-CNN以及VDCNN对比:


更聪明

更考虑相似性,比如 FastText 的词嵌入学习能够考虑 English-born 和 British-born 之间有相同的后缀,但 Word2vec 却不能。 


小结

FastText文本分类工具学习速度快,效果也不错,适用于分类类别非常大而且数据集足够多的情况,太简单的反而容易过拟合。可以完成无监督的词向量的学习,学习出来词向量来保持住词和词之间、相关词之间是一个距离比较近的情况;也可以用于有监督学习的文本分类任务,例如:新闻文本分类、垃圾邮件分类,情感分析中文本情感分析、电商中用户评论的褒贬分析等。


最潮文本分类工具探秘,你GET了吗?

恒生技术之眼原创文章,未经授权禁止转载。详情见转载须知

联系我们

恒 生 技 术 之 眼