前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >自注意力机制(Self-attention)

自注意力机制(Self-attention)

作者头像
卡伊德
发布2022-09-13 15:07:24
1.3K0
发布2022-09-13 15:07:24
举报
文章被收录于专栏:caidblog

自注意力机制(Self-attention)

背景

最近,学了好多东西,今天看了一下李飞飞老师讲解的自注意力机制,因此在这记录一下,以供日后复习,同时自己学习消化知识也好。

综述

一般来说,模型的输入输出有三种:

  • N个输入,经过模型计算后,输出N个结果,也就是对输入向量进行计算,从而得到每个向量对应的输出值。
  • N个输入,送入模型进行计算,最终得到一个结果。这就是平时常见的比如,文本分类、情感分析等。
  • 任意个输入,输出任意个输出。这种在生活中也较为常见,比如机器翻译,对于一句话,不同的语言会包含不同个词。

此文先讲讲第一种,也就是说N个输入,得出N个结果,这种模型一般形式如下图所示。

在图中可以看到,a表示对输入数据进行处理之后,作为self-attention的输入,从而得到b。其中,在得到每个b的过程中,都会考虑到输入的每个元素,包括a1, a2, a3, a4。这样对于输出的结果更合理。

对于中间那一块深色的模块,就是自注意力机制的核心。在注意力机制中,首先需要计算注意力得分,比如:在进行计算第一元素时,需要考虑其他三个元素的情况,在计算第一个元素时,分别考虑其他每个元素的权重,给每个元素打分,重要性越大则分数越高。

其计算得分的流程如图下所示。

在上图中可以得到,自注意力机制在计算第一个元素时流程为:

  1. 首先,给输入向量每个元素,分别乘以两个举证Wq和Wk,从而计算出q1和ki。
  2. 然后,将q1和ki分别相乘,得到每个元素的分数。
  3. 为了得到更好的结果,对每个分数进行一次soft-max。

最后,将每个分数按图上公式进行计算,得到输出在计算每个元素时,对应考虑其他元素的注意力分数。

在得到分数之后,可以通过以下图得到b,具体如下图所示。

在上图中,结合计算注意力得分的图,可以看出,在得出注意力分数之后,在将分数和vi进行相乘之后,再进行加权求和,即可得到b1。用同样的分数可以的b2,b3,b4。

矩阵形式

为了方便计算,一般会通过矩阵形式来计算,如图所示。

在上图中可以清楚的看到,在进行自注意力中用矩阵形式进行计算过程。

其中I为输入向量进行拼接后的举证,Q、K、V矩阵为每个输入向量对应的q、k、v进行拼接后的矩阵。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/04/17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 自注意力机制(Self-attention)
    • 背景
      • 综述
        • 矩阵形式
        相关产品与服务
        机器翻译
        机器翻译(Tencent Machine Translation,TMT)结合了神经机器翻译和统计机器翻译的优点,从大规模双语语料库自动学习翻译知识,实现从源语言文本到目标语言文本的自动翻译,目前可支持十余种语言的互译。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档