导读 | Facebook上每天有数十亿条信息被共享。为了跟上信息增长的速度,Facebook一直在使用多种不同的文本信息归类工具。传统的分类方法,如深度神经网络,虽然能达到较高的精确度,但对大量训练的需求是一个严重的问题。 |
为了能够对文本信息进行既快速又准确的分类,Facebook人工智能研究(FAIR)实验室开发出了fastText。今天Facebook公开了fastText的源代码,以供开发者随时随地使用它的代码库。
FastText不但支持文本分类,还可以通过词汇包(bag of words)和分解词语信息(subword information)等方法学习词语向量表示(word vector representation)。基于Skip-gram模型,词语以向量呈现的字母n-gram模型(假设第n个字符出现只与前n-1个字符有关的概率模型,译注)包的形式呈现。
“为了在分类繁多的数据处理中提高效率,fastText利用了层级分类器,用树状的形式组织不同的分类,而不是扁平的结构(如用二叉树结构代替列表)。”Facebook作者Armand Joulin, Edouard Grave, Piotr Bojanowski和Tomas Mikolov在一篇帖子上说。
对那些较低程度的人工智能来说,词汇包的方法是快速的,因为这种方法从根本上忽略了词语顺序,而专注于计算词语出现的概率。“词语”被呈现在多维空间中,利用线性代数的方法计算一组或一类词语之间的相关性。要记住,我们在电脑上输入词语时,都是从头开始的。对掌握语言的人类来说,语法是有指导作用的——我们知道词语的结构作用,知道以什么词开始、以什么词结尾。电脑虽然能处理最复杂的计算任务,但在区分“I love You”和“You Love I.”两句话时会遇到困难。类似词汇包这样的方法,从根本上通过增加数学运算把质量分析转化为数量分析。
这些技术能让fastText运行的比传统深度学习方法更快速。Facebook做了一个实用的对比图表,准确地展现了两种方法的对比结果。
FastText的使用不限于英语,还能用于德语、西班牙语、法语和捷克语等语言的处理。
这个月早些时候,Facebook在新闻推送服务中加入了防钓鱼算法。虽然这个算法非常复杂,可以进行行为和语言鉴别两方面的任务,但公开的fastText可以让开发者自己创建与之类似的工具。
Facebook宣布这项新的开源技术可以“在10分钟内用标准的多核CPU训练超过10亿个词语。FastText还能在不超过5分钟的时间内对50万个句子进行超过30万种分类。”这并没有自夸。从文章发表之日起,Facebook的fastText源代码可以在Github上自由获取。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/101165.html