attention注意力机制学习

2023-11-07

【参考资料】:

  1. 目前主流的attention方法都有哪些? - JayLou娄杰的回答 - 知乎

  2. 目前主流的attention方法都有哪些? - 张戎的回答 - 知乎

  3. Attention机制解读 - 高峰OUC的文章 - 知乎

  4. Transformer详解(一)——Attention机制详解 - 被包养的程序猿丶的文章 - 知乎

  5. 简说Seq2Seq原理及实现 - 陈猛的文章 - 知乎

  6. Attention机制简单总结 - 邱震宇的文章 - 知乎

注:本文的内容均来自上面所罗列的参考资料,只是在学习的过程中对所学的内容进行整理,感谢上面的各位大佬,让我这个nlp小白对attention有了一定的了解。


Attention机制的血缘关系:

encoder-decoder:

是一种神经网络的结构,常见的encoder和decoder可以是RNN、LSTM、GRU这些能够处理序列数据的模型。

在这里插入图片描述
seq2seq

任务:输入一个序列,输出一个序列。

主要部分:encoder和decoder,encoder首先处理输入序列中的每一个item(需要做embeeding处理),并且将其转换成一个向量(context向量),然后encoder将context向量传递给decoder,decoder根据context向量一个接一个的生成输出序列中的每个item。

在这里插入图片描述

Attention:

从上面的encoder和decoder结构seq2seq模型可以发现,encoder只把最后一个hidden state作为context向量喂给decoder,所以这种结构在处理长句子翻译问题的时候表现并不好。为解决这个问题,Attention应运而生,Attention使得模型能够关注输入序列中与目标相关的部分。

在这里插入图片描述

1. 什么要引入Attention机制?

循环神经网络已经的很强的记忆能力,但想要记忆长距离的信息需要更复杂的模型,需要更强大的计算能力,而往往在很多场合计算能力是一个瓶颈,使得不能一味增加模型的复杂度来提高模型效果。

2. Attention机制的理解

引入人脑处理信息过载的方式,只选择一些关键信息进行处理,来提高神经网络的效率。在图像识别中人的面部、文本中的标题以及文章首句等位置就是关键信息。

3. Attention机制有哪些?

按照认知神经学中的注意力,可以分为两类:

  • 聚焦式(focus)注意力:自上而下的有意识的注意力,主动注意--------是指有预定目的、依赖任务、主动有意识地聚焦于某一对象的注意力。
  • 显著性(saliency-based)注意力:自下而上的有意识的注意力,被动注意—基于显著性的注意力是由外界刺激驱动的注意力,不需要主动干预,也和任务无关;可以将max-pooling和门控(gating)机制来近似地看做是自下而上的基于显著性的注意力机制。

在人工神经网络中,注意力机制一般就特指聚焦式注意力。

4. Attention机制的原理

在这里插入图片描述

上面的图是QKV模型,假设输入为 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 q q q,Memory 中以( k k k, v v v)形式存储需要的上下文。感觉在 Q&A 任务中,这种设置比较合理,transformer 是采用的这种建模方式。 k k k 是 question, v v v是 answer, q q q是新来的 question,看看历史 memory 中 k k k 更相似,然后依葫芦画瓢,根据相似 v v v,合成当前问题的答案。

decoder中的信息定义为一个Query,encoder中包含了所有可能出现的词语,我们将其作为一个字典,该字典的key为所有encoder的序列信息。n个单词相当于当前字典中有n条记录,而字典的value通常也是所有encoder的序列信息。

注意力机制可以分为三步:

  • step1-信息输入:

    用X = [x1, · · · , xN ]表示N 个输入信息
  • step2-计算注意力分布α:

    Key=Value=X,则可以给出注意力分布

    α i = s o f t m a x ( s ( k e y i , q ) ) = s o f t m a x ( s ( X i , q ) ) α_i = softmax(s(key_i,q)) = softmax(s(X_i,q)) αi=softmax(s(keyi,q))=softmax(s(Xi,q))

