【记录】ELMo
ELMo是一种word Embedding方法,传统的word2vec是静态方法吗,训练出来的词是固定不变的,其无法处理一词多义的问题,ELmo正是为了解决这一问题而提出的一种新的embedding表示方法;
ELMo的组成
ELmo由两部分组成,正常的词向量Embedding和双向LSTM叠块组成,训练任务为根据单词 W i W_i Wi 的上下文去预测当前词 W i W_i Wi, 也是填空了;ELMo由Embedding层和编码器块堆叠而成组成,每个编码器的深度都是两层LSTM叠加。使用这个网络结构利用大量语料做语言模型任务就能预先训练好这个网络,训练完成之后,取出每一层的输出,不仅包含embedding层的词向量,还包含每一个LSTM层输出的词向量,对这些向量进行融合,得到最终的词向量表示,通俗的讲,ELMo训练的不再只是一个词向量,而是一个包含多层BiLstm的模型,然后对于每一个句子,都需要传入该模型,分别拿到每个时间步在每个层的输出,最后在具体的NLP任务中,再单独训练每一层的权重向量(Dense层),对每一层的向量进行线性加权作为每个词汇的最终向量表示。这样一来,每个词汇在不同的上下文语境中,都可以得到不同的向量表示,因此,在一定意义上可以解决一词多义的问题。
分析一下,这里解决一次多意问题,主要是靠循环网络,循环网路输出的结果组合了上下文的信息;所以EMLo应该说是一个模型;对于输入的一个词,ELMo会计算2 L + 1个representation(输入词的word embedding,前向后向的2L个representation)
ELMo的代码实现和使用
可参考
478

被折叠的 条评论
为什么被折叠?



