FastText概要

两个用途

  • 构建字符级别N-gram的词向量
  • 实现快速文本分类
1.实现快速文本分类 结构类似Word2Vec的CBOW模型
FastText概要
文章图片

两者不同点:
word2vec:输入为每个单词的one-hot,并通过1~t-1,t+1~N的单词预测t个单词,预测的W(t)通过one-hot表示;得到的是前面的权重W。
FastText:输入为每个单词的embedding,当引入序列信息的时候,还会输入N-gram的embedding,具体的输入见下图;得到的是后面one-hot形式的Label,以实现这段序列的类别。
FastText概要
文章图片

ps:又因为当word太多了,N-gram的组合数量会暴增,所以一般是用一个hash,讲不同的组合映射到0~bucket-1的位置上。
同样,在训练的时候,采用了Word2Vec的negative sampling,加速训练。

2.构建字符级别N-gram的词向量 结构同样是和上面一样,但是输入变了,输入变成了char-level的N-gram
如:apple的3-gram有 “”
把这些char级别的用one-hot的形式输入,label为词库中所有词的one-hot,实现分类,得到的权重W,就是char-level的embeding表示。
得到N-gram的char-level embedding,即可加和平均得到word embedding
优点:
  • 对于低频的词更友好,可以和高频词的信息共享
  • 对于OOV的词,也可以建立它的embedding

参考:https://blog.csdn.net/qq_43019117/article/details/82770124
【FastText概要】https://blog.csdn.net/cqlboat/article/details/81255398

    推荐阅读