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

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 )

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/757955.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件推动开放自动化落地

当你唯一拥有的是一把锤子时,你周围的一切都是钉子。 软件是硬件设备的护城河,国际自动化厂商不遗余力地开发各种新型工业软件,其战略站在应用的制高点。以前我们追求硬件兼容,现在我们要致力于应用引领。如果我们拥有强大的SCADA…

Linux账号管理与ACL权限设置

文章目录 Linux的账户和用户组用户标识符:UID与GID用户账号用户组:有效与初始用户组groups,newgrp 账号管理新增与删除用户:useradd、相关配置文件、passwd、usermod、userdel用户功能:id、finger、chfn、chsh新增与删…

HANA VIEW 用 ABAP 创建CDS VIEW,在生成ODATA

这里我们做ADT来创建 场景介绍:把hana中的一个底表,创建成ABAP的 CDS VIEW ,在把CDS VIEW 生成 OData 服务。 一、创建CDS Table Function 红框内根据自身情况填写 选择 Define Table Function with Parameters 创建 Data Definition 完整代码,定义 结构 , 也可以定义参…

centos7安装jdk详细步骤(yum安装与手动安装)

centos7安装jdk详细步骤(yum安装与手动安装) 一、使用yum安装1. 准备工作2. 检查系统是否自带jdk3. 安装jdk 二、手动安装jdk1. 下载上传jdk2. 安装jdk3. 配置环境变量 一、使用yum安装 1. 准备工作 如果你的机器可以联网可以使用此方法 ping www.baidu…

Java基础学习笔记二

Java的加载与执行 Java既是编译型语言又是解释型语言 question:为什么JVM可以跨平台执行 answer : Java虚拟机(JVM)之所以能够跨平台执行,是因为它在不同操作系统上提供了一个统一的运行环境,实现了Java程…

‘‘ is not a package AttributeError: module ‘‘ has no attribute ‘__path__‘报错解决

报错: No module named ‘ldm.util’; ‘ldm’ is not a package AttributeError: module ‘ldm’ has no attribute ‘__ path__’ 原因: 1.首先这个引用没有被画横线,说明包存在,并且也在包目录底下添加了__init__.py文件 &am…

C++ Qt开发:QUdpSocket实现组播通信

Qt 是一个跨平台C图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用QUdpSocket组件实现基于UDP的组播通信…

四川易点慧电子商务抖音小店:值得信赖的购物新选择

随着互联网的飞速发展,电子商务平台如雨后春笋般涌现,为消费者提供了前所未有的购物便利。在众多电商平台中,四川易点慧电子商务抖音小店以其独特的魅力和优质的服务,赢得了广大消费者的青睐和信任。 四川易点慧电子商务抖音小店以…

C++中的Union: 内存与类型转换技巧

在C中,union是一种特殊的数据类型,允许在相同的内存位置存储不同类型的数据。union提供了一种高效地利用内存的方式,但同时也要求开发者更加小心地处理数据以避免类型错误。 1. 基本定义 union定义了一个可以存储多种类型但任意时刻只能存储…

Python之进程池、阻塞模式、非阻塞模式、进程间的通信、queue

非阻塞模式 # 当需要创建的子进程数量不多时,可以直接利用multiprocessing中的Process动态成生多个进程 # 但如果是上百甚至上千个目标,手动的去创建进程的工作量巨大,此时就可以用到multiprocessing模块提供的Pool方法. # 初始化Poo1时&…

Gif动态闪图如何制作?教你1分钟快速制作

动态文字闪图是一种独特而有趣的图像效果,通过将文字以闪烁、跳动或变换的方式呈现,给人一种动态感和视觉冲击力。如果你想制作自己的动态文字闪图,下面是一些简单的方法来帮助你完成这个任务。使用在线闪图制作网站-GIF5工具网,无…

【09】进阶JavaScript事件循环Promise

一、事件循环 浏览器的进程模型 何为进程? 程序运行需要有它自己专属的内存空间,可以把这块内存空间简单的理解为进程 每个应用至少有一个进程,进程之间相互独立,即使要通信,也需要双方同意。 何为线程? 有了进程后,就可以运行程序的代码了。 运行代码的「人」称之…

算法之位运算

常见的位运算操作: 首先先熟悉一下常见的位运算操作: 1. 基础位运算 左移<<, 右移>>, 按位与&, 按位或|, 按位异或^, 按位取反~ 注意: 异或其实是一种无进位相加. 2. 给定一个 n, 确定它的二进制表示中第x位是 0 还是 1 n & (1<<x) 或者 (n>…

软件工程-第11章 内容总结

如果不想读这本书&#xff0c;直接看这一章即可。 11.1 关于软件过程范型 11.2 关于软件设计方法

微信小程序开发学习笔记——4.4常见的导航栏api接口

>>跟着b站up主“咸虾米_”学习微信小程序开发中&#xff0c;把学习记录存到这方便后续查找。 课程连接&#xff1a;https://www.bilibili.com/video/BV19G4y1K74d?p29&vd_source9b149469177ab5fdc47515e14cf3cf74 一、属性 界面 / 导航栏 / wx.showNavigationBar…

Vue3+.NET6前后端分离式管理后台实战(四)

1&#xff0c;Vue3.NET6前后端分离式管理后台实战(四)已经发布&#xff0c; 程序源码已打包&#xff0c;感兴趣的可以关注下载。 2&#xff0c;源码打包可以下载&#xff1a;

leecode1793 | 好子数组的最大分数 | 求给高度矩阵最大值

题目我就不念了&#xff0c;就一个字难理解&#xff0c;给的题总是这么难懂&#xff0c;总感觉出题人的语文是体育老师教的&#xff1f; 还有就是思维转变&#xff0c;才能能好的理解&#xff1f;一味的钻牛角尖死理解&#xff0c;效果不好 思维的转变 >悟性&#xff1f;&am…

幼儿教育管理系统|基于jsp 技术+ Mysql+Java的幼儿教育管理系统设计与实现(可运行源码+数据库+设计文档)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含java&#xff0c;ssm&#xff0c;springboot的平台设计与实现项目系统开发资源&#xff08;可…

深入理解Ubuntu22:探索Linux操作系统的功能与应用

一、linux &#xff08;一&#xff09;、安装 1、电脑可以安装双系统&#xff0c;即在一套硬件上只能同时运行一个操作系统&#xff0c;例&#xff1a;C盘安装win&#xff0c;D盘安装linux。 2、虚拟机 虚拟机需要硬件支持&#xff0c;并需开启VT-x. 如&#xff1a;Virtual…

气象ARWpost、grads 等使用的ctl和dat格式的grd 二进制文件

气象ARWpost、grads 和 Fortran使用的ctldat格式的grd 二进制文件&#xff0c;在Python中可以用xgrads包来读取或者转成nc 格式使用。 xgrads包官网说明地址&#xff1a;https://xgrads.readthedocs.io/en/latest/ 示例1&#xff0c;打开多个空间场相同&#xff0c;时间不同的 …