我正在尝试理解深度学习模型中嵌入的概念。
我明白使用word2vec
如何解决使用独热编码向量的局限性。
然而,最近我看到大量博客文章提到ELMo、BERT等,讨论上下文嵌入。
词嵌入与上下文嵌入有何不同?
回答:
两种嵌入技术,传统的词嵌入(例如word2vec, Glove)和上下文嵌入(例如ELMo, BERT),都旨在为文档中的每个单词学习一个连续(向量)表示。连续表示可以在下游的机器学习任务中使用。
传统的词嵌入技术学习全局词嵌入。它们首先通过忽略单词在不同上下文中的含义,构建文档中独特单词的全局词汇表。然后,学习那些在文档中彼此靠近且出现频率较高的单词的相似表示。问题在于,这种词表示忽略了单词的上下文含义(由单词周围的环境得出的含义)。例如,对于句子“我left我的手机在桌子的left侧。”只学习了一个“left”的表示。然而,在该句子中,“left”有两种不同的含义,需要在嵌入空间中有两种不同的表示。
另一方面,上下文嵌入方法用于通过考虑文档中所有单词的序列来学习序列级语义。因此,这些技术可以根据上下文为多义词学习不同的表示,例如上述例子中的“left”。