Transformer的前世今生 day04(ELMO、Attention注意力机制)

本文介绍了ELMO模型,一种通过结合上下文信息改进Word2Vec模型的解决方案,解决了多义词问题。文章详细阐述了ELMO的原理,以及如何利用注意力机制来增强词向量表示,并展示了如何在其他任务中应用ELMO进行预训练。
摘要由CSDN通过智能技术生成

ELMO

前情回顾

  • NNLM模型:主要任务是在预测下一个词,副产品是词向量
  • Word2Vec模型:主要任务是生成词向量
    • CBOW:训练目标是根据上下文预测目标词
    • Skip-gram:训练目标是根据目标词预测上下文词

ELMO模型的流程

  • 针对Word2Vec模型的词向量不能表示多义词的问题,产生了ELMO模型,模型图如下:
    在这里插入图片描述
  • 通过不只是训练单单一个单词的Q矩阵,而是把这个词的上下文信息也融入到这个Q矩阵中,从而解决一词多义的问题
  • 注意:左侧的LSTM是融入上文信息,右侧的LSTM是融入下文信息。E已经是将独热编码经过一层Q矩阵得到的
  • 在我们做具体任务T时,会先将E1、E2、E3三层的特征信息做一个叠加之后,得到新的词向量K,其中(E2、E3为双向的句法和语义特征),所以K1为第一个词的词向量,且包含了这个词的单词特征、句法特征、语义特征
  • 注意:在Word2Vec中,只是单纯将几个连续的单词按顺序拼接输入,所以只有这个单词的词向量,并没有上下文信息的叠加

ELMO模型怎么使用

  • 虽然同一个词的单词特征相同,但是在不同句子中的上下文信息会不同,也就代表着最后的词向量K会不同,如下:
    在这里插入图片描述
  • 我们可以用训练好的ELMO模型,去掉该模型针对任务的改造部分,比如只选用T层往下的部分,用它来替换下图其他任务中的W到e的这一部分,即替换之前Word2Vec预训练部分,从而实现ELMO模型的预训练效果,解决一词多义问题:
    在这里插入图片描述

Attention注意力机制

  • 我看这张图,注意力可以被可视化为下图:
    在这里插入图片描述
  • 其中:想要查询这张图中的部分原始图像(查询对象Q),这张图中红色的部分(Key),红色部分所具体指的在原图中的部分(Value)
    • 注意:Key和Value有着某种联系,是可以做对应的。如由于原图中有很多的信息(Values),这些Values可以拆分为Key-Value键值对
    • 所以,查看哪些V对Q比较重要,即哪些V与Q相似,就可以转换成查看哪些K与Q相似,而计算相似度我们一般采用点乘的方法
    • 所以QK点乘才能近似于QV点乘,即才能知道哪些V比较重要
      在这里插入图片描述
  • 上图的流程为:传入一个查询Q,计算Q和K的点乘s(K与V有对应关系),进行softmax归一化得到对应概率a,乘上对应V,最后做一个汇总,得到整体的V’,即最后的注意力V‘,公式如下:
    V ′ = ( a 1 , a 2 , ⋯ , a n ) ∗ + ( v 1 , v 2 , ⋯ , v n ) = ( a 1 ∗ v 1 + a 2 ∗ v 2 + ⋯ + a n ∗ v n ) V' = (a_1,a_2,\cdots,a_n)*+(v_1,v_2,\cdots,v_n) = (a_1*v_1+a_2*v_2+\cdots+a_n*v_n) V=(a1a2an)+(v1v2vn)=(a1v1+a2v2++anvn)
  • 而这个新的V’就包含了原图中,哪些重要,哪些不重要的信息,最后就可以用带有注意力的图来代替原图
    在这里插入图片描述
  • 这里softmax要除 d k \sqrt{d_k} dk 是因为,在softmax中,如果两个数的差距比较大,那么归一化后,概率差距会特别大,这很不合理,所以我们通过除 d k \sqrt{d_k} dk 来缩小两个数之间的差距,这样能减小它们之间的概率差距,如下图:
    在这里插入图片描述

参考文献

  1. 08 ELMo模型(双向LSTM模型解决词向量多义问题)
  2. 09 什么是注意力机制(Attention )
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丿罗小黑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值