NLP中词向量调研

ryluo 2020-06-14 01:29:22
NLP

常用词向量word2vec,Glove, fastText优缺点总结

静态的词向量

word2vec

基于滑动窗口的局部语料训练。

CBOW (使用邻居词预测中心词)

Skip-Gram(使用中心词预测邻居词)

优点:

  1. 由于 Word2vec 会考虑上下文,跟之前的词袋模型方法相比,效果要更好(但不如 18 年之后的方法)
  2. 比之前的 Embedding方法维度更少,所以速度更快
  3. 通用性很强,可以用在各种NLP任务中

缺点:

  1. 由于词和向量是一对一的关系,无法解决多义词的问题。
  2. Word2vec是一种静态的方式,虽然通用性强,但是无法针对特定任务做动态优化
  3. 由于是基于滑动窗口的局部上下文,所以缺乏全局的概率统计信息

Glove

结合全局共现矩阵分解(Global Matrix Factorization)与局部文本滑窗(Local Context Window)算法。首先计算语料库的词共现矩阵(在得到词共现矩阵时用到了滑动窗口统计共现次数),然后基于词共现矩阵训练词向量。

fastText

首先fasttext是一个基于word2vec的文本分类模型,其次它也可以用于生成词向量用于下游任务。

fasttext生成的词向量的特点:

  1. 使用字符级别的n-grams来表示一个单词,引入构词信息,将n-gram编码成一个向量,可以对词的前缀与后缀进行编码
  2. 对于低频词生成的词向量效果会更好,因为它们的n-gram可以和其他词共享
  3. 对于训练词库之外的单词,仍然可以构建他们的词向量(通过叠加字符级n-gram向量)

动态的词向量

elmo/GPT/bert

参考链接

Glove

FastText

word2vec/glove/fastText/elmo/GPT/bert词向量对比

史上最全词向量讲解(LSA/word2vec/Glove/FastText/ELMo/BERT

GloVe and fastText — Two Popular Word Vector Models in NLP