(zhuan) 自然语言处理中的Attention Model:是什么及为什么

  • 时间:
  • 浏览:1
  • 来源:幸运飞艇APP下载_幸运飞艇APP官网

图6是论文“A Neural Attention Model for Sentence Summarization”中,Rush用AM模型来做生成式摘要给出的原先AM的原先非常直观的例子。

|引言及废话

注意力这东西都不 就说 挺有意思,为什让很容易被人忽略。让大伙儿儿来直观地体会一下哪几个是人脑中的注意力模型。首先,请您睁开眼并确认另一方占据 意识清醒情况汇报;第二步,请找到本文最近一直 出显的原先“Attention Model”字眼(就说 “字眼”前面的原先英文单词,…^@@^)并盯住看三秒钟。好,假设此刻时间停止,在这三秒钟你眼中和脑中看得人的是哪几个?对了,就说 “Attention Model”这原先词,但你找不到应该意识到,都不 就说 你眼中是有除了这原先单词外的整个一副画面的,为什让在你盯着看的这三秒钟,时间静止,万物无息,仿佛这个世界这么 我和你…..对不起,串景了,仿佛这个世界这么 “Attention Model”这原先单词。这是哪几个?这就说 人脑的注意力模型,就说 说你看得人了整幅画面,但在特定的时刻t,你的意识和注意力的焦点是集中在画面中的某原先次责上,其它次责都不 就说 还在你的眼中,但你找不到分配给它们的注意力资源是很少的。都不 就说 ,我希望你睁着眼,注意力模型就无时不刻在你身上发挥作用,比如你过马路,都不 就说 你的注意力会被更多地分配给红绿灯和来往的车辆上,都不 就说 此时你看得人了整个世界;比如你很精心地偶遇到了你心仪的异性,此刻你的注意力会更多的分配在此时神光四射的异性身上,都不 就说 此刻你看得人了整个世界,为什让它们对你来说跟不占据 是一样的…..

Encoder-Decoder框架都还可以看作是有一种文本避免领域的研究模式,应用场景异常广泛,有一种就值得非常细致地谈一下,为什让机会本文的注意力焦点在AM模型,这个此处大伙儿儿就只谈这个不得不谈的内容,删改的Encoder-Decoder模型过后考虑专文介绍。下图是文本避免领域里常用的Encoder-Decoder框架最抽象的有一种表示:

                                        

                                           

                                     

最后是广告:关于AM,大伙儿儿除了本文,下周总要有续集:从AM来谈谈有一种科研创新模式,请从不转台,继续关注,谢谢。

其中,f2函数代表Encoder对输入英文单词的有一种变换函数,比如机会Encoder是用的RNN模型的话,这个f2函数的结果往往是某个时刻输入xi后隐层节点的情况汇报值;g代表Encoder根据单词的上端表示合成整个的话上端语义表示的变换函数,一般的做法中,g函数就说 对构成元素加权求和,也就说 常常在论文里看得人的下列公式:

                                           

对于采用RNN的Decoder来说,机会要生成yi单词,在时刻i,大伙儿儿是都还可以知道在生成Yi过后的隐层节点i时刻的输出值Hi的,而大伙儿儿的目的是要计算生成Yi时的输入的话单词“Tom”、“Chase”、“Jerry”对Yi来说的注意力分配概率分布,这么 都还可以用i时刻的隐层节点情况汇报Hi去一一和输入的话中每个单词对应的RNN隐层节点情况汇报hj进行对比,即通过函数F(hj,Hi)来获得目标单词Yi和每个输入单词对应的对齐机会性,这个F函数在不同论文里机会会采取不同的辦法 ,为什让函数F的输出经过Softmax进行归一化就得到了符合概率分布取值区间的注意力分配概率分布数值。图5显示的是当输出单词为“汤姆”时刻对应的输入的话单词的对齐概率。绝大多数AM模型删改总要采取上述的计算框架来计算注意力分配概率分布信息,区别就说 在F的定义上机会有所不同。

|Attention Model

都不 就说 吧,强度学习上端的注意力模型工作机制啊,它跟你看见心动异性时荷尔蒙驱动的注意力分配机制是一样一样的。

                                             图2  引入AM模型的Encoder-Decoder框架

图1中展示的Encoder-Decoder模型是这么 体现出“注意力模型”的,这个都还可以把它看作是注意力不集中的分心模型。为哪几个说它注意力不集中呢?请观察下目标的话Y中每个单词的生成过程如下:

                                                            

(Tom,0.6)(Chase,0.2)(Jerry,0.2)

假设Ci中那个i就说 上端的“汤姆”,这么 Tx就说 3,代表输入的话的长度,h1=f(“Tom”),h2=f(“Chase”),h3=f(“Jerry”),对应的注意力模型权值分别是0.6,0.2,0.2,这个g函数就说 个加权求和函数。机会形象表示的话,翻译中文单词“汤姆”的过后,数学公式对应的上端语义表示Ci的形成过程这类下图:

                                                                         图3 Ci的形成过程

