FastText训练词向量
fastText是Facebook于2016年开源的一个词向量计算和文本分类工具,在文本分类任务中,fastText(浅层网络)往往能取得和深度网络相媲美的精度,却在训练时间上比深度网络快许多数量级。在标准的多核CPU上, 能够训练10亿词级别语料库的词向量在10分钟之内,能够分类有着30万多类别的50多万句子在1分钟之内。
该工具的理论基础是以下两篇论文:
- Enriching Word Vectors with Subword Information:这篇论文提出了用 word n-gram 的向量之和来代替简单的词向量的方法,以解决简单 word2vec 无法处理同一词的不同形态的问题。fastText 中提供了 maxn 这个参数来确定 word n-gram 的 n 的大小。
- Bag of Tricks for Efficient Text Classification:这篇论文提出了 fastText 算法,该算法实际上是将目前用来算 word2vec 的网络架构做了个小修改,原先使用一个词的上下文的所有词向量之和来预测词本身(CBOW 模型),现在改为用一段短文本的词向量之和来对文本进行分类。
FastText背后的主要原理是,单词的词法结构会携带有关单词含义的重要信息,而传统的单词嵌入并不会考虑这些信息,传统的单词嵌入会为每个单词训练一个唯一的单词嵌入。这对于形态丰富的语言(德语,土耳其语)尤其重要,在这种语言中,单个单词可能具有大量的形态形式,每种形态形式很少出现,因此很难训练良好的词嵌入。
FastText尝试通过将每个单词视为其子单词的集合来解决此问题。为了简单和独立于语言,将子词视为该词的字符n-gram(n元)。一个单词的向量被简单地认为是其组成特征图的所有向量之和。
与原始Word2Vec相比,FastText在语法任务上的表现要好得多,尤其是在训练语料库较小的情况下。在语义任务上,Word2Vec的性能略优于FastText。随着训练语料库大小的增加,差异变得越来越小。
FastText的训练时间明显长于Word2Vec的Gensim版本(15min 42s vs 6min 42s on text8, 17 mil tokens, 5 epochs, and a vector size of 100)。
总的来说,word2vec有一个很大的局限性,那就是该模型无法推断出不熟悉的单词的向量。如果这个限制了我们,那就尝试使用FastText模型。
FastText还有自己的预训练词向量
参考:https://www.biaodianfu.com/fasttext.html#:~:text=%20fastText%E6%98%AFFacebook%E4%BA%8E2016%E5%B9%B4%E5%BC%80%E6%BA%90%E7%9A%84%E4%B8%80%E4%B8%AA%E8%AF%8D%E5%90%91%E9%87%8F%E8%AE%A1%E7%AE%97%E5%92%8C%E6%96%87%E6%9C%AC%E5%88%86%E7%B1%BB%E5%B7%A5%E5%85%B7%EF%BC%8C%E5%9C%A8%E6%96%87%E6%9C%AC%E5%88%86%E7%B1%BB%E4%BB%BB%E5%8A%A1%E4%B8%AD%EF%BC%8CfastText%EF%BC%88%E6%B5%85%E5%B1%82%E7%BD%91%E7%BB%9C%EF%BC%89%E5%BE%80%E5%BE%80%E8%83%BD%E5%8F%96%E5%BE%97%E5%92%8C%E6%B7%B1%E5%BA%A6%E7%BD%91%E7%BB%9C%E7%9B%B8%E5%AA%B2%E7%BE%8E%E7%9A%84%E7%B2%BE%E5%BA%A6%EF%BC%8C%E5%8D%B4%E5%9C%A8%E8%AE%AD%E7%BB%83%E6%97%B6%E9%97%B4%E4%B8%8A%E6%AF%94%E6%B7%B1%E5%BA%A6%E7%BD%91%E7%BB%9C%E5%BF%AB%E8%AE%B8%E5%A4%9A%E6%95%B0%E9%87%8F%E7%BA%A7%E3%80%82,%E5%9C%A8%E6%A0%87%E5%87%86%E7%9A%84%E5%A4%9A%E6%A0%B8CPU%E4%B8%8A%EF%BC%8C%20%E8%83%BD%E5%A4%9F%E8%AE%AD%E7%BB%8310%E4%BA%BF%E8%AF%8D%E7%BA%A7%E5%88%AB%E8%AF%AD%E6%96%99%E5%BA%93%E7%9A%84%E8%AF%8D%E5%90%91%E9%87%8F%E5%9C%A810%E5%88%86%E9%92%9F%E4%B9%8B%E5%86%85%EF%BC%8C%E8%83%BD%E5%A4%9F%E5%88%86%E7%B1%BB%E6%9C%89%E7%9D%8030%E4%B8%87%E5%A4%9A%E7%B1%BB%E5%88%AB%E7%9A%8450%E5%A4%9A%E4%B8%87%E5%8F%A5%E5%AD%90%E5%9C%A81%E5%88%86%E9%92%9F%E4%B9%8B%E5%86%85%E3%80%82