zoukankan      html  css  js  c++  java
  • Attention历史梳理

    https://zhuanlan.zhihu.com/p/77307258,这篇写的简直太好了,不愧是阿里啊!

    https://www.infoq.cn/article/lteUOi30R4uEyy740Ht2

    1.attention计算分为三步

    •  score-function:打分部分

    • normalize(alignment function) 对齐部分:

    • generate context vector function 生成部分:

    又根据key==value这样,分为普通模式和键值对模式:

    2.score-function不同

    也就是计算相似度的方式不同,可以通过点乘/cos相似度/MLP实现 

    3. alignment function不同

    也就是求权重的方式不同,分为global/local attention ,local 是部分输入向量才能进入这个池子。有local-m 和 local-p两个方案。

    但好像local增益不大。

    4.generate context vector function不同

    soft/hard att。

    hard attention 是一个随机采样,采样集合是输入向量的集合,采样的概率分布是alignment function 产出的 attention weight。因此,hard attention 的输出是某一个特定的输入向量。

    soft attention 是一个带权求和的过程,求和集合是输入向量的集合,对应权重是 alignment function 产出的 attention weight。

    硬注意力机制的缺点:

    5.并行

    RNN 由于递归的本质,导致无法并行。CNN 在 NLP 中扮演了 n-gram 的 detector 角色,在层内可以并行。

    它的 perceptive field 是整个句子,所以任意两个位置建立关联是常数时间内的。

    没有了递归的限制,就像 CNN 一样可以在每一层内实现并行。

    self-attention 借鉴 CNN中 multi-kernel 的思想,进一步进化成为 Multi-Head attention

    关于transform中的上面这个图我看不太懂,是什么意思呢?就maskeddecoder这个部分看不懂。

    6.为什么att有用?

    是因为它懂得了"context is everything"。

    语言模型(language model)是整个 NLP 领域的基础,语言模型的精准程度基本上直接掌握所有 NLP 任务效果的命脉。而 context 又掌握着语言模型的命脉,语义不孤立,在特定 context 下展示特定的一面模型如果可以学习到这些知识,就可以达到见人说人话,见鬼说鬼话的理想状态。

    在语义表达上能把 context 用好的都是成功的典范:

    • word2vec 靠学习 word 及其 context 发家,
    • ELMo-deep contextualized word representations
    • BERT 从句子中抠掉一个词用上下文去预测这个词
    • transformer-xl 较 transformer 使用更全面的 context 信息
    • XLNet 一大重要贡献也是研究如何使用上下文信息来训练语言模型

    Attention 背后本质的思想就是:在不同的 context 下,focusing 不同的信息。

  • 相关阅读:
    TriSun PDF to X v11.0 Build 061
    资源管理器 Q-Dir v8.09
    USB启动盘创建工具 Rufus
    Docker:网络模式详解
    rsync使用实践
    MySQL 8.0 防止暴力破解
    MySQL-8.0.19 优化日志及压测
    MySQL入门篇之mysqldump参数说明
    rest-framework之视图
    rest-framework之权限组件
  • 原文地址:https://www.cnblogs.com/BlueBlueSea/p/13137757.html
Copyright © 2011-2022 走看看