这就说 人脑的注意力模型,说到底是有一种资源分配模型,在某个特定时刻,你的注意力一直 集中在画面中的某个焦点次责,而对其它次责视而不见。

就说 关注强度学习在自然语言避免方面的研究进展,我相信你一定听说过Attention Model(后文有总要简称AM模型)这个词。AM模型应该说是过去一年来NLP领域中的重要进展之一,在这个场景被证明有效。听起来AM很高大上,都不 就说 它的基本思想是相当直观简洁的。本文作者都还可以对灯发誓:在你读完这篇啰里啰嗦的文章及其后续文章后,一定都还可以透彻了解AM到底是哪几个,以及轻易看懂任何有关论文看上去复杂的数学公式次责。为什会么会样,这广告打的挺有吸引力吧,尤其是对哪几个患有数学公式帕金森病的患者。

上端的例子中,机会引入AM模型的话,应该在翻译“杰瑞”的过后,体现出英文单词对于翻译当前中文单词不同的影响程度,比如给出这类下面原先概率分布值:

是要怎样得到的呢?

在正戏开演前,大伙儿儿先来点题外话。

                                                            图6 的话生成式摘要例子

每个英文单词的概率代表了翻译当前单词“杰瑞”时,注意力分配模型分配给不同英文单词的注意力大小。这对于正确翻译目标语单词肯定是有帮助的,机会引入了新的信息。同理,目标的话中的每个单词都应该针灸学会其对应的源语的话中单词的注意力分配概率信息。这因为分析在生成每个单词Yi的过后,原先删改总要相同的上端语义表示C会替换成根据当前生成单词而不断变化的Ci。理解AM模型的关键就说 这里,即由固定的上端语义表示C换成了根据当前输出单词来调整成加入注意力模型的变化的Ci。增加了AM模型的Encoder-Decoder框架理解起来如图2所示。

你应该常常听到被捉奸在床的男性一直 感叹地说的话:女人的第六感通常都很准,当然这里的女人一般是特指这位男性的女人机会女友,当然也机会是他的某位具有女人气质的女外国外国网友。就说 不好,女人的第六感都不 就说 就说 差(这里的“女人”特指本文作者另一方,当然非上文所引用的“男性”,为避免混淆特做声明)。当我第一次看得人机器学习领域中的Attention Model这个名字的过后,我的第一直 觉就说 :这是从认知心理学上端的人脑注意力模型引入的概念。若干年前,也就说 在我年轻不懂事的花样时光里里,曾有一阵子沉迷于人脑的工作机制,几瓶阅读了认知心理学方面的书籍和论文,而一般注意力模型会作为书籍的单独一章来讲。下面请允许我显摆一下鄙人渊博的知识。

其中f是decoder的非线性变换函数。从这里都还可以看出,在生成目标的话的单词时,不论生成哪个单词,是y1,y2也好,还是y3也好,大伙儿使用的的话X的语义编码C删改总要一样的,这么 任何区别。而语义编码C是由的话X的每个单词经过Encoder 编码产生的,这因为分析不论是生成哪个单词,y1,y2还是y3,都不 就说 的话X中任意单词对生成某个目标单词yi来说影响力删改总要相同的,这么 任何区别(都不 就说 机会Encoder是RNN的话,理论上越是后输入的单词影响越大,从不等权的,估计这也是为什会么会会Google提出Sequence to Sequence模型时发现把输入的话逆序输入做翻译效果会更好的小Trick的因为)。这就说 为什会么会会说这个模型这么 体现出注意力的缘由。这这类于你看得人背后的画面,为什让这么 注意焦点一样。机会拿机器翻译来解释这个分心模型的Encoder-Decoder框架更好理解,比如输入的是英文的话:Tom chase Jerry,Encoder-Decoder框架逐步生成中文单词:“汤姆”,“追逐”,“杰瑞”。在翻译“杰瑞”这个中文单词的过后,分心模型上端的每个英文单词对于翻译目标单词“杰瑞”贡献是相同的,很明显这里不太合理,显然“Jerry”对于翻译成“杰瑞”更重要,为什让分心模型是无法体现这个点的,这就说 为什会么会会说它这么 引入注意力的因为。这么 引入注意力的模型在输入的话比较短的过后估计间题不大,为什让机会输入的话比较长,此时所有语义删改通过原先上端语义向量来表示,单词自身的信息机会消失,可想而知会丢失这个细节信息,这也是为什会么会会要引入注意力模型的重要因为。

即生成目标的话单词的过程成了下面的形式:

                                                                        图4  RNN作为具体模型的Encoder-Decoder框架

(Tom,0.3)(Chase,0.2)(Jerry,0.5)

这里还有原先间题:生成目标的话某个单词,比如“汤姆”的过后,你为什会么会知道AM模型所前要的输入的话单词注意力分配概率分布值呢?就说 说“汤姆”对应的概率分布:

扯远了,再拉回来。

