self-attention(李宏毅老师系列)

自学参考:
Transformer:Attention Is All You Need
视频课
课件+资料
笔记

一、引入

  • 应用场景:输入任意长度的向量进行处理

  • 从输入看:

    • 文字处理(nlp)
      • one-hot
      • word-embedding
    • 声音信号处理
      每个时间窗口(window,25ms)视为帧(frame),视为向量
    • graph
      每个节点视为一个向量
      • social graph
      • 分子式one-hot
  • 从输出看:

    • sequence labeling:输入输出数量相等(每个向量都有一个标签)
      • 词性标注POS tagging
      • 语音标识(每个vector对应音素phoneme
      • 社交网络(每个节点(person)进行标注(是否推送商品)
    • 整个输入序列只有一个输出
      • 文本情感分析
      • 语音辨认
      • 分子的疏水性
    • 由模型决定输出的数目(seq2seq)
      • 翻译
      • 语音辨识
  • Sequence Labeling

    • 对每一个向量用Fully-connected network分别进行处理
      • 问题:忽略了序列上下文的关系
        同一个向量在序列号中不同的位置、不同的上下文环境下,得到的输出可能不同(需要考虑序列)
      • 改进:串联若干个向量
        问题:
        • 只能考虑固定个数,不能考虑任意长度
        • 网络参数大

二、hello,self-attention

  • 特点:考虑整个序列sequence的所有向量,综合向量序列整体和单个向量个体,得到对每一个向量处理后的向量
    ⇒把这个向量连接一个FC,FC可以专注于处理该位置的向量,得到对应结果
    在这里插入图片描述
  • self-attention(关注整体)和fc(关注单个)可交替使用
    在这里插入图片描述

基本原理

  • 输入:a set of vectors,可能是整个network的input,也可能是某个hidden layer的output
  • 输出:处理input后,b是考虑了所有的a才生成的

在这里插入图片描述

具体步骤

  1. 根据 a 1 a^1 a1这个向量,找出整个sequence中与 a 1 a^1 a1相关的其他向量
    ⇒哪些部分是重要的(判断label,决定class,决定regression数值)用 α \alpha α表示
    在这里插入图片描述

  2. 计算Attention的模组:拿两个向量作为输入,输出 α \alpha α
    q q q=query
    k k </

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值