ELMo - Deep contextualized word representations

版权声明:本文为博主原创文章,转载请注明出处:http://blog.csdn.net/shine19930820 https://blog.csdn.net/shine19930820/article/details/83795554

Deep contextualized word representations (ELMo)

最近NLP突飞猛进,现有ELMo,后有BERT,周末整理一波。

glove以及word2vec的word embedding在nlp任务中都取得了最好的效果, 现在几乎没有一个NLP的任务中不加word embedding.

常用的获取embedding方法都是通过训练language model, 将language model中预测的hidden state做为word的表示, 给定N个tokens的序列(t1,t2,...,tn)(t1,t2,...,tn), 前向language model就是通过前k-1个输入序列(t1,t2,...,tk)(t1,t2,...,tk)的hidden表示, 预测第k个位置的token, 反向的language model就是给定后面的序列, 预测之前的, 然后将language model的第k个位置的hidden输出做为word embedding。

之前的做法的缺点是对于每一个单词都有唯一的一个embedding表示, 而对于多义词显然这种做法不符合直觉, 而单词的意思又和上下文相关, ELMo的做法是我们只预训练language model, 而word embedding是通过输入的句子实时输出的, 这样单词的意思就是上下文相关的了, 这样就很大程度上缓解了歧义的发生。且ELMo输出多个层的embedding表示, 试验中已经发现每层LM输出的信息对于不同的任务效果不同, 因此对每个token用不同层的embedding表示会提升效果

模型下载:https://allennlp.org/elmo

Reference

  1. 论文:https://arxiv.org/abs/1802.05365
  2. 应用:https://arxiv.org/abs/1806.06259
  3. github开源代码(TensorFlow):https://github.com/allenai/bilm-tf
  4. GitHub(PyTorch):https://github.com/allenai/allennlp

猜你喜欢

转载自blog.csdn.net/shine19930820/article/details/83795554