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

  • 时间:
  • 浏览:3
  • 来源:uu快3计划_uu快3官方_单双

                                        

当然,嘴笨 从概念上理解得话,把AM模型理解成影响力模型也是合理的,就是 说生成目标单词的事先 ,输入得话每个单词对于生成你你这俩单词有多大的影响程度。你你这俩想法也是比较好理解AM模型物理意义的并全是思维方式。

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

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

在正戏开演前,我们 歌词 先来点题外话。

                      

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

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

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

要提文本避免领域的AM模型,就不得不先谈Encoder-Decoder框架,原应目前绝大多数文献中时不时 出现的AM模型是附着在Encoder-Decoder框架下的,当然,嘴笨 AM模型都能够看作并全是通用的思想,并全是不让依赖于Encoder-Decoder模型,这点都能够注意。

对于采用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”字眼(就是 “字眼”前面的一个 英文单词,…^@@^)并盯住看三秒钟。好,假设此刻时间停止,在这三秒钟你眼中和脑中看后的是哪此?对了,就是 “Attention Model”你你这俩个 词,但没法你应该意识到,嘴笨 你眼中是有除了你你这俩个 单词外的整个一副画面的,而且在你盯着看的这三秒钟,时间静止,万物无息,仿佛你你这俩世界只能我和你…..对不起,串景了,仿佛你你这俩世界只能“Attention Model”你你这俩个 单词。这是哪此?这就是 人脑的注意力模型,就是 说你看后了整幅画面,但在特定的时刻t,你的意识和注意力的焦点是集中在画面中的某一个 每项上,其它每项嘴笨 还在你的眼中,但没法你分配给它们的注意力资源是很少的。嘴笨 ,而且你睁着眼,注意力模型就无时不刻在你身上发挥作用,比如你过马路,嘴笨 你的注意力会被更多地分配给红绿灯和来往的车辆上,嘴笨 此时你看后了整个世界;比如你很精心地偶遇到了你心仪的异性,此刻你的注意力会更多的分配在此时神光四射的异性身上,嘴笨 此刻你看后了整个世界,而且它们对你来说跟不处在是一样的…..

Encoder-Decoder框架都能够没法直观地去理解:都能够把它看作适合避免由一个 得话(或篇章)生成另外一个 得话(或篇章)的通用避免模型。对于得话对<X,Y>,我们 歌词 的目标是给定输入得话X,期待通过Encoder-Decoder框架来生成目标得话Y。X和Y都能够是同并全是语言,也都能够是并全是不同的语言。而X和Y分别由其他人的单词序列构成:

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

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

对于解码器Decoder来说,其任务是根据得话X的中间语义表示C和事先 原应生成的历史信息y1,y2….yi-1来生成i时刻要生成的单词yi 

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

                                     

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

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

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

|Attention Model

                                    图1. 抽象的Encoder-Decoder框架

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

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

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

图1中展示的Encoder-Decoder模型是没法体现出“注意力模型”的,就是 都能够把它看作是注意力不集中的分心模型。为哪此说它注意力不集中呢?请观察下目标得话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是很有帮助作用的。                

                                                            

扯远了,再拉回来。

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

                                                            图6 得话生成式摘要例子

最后是广告:关于AM,我们 歌词 除了本文,下周后要有续集:从AM来谈谈并全是科研创新模式,请不让转台,继续关注,谢谢。

其中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”对于翻译成“杰瑞”更重要,而且分心模型是无法体现你你这俩点的,这就是 为社 在么在在说它没法引入注意力的原应。没法引入注意力的模型在输入得话比较短的事先 估计哪此的问题报告 不大,而且原应输入得话比较长,此时所有语义详细通过一个 中间语义向量来表示,单词自身的信息原应消失,可想而知会丢失就是 细节信息,这也是为社 在么在在要引入注意力模型的重要原应。

                                 

                                                                         图3 Ci的形成过程

Encoder-Decoder是个非常通用的计算框架,至于Encoder和Decoder具体使用哪此模型全是由研究者有人定的,常见的比如CNN/RNN/BiRNN/GRU/LSTM/Deep LSTM等,这里的变化组合非常多,而很原应并全是新的组合就能攒篇论文,就是 有事先 科研里的创新就是 没法简单。比如我用CNN作为Encoder,用RNN作为Decoder,你用BiRNN做为Encoder,用深度LSTM作为Decoder,没法就是 一个 创新。就是 正准备跳楼的憋着劲想攒论文毕业的同学都能够从天台下来了,当然是走下来,全是我想要 跳下来,我想要 好好琢磨一下你你这俩模型,把各种排列组合都试试,而且你能提出并全是新的组合并被证明有效,那恭喜你:施主,我想要 毕业了。

|引言及废话

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



|Encoder-Decoder框架

这里还三个白 哪此的问题报告 :生成目标得话某个单词,比如“汤姆”的事先 ,你为社 在么在知道AM模型所都能够的输入得话单词注意力分配概率分布值呢?就是 说“汤姆”对应的概率分布:

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

   

是要怎样得到的呢?

没法用下图都能够较为便捷地说明注意力分配概率分布值的通用计算过程:

                            

好,前戏后后开始,正戏开场。

                                           

                                                               

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

                                           

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

                                               

中间的例子中,原应引入AM模型得话,应该在翻译“杰瑞”的事先 ,体现出英文单词对于翻译当前中文单词不同的影响程度,比如给出你这俩下面一个 概率分布值:

本文只谈谈文本避免领域的AM模型,在图片避免原应(图片-图片标题)生成等任务中全是就是 场景会应用AM模型,而且我们 歌词 此处只谈文本领域的AM模型,嘴笨 图片领域AM的机制也是相同的。

每个yi都依次没法产生,没法看起来就是 整个系统根据输入得话X生成了目标得话Y。

Encoder-Decoder框架都能够看作是并全是文本避免领域的研究模式,应用场景异常广泛,并全是就值得非常细致地谈一下,而且原应本文的注意力焦点在AM模型,就是 此处我们 歌词 就只谈许多不得不谈的内容,详细的Encoder-Decoder模型事先 考虑专文介绍。下图是文本避免领域里常用的Encoder-Decoder框架最抽象的并全是表示: