Attention、Self-Attention 与 Multi-Head Attention
Corpus语料库与DB数据库
World Knowledge世界常识库:OALD牛津高阶/Synonyms/Phrases/…, 新华字典/成语词典/辞海, 行业词典,大英百科,Wikipedia,…
全局信息: Corpus语料库、行业通用数据库(例如Springer/Google Scholar/Academia/…学术数据库)/领域库、用户自定义库;
语义信息:输入句子的历史记录,有许多条句子记录;
句子信息:当前动态输入句子;
本句上下文信息:提取 当前输入词 的 词向量 时用到的长度设为 N 的滑动窗口长度范围的字符序列信息
自动断句:用户输入的每个字符/词,取前文N-Gram长度,计算出是断句词的概率:
例如 :“。”(句号),“?”(问号),[正式,结束],[好了,吗],…,
而这些是可以通过历史交互数据,与Corpus/DB进行统计学习训练得到的(每个词是断句词的统计概率).
Attention、 Self-Attention 与 Multi-Head Attention:
Attention = f(Q, (K, V))
Attention 的 (K, V)是预训练时,
使用 Corpus语料库 或 World Knowledge世界常识库 统计训练得到。
Vocabulary是静态的,维度是定长的,Vocabulary尽可能收集到完整的样本空间。
Attention是词向量 与 Vocabulary 的每一个词计算Similarity相似度
Self-Attention 的 K, V 是预测时,使用 当前输入句子,以及输入句子的历史记录,动态训练的;
Vocabulary是动态的,维度变长的,Vocabulary尽可能收集到当前会话或全部会话的 输入句子历史记录
有一个处理Tips:
正像用 定长的滑动窗口 将 变长的动态输入句子 进行采样。
可将变长的Vocabulary维度,通过padding组织成定长的维度。
Self-Attention是当前输入句子的每一个词,与当前输入句子(Self)的每一个词计算Similarity
Multi-Head Attention:
Multi-Head Attention 原理是:
使用 H 组不同的 Attention Parameter注意力参数(Wq, Wk, Wv),
配置 H 组相同的 Attention Operator注意力算子结构f(Q, (K, V)),
并行提取并综合这 H 组不同感受野范围的注意力信息。
不同的 Attention Parameter提取不同范围的全连接注意力,
并行计算,并综合这 H 组不同的局部感受野的Attention,最终组成一个总体Attention。
这样一来,当前输入的每一个单词,与 当前输入句子 和 历史输入句子 的 每一个单词 都会有一个Attention权重,
这也是 Self-Attention 名字的来源,即 Attention 的计算用的是 Source 和 Source 本身(即|TermSeq|• |TermSeq|),
通俗讲,就是 Q、K、V 都来源于输入 X 本身的词序列(Term Sequence)。
因此,无论当前输入句子字符序列多长,都可以很好的提取句子信息,
而且是并行多种提取: 句子特征(本句),语义信息(跨多句),…
这很好的解决了 RNN 序列长距离依赖的问题。
而且对于一个句子而言,每个单词的计算是可以并行处理的。
不同的 Attention Parameter提取不同范围的全连接注意力, 可以类比:
N-Gram: 使用多组不同的 N,配置 N 组相同的N-Gram Vectorizer; 并行提取并综合。
例如使用N=[1,2,3,4,5,6,7,8], 配置8组相同的N-Gram Vectorizer,
并行提取滑动窗口长度为1~8的共现词向量;并综合之。
综合这8组不同长度的滑动窗口提取到的信息,作为总体的注意力信息。
CNN: 使用 K 组不同得 Convolution Step卷积步长, 配置 K 组相同的CNN Operator; 并行卷积并综合。
例如使用 Step=[2,3,5,7,11,13,17,19], 配置8组相同的CNN Model,并行8组CNN卷积并综合。
Attention、Self-Attention 与 Multi-Head Attention的更多相关文章
- multi lstm attention 坑一个
multi lstm attention时序之间,inputs维度是1024,加上attention之后维度是2018,输出1024,时序之间下次再转成2048的inputs 但是如果使用multi ...
- 用深度学习(CNN RNN Attention)解决大规模文本分类问题 - 综述和实践
https://zhuanlan.zhihu.com/p/25928551 近来在同时做一个应用深度学习解决淘宝商品的类目预测问题的项目,恰好硕士毕业时论文题目便是文本分类问题,趁此机会总结下文本分类 ...
- [转] 用深度学习(CNN RNN Attention)解决大规模文本分类问题 - 综述和实践
转自知乎上看到的一篇很棒的文章:用深度学习(CNN RNN Attention)解决大规模文本分类问题 - 综述和实践 近来在同时做一个应用深度学习解决淘宝商品的类目预测问题的项目,恰好硕士毕业时论文 ...
- (转)注意力机制(Attention Mechanism)在自然语言处理中的应用
注意力机制(Attention Mechanism)在自然语言处理中的应用 本文转自:http://www.cnblogs.com/robert-dlut/p/5952032.html 近年来,深度 ...
- 注意力机制(Attention Mechanism)在自然语言处理中的应用
注意力机制(Attention Mechanism)在自然语言处理中的应用 近年来,深度学习的研究越来越深入,在各个领域也都获得了不少突破性的进展.基于注意力(attention)机制的神经网络成为了 ...
- 论文笔记之: Recurrent Models of Visual Attention
Recurrent Models of Visual Attention Google DeepMind 模拟人类看东西的方式,我们并非将目光放在整张图像上,尽管有时候会从总体上对目标进行把握,但是也 ...
- Multimodal —— 看图说话(Image Caption)任务的论文笔记(三)引入视觉哨兵的自适应attention机制
在此前的两篇博客中所介绍的两个论文,分别介绍了encoder-decoder框架以及引入attention之后在Image Caption任务上的应用. 这篇博客所介绍的文章所考虑的是生成captio ...
- 深度学习之seq2seq模型以及Attention机制
RNN,LSTM,seq2seq等模型广泛用于自然语言处理以及回归预测,本期详解seq2seq模型以及attention机制的原理以及在回归预测方向的运用. 1. seq2seq模型介绍 seq2se ...
- 深度学习之注意力机制(Attention Mechanism)和Seq2Seq
这篇文章整理有关注意力机制(Attention Mechanism )的知识,主要涉及以下几点内容: 1.注意力机制是为了解决什么问题而提出来的? 2.软性注意力机制的数学原理: 3.软性注意力机制. ...
- 【论文速读】Pan He_ICCV2017_Single Shot Text Detector With Regional Attention
Pan He_ICCV2017_Single Shot Text Detector With Regional Attention 作者和代码 caffe代码 关键词 文字检测.多方向.SSD.$$x ...
随机推荐
- [java与https]第一篇、证书杂谈
一.算法.密钥(对).证书.证书库 令狐冲是个马场老板,这天,他接到店里伙计电话,说有人已经签了租马合同,准备到马场提马,,他二话不说,突突突就去了,到了之后,发现不认识租客. 令狐冲说,你把你租马合 ...
- EBC Rev.5中的中间品、消费品,资本品,HS2012,HS2017与EBC Rev.5对照表,各种贸易标准对照表....
最近在做一个国际供应链问题研究,用到了中间品这个概念,在各大论坛逛了好久居然没有找到一个说清楚了的,某些论坛需要什么点数才能下载,论坛用户更是自视甚高,一副这也不懂的姿态审视所有刚入门这个领域的新人, ...
- MyCAT 2实现mysql8主从同步读写分离
一.MyCAT2介绍 1.1 什么是MyCAT?MyCAT是目前最流行的分布式数据库中间插件,是一个开源的分布式数据库系统,是一个实现了MySQL协议的服务器.前端用户可以把它看作一个数据库代理,用M ...
- 使用Node.js打造自己的Git版本控制系统
@charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 15px; o ...
- C++/Python混合编程
以 C++ 为底层基础,Python 作为上层建筑,共同搭建起高性能.易维护.可扩展的混合系统. Python 本身就有 C 接口,可以用 C 语言编写扩展模块,把一些低效耗时的功能改用 C 实现,有 ...
- java.lang.StringIndexOutOfBoundsException: String index out of range: 1
笔者源码如下: package javaPractice; import java.util.*; public class TestScanner { public static void main ...
- Spring 注解之 @EnableTransactionManagement:Spring Boot 事务配置
Spring Boot 开启声明式事务支持 所有的数据访问技术都有事务处理机制,这些技术提供了API用来开启事务.提交事务以完成数据操纵,或者在发生错误的时候回滚数据.Spring支持声明式事务,这是 ...
- Springboot笔记<11>面向切面编程AOP
面向切面编程AOP AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术.AOP是Spring框架中 ...
- 萌新通过[网鼎杯 2020 朱雀组]phpweb对php反序列化的进一步了解
作为一个学习ctf时间不长的萌新,之前所做的反序列化题目都是一知半解,只知道这种题目都是一堆class,找eval当链尾,然后组成pop链最后有个执行unserialize的地方,这种题才是php反序 ...
- Vue3中Mock数据的简单方案
因为Vue3项目开发中需要用到Mock数据,所以这里记录一种快速Mock数据的方法. 一.安装 首先,你需要安装 axios 和 axios-mock-adapter. npm install axi ...