Word Embedding Papers | 经典再读之fastText

fastText是Facebook开源的词嵌入工具,包括两种含义:1) 文本分类器,2) 使用子词信息增强词嵌入的模型。本文主要讨论后者,通过引入n-gram解决OOV问题,提高文本分类和词嵌入的性能。fastText通过将词拆分成子词,然后将子词向量求和得到词的表示,解决了未登录词的问题,尤其在处理多语言时表现出色。
摘要由CSDN通过智能技术生成

关于作者:张正,坐标巴黎,上班NLP,下班词嵌入。


从词嵌入到句嵌入


到底什么是 fastText ?

先说结论,fastText 在不同语境中至少有两个含义:

1. 在文章 Bag of Tricks for Efficient Text Classification [1] 中,fastText 是作者提出的文本分类器的名字。与 sub-word 无关!也不是新的词嵌入训练模型!是 word2vec 中 CBOW 模型的简单变种。

2. 作为 Facebook 开源包,fastText [6] 是用来训练词嵌入或句嵌入的,其不仅包括 1 中论文的代码实现,还包括 Enriching Word Vectors with Subword Information [2] 及 FastText.zip: Compressing text classification models [3] 两文的代码实现。

本来觉得这些含义区别不重要,直到连我自己都被弄迷糊了。在写这篇解读前,我心中的 fastText 一直是第三种含义:用 sub-word 信息加强词嵌入训练,解决 OOV(Out-Of-Vocabulary)表征的方法。结果带着这个预先的理解读 Bag of Tricks for Efficient Text Classification,越读越迷惑。

为理清思路,第一小节我们就先讲讲 Bag of Tricks for Efficient Text Classification 中的 fastText,第二小节则围绕 Enriching Word Vectors with Subword Information


1.1 Abstract

“本文探索了一种简单有效的文本分类基准(方法)。我们的实验表明,我们的快速文本分类器 fastText 在准确性方面与深度学习分类器平分秋色,其训练和评估速度(相比深度学习模型更是)要快许多个数量级。

我们可以使用标准的多核 CPU 在不到 10 分钟的时间内用 fastText 训练超过 10 亿个单词,并在一分钟之内将 50 万个句子在 31 万 2 千个类中做分类。”

作者中又出现了托老师,不知道是不是受他影响,这篇文章在表述上也很有 word2vec 的味道,更不用说模型本身。fastText 和 word2vec 的卖点都是简单高效(快)。

1.2 一句话介绍fastText

word2vec 的 CBOW 模型中将中心词替换为类别标签就得到了 fastText。

具体到一些小区别:

  • CBOW 中词袋的大小由 window_size 决定,而 fastText 中就是整个要分类的文本。

  • CBOW 实际运行中用 Hierarchical softmax,fastText 用 softmax 或 Hierarchical softmax,具体试类的数量决定。

这就是一个标配版且可以实际应用的 fastText 了,我要再强调三点它和 CBOW 无区别的地方,因为在别的讲该论文的文章中看到了一些错误的理解:

  • CBOW 和 fastText 都是用平均值来预测的。(CBOW 不是求和,是求平均)

  • N-gram 对于 CBOW 和 fastText 都是锦上添花的元素,不是标配。

  • 词向量初始化都是随机的,fastText 并没有在 word2vec 预训练词嵌入的基础上再训练。


1.3 对N-gram的理解

如果没有重新读这篇文章,我也会下意识地往 character 级别想,但是必须要在此强调:这篇文章和 character 没有任何关系!文章中的 n-gram 出自 Character-level Convolutional Networks for Text Classification [4],是 word 级别的。与我在

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值