• 理解Attention机制的query key value


    背景

    Attention机制引入前,自然语言处理里的深度学习模型有以下缺点:

    • 长序列的推理存在信息损失/梯度消失:输入序列越长,模型越难保存初始输入信息。
    • 运算量大并且不能并行:RNN的每一步推理都是基于上一个步的结果。

    Attention的定义

    Attention Is All You Need 文章中,它的定义是这样的:

    An attention function can be described as mapping a query and a set of key-value pairs to an output, where the query, keys, values, and output are all vectors.

    这么说有点抽象,我们用搜索引擎(信息检索)做个类比:

    1. 当你用上网查东西时,你会敲入一句关键词,这个就是query
    2. 搜索系统会根据关键词这个去查找一系列相关的keys,比如文章标题,图片标题。
    3. 最后系统会将相应的 values 比如具体的文章图片 返回给你。

    Attention机制做就是根据query找出(或者将注意力集中到)相关的keys 和它们对应的 values

    Attention的例子

    这是Attention机制的一个实例,名字叫Scaled Dot-Product Attention。下面我们结合一个具体的应用例子来解释:

    请添加图片描述

    例子

    请找出这个文本里跟 “计划” 这个词相关性最大的词语,及其特征向量。

    今天 我 的 计划 是 买菜
    
    • 1

    预处理

    1. 先将文本切成n个词,并做Embedding,得到每个词所对应的向量。比如
    • “今天”: embedding_1 (下标 0)
    • “我”: embedding_2 (下标 1)
    • 等等
    1. 然后初始化K以及V矩阵:
    • K (keys)目的是:根据Q (query)找到文本中相关的一个或者多个词语
    • V (values)目的是:根据上述计算出来一个或多个词语的权重来对这些词语的向量进行综合加权,并得到加权向量。
    1. 然后训练模型。

    Attention 推理

    1. MatMul: 将Q (query)所对应的embedding与K矩阵相乘,得到一个长度为n = 6的向量。
    2. Scale: 使这个向量的方差为1(避免训练过程中模型的太小梯度消失)
    3. Mask: 这步是可选的,因为在批量训练中,为了使不同输入数据有相同的长度,我们会加padding,而Mask这部就是想padding给去除。同时在decoder过程中,为了避免decoder作弊用未来的输入数据当作输入输入,我们会Mask掉用于接收未来信息的神经元。
    4. SoftMax: 得到一个长度为n并且 总和 为1 的向量。这n个值里面最大的数对应的下标就是我们要找的相关性词语的下标。(“买菜”: embedding_5 下标5)
    5. MatMul: 这里我们将该向量与V (values)相乘,得到最后的一个特征向量加权。

    至此,Attention模块推理结束。

    参考文献

    • https://stats.stackexchange.com/questions/421935/what-exactly-are-keys-queries-and-values-in-attention-mechanisms
    • https://www.jianshu.com/p/9d5706fa582d
    • https://arxiv.org/pdf/1706.03762.pdf
    • https://stats.stackexchange.com/questions/430812/why-k-and-v-are-not-the-same-in-transformer-attention
  • 相关阅读:
    linux入门到精通-第一章-文件目录
    【VPX302】基于3U VPX总线架构的高性能数据预处理平台
    c#设计模式-行为型模式 之 中介者模式
    Win11缺少dll文件怎么办?Win11系统找不到dll文件修复方法
    数字IC前端笔试常见大题整理(简答+手撕)
    1 了解有关批处理和DOS的知识
    D. In Love-Codeforces Round 905 (Div. 3)
    java商城免费搭建 VR全景商城 saas商城 b2b2c商城 o2o商城 积分商城 秒杀商城 拼团商城 分销商城 短视频商城
    ai人工智能电话机器人应用市场分析
    BlockCanary原理解析
  • 原文地址:https://blog.csdn.net/Site1997/article/details/127996057