• 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 不同的信息。

  • 相关阅读:
    利用正則表達式排除特定字符串
    js面向对象编程:this究竟代表什么?
    js调用父级frame中的方法
    Cocos2d-x动画工具类
    BZOJ 2466 中山市选2009 树 高斯消元+暴力
    Android Intent Scheme URLs攻击
    XML基础(一)
    【Life】 Never Too Late, Just Do it Better!
    代理模式
    HDU--Elevator(水题)
  • 原文地址:https://www.cnblogs.com/BlueBlueSea/p/13137757.html
Copyright © 2020-2023  润新知