五、FastText

  1. fastTextFacebook AI Research2016 年开源的文本分类器,其提出是在论文 《Bag of Tricks for Efficient Text Classification》 中。目前 fastText 作为文本分类的基准模型。

    fastText 的优点是:在保持分类效果的同时,大大缩短了训练时间。

    • 在 8个 数据集上,不同模型的测试误差:

      五、FastText - 图1

    • 单个 epoch 的训练时间(char-CNNVDCNNfastText ):

      五、FastText - 图2

  2. fastText 的网络结构与 word2vecCBOW 非常相似。区别在两个地方:

    • 输入:单篇文档的所有单词都作为网络的输入。因此这里的参数 C 是动态的,它等于当前文档的单词数量。
    • 输出:这里网络的输出是各类别的概率。通常文本分类的类别 五、FastText - 图3 远小于词典大小 五、FastText - 图4 ,因此可以不必进行分层 softmax 和负采样。

    五、FastText - 图5

  3. 隐向量为所有输入单词映射结果的均值:

    五、FastText - 图6

    其中:五、FastText - 图7 表示第 五、FastText - 图8 个输入单词在词汇表 五、FastText - 图9 中的编号,五、FastText - 图10 为矩阵 五、FastText - 图11 的第 五、FastText - 图12 行,它是对应输入单词的输入向量。

    单个样本的损失函数为(五、FastText - 图13 为真实类别标签):

    五、FastText - 图14

    定义每个输出单元的预测误差 五、FastText - 图15 ,与CBOW 多个单词上下文的推导相同:

    • 更新 五、FastText - 图16

      五、FastText - 图17

      其中 五、FastText - 图18

    • 更新 五、FastText - 图19

      五、FastText - 图20

      其中 :

      • 五、FastText - 图21 ,它是所有类别输出向量的加权和,其权重为 五、FastText - 图22
      • 五、FastText - 图23 为第 五、FastText - 图24 个输入单词在词表 五、FastText - 图25 中的编号。
  4. 如果考虑词序则分类的效果还可以进一步提升,因此在 fastText 中可以引入 N-gram 特征。如:2-gram 合并文档中连续的2个单词作为特征。

  5. fastText 生成的词向量嵌入的是分类的信息,而word2vec 生成的词向量更多的嵌入了通用语义信息。

    • fastText 词向量得到的相似度是基于分类类别的相似。如:商品评论情感分类任务中,好吃好玩 是相似的,因为它们都是正向情感词。
    • word2vec 词向量得到的相似度是基于语义的相似。此时 好吃美味 是相似的,因为这二者经常出现在类似的上下文中。