Attention机制(原理+代码)

Attention机制(原理+代码)

直接进入正题,在介绍Attention机制之前需要知道什么是seq2seq模型,也就是Encoder-Decoder模型,下面对seq2seq及逆行简单介绍。

1.seq2seq模型

作为RNN模型的一种变体:N vs M(N,M意思是输入和输出不是等长),此结构又称为Encoder-Decoder模型,也就是我们常说的seq2seq模型。seq2seq模型的出现解决了许多应用的问题,比如解决了传统的序列等长的问题,在机器翻译等领域得到了很好的运用。
seq2seq模型先将输入数据编码成一个上下文向量c:

avatar

这里的上下文向量c有多种方式,可以将最后一个隐状态赋值给c,也可以将最后一个隐状态做变量赋值给c,也可以将所有的状态变量赋值给c
得到c之后,然后用另外一个RNN模型进行解码,也就是Decoder过程。你可以理解为将c作为新的h_0作为输入到Decoder结构中。
avatar

avatar

输入的情况分为上面两种,这种结构不限制输入和输出的序列长度,所以在许多领域得到了应用,但其本身存在着有些问题,在Encoder-Decoder结构中,Encoder把所有的输入序列都编码成一个统一的语义特征c再解码,因此,c中必须包含原始序列中的所有信息,它的长度就成了限制模型性能的瓶颈。如机器翻译问题,当要翻译的句子较长时,一个c可能存不下那么多信息,就会造成翻译精度的下降,为了解决这个问题,采用了attention机制。

2.Attention机制

Attention机制的定义:

1.给定一组向量集合values,以及一个向量query,attention机制是一种根据query计算values的加权求和的机制。

2.attention的重点就是这个集合values中的每个value的“权值”的计算方法。

3.有时候也把这种attention的机制叫做query的输出关注了(或者说叫考虑到了)原文的不同部分。(Query attends to the values)

举例:刚才seq2seq中,哪个是query,哪个是values?
each decoder hidden state attends to the encoder hidden states (decoder的第t步的hidden state——st是query,encoder的hidden state是values)

从定义来看Attention的感性认识:
The weighted sum is a selective summary of the information contained in the values, where the query determines which values to focus on.

3.attention的计算变体

首先,从大的概念来讲,针对attention的变体主要有两种方式:
1.一种是attention向量的加权求和和计算方式上进行创新;
2.另一种是attention score(匹配度或者叫权值)的计算方式上进行创新。

当然还有一种就是把二者都有改变的结合性创新,或者是迁移性创新,比如借鉴CNN的Inception思想等等,后续会提到一点,详细的应该是在以后可能要将的Transformer里面会详细提到。
我们先针对第一种方法讲讲区别,其实虽然名字变来变去,他们的差异没有那么多。

3.1 针对attention向量计算方式变体

大概分成这么几种:
Soft attention, global attention, 动态attention
Hard attention
‘半硬半软’的attention(local attention)
静态attention
强制前向attention

Soft attention, global attention, 动态attention
这三个其实就是Soft attention,也就是我们上面讲过的那种最常见的attention,是在求注意力分配概率分布的时候,对于输入句子X中任意一个单词都给出了个概率,是概率分布,把attention变量(context vecor)用ctc_tct表示,attention得分在经过了softmax后的权值用alpha表示

avator

Hard attention
Soft是给每个单词都赋予一个单词match概率,那么如果不这样做,直接从输入句子里面找到特定的单词,然后把目标句子单词和这个单词对齐,而其他收入句子中的单词硬性地认为对齐概率为0,就是Hard Attention Model思想。


avator

5.代码示例

avator

引自:https://blog.csdn.net/sun_xiao_kai/article/details/95873046?utm_term=attention%E4%BB%A3%E7%A0%81python&utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2allsobaiduweb~default-0-95873046&spm=3001.4430

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,491评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,856评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,745评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,196评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,073评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,112评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,531评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,215评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,485评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,578评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,356评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,215评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,583评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,898评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,497评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,697评论 2 335

推荐阅读更多精彩内容