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

news2024/11/25 16:35:18

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.coloradmin.cn/o/1531258.html

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

相关文章

ArmSoM Rockchip系列产品 通用教程 之 RTC 使用

1. RTC 简介​ RTC:(Real_Time Clock):实时时钟 HYM8563是一种低功耗实时时钟(RTC)芯片,用于提供精确的时间和日期信息。它提供一个可编程的时钟输出,一个中断输出和一个掉电检测器,所有的地址…

HTML实现卷轴动画完整源码附注释

动画效果截图 页面的html结构代码 <!DOCTYPE html> <html> <head lang=

福克斯2010 1.8L 手动档

老车了记录点东西 好看也便宜 福克斯维修保养费用调查_保养维护_车系文章_空港平行进口汽车交易服务中心 https://tjautoland.net/article-40.html 福克斯自从上市后&#xff0c;凭借其时尚动感的外形、良好的操控性和极佳的驾乘舒适度&#xff0c;在国内紧凑型市场上持续热…

最新ChatGPT/GPT4科研应用与AI绘图及论文高效写作教程

原文链接&#xff1a;最新ChatGPT/GPT4科研应用与AI绘图及论文高效写作教程https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247598050&idx5&sn70fd3f5946d581ad9c1363295b130ef5&chksmfa823e05cdf5b713baf9cf1381bfb2455ad675a0b21e194bef8b76f35d6aa77…

人工智能快速发展:AI机器人是否能全面替代人工客服?

随着人工智能技术的飞速发展&#xff0c;AI机器人在各个领域的应用越来越广泛。其中&#xff0c;人工客服行业也开始出现了AI机器人的身影。然而&#xff0c;能否完全将人工客服替换为AI机器人仍存在许多争议。 本文将从AI快速发展的背景出发&#xff0c;分析AI机器人取代人工…

SAP SD UKM_ITEMS_READ 信贷风险总额

这几天&#xff0c;业务怀疑 信贷金额不对&#xff0c;来查数据&#xff0c;发现信贷风险总额 是从UKM_ITEMS_READ获取的&#xff0c;但是具体数据在哪里&#xff0c;还是不确认。 最终咨询老师后&#xff0c;提供了文档 SAP S4 HANA信贷管理之信贷未清表_ukm_commts_delete-CS…

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

1&#xff0c;Vue3.NET6前后端分离式管理后台实战(五)已经在订阅号发布有兴趣的可以关注一下&#xff01; 2&#xff0c;有兴趣请扫码关注谢谢&#xff01;

阿里云服务器配置openssh-server支持ssh客户端远程终端登陆

登陆云服务器: 成功登陆 更新包: 更新完成 升级最新包 选择YES 空格选中所有并点击ok

【鸿蒙系统】 ---OpenHarmony加快本地编译(二)

&#x1f48c; 所属专栏&#xff1a;【鸿蒙系统】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f496; 欢…

【3DsMax】UVW展开——以制作牙膏盒为例

效果 步骤 1. 从网上下载牙膏盒贴图&#xff0c;我下载的贴图地址为&#xff08;牙膏盒贴图链接&#xff09; 2. 打开3DsMax&#xff0c;创建一个长方体&#xff0c;设置长宽高分别为180、45、40毫米 打开材质编辑器&#xff0c;点击漫反射后的按钮 双击“位图” 将材质赋予长…

C++初阶 | [九] list 及 其模拟实现

摘要&#xff1a;介绍 list 容器&#xff0c;list 模拟实现&#xff0c;list与vector的对比 list&#xff08;带头双向循环列表&#xff09; 导入&#xff1a;list 的成员函数基本上与 vector 类似&#xff0c;具体内容可以查看相关文档(cplusplus.com/reference/list/list/)&…

JavaScript中new操作符具体干了什么

文章目录 一、是什么二、流程三、手写new操作符 一、是什么 在JavaScript中&#xff0c;new操作符用于创建一个给定构造函数的实例对象 例子 function Person(name, age){this.name name;this.age age; } Person.prototype.sayName function () {console.log(this.name) …

【堆、位运算、数学】算法例题

目录 十九、堆 121. 数组中的第K个最大元素 ② 122. IPO ③ 123. 查找和最小的K对数字 ② 124. 数据流的中位数 ③ 二十、位运算 125. 二进制求和 ① 126. 颠倒二进制位 ① 127. 位1的个数 ① 128. 只出现一次的数字 ① 129. 只出现一次的数字 II ② 130. 数字范围…

Java项目:66 ssm实验室耗材管理系统设计与实现+jsp

作者主页&#xff1a;源码空间codegym 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 管理员管理实验材料&#xff0c;审核教师与学生对实验材料的申请信息&#xff0c;统计每学年实验材料的使用总数信息。 教师申请使用实验材料…

未来有无限可能,加油年轻人!

在浩渺的宇宙中&#xff0c;我们如同微尘般渺小&#xff0c;然而&#xff0c;正是这些微小的存在&#xff0c;构成了世界的五彩斑斓。而对于年轻人来说&#xff0c;他们就是这个世界的未来&#xff0c;是希望的象征&#xff0c;是无限可能的源泉。他们拥有青春的热情&#xff0…

什么是智能体(agent)

智能体&#xff08;Agent&#xff09;是人工智能领域中的一个核心概念。在最基本的层面上&#xff0c;智能体可以被定义为一个实体&#xff0c;它能够在其所处的环境中自主地感知信息&#xff0c;并根据这些信息做出决策&#xff0c;以实现特定的目标或任务。智能体的关键特性包…

idea将Java代码打成jar包

1.进入idea的项目管理界面编写好代码 2.点击Artifacts的“”号下的jar->“From modules with dependencies” 3.在Main Class选择主函数 4.点击OK后&#xff0c;选择菜单栏的“Build” -> “Build Artifacts” -> “Build” 之后我们就可以看到在左侧生成了一个out文件…

生成单一c段或者连续c段范围内的所有ip地址+生成范围内C段脚本

1. 背景 马上有电子政务外网攻防演练要处理ip 2. 脚本1 生成c段和连续c段所有ip地址.py 用处&#xff1a;生成单一c段或者连续c段范围内的所有ip地址。 用法&#xff1a;ipc.txt 放入 ip段或者两个ip段范围&#xff1a;如&#xff1a; 192.168.3.0/24 172.16.1.0/24-1…

罐头鱼AI视频混剪矩阵获客系统|批量剪辑定时发送

罐头鱼AI视频混剪矩阵获客系统 随着数字化时代的来临&#xff0c;视频内容已经成为各行业吸引用户关注和提升品牌形象的重要方式之一。为了帮助用户更便捷、高效地进行视频制作和推广&#xff0c;罐头鱼AI推出了全新的视频混剪矩阵获客系统&#xff0c;为您的视频营销增添智能利…

使用Python读取一个文本文件并计算其中每个单词出现的次数

import re import matplotlib.pyplot as plt from collections import Counter word_counts {} with open(E:\自然语言处理\Hamlet(2).txt) as f:for line in f:words line.strip().lower().split()for word in words:word re.sub(r[^a-zA-Z],,word)if word in word_counts:…