非上下文词嵌入和上下文词嵌入之间的区别

机器算法验证 自然语言 词嵌入
2022-04-09 07:19:40

人们经常说 word2vec 和 GloVe 是非上下文嵌入,而 LSTM 和基于 Transformer(例如 BERT)的嵌入是上下文相关的。然而,按照我的理解,所有词嵌入基本上都是非上下文的,但可以通过合并隐藏层来使其具有上下文:

  1. word2vec 模型经过训练以学习嵌入,这些嵌入可以预测给定中心词 (SkipGram) 或反之亦然 (CBoW) 出现的周围词的概率。周围的词也被称为上下文词,因为它们出现在中心词的上下文中。

  2. GloVe 模型经过训练,使得一对嵌入具有反映其共现概率的权重。后者定义为给定单词的某个上下文窗口内出现的次数百分比yx

  3. 如果嵌入是在涉及 RNN(或其变体)的编码器/解码器框架中从头开始训练的,那么在输入层,您为给定单词查找的嵌入不会反映该特定句子中单词的上下文。

  4. 对于基于 Transformer 的架构,与 (3.) 相同。

word2vec 和 GloVe 嵌入可以插入到任何类型的神经语言模型中,并且可以通过合并隐藏层从中派生上下文嵌入。这些层提取给定单词的含义,并解释该特定句子中包围的单词类似地,虽然 LSTM 编码器或 Transformer 的隐藏层确实提取了有关周围单词的信息来表示给定的单词,但输入层的嵌入却没有。

我对非上下文嵌入和上下文嵌入之间区别的理解是否正确?

2个回答

你的理解是正确的。词嵌入,即从查找表中检索到的向量始终是非上下文的,无论发生了什么。(在使用基于字符的网络来获得词嵌入的 ELMo 中略有不同,但它也考虑了任何上下文)。

然而,当人们说上下文嵌入时,他们并不是指查找表中的向量,而是指预训练模型的隐藏状态。正如你所说,这些状态是上下文化的,但称它们为词嵌入有点令人困惑。

在非上下文中,“演奏”保持不变,例如“演奏”运动和“演奏”小提琴。但它在上下文词嵌入方面发生了变化。检查这篇文章以获得说明性的理解.. https://medium.com/@everlearner42/how-contextual-word-embeddings-are-learnt-in-nlp-a0a52fcad1f9