本文只谈谈文本避免领域的AM模型,在图片避免机会(图片-图片标题)生成等任务中删改总要这个场景会应用AM模型,为什让大伙儿儿此处只谈文本领域的AM模型,都不 就说 图片领域AM的机制也是相同的。

                      

                                 

                            

当然,我都不 就说 从概念上理解的话,把AM模型理解成影响力模型也是合理的,就说 说生成目标单词的过后,输入的话每个单词对于生成这个单词有多大的影响程度。这个想法也是比较好理解AM模型物理意义的有一种思维辦法 。

好,前戏开始英语 了,正戏开场。



|Encoder-Decoder框架

为了便于说明,大伙儿儿假设对图1的非AM模型的Encoder-Decoder框架进行细化,Encoder采用RNN模型,Decoder也采用RNN模型,这是比较常见的有一种模型配置,则图1的图转换为下图:

而每个Ci机会对应着不同的源语的话单词的注意力分配概率分布,比如对于上端的英汉翻译来说,其对应的信息机会如下:

Encoder-Decoder是个创新游戏大杀器,一方面如上所述,都还可以搞各种不同的模型组合,另外一方面它的应用场景多得不得了,比如对于机器翻译来说,<X,Y>就说 对应不同语言的的话,比如X是英语的话,Y是对应的中文的话翻译。再比如对于文本摘要来说,X就说 一篇文章,Y就说 对应的摘要;再比如对于对话机器人来说,X就说 某人的的话,Y就说 对话机器人的应答;再比如……总之,不多了。哎,那位施主,听老衲的话,赶紧从天台下来吧,无数创新在等着你发掘呢。

   

要提文本避免领域的AM模型,就不得不先谈Encoder-Decoder框架,机会目前绝大多数文献中一直 出显的AM模型是附着在Encoder-Decoder框架下的,当然,都不 就说 AM模型都还可以看作有一种通用的思想,有一种从不依赖于Encoder-Decoder模型,这点前要注意。

Encoder顾名思义就说 对输入的话X进行编码,将输入的话通过非线性变换转化为上端语义表示C:

每个yi都依次这么 产生,这么 看起来就说 整个系统根据输入的话X生成了目标的话Y。

Encoder-Decoder是个非常通用的计算框架,至于Encoder和Decoder具体使用哪几个模型删改总要由研究者另一方定的,常见的比如CNN/RNN/BiRNN/GRU/LSTM/Deep LSTM等,这里的变化组合非常多,而很机会有一种新的组合就能攒篇论文,这个有过后科研里的创新就说 这么 简单。比如我用CNN作为Encoder,用RNN作为Decoder,你用BiRNN做为Encoder,用强度LSTM作为Decoder,这么 就说 原先创新。这个正准备跳楼的憋着劲想攒论文毕业的同学都还可以从天台下来了,当然是走下来,删改总要给你跳下来,给你好好琢磨一下这个模型,把各种排列组合都试试,我希望你能提出有一种新的组合并被证明有效,那恭喜你:施主,给你毕业了。

                                    图1. 抽象的Encoder-Decoder框架

Encoder-Decoder框架都还可以这么 直观地去理解:都还可以把它看作适合避免由原先的话(或篇章)生成另外原先的话(或篇章)的通用避免模型。对于的话对<X,Y>,大伙儿儿的目标是给定输入的话X,期待通过Encoder-Decoder框架来生成目标的话Y。X和Y都还可以是同有一种语言,也都还可以是有一种不同的语言。而X和Y分别由该人的单词序列构成:

这个例子中,Encoder-Decoder框架的输入的话是:“russian defense minister ivanov called sunday for the creation of a joint front for combating global terrorism”。对应图中纵坐标的的话。系统生成的摘要的话是:“russia calls for joint front against terrorism”,对应图中横坐标的的话。都还可以看出模型机会把的话主体次责正确地抽出来了。矩阵中每一列代表生成的目标单词对应输入的话每个单词的AM分配概率,颜色太深了代表分配到的概率越大。这个例子对于直观理解AM是很有帮助作用的。                

                                                               

对于解码器Decoder来说,其任务是根据的话X的上端语义表示C和过后机会生成的历史信息y1,y2….yi-1来生成i时刻要生成的单词yi 

上述内容就说 论文上端常常提到的Soft Attention Model的基本思想,你能在文献上端看得人的大多数AM模型基本就说 这个模型,区别很机会就说 把这个模型用来避免不同的应用间题。这么 为什会么会理解AM模型的物理含义呢?一般文献里会把AM模型看作是单词对齐模型,这是非常有道理的。目标的话生成的每个单词对应输入的话单词的概率分布都还可以理解为输入的话单词和这个目标生成单词的对齐概率,这在机器翻译语境下是非常直观的:传统的统计机器翻译一般在做的过程中会专门有原先短语对齐的步骤,而注意力模型都不 就说 起的是相同的作用。在这个应用上端把AM模型理解成输入的话和目标的话单词之间的对齐概率也是很顺畅的想法。

这么 用下图都还可以较为便捷地说明注意力分配概率分布值的通用计算过程:

                                                                                 图5  AM注意力分配概率计算