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

  • 时间:
  • 浏览:0
  • 来源:大发彩神app—大发彩神8苹果版

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

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

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

统统 例子中,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是很有帮助作用的。                

这里还有有有一另2个什么的问题:生成目标搞笑的话某个单词,比如“汤姆”的以前,你为什会 知道AM模型所还要的输入搞笑的话单词注意力分配概率分布值呢?本来我说“汤姆”对应的概率分布:

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

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

是要怎样得到的呢?



|Encoder-Decoder框架

                                           

                                                               

                                        

要提文本处里领域的AM模型,就不得不先谈Encoder-Decoder框架,将会目前绝大多数文献中再次跳出的AM模型是附着在Encoder-Decoder框架下的,当然,真是AM模型能不还也能看作五种通用的思想,五种暂且依赖于Encoder-Decoder模型,这点还要注意。

Encoder-Decoder框架能不还也能看作是五种文本处里领域的研究模式,应用场景异常广泛,五种就值得非常细致地谈一下,因此将会本文的注意力焦点在AM模型,统统此处统统人就只谈统统不得不谈的内容,详细的Encoder-Decoder模型以前考虑专文介绍。下图是文本处里领域里常用的Encoder-Decoder框架最抽象的五种表示:

最后是广告:关于AM,统统人除了本文,下周都会有续集:从AM来谈谈五种科研创新模式,请暂且转台,继续关注,谢谢。

扯远了,再拉回来。

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

                                 

当然,真是从概念上理解搞笑的话,把AM模型理解成影响力模型也是合理的,本来我说生成目标单词的以前,输入搞笑的话每个单词对于生成统统 单词有多大的影响程度。统统 想法也是比较好理解AM模型物理意义的五种思维最好的最好的办法。

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

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

在正戏开演前,统统人先来点题外话。

其中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”对于翻译成“杰瑞”更重要,因此分心模型是无法体现统统 点的,这本来我为什会 会 说它这麼 引入注意力的愿因。这麼 引入注意力的模型在输入搞笑的话比较短的以前估计什么的问题不大,因此将会输入搞笑的话比较长,此时所有语义详细通过有有一另2个上端语义向量来表示,单词自身的信息将会消失,可想而知会丢失统统细节信息,这也是为什会 会 要引入注意力模型的重要愿因。

其中,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(后文有都会简称AM模型)统统 词。AM模型应该说是过去一年来NLP领域中的重要进展之一,在统统场景被证明有效。听起来AM很高大上,真是它的基本思想是相当直观简洁的。本文作者能不还也能对灯发誓:在你读完这篇啰里啰嗦的文章及其后续文章后,一定能不还也能透彻了解AM到底是哪几个,以及轻易看懂任何有关论文看上去比较复杂的数学公式偏离 。为什会 样,这广告打的挺有吸引力吧,尤其是对哪几个患有数学公式帕金森病的患者。

   

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

这本来我人脑的注意力模型,说到底是五种资源分配模型,在某个特定时刻,你的注意力时不时集中在画面中的某个焦点偏离 ,而对其它偏离 视而不见。

好,前戏结束了英文,正戏开场。

本文只谈谈文本处里领域的AM模型,在图片处里将会(图片-图片标题)生成等任务中算不算统统场景会应用AM模型,因此统统人此处只谈文本领域的AM模型,真是图片领域AM的机制也是相同的。

                                           

|Attention Model

                                                            

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

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

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

                                                            图6 搞笑的话生成式摘要例子

每个yi都依次这麼 产生,这麼 看起来本来我整个系统根据输入搞笑的话X生成了目标搞笑的话Y。

|引言及废话

                                                                         图3 Ci的形成过程

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

                                    图1. 抽象的Encoder-Decoder框架

                                               

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

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

这麼 用下图能不还也能较为便捷地说明注意力分配概率分布值的通用计算过程:

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

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

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

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

上端的例子中,将会引入AM模型搞笑的话,应该在翻译“杰瑞”的以前,体现出英文单词对于翻译当前中文单词不同的影响程度,比如给出类似于下面有有一另2个概率分布值:

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

Encoder-Decoder框架能不还也能这麼 直观地去理解:能不还也能把它看作适合处里由有有一另2个搞笑的话(或篇章)生成另外有有一另2个搞笑的话(或篇章)的通用处里模型。对于搞笑的话对<X,Y>,统统人的目标是给定输入搞笑的话X,期待通过Encoder-Decoder框架来生成目标搞笑的话Y。X和Y能不还也能是同五种语言,也能不还也能是五种不同的语言。而X和Y分别由所有人的单词序列构成: