• Autoregressive LM---ELMO


    1.ELMo(Embeddings from Language Models )

    RNN-based language models(trained from lots of sentences)

      ELMo 词向量是由双向神经网络语言模型的内部多层向量的线性加权组成。

    LSTM 高层状态向量捕获了上下文相关的语义信息,可以用于语义消岐等任务。 结果表明:越高层的状态向量,越能够捕获语义信息。

    LSTM 底层状态向量捕获了语法信息,可以用于词性标注等任务。结果表明:越低层的状态向量,越能够捕获语法信息。

      ELMo 词向量与传统的词向量(如:word2vec )不同。在ELMo 中每个单词的词向量不再是固定的,而是单词所在的句子的函数,由单词所在的上下文决定。因此ELMo 词向量可以解决多义词问题。

    2.原理

    给定一个句子:${word_{w1},...,word_{W_N}}$,其中$w_i$属于${1,2,...,V}$,N为句子的长度,用$(w_1,...,w_N)$表示该句子,则生成该句子的概率为:

    可以用一个L层的前向 LSTM 模型来实现该概率。其中:

    ELMo 模型采用双向神经网络语言模型,它由一个前向LSTM 网络和一个逆向 LSTM 网络组成。ELMo 最大化句子的对数前向生成概率和对数逆向生成概率。

     

    3.应用

    首先训练无监督的 ELMo 模型,获取每个单词的2L+1个中间表示。然后在监督学习任务中,训练这2L+1个向量的线性组合,方法为:

    实验表明:在 ELMo 中添加 dropout 是有增益的。另外在损失函数中添加正则化能使得训练到的ELMo权重倾向于接近所有ELMo权重的均值。

    4.Autoregressive Language Model的特点

    (1)优点:

    1. 生成能力
    2. 考虑了词之间的相关性
    3. 无监督
    4. 严格数学表达(BERT缺乏严格的数学表达,p(w1w3|w2)约等于p(w1|w2)*p(w3|w2))

    (2)缺点:

    1. 单向的
    2. 有些单词离得近,未必有关系(有点道理)

     (3)ELMO是基于双向的LSTM,它用了两个单向的LSTM(从左到右,从右到左,两个之间是独立的)

    参考文献:

    【1】李宏毅机器学习2019(国语)_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili

    【2】XLNet模型解读_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili

  • 相关阅读:
    遇见SQL(2)
    遇见SQL(1)
    JAVA自学笔记(10)—Stream流、方法引用
    JAVA自学笔记(9)——网络通信、函数式接口
    JAVA自学笔记(7)—文件
    JAVA自学笔记(6)—异常、线程、函数式编程
    Python--模块Module
    Python--软件目录结构
    Python--迭代器
    Python--生成器
  • 原文地址:https://www.cnblogs.com/nxf-rabbit75/p/11635547.html
Copyright © 2020-2023  润新知