当前位置:   article > 正文

cbow word2vec 损失_NLP中的词向量对比:word2vec/glove/fastText/elmo/GPT/bert

word2vec损失越来越大

作者:JayLou,NLP算法工程师

知乎专栏:高能NLP之路

https://zhuanlan.zhihu.com/p/56382372


本文以QA形式对自然语言处理中的词向量进行总结:包含word2vec/glove/fastText/elmo/bert。

目录

一、文本表示和各词向量间的对比 
1、文本表示哪些方法?
2、怎么从语言模型理解词向量?怎么理解分布式假设?
3、传统的词向量有什么问题?怎么解决?各种词向量的特点是什么?
4、word2vec和NNLM对比有什么区别?(word2vec vs NNLM)
5、word2vec和fastText对比有什么区别?(word2vec vs fastText)
6、glove和word2vec、 LSA对比有什么区别?(word2vec vs glove vs LSA)
7、 elmo、GPT、bert三者之间有什么区别?(elmo vs GPT vs bert) 二、深入解剖word2vec
1、word2vec的两种模型分别是什么?
2、word2vec的两种优化方法是什么?它们的目标函数怎样确定的?训练过程又是怎样的? 三、深入解剖Glove详解
1、GloVe构建过程是怎样的?
2、GloVe的训练过程是怎样的?
3、Glove损失函数是如何确定的? 四、深入解剖bert(与elmo和GPT比较)
1、为什么bert采取的是双向Transformer Encoder,而不叫decoder?
2、elmo、GPT和bert在单双向语言模型处理上的不同之处?
3、bert构建双向语言模型不是很简单吗?不也可以直接像elmo拼接Transformer decoder吗?
4、为什么要采取Marked LM,而不直接应用Transformer Encoder?
5、bert为什么并不总是用实际的[MASK]token替换被“masked”的词汇?

一、文本表示和各词向量间的对比

1、文本表示哪些方法?

下面对文本表示进行一个归纳,也就是对于一篇文本可以如何用数学语言表示呢?

  • 基于one-hot、tf-idf、textrank等的bag-of-words;

  • 主题模型:LSA(SVD)、pLSA、LDA;

  • 基于词向量的固定表征:word2vec、fastText、glove

  • 基于词向量的动态表征:elmo、GPT、bert

2、怎么从语言模型理解词向量?怎么理解分布式假设?

上面给出的4个类型也是nlp领域最为常用的文本表示了,文本是由每个单词构成的,而谈起词向量,one-hot是可认为是最为简单的词向量,但存在维度灾难和语义鸿沟等问题;通过构建共现矩阵并利用SVD求解构建词向量,则计算复杂度高;而早期词向量的研究通常来源于语言模型,比如NNLM和RNNLM,其主要目的是语言模型,而词向量只是一个副产物。

fe9603028a568760da4dc3c956d66797.png
NNLM

所谓分布式假设,用一句话可以表达:相同上下文语境的词有似含义。而由此引申出了word2vec、fastText,在此类词向量中,虽然其本质仍然是语言模型,但是它的目标并不是语言模型本身,而是词向量,其所作的一系列优化,都是为了更快更好的得到词向量。glove则是基于全局语料库、并结合上下文语境构建词向量,结合了LSA和word2vec的优点。

201e105aaaaaafac7ee11bea44cd096a.png

3、传统的词向量有什么问题?怎么解决?各种词向量的特点是什么?

上述方法得到的词向量是固定表征的,无法解决一词多义等问题,如“川普”。为此引入基于语言模型的动态表征方法:elmo、GPT、bert。

各种词向量的特点:

(1)One-hot 表示 :维度灾难、语义鸿沟;

(2)分布式表示 (distributed representation) :

  • 矩阵分解(LSA):利用全局语料特征,但SVD求解计算复杂度大;

  • 基于NNLM/RNNLM的词向量:词向量为副产物,存在效率不高等问题;

  • word2vec、fastText:优化效率高,但是基于局部语料;

  • glove:基于全局预料,结合了LSA和word2vec的优点;

  • elmo、GPT、bert:动态特征;

4、word2vec和NNLM对比有什么区别?(word2vec vs NNLM)

1)其本质都可以看作是语言模型;

2)词向量只不过NNLM一个产物,word2vec虽然其本质也是语言模型,但是其专注于词向量本身,因此做了许多优化来提高计算效率:

  • 与NNLM相比,词向量直接sum,不再拼接,并舍弃隐层;

  • 考虑到sofmax归一化需要遍历整个词汇表,采用hierarchical softmax 和negative sampling进行优化,hierarchical softmax 实质上生成一颗带权路径最小的哈夫曼树,让高频词搜索路劲变小;negative sampling更为直接,实质上对每一个样本中每一个词都进行负例采样;

5、word2vec和fastText对比有什么区别?(word2vec vs fastText)

1)都可以无监督学习词向量,

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/710406
推荐阅读
相关标签
  

闽ICP备14008679号