句子编码和上下文词嵌入之间有什么区别?

What is the difference between Sentence Encodings and Contextualized Word Embeddings?

我在阅读关于 BERT 和 ELMo 的论文时看到了这两个术语,所以我想知道它们之间是否有区别。

  • 上下文词嵌入 是表示特定上下文中的词的向量。 传统词嵌入,如 Word2Vec 和 GloVe 为每个词生成一个向量,而上下文词嵌入根据上下文为一个词生成一个向量。考虑句子 The duck is swimmingYou shall duck when someone shoots at you。对于传统的词嵌入,duck 的词向量在两个句子中都是相同的,而在上下文情况下它应该是不同的。
  • 虽然词嵌入将词编码为向量表示,但也存在如何以计算机可以轻松处理的方式表示整个句子的问题。这些 句子编码 可以将整个句子作为一个向量嵌入,例如 doc2vec,它为一个句子生成一个向量。但 BERT 也会为整个句子生成一个表示,即 [CLS]-token。

简而言之,上下文词嵌入表示上下文中的一个词,而句子编码表示整个句子。