我们将 α i \alpha_i αi称之为注意力分布(概率分布), s ( X i , q ) s(X_i,q) s(Xi,q)为注意力打分机制,有几种打分机制:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2RoGg8Yi-1604650084818)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20201106113934987.png)]

  • step3-根据注意力分布α来计算输入信息的加权平均:

    注意力分布 α i \alpha_i αi可以解释为在上下文查询q时,第i个信息受关注的程度,采用一种“软性”的信息选择机制对输入信息X进行编码为:

    a t t ( q , X ) = ∑ i = 1 N α i X i att(q,X) =\sum_{i=1}^{N}\alpha_iX_i att(q,X)=i=1NαiXi

这种编码方式为软性注意力机制(soft Attention),软性注意力机制有两种:普通模式(Key=Value=X)和键值对模式(Key!= Value )
[外链图片转存中...(img-2q9iKpt2-1604650084832)]


关于Attention的更多内容可以在开头的参考资料中进行查阅学习。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

attention注意力机制学习 的相关文章

  • 如何使用 python 中的 spacy 库将句子转换为问题 [请参阅下面的我的代码进行更正]

    我需要使用 python 中的 spacy 将任何句子转换为问题 我下面的代码太长了 我需要做更多的工作才能将任何句子完成为问题格式 现在在这段代码中我根据以下条件制定条件是形式 需要形式 有形式 做形式通过检查过去时和现在时 输入 尼娜拉
  • 使用 Hadoop MapReduce 的计算语言学项目构想

    我需要做一个关于计算语言学课程的项目 是否有任何有趣的 语言 问题 其数据密集程度足以使用 Hadoop MapReduce 来解决 解决方案或算法应尝试分析并提供 语言 领域的一些见解 但是它应该适用于大型数据集 以便我可以使用 hado
  • word2vec中单词的向量代表什么?

    word2vec https code google com p word2vec 是 Google 的开源工具 它为每个单词提供一个浮点值向量 它们到底代表什么 还有一篇论文关于段落向量 http cs stanford edu quoc
  • 下载变压器模型以供离线使用

    我有一个训练有素的 Transformer NER 模型 我想在未连接到互联网的机器上使用它 加载此类模型时 当前会将缓存文件下载到 cache 文件夹 要离线加载并运行模型 需要将 cache 文件夹中的文件复制到离线机器上 然而 这些文
  • 在Python或Sklearn中用整数值对具有字符串值的列变量进行编码

    如何用整数值对数据表中字符串类型的列值进行编码 例如 我有两个特征变量 颜色 可能的字符串值 R G 和 B 和技能 可能的字符串值 C Java SQL 和 Python 给定数据表有两列 Color gt R G B B G R B G
  • 如何计算两个文本文档之间的相似度?

    我正在考虑使用任何编程语言 尽管我更喜欢 Python 来从事 NLP 项目 我想获取两个文档并确定它们的相似程度 常见的方法是将文档转换为 TF IDF 向量 然后计算它们之间的余弦相似度 任何有关信息检索 IR 的教科书都涵盖了这一点
  • 比较文本文档含义的最佳方法?

    我正在尝试找到使用人工智能和机器学习方法来比较两个文本文档的最佳方法 我使用了 TF IDF Cosine 相似度和其他相似度度量 但这会在单词 或 n gram 级别上比较文档 我正在寻找一种方法来比较meaning的文件 最好的方法是什
  • 这个 NLP 问题层次结构描述中的最大池化是什么类型

    我正在尝试实现这个描述以及我所做的 我生成了形状的 uni gram bi gram tri gram 15 512 使用填充 然后对于每个单词 我连接三个特征向量 3 512 然后我向他们申请 Globalmaxpooling1D 我不知
  • 使用我自己的训练示例训练 spaCy 现有的 POS 标记器

    我正在尝试在我自己的词典上训练现有的词性标注器 而不是从头开始 我不想创建一个 空模型 在spaCy的文档中 它说 加载您想要统计的模型 下一步是 使用add label方法将标签映射添加到标记器 但是 当我尝试加载英文小模型并添加标签图时
  • Blenderbot 微调

    我一直在尝试微调 HuggingFace 的对话模型 Blendebot 我已经尝试过官方拥抱脸网站上给出的传统方法 该方法要求我们使用 trainer train 方法来完成此操作 我使用 compile 方法尝试了它 我尝试过使用 Py
  • Spacy 中的自定义句子分割

    I want spaCy使用我提供的句子分割边界而不是它自己的处理 例如 get sentences Bob meets Alice SentBoundary They play together gt Bob meets Alice Th
  • 将单引号替换为双引号并排除某些元素

    我想用双引号替换字符串中的所有单引号 但出现的情况除外 例如 n t ll m 等 input the stackoverflow don t said hey what output the stackoverflow don t sai
  • 将 python NLTK 解析树保存到图像文件[重复]

    这个问题在这里已经有答案了 这可能会复制这个 stackoverflowquestion https stackoverflow com questions 23429117 saving nltk drawn parse tree to
  • 实时跟踪每分钟/小时/天的前 100 个 Twitter 单词

    我最近遇到这样一个面试问题 Given a continuous twitter feed design an algorithm to return the 100 most frequent words used at this min
  • 快速 shell 命令删除文本文件中的停用词

    我有一个 2GB 的文本文件 我正在尝试从此文件中删除经常出现的英语停用词 我有 stopwords txt 包含这样的 a an the for and I 使用 shell 命令 例如 tr sed 或 awk 执行此操作的快速方法是什
  • 旧版本的 spaCy 在尝试安装模型时抛出“KeyError: 'package'”错误

    我在 Ubuntu 14 04 4 LTS x64 上使用 spaCy 1 6 0 和 python3 5 为了安装 spaCy 的英文版本 我尝试运行 这给了我错误消息 ubun ner 3 NeuroNER master src pyt
  • 除非 POS 显式,否则 WordNetLemmatizer 不会返回正确的引理 - Python NLTK

    我正在对 Ted 数据集成绩单进行词形还原 我注意到一些奇怪的事情 并非所有单词都被词形还原 要说的是 selected gt select 哪个是对的 然而 involved gt involve and horsing gt horse
  • 斯坦福 CoreNLP:使用部分现有注释

    我们正在尝试利用现有的 代币化 句子分割 和命名实体标记 同时我们希望使用斯坦福 CoreNlp 额外为我们提供 词性标注 词形还原 和解析 目前 我们正在尝试以下方式 1 为 pos lemma parse 创建一个注释器 Propert
  • 文本摘要评估 - BLEU 与 ROUGE

    根据两个不同摘要系统 sys1 和 sys2 的结果和相同的参考摘要 我使用 BLEU 和 ROUGE 对它们进行了评估 问题是 sys1 的所有 ROUGE 分数均高于 sys2 ROUGE 1 ROUGE 2 ROUGE 3 ROUGE
  • Rasa core 和 Rasa nlu 之间的区别

    我试图理解之间的区别拉莎核心 https core rasa ai and Rasa NLU https nlu rasa ai installation html从官方文档看的 但我不太明白 我的理解是Rasa core用于引导对话流程

