1.ELMo所解决问题:
CBOW,SkipGram,NNLM等模型训练出来的词向量是Fixed,无法满足同一个单词在不同语境下具有不同的含义,需要动态地学出单词在上下文中的词向量。
2.解决一词多义的可行办法:
a. 给每个单词分配多个词向量
b. 先学习单词fixed的词向量,在应用到某个上下文时再作出相应的调整
c.ELMo(不再得到词的确定的embedding vector, 而是采用两阶段做法,第一阶段先得到一个根据上下文训练好的language model,第二阶段在做downstream任务时,从预训练语言模型中提取对应单词的embedding作为新特征补充道下游任务中,如果把第一阶段得到的中间embedding拿出来用效果很差)
d. BERT
3.ELMo(Deep contextualized word representations)的核心思想:
(1)contextualized指:基于上下文和语言模型(Language Model)的训练方式,使用LSTM;
(2)deep指:基于deep learning的层次表示(Hierarchical Representation),每个层级捕获的特征由简单到复杂
浅层(单词特征)——> 中间层(句法特征)——> 深层(语义特征)
根据以上两点,使用Deep BI-LSTM模型。
4.ELMo的数学表达
ELMo is a task specific combination of the intermediate layer representations in the biLM. For each token t k , a L-layer biLM computes a set of 2L + 1 representations
For inclusion in a downstream model, we compute a task specific weighting of all biLM layers:
(1)为什么每个单词有2L+1个representation?
一共L层,每层使用2个LSTM按照从左到右和从右到左两个方向进行基于LM的训练,因此是2L,再加上还有单词原本的词向量。
(2)downstream task中的加权权重如何得到?
通过训练得到weights。