Self-Attention机制学习

Self-Attention机制学习

注意力机制解决问题

  • CNN网络用输入是 一个向量 比如图像处理之后 3x224x224 所有图片大小一致
  • 但是输入可以是一排向量 并且每行长度都不一样
    • 文字处理–句子长度不一样 vector set 长度不一样 常规做法one-hot encoding 问题:向量里面没有语义 另一个方法: word embedding
    • 一段语音 每个window包含的语音信息都是不一样的
    • 关联图 其实每个节点可以看作一个向量

对应输出

  • each vector has a label(输出和输入一样) 比如说: 词性标注

    • I saw a saw pos tagging: N V DET N
  • 输出只有一个label

    • 比如情感分类之类的
  • 输入N个 输出M个 : seq2seq

    • 比如翻译任务

Sequence labeling(序列标注问题)

利用全连接网络,输入一个句子,输出对应单词数目的标签。当一个句子里出现两个相同的单词,并且它们的词性不同(例如:I saw a saw. 我看见一把锯子),这个时候就需要考虑上下文:利用滑动窗口,每个向量查看窗口中相邻的其他向量的性质。

  • is it possible to consider the context ?
    • FC can consider the neighbor
  • how to consider the whole sequence ?
    • a window covers the whole sequence?
    • 每个input长度不一致

self-attention 基本步骤

[1706.03762] Attention Is All You Need (arxiv.org)

首先来看下整个过程

在这里插入图片描述
在这里插入图片描述

由此可以看出整个过程基本分为三步

**1.计算 Q 和 K 的 关联性 **
  • 什么是Q,K?

    • Q:queries K:key Q表示查询 K表示关键词 借鉴推荐系统中的含义 根据Q与K计算关联性然后推荐V(但是self-attention的目标不是单纯的抽取V)
  • 为什么Q*K计算自己的关联性

    • 首先我们知道计算矩阵的内积 X X T XX^T XXT的意义在于表征一个向量在另一个向量上的投影, 也就是两个向量之间的关联性
  • 为什么不用** X X T XX^T XXT**

    • 我认为有以下几点好处
      1. Q,K 通过空间变换矩阵 将输入分别变化为Q,K 解决了输入长度不一致的问题
      2. 通过中间的变换 减少了计算量 $(seqLen \times inputDim \times inputDim \times seqLen) \ 变换成了 Q(seqLen \times inputDim \times inputDim \times dimK) \ K(seqLen \times inputDim \times inputDim \times dimK) \ 最后QK(seqLen \times seqLen ) $
      3. 通过中间层 学习到了 非线性特征
2.对关联性进行softmax处理
  • 为什么要除以 d k \sqrt{d_k} dk ?
    • 论文中提出的观点是 加性注意力在 d k d_k d
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值