Self-Attention (自注意力机制)

本篇文章是机器学习的笔记(简化版)

Self-Attention的优势

  • 并行化处理:self-attention允许模型同时处理序列中的所有元素,这与传统的递归/循环神经网络(RNN)相比,RNN需要按顺序处理序列,self-attention可以并行化计算,大大提高了训练效率。
  • 长距离依赖捕捉:self-attention能够捕捉序列中任意两个元素之间的关系,无论它们在序列中的距离有多远。
  • 多头注意力:通过多头注意力进一步增强,允许模型同时从不同的表示子空间捕捉信息。
  • 相对位置编码:通过相对位置编码来增强使模型能够理解序列中元素的相对位置关系。

Self-Attention工作过程

我在刚看到有关self-attention的解析的文章时,总是会看到q,k,v这三个东西,只是知道相乘,但是具体细节也不是太了解,直到看了相关的课程,才略懂一下。

课程链接:2021 - 自注意力机制 (Self-attention)

假设现在有一个input是包含四个单词的句子,一个单词我们视为一个vector,四个vector分别叫做a1~a4,self-attention的目的就是要得到这一整个句子(sequence)的四个词之间的关系,如下图,我们需要求出的值就是vector b1b4,以及a1a4的关系值α(α也叫attention score).
在这里插入图片描述

α(attention score)求法 Dot-product

有很多种方法来求解这个α的模组,例如Dot-product,additive……课程里主要讲解了Transformer中常用的Dot-product.

Tips:inner-product = Scalar-product = Dot-product 计算方式都是相同位置数值相乘再求和
Dot-product

根据α求b1

分解如何从a1a4得到α然后再进一步算出b1b4,一共可以分为两步(画图太难了,以下展示手稿):
step1
step2
经过以上两步就可以求出b1的值了

矩阵乘法的角度

从输入矩阵得到QKV矩阵的过程如下,就是分别乘以一个权重矩阵,Wq,Wk,Wv.

从input矩阵得到QKV的过程
在这里插入图片描述
step2,从A->O
在整个Self-attension计算过程中,只有权重矩阵Wq,Wk,Wv是需要通过学习learn出来的,其他的都是已知的或者人为设定的。
矩阵乘法

Multi-head Self-attention

多头注意力机制和之前说所的不同的地方在于得到q,k,v之后,再乘以heads个数不同矩阵,再次得到两个不同的向量,然后之后处理的步骤差不多,只不过再求解b(i,1) 时,所使用的数据都是与之对应的q(i,1),k(i,1),v(i,1)。
Mutil-head
得到b(i,1)与b(i,2)之后,再与一个矩阵Wo相乘得到最后的bi.

Positional Encoding

我们上文所述的都是没有提到位置信息的

例如:一个四个词的句子为 I saw a saw,那么在上面所说的作为四个向量a1~a4输入时,是没有顺序的概念而言的,但是实际上,如果我们要完成的任务时对一个sequence的词性进行分类,那么它在sequence中的位置时相当重要的,这个时候就引进了一个位置编码(positional encoding)的概念.

其实在就是最开始input的向量时,加上一个位置编码的vector,这个位置编码的vector一般称为e,现存有许多种方式,但是仍然是一个尚待研究的问题 。
positional encoding

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值