人们经常说 word2vec 和 GloVe 是非上下文嵌入,而 LSTM 和基于 Transformer(例如 BERT)的嵌入是上下文相关的。然而,按照我的理解,所有词嵌入基本上都是非上下文的,但可以通过合并隐藏层来使其具有上下文:
word2vec 模型经过训练以学习嵌入,这些嵌入可以预测给定中心词 (SkipGram) 或反之亦然 (CBoW) 出现的周围词的概率。周围的词也被称为上下文词,因为它们出现在中心词的上下文中。
GloVe 模型经过训练,使得一对嵌入具有反映其共现概率的权重。后者定义为给定单词的某个上下文窗口内出现的次数百分比。
如果嵌入是在涉及 RNN(或其变体)的编码器/解码器框架中从头开始训练的,那么在输入层,您为给定单词查找的嵌入不会反映该特定句子中单词的上下文。
对于基于 Transformer 的架构,与 (3.) 相同。
word2vec 和 GloVe 嵌入可以插入到任何类型的神经语言模型中,并且可以通过合并隐藏层从中派生上下文嵌入。这些层提取给定单词的含义,并解释该特定句子中包围的单词。类似地,虽然 LSTM 编码器或 Transformer 的隐藏层确实提取了有关周围单词的信息来表示给定的单词,但输入层的嵌入却没有。
我对非上下文嵌入和上下文嵌入之间区别的理解是否正确?