深度模型Attention

Attention机制源于对Seq2Seq模型的几个问题优化。Seq2Seq是基于Encoder-Decoder架构思想实现。Encoder和Decoder部分都是采用RNN网络模型。Seq2Seq模型存在的几个问题是:

1. 基于序列化的RNN网络, 无法做到并行计算, 模型的运行效率比较差。

  1. 输入X的信息转换为固定长度的context vector Z,当输入句子长度很长,固定长度的context vector很难表达所有X的信息,模型的性能急剧下降。而且对于每个词都赋予相同的权重,这样做是不合理的。

并行化方面优化:FaceBook提出CNN Seq2Seq模型,采用堆叠的CNN来替代RNN构建Encoder和Decoder。因为CNN可以实现并行,从而提升模型的运行效率。

固定长度的隐藏向量Z问题:解决的方法就是本文的主题Attention机制。 模型计算时,对不同输入端的数据采用不同的权重, 让模型可以关注关键而重点的信息,从而得到更加准确的结果。

一、Attention经典架构

1.Encoder hidden状态计算:

Encoder hidden状态:ht = RNN(Xt, ht-1), 前一个状态隐藏变量ht-1, 输入Xt, 通过RNN 计算单元得到ht.

2. Attention部分:计算Decoder Si 对应的context vector Ci

计算Decoder hidden state位置 i 与Encoder端所有hidden state加权平均值, 得到context vector Ci.

aij表示Decoder 位置i和Encoder 位置j 对应的权重值,表示源端第j个词对目标端第i个词的影响程度,计算方式类似softmax。

eij表示Decoder hidden states si-1 和Encoder hidden states hj 对应的分数值。

score分数计算方法有多种:包括dot乘,矩阵乘法,concat连接。ht是Encoder端hidden states, hs是Decoder端的hidden state.

3. Decoder hidden state计算

与输入端类似, St = RNN(Yt-1^, St-1, Ci), Decoder端前一个状态隐藏变量St-1, Decoder端输入Yt-1^, Context向量Ci通过RNN计算单元得到St.

4. Decoder端输出结果

计算方式如下,

二、Attention的类型

2.1 按权值计算范围来分

Soft Attention和Hard Attention

softAttention 是应用最广泛的一种方式, 计算Attention的权值aij, 每个Decoder hidden state Si 会用到所有Encoder端的hi向量。而且SoftAttetion部分能参与模型梯度反向传播中。

而Hard Attention是随机选取Encoder端的隐状态hi来参与aij的计算,而不是整个encoder的隐状态。为了实现梯度的反向传播,需要采样方法来估计一个梯度进行统一更新。

Local Attention和Global Attention

Global Attention 和soft Attetion类似,都是会用到所以Encoder端的隐状态。

****Local Attention(结构如下图)首先会为decoder端当前的词,预测一个source端对齐位置(aligned position)pt,然后基于pt选择一个窗口,用于计算context向量ct。****

Self Attention

Self Attention不同在于:不是通过Encoder端和Decoder端的隐变量(hidden state)计算Attention的,而是先分别在Encoder端、Decoder端计算内部词与词之间的相关关系,再将Encoder端的信息传递到Decoder端进行计算, 得到Encoder端和Decoder端词之间得依赖关系。

2.2 按Attention得组合方式

以下几种Attention都比较复杂, 本文只做简单介绍,后续针对每个再做详细介绍。

Multi-Head Attention

来自google的大作《Attention is all you need》,如下图所示,将多个Scaled Dot-product Attetion作为block组合起来使用。

Multi-Step Attention

来自FaceBook的另一大作《Convolutional Sequence to Sequence Learning》,用CNN替代RNN作为Seq2Seq Encoder和Decoder的架构实现。

Hierarchical Attention

也就是多层Attention,比如文档的分类。 先通过第一层Attention参与词级别的向量组合成句子级别的向量。再通过第二层Attention, 参与句子向量级别的计算出文档的向量。

其他类型

未完待补充....

【参考文献】

深度学习中Attention Mechanism详细介绍:原理、分类及应用https://zhuanlan.zhihu.com/p/31547842

Attention用于NLP的一些小结 https://zhuanlan.zhihu.com/p/35739040

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

推荐阅读更多精彩内容