fastText

简介

从另一个角度来说,fastText可以看作是用window_size=1的卷积 + average pooling的CNN [3]对句子进行建模。

核心 - 创新点

1 在word2vec的基础上, 把Ngrams也当做词训练word2vec模型, 最终每个词的vector将由这个词的Ngrams得出. 这个改进能提升模型对morphology的效果, 即”字面上”相似的词语distance也会小一些.

疑问

ngram的vector跟word vector什么关系?加和?

trick

hierarchical softmax类别数较多时,通过构建一个霍夫曼编码树来加速softmax layer的计算,和之前word2vec中的trick相同N-gram features只用unigram的话会丢掉word order信息,所以通过加入N-gram features进行补充用hashing来减少N-gram的存储

缺陷

The movie is not very good , but i still like it .
The movie is very good , but i still do not like it .
I do not like it , but the movie is still very good .
其中第1、3句整体极性是positive,但第2句整体极性就是negative。如果只是通过简单的取平均来作为sentence representation进行分类的话,可能就会很难学出词序对句子语义的影响。

总结

对简单的任务来说,用简单的网络结构进行处理基本就够了,
但是对比较复杂的任务,还是依然需要更复杂的网络结构来学习sentence representation的。

在合适的任务上应当使用合适的方法,像文本分类这样的任务,如果是长文本,即使用BOW也能做很不错的效果。

用了deep的结构之后,效果没有提升的原因是很多的,比如

  1. 数据量不够,过拟合严重
  2. 数据标记质量有限,本身的标记中就有一定的噪音。

疑问

fastText训练embedding,跟word2vec的区别是什么? 会考虑subword
所有subword都会考虑吗,那样会词典特别大哎?
整体的向量和局部向量的关系?近似是之和,还是=和?

参考

  • FastText.zip: Compressing text classification models
  • Bag of Tricks for Efficient Text Classification
  • Enriching Word Vectors with Subword Information
  • DAN: Deep Unordered Composition Rivals Syntactic Methods for Text Classification
    • DAN这种东西。。居然在SST数据下和最高的差距还不是很大呐。
    • 简化的dan,加上word2vec中使用的hierarchical softmax, 再加ngrams特征,就是一篇文章
  • Natural Language Processing (Almost) from Scratch
  • 如何评价Word2Vec作者提出的fastText算法? | 知乎