随机推荐

  • java swing GUI窗口美化

    一般我们写出的窗口是这个样子的 文本框和按钮都不是太美观 如果按钮是原色的就更难看了 今天发现了一个更加美观的窗口模式 可以发现按钮和文本框都已经有了变化 给窗口润色不少 其实 只需在调用程序前加上这段代码即可 try for javax
  • Atom+Asciidoctor+Antora环境搭建

    个人博客原文链接 Atom 简介 Atom是github专门为程序员推出的一个跨平台文本编辑器 具有简洁和直观的图形用户界面 并有很多有趣的特点 支持CSS HTML JavaScript等网页编程语言 它支持宏 自动完成分屏功能 集成了文
  • LeetCode——040

    40 Combination Sum II My Submissions QuestionEditorial Solution Total Accepted 66386 Total Submissions 241547 Difficulty
  • 搭建Mybatis注意事项和实现原理,你真的看懂了吗?

    搭建Mybatis环境注意事项 一 搭建Mybatis环境注意事项 二 涉及到的设计模式 2 1工厂模式 SqlSessionFactory 2 2 代理模式 MapperProxyFactory 2 3构建者模式 SqlSessionFa
  • openpyxl绘制堆叠图

    本文将会说明如何用openpyxl绘制堆叠图 先来看看效果图 数据处理后效果展示 源数据 老规矩源代码先放上后面再解析 使用时记得要改一下路径哦 先把openpyxl全家桶安排上 from openpyxl import load work
  • Python基础08

    Python基础08 学习08 方法没有重载 在其他语言中 可以定义多个重名的方法 只要保证方法标签名唯一即可 方法签名包含3个部分 方法名 参数数量 参数类型 Python中 方法的参数没有生命类型 调用时确定参数的类型 参数的数量也可以
  • hive文件存储格式:SequenceFile系统总结

    问题导读 1 什么是SequenceFile 2 如何 通过 源码实现SequenceFile压缩 3 SequenceFile格式压缩有什么优点和缺点 1 SequenceFile是什么1 1 SequenceFile概述 1 1 seq
  • mapGetters 辅助函数

    1 mapGetters 辅助函数 mapGetters 辅助函数 mapGetters 辅助函数仅仅将store 中的 getter 映射到局部计算属性 1 import mapGetters from vuex 2 export def
  • 列出一个文件夹下的所有文件名(全路径)

    需求 列出一个文件夹下的所有文件的全路径文件名 如果文件是文件夹 那么再次遍历这个文件夹的的所有文件名 直到遍历的文件不是文件夹为止 这时输出文件的全路径名 分析 可以用函数实现 1 函数参数1个 就是要遍历的文件夹的名字 2 遍历该文件夹
  • java垃圾回收机制详解

    文章目录 一 垃圾回收机制是什么 二 机制运行原理 三 机制运行步骤 一 垃圾回收机制是什么 Java的垃圾回收 Garbage Collection GC 机制是Java内存管理的核心部分 它可以自动回收不再被程序使用的内存空间 防止内存
  • Makefile 中:= ?= += =的区别

    在Makefile中我们经常看到 这几个赋值运算符 那么他们有什么区别呢 我们来做个简单的实验 新建一个Makefile 内容为 ifdef DEFINE VRE VRE Hello World else endif ifeq OPT de
  • 今天Chat GPT又胡说八道,看我如何纠正的

    今天想把python pydantic 转成markdown mermaid 就去问Chat GPT Chat GPT给出了如下答案 然后 我就打入命令安装 结果这个包根本就不存在 既然找不到 pydantic 转 mermaid 的工具
  • Docker 安装hadoop

    一 实验环境 实验设备 硬件 单核CPU 内存1G 软件 Ubuntu 16 04操作系统 Docker Hadoop 二 实验原理及内容 1 在Ubuntu系统中安装Docker Apt install docker 复制代码 Apt g
  • Kendo UI开发教程(9): Kendo UI Validator 概述

    Kendo UI Validator 支持了客户端校验的便捷方法 它基于HTML 5 的表单校验功能 支持很多内置的校验规则 同时也提供了自定义规则的便捷方法 完整的Kendo UI 的Validator可以参见API 文档 HTML 5
  • SQL优化

    1 应尽量避免在 where 子句中使用 或 lt gt 操作符 否则将引擎放弃使用索引而进行全表扫描 2 对查询进行优化 应尽量避免全表扫描 首先应考虑在 where 及 order by 涉及的列上建立索引 3 应尽量避免在 where
  • Java 集合 (Set, TreeSet, HashSet)

    目录 1 Set 2 TreeSet 2 1 自然排序 2 2 比较器排序 2 3 两种比较方式小结 3 HashSet 3 1 哈希值 3 2 底层原理 4 小结 1 Set Set 集合特点 可以去除重复 存取顺序不一致 没有带索引的方
  • 手机快充协议

    高通 QC2 0 QC3 0 QC3 5 QC4 0 QC5 0 FCP SCP AFC SFCP MTKPE1 1 PE2 0 PE3 0 TYPEC PD2 0 PD3 0 3 1 VOOC 支持 PD3 0 PD2 0 支持 QC3
  • UML用例图的作用、功能模块图作用与数据库设计三者关系

    这周周一 我们导师要求小组成员开会 我们分别汇报自己的工作 在会中 谈到了用例图 于是我们开始对大家熟悉的用例图进行探讨 经过探讨与自己的思考 我认为应该从以下几个问题来弄清楚用例图的作用 1 用例图由谁来做 为谁做 做完了有什么用途 用例
  • Java8 stream 根据对象字段去重

    public class Java8StreamTest public static class Book private String id private String name public Book String id String
  • attention注意力机制学习

    参考资料 目前主流的attention方法都有哪些 JayLou娄杰的回答 知乎 目前主流的attention方法都有哪些 张戎的回答 知乎 Attention机制解读 高峰OUC的文章 知乎 Transformer详解 一 Attenti