【王树森】RNN模型与NLP应用(8/9):Attention(个人向笔记)

前言

  • 基于RNN的Seq2Seq模型无法记住长序列
  • Attentnion机制可以大幅度提升Seq2Seq模型

Seq2Seq Model with Attention

  • Attention可以让句子在逐步变长的时候不忘记前面的输入信息
  • Attention还可以告诉Decoder应该关注哪一个状态
  • 优点:Attention可以大幅度提高准确率
  • 缺点:Attention计算量比较大

Simple RNN + Attention

  • 需要计算最后一个输出的状态和前面所有状态的相关性(权重),把这个权重记为 α i \alpha_i αi,所有的权重总和为1
    • 计算方法1(原版) :①把 h i h_i hi 和 s 0 s_0 s0 做concatenation,②然后和一个矩阵 W W W(需要被训练的参数)相乘后丢到 tanh 激活函数里面使其范围变为 − 1 , 1 -1,1 −1,1 ,③然后再和 v T v^T vT 做内积得到一个实数。④最后把所有的权重做一个Softmax。
    • 计算方法2(更流行,和Transformer一致) :①将 h i h_i hi 与 W K W_K WK(需要被训练的参数) 相乘得到 k i k_i ki,将 s 0 s_0 s0 与 W Q W_Q WQ(需要被训练的参数) 相乘得到 q 0 q_0 q0,其中 k i k_i ki 和 q 0 q_0 q0 都是一维的向量。② k i T q 0 k^T_iq_0 kiTq0 得到权重 α i ~ \tilde{\alpha_i} αi~。③对所有的 α i ~ \tilde{\alpha_i} αi~ 做 Softmax即可得到权重。
  • 我们对所有的 h i h_i hi 利用刚刚算出的权重计算加权平均得出一个向量 c 0 c_0 c0,其中一个 c c c 对应一个 s s s,计算出的加权平均向量被称为 Context vector。
  • 对于更新状态来说,之前的Simple RNN是这样的,它不会去看前面的状态,而是只会看最后一个
  • 而有Attention后更新状态还会把之前的信息 c 0 c_0 c0 考虑进去,也就是还会把前面的信息考虑进去,这样就把RNN遗忘的问题解决了
  • 而对于后续的状态 s i s_i si 重复前面的步骤即可,注意每次权重 α i \alpha_i αi 都需要重新计算后得出 c i c_i ci
  • Question: 有多少权重 α i \alpha_i αi 被计算了?
    • 对于每一个 c i c_i ci ,我们都i需要用 s i s_i si 来计算 m m m 个权重
    • 假设 Decoder 有 t t t 个状态,那么总共就需要计算 m t mt mt 次
    • 这个时间复杂度是很高的!
  • 权重可视化 :在下面的图中,连线表示相关性,连线越粗,相关性越强。而可以看到Area和zone有比较粗的连线,而英语中的Area就对应法语中的zone:权重指导Decoder关注Encoder中正确(如zone会特别关注Area)的状态,从而生成正确的翻译

Summary

  • 之前的Seq2Seq模型:Decoder只会关注最后一个状态,容易导致遗忘
  • Attention则会关注Encoder的所有状态
  • Attention还会指导Decoder关注的侧重点
  • 缺点:更高的计算复杂度,之前的模型只需要 O ( m + t ) O(m+t) O(m+t) 的复杂度,而Attention则需要 O ( m t ) O(mt) O(mt) 的复杂度,其中 m m m 是源序列的长度, t t t 是目标序列的长度
相关推荐
空堂与归8 小时前
迁移学习怎么落地?Transformers 库微调实战
人工智能·机器学习·自然语言处理·transformer·迁移学习
猎头南楼9 小时前
VLA 模型落地端侧:从架构选型到量化部署的工程实践笔记
笔记·架构·大模型
Capricorn19889 小时前
日志级幻觉排障:GPT-6 Astra 迈入 AGI 时代,知芽 Notebook Skill 如何以引用校验与零命中诚实弃权解决长文失忆
论文阅读·人工智能·笔记·gpt·agi
疯狂打码的少年10 小时前
【数据库技术】多值依赖与第四范式(4NF)
数据库·笔记·算法
tq108610 小时前
算法的另一面
笔记
点心的游戏开发世界12 小时前
GDScript 入门笔记(五):函数
笔记·游戏引擎·godot
wp123_113 小时前
硬件设计笔记:1μH功率电感选型实战——线艺 XFL4020-102MEC 与 国产 pin to pin MVLH4020-1R0M 详细参数测评
笔记·科技·硬件架构·硬件工程
摇滚侠14 小时前
《SpringBoot 3:入门与应用实战》第 14 章 打包与部署 Spring Boot 应用打包 阅读笔记 41
spring boot·笔记·后端
金立基包装胶水14 小时前
纸袋热封胶常见都有哪些问题?
大数据·笔记·其他
leoZ23114 小时前
第 6 篇:SchemaForm 渲染器核心实现
前端·javascript·vue.js·人工智能·神经网络·机器学习·自然语言处理