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

  • 时间:
  • 浏览:22
  • 来源:uu快3电脑版_uu快3和值_礼金

Encoder-Decoder框架还都要这么直观地去理解:还都要把它看作适合正确处理由俩个 语录(或篇章)生成另外俩个 语录(或篇章)的通用正确处理模型。对于语录对<X,Y>,一帮人一帮人一帮人一帮人一帮人一帮人 的目标是给定输入语录X,期待通过Encoder-Decoder框架来生成目标语录Y。X和Y还都可是我同一点语言,也还都可是我一点不同的语言。而X和Y分别由人个的单词序列构成:

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

着实 吧,淬硬层 学习上方的注意力模型工作机制啊,它跟你看见心动异性时荷尔蒙驱动的注意力分配机制是一样一样的。

                                                            



|Encoder-Decoder框架

                                                               

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

                                               

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

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

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

这我希望人脑的注意力模型,说到底是一点资源分配模型,在某个特定时刻,你的注意力经常集中在画面中的某个焦点帕累托图,而对其它帕累托图视而不见。

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

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

最后是广告:关于AM,一帮人一帮人一帮人一帮人一帮人一帮人 除了本文,下周都会有续集:从AM来谈谈一点科研创新模式,请我太满 说转台,继续关注,谢谢。

扯远了,再拉回来。

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

对于采用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的定义上前一天有所不同。

                                                            图6 语录生成式摘要例子

假设Ci中那个i我希望上方的“汤姆”,这么Tx我希望3,代表输入语录的长度,h1=f(“Tom”),h2=f(“Chase”),h3=f(“Jerry”),对应的注意力模型权值分别是0.6,0.2,0.2,什么都g函数我希望个加权求和函数。前一天形象表示语录,翻译中文单词“汤姆”的前一天,数学公式对应的上方语义表示Ci的形成过程类似于下图:

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

是要怎样得到的呢?

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

|引言及废话

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

这里还有俩个 哪些的什么的问题:生成目标语录某个单词,比如“汤姆”的前一天,你要怎样会会会么会知道AM模型所都要的输入语录单词注意力分配概率分布值呢?我希望说“汤姆”对应的概率分布:

   

                                           

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

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

|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”对于翻译成“杰瑞”更重要,要怎样会让分心模型是无法体现一点点的,这我希望要怎样会会会么会会说它这么引入注意力的原困 。这么引入注意力的模型在输入语录比较短的前一天估计哪些的什么的问题不大,要怎样会让前一天输入语录比较长,此时所有语义详细通过俩个 上方语义向量来表示,单词自身的信息前一天消失,可想而知会丢失什么都细节信息,这也是要怎样会会会么会会要引入注意力模型的重要原困 。

                                           

                                        

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

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

                                 

                                                                         图3 Ci的形成过程

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

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

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

                                    图1. 抽象的Encoder-Decoder框架

当然,我着实 从概念上理解语录,把AM模型理解成影响力模型也是合理的,我希望说生成目标单词的前一天,输入语录每个单词对于生成一点单词有多大的影响程度。一点想法也是比较好理解AM模型物理意义的一点思维法律依据。

                      

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

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

要提文本正确处理领域的AM模型,就不得不先谈Encoder-Decoder框架,前一天目前绝大多数文献中再次出现的AM模型是附着在Encoder-Decoder框架下的,当然,着实 AM模型还都要看作一点通用的思想,一点我太满 说依赖于Encoder-Decoder模型,这点都要注意。

本文只谈谈文本正确处理领域的AM模型,在图片正确处理前一天(图片-图片标题)生成等任务中都是什么都场景会应用AM模型,要怎样会一帮人一帮人一帮人一帮人一帮人一帮人一帮人一帮人 此处只谈文本领域的AM模型,着实 图片领域AM的机制也是相同的。

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

上方的例子中,前一天引入AM模型语录,应该在翻译“杰瑞”的前一天,体现出英文单词对于翻译当前中文单词不同的影响程度,比如给出类似于下面俩个 概率分布值:

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

其中,f2函数代表Encoder对输入英文单词的一点变换函数,比如前一天Encoder是用的RNN模型语录,一点f2函数的结果往往是某个时刻输入xi后隐层节点的情况表值;g代表Encoder根据单词的上方表示合成整个语录上方语义表示的变换函数,一般的做法中,g函数我希望对构成元素加权求和,也我希望常常在论文里看到的下列公式:

每个yi都依次这么产生,这么看起来我希望整个系统根据输入语录X生成了目标语录Y。

Encoder-Decoder框架还都要看作是一点文本正确处理领域的研究模式,应用场景异常广泛,一点就值得非常细致地谈一下,要怎样会让前一天本文的注意力焦点在AM模型,什么都此处一帮人一帮人一帮人一帮人一帮人一帮人 就只谈一点不得不谈的内容,详细的Encoder-Decoder模型前一天考虑专文介绍。下图是文本正确处理领域里常用的Encoder-Decoder框架最抽象的一点表示:

                                     

Encoder顾名思义我希望对输入语录X进行编码,将输入语录通过非线性变换转化为上方语义表示C: