word2vec是一种静态词嵌入方法,它不会随着上下文场景的变化而变化。但一词多义在现实中太常见了,因此这种静态嵌入的局限性在很多场景显得力不从心。而ELMo就是为解决这些问题提出的,它的提出意味着从词嵌入(Word Embedding)时代进入了语境词嵌入(Contextualized Word-Embedding)时代!
ELMo原理
ELMo,是Embedding from Language Models的简称,它的核心思想体现在深度上下文(Deep Contextualized),除了提供临时词嵌入外,还提供生成这些词嵌入的预训练模型。因此在实际应用中,ELMo可以基于预训练模型,根据实际上下文场景动态调整单词的词嵌入表示。
ELMo首先把输入转换为字符级别的Embedding,根据字符级别的Embedding来生成上下文无关的word Embedding,然后使用双向语言模型(如Bi-LSTM)生成上下文相关的Embedding,其整体模型结构如下: