ELMO

1 本质思想

       ELMO的基本思想是利用双向的LSTM结构,对于某个语言模型的目标,在大量文本上进行预训练,从LSTM layer中得到contextual embedding,其中较低层的LSTM代表了比较简单的语法信息,而上层的LSTM捕捉的是依赖于上下文的语义信息。ELMO的全称就是Embeddings from Language Models。对于下游的任务,再将这些不同层的向量线性组合,再做监督学习。

2 目标

  1. 获取词汇的不同特征(语法和语义)。
  2. 解决多义词的现象。
           拿word2vector来说,字与vector是一一对应的,输入句子,然后输出句子中每个字对应vector,可以看成查表的过程。
           如:输入 画画 ,word2vector就会输出两个一样的vector,但是第一个画是动词、第二个画是名词,他们的vector应该是不一样的,但word2vector并不能区分。即使在训练过程中对embedding矩阵进行更新,它依旧还是一一对应的关系。
           向ELMO输入 画画 ,输出的两个向量是经过2层LSTM后和其本身的线性叠加的结果,它们是不同的。这是ELMO根据输入句子的语境得到的结果。

3 网络结构

       ELMO 由一层input层 和 两层双向LSTM 组合而成的,其中,input层可看为embedding层,不过ELMO是通过字符卷积来得到embedding的,不是矩阵相乘;用两个单向LSTM替代一个双向LSTM。
       因为每层的LSTM的输出可能分布不同,因此在每个双向LSTM的输出后都增加一个Layer Normalization。
       两层双向LSTM之间添加残差连接。

你可能感兴趣的:(深度学习)