当前位置: 首页 > news >正文

RNN模型与NLP应用——(9/9)Self-Attention(自注意力机制)

声明:

       本文基于哔站博主【Shusenwang】的视频课程【RNN模型及NLP应用】,结合自身的理解所作,旨在帮助大家了解学习NLP自然语言处理基础知识。配合着视频课程学习效果更佳。

材料来源:【Shusenwang】的视频课程【RNN模型及NLP应用】

视频链接:RNN模型与NLP应用(9/9):Self-Attention (自注意力机制)_哔哩哔哩_bilibili


一、学习目标

1.简单了解什么是自注意力机制

2.理解自注意力机制的底层逻辑


二、Self-Attention——自注意力机制

       我们上节课学习到使用Attention改进Sequence to Sequence模型,Sequence to Sequence模型有两个RNN神经网络(一个Encoder,一个Decoder)。我们今天要学习的是将Attention运用到一个RNN网络 上。


前言:

原论文讲的是将Attention与还能用在一个LSTM上,为了简单方便大家理解,本博客将Attention用在Simple RNN上。

Simple RNN与Attention的结合:

1.初始状态下,h0和C0都是全零向量。

标准的SimpleRNN是这样更新h状态向量的:

Self-Attention+Simple RNN是这样的更新h状态向量的:

       有了新的状态向量h后,我们就该计算新的C1(contect vector), 新的C1是已有状态向量的加权平均。

因为初始状态的h0是全零向量,因此第一个C1=h1

接下来我们更新状态向量h:

然后要计算下一个C,计算下一个C之前我们首先需要计算权重α。α公式如下:

h2将会拿h1做对比,拿h2自己做对比,计算出两个权重α1和α2。C2就是h1和h2的加权平均

按照此过程不断循环计算,计算出新的状态h和C

三、总结

1.self-attention就能解决遗忘的问题

        RNN都有遗忘的问题,比如分析电影评论是正面的还是负面的,如果评论太长,最后一个状态就记不住整句话,不能有效利用整句话的信息。

self-attention每一轮更新状态之前,都会用C看一遍之前所有状态,这样就不会遗忘之前的信息了

       self-attention和Attention的道理是一样的但是self-attention不局限于Sequence to Sequence模型,他可以作用于任何RNN模型

2.除了避免遗忘,Self-Attention还可以帮助RNN关注相关的信息

如下图所示:

红色部分是输入信息,而高亮标出的是权重很大的位置,这些α说明前面最相关的是哪一个

http://www.dtcms.com/a/106867.html

相关文章:

  • 1Panel 面板 宝塔面板 Ubuntu 24.04
  • 叁仟数智指路机器人是否支持远程监控和管理?
  • Rclone同步Linux数据到google云盘
  • 【SQL】MySQL进阶3:Innodb引擎结构,事务与ACID的实现
  • Apifox Helper 与 Swagger3 区别
  • 一个服务器算分布式吗,分布式需要几个服务器
  • 电子企业MES管理系统智能排产与动态调度优化
  • 化工网平台API接口开发实战:从接入到数据解析‌
  • 递归(实践版)
  • 阿里云AI Studio 2.0:拖拽搭建企业级智能客服系统
  • 信息学奥赛一本通 1611:仓库建设 | 洛谷 P2120 [ZJOI2007] 仓库建设
  • Cribl 创建路线Route
  • dubbo RPC协议
  • Unity Standard Shader 解析(二)之ForwardAdd(标准版)
  • <贪心算法>
  • 第四章、Isaacsim在GUI中构建机器人(3):添加摄像头和传感器
  • Java语言如何用AI实现文件报告的自动质检?
  • Vue3编译器深度解析:从模板编译到极致性能优化
  • 【NLP 面经 5】
  • 通过ansible+docker-compose快速安装一主两从redis+三sentinel
  • 获取最新浏览器驱动,并自动安装适配浏览器
  • 使用 Amazon Lightsail 启动并配置 WordPress 实例教程
  • LRU缓存是什么
  • DataFrame基础(不包含列删除及行相关操作)
  • error LNK2019: 无法解析的外部符号 __imp__XXXX,该符号在函数xxxxx中被引用
  • 45、Vue 中的动态组件
  • 深入理解多线程编程:从基础概念到实战应用
  • 【C++】类和对象(二)
  • 第三章 知识图谱赋能 RAG:构建结构化知识引擎
  • CoT-VLA:视觉-语言-动作模型的视觉思维链推理