自然语言处理中的Attention Model:是什么以及为什么[一]

转载自  自然语言处理中的Attention Model:是什么以及为什么[一]

自然语言处理中的Attention Model:是什么以及为什么[一]

1、前言

要是关注深度学习在自然语言处理方面的研究进展,我相信你一定听说过Attention Model(后文有时会简称AM模型)这个词。

AM模型应该说是过去一年来NLP领域中的重要进展之一,在很多场景被证明有效。听起来AM很高大上,其实它的基本思想是相当直观简洁的。

本文作者可以对灯发誓:在你读完这篇啰里啰嗦的文章及其后续文章后,一定可以透彻了解AM到底是什么,以及轻易看懂任何有关论文看上去复杂的数学公式部分。

怎么样,这广告打的挺有吸引力吧,尤其是对那些患有数学公式帕金森病的患者。

 

2、Encoder-Decoder框架

本文只谈谈文本处理领域的AM模型,在图片处理或者(图片-图片标题)生成等任务中也有很多场景会应用AM模型,但是我们此处只谈文本领域的AM模型,其实图片领域AM的机制也是相同的。

要提文本处理领域的AM模型,就不得不先谈Encoder-Decoder框架,因为目前绝大多数文献中出现的AM模型是附着在Encoder-Decoder框架下的,当然,其实AM模型可以看作一种通用的思想,本身并不依赖于Encoder-Decoder模型,这点需要注意。

Encoder-Decoder框架可以看作是一种文本处理领域的研究模式,应用场景异常广泛,本身就值得非常细致地谈一下,但是因为本文的注意力焦点在AM模型。

所以此处我们就只谈一些不得不谈的内容,详细的Encoder-Decoder模型以后考虑专文介绍。下图是文本处理领域里常用的Encoder-Decoder框架最抽象的一种表示:

Encoder-Decoder框架可以这么直观地去理解:可以把它看作适合处理由一个句子(或篇章)生成另外一个句子(或篇章)的通用处理模型。

对于句子对<X,Y>,我们的目标是给定输入句子X,期待通过Encoder-Decoder框架来生成目标句子Y。

X和Y可以是同一种语言,也可以是两种不同的语言。而X和Y分别由各自的单词序列构成:

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

对于解码器Decoder来说,其任务是根据句子X的中间语义表示C和之前已经生成的历史信息y1,y2….yi-1来生成i时刻要生成的单词yi 

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

Encoder-Decoder是个非常通用的计算框架,至于Encoder和Decoder具体使用什么模型都是由研究者自己定的,常见的比如CNN/RNN/BiRNN/GRU/LSTM/Deep LSTM等,这里的变化组合非常多,而很可能一种新的组合就能攒篇论文,所以有时候科研里的创新就是这么简单。

比如我用CNN作为Encoder,用RNN作为Decoder,你用BiRNN做为Encoder,用深层LSTM作为Decoder,那么就是一个创新。所以正准备跳楼的憋着劲想攒论文毕业的同学可以从天台下来了,当然是走下来,不是让你跳下来。

你可以好好琢磨一下这个模型,把各种排列组合都试试,只要你能提出一种新的组合并被证明有效,那恭喜你:施主,你可以毕业了。

扯远了,再拉回来。

 

3、总结

Encoder-Decoder是个创新游戏大杀器,一方面如上所述,可以搞各种不同的模型组合,另外一方面它的应用场景多得不得了,比如对于机器翻译来说,<X,Y>就是对应不同语言的句子,比如X是英语句子,Y是对应的中文句子翻译。

再比如对于文本摘要来说,X就是一篇文章,Y就是对应的摘要;

再比如对于对话机器人来说,X就是某人的一句话,Y就是对话机器人的应答;再比如……总之,太多了。哎,那位施主,听老衲的话,赶紧从天台下来吧,无数创新在等着你发掘呢。

 

由于篇幅不宜过多,后面的内容在自然语言处理中的Attention Model:是什么以及为什么[二]中推送。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/324755.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

204787 ,194787 |0001 1131 0001 4226 7035 ![2480 ]

点击上方蓝色关注我们&#xff01;0006 6143 0037 7139 ,2598 4192 0007 7240 0681 1331 0226 ?6849 ?0784 4104 6943 4149 2418 2345 5116 ,7119 0354 0055 3089 1835 ,5261 1783 0250 2601 0110 0171 ,6290 0138 4972 1421 0055 7820 0087 8010 0138 4104 ?1927 1927 ,076…

DDD理论学习系列(9)-- 领域事件

1. 引言 A domain event is a full-fledged part of the domain model, a representation of something that happened in the domain. Ignore irrelevant domain activity while making explicit the events that the domain experts want to track or be notified of, or whi…

ssl1127-方程的解数【HASH,dfs】

前言 我只是凑数的。 正题 输入输出&#xff08;建议无视&#xff09; Input 第1行包含一个整数n。第2行包含一个整数M。第3行到第n2行&#xff0c;每行包含两个整数&#xff0c;分别表示ki和pi。两个整数之间用一个空格隔开。第3行的数据对应i1&#xff0c;第n2行的数据对应…

自然语言处理中的Attention Model:是什么以及为什么[二]

转载自 自然语言处理中的Attention Model&#xff1a;是什么以及为什么[二] 自然语言处理中的Attention Model&#xff1a;是什么以及为什么[二] 1、Attention Model 图一见下&#xff1a; 图1中展示的Encoder-Decoder模型是没有体现出“注意力模型”的&#xff0c;所以可以…

SpringAOP之代理设计模式

[1]设计模式: 概念: 设计模式其实就是代码的一种结构的设计思路。 好处: 增加代码健壮性 易修改性 可扩展性 设计模式的种类: 三大种类: 建造类设计模式 结构类设计模式 行为类设计模式 参考网址: http://baijiahao.baidu.com/s?id1639156298714178350&wfrspider&forp…

教师节快乐!

点击上方蓝色关注我们&#xff01;今天是个特殊的节日&#xff0c;教师节&#xff0c;从昨天开始就有学生给我发教师节祝福了……诺&#xff0c;发就发了吧&#xff0c;还害羞&#xff01;早上一醒来&#xff0c;就看到同学们在群里发祝福&#xff0c;心理美滋滋的。还有直接改…

如何利用.NET Core搭建跨平台的控制台应用程序

尽管传统意义上来说&#xff0c;.NET是只面向Windows的、闭源的专有平台&#xff0c;然而&#xff0c;传统观念即将被颠覆。新的开源跨平台的.NET Core已经开启&#xff0c;意味着你可以在任意平台写C#或.NET&#xff0c;然后在Windows、Linus和macOS运行。 这个新的.NET平台正…

自然语言处理中CNN模型几种常见的Max Pooling操作

转载自 自然语言处理中CNN模型几种常见的Max Pooling操作 自然语言处理中CNN模型几种常见的Max Pooling操作 CNN是目前自然语言处理中和RNN并驾齐驱的两种最常见的深度学习模型。 图1展示了在NLP任务中使用CNN模型的典型网络结构。 一般而言&#xff0c;输入的字或者词用…

SpringTX

文章目录SpringTX的介绍SpringTX的使用代码示例声明式事务中属性解释SpringBoot中AOP事务配置SpringTX的介绍 问题&#xff1a; 在学习了Spring整合mybatis后&#xff0c;我们可以直接从Spring容器中获取mapper层的实例化对象完成数据库操作。而在业务层方法中很多时候因为业务…

详细整理分层开发步骤!

不点蓝字&#xff0c;我们哪来故事&#xff1f;一、创建数据库&#xff0c;在数据库中创建表二、创建java项目&#xff08;起名要有意义&#xff0c;eg&#xff1a;petSys&#xff09;三、在项目中新建包&#xff0c;包名为&#xff1a;cn.bdqn.petSys.entity四、在cn.bdqn.pet…

.NET 跨平台界面框架和为什么你首先要考虑再三

现在用 C# 来开发跨平台应用已经有很成熟的方案&#xff0c;即共用非界面代码&#xff0c;而每个操作系统搭配特定的用户界面代码。这个方案的好处是可以直接使用操作系统原生的控件和第三方控件&#xff0c;还能够和操作系统深度集成。 这里的深度集成主要是指一些 Windows 专…

seq2seq中的beam search算法过程

转载自 seq2seq中的beam search算法过程 首先说明在sequence2sequence模型中&#xff0c;beam search的方法只用在测试的情况&#xff0c;因为在训练过程中&#xff0c;每一个decoder的输出是有正确答案的&#xff0c;也就不需要beam search去加大输出的准确率。 假设现在我…

Spring的properties属性配置文件和Spring常用注解

Spring的properties属性配置文件 问题: 在学习了Spring的知识后&#xff0c;需要被Spring管理的资源都是通过配置文件的形式来告诉Spring容器对象管理谁以及如何管理。但是随着使用次数的增多&#xff0c;我们发现配置文件中配置的标签越来越多&#xff0c;每次我们创建一个新…

即日起,正式进入编程世界!

点击上方蓝色关注我们&#xff01;从今天开始&#xff0c;正式进入编程世界。首先我们先从堪称“少儿编程”的Scratch开始&#xff0c;简洁的编辑窗口加上可读性较高的Chinese&#xff08;大部分的编程编辑器均为英文版&#xff09;&#xff0c;使得该软件特容易上手。班内总有…

使用领域事件

1.引言 最近刚学习了下DDD中领域事件的理论知识&#xff0c;总的来说领域事件主要有两个作用&#xff0c;一是解耦&#xff0c;二是使用领域事件进行事务的拆分&#xff0c;通过引入事件存储&#xff0c;来实现数据的最终一致性。若想了解DDD中领域事件的概念&#xff0c;可参…

深入浅出讲解语言模型

转载自 深入浅出讲解语言模型 深入浅出讲解语言模型 1、什么是语言模型呢&#xff1f; 简单地说&#xff0c;语言模型就是用来计算一个句子的概率的模型&#xff0c;也就是判断一句话是否是人话的概率&#xff1f; 那么如何计算一个句子的概率呢&#xff1f;给定句子&…

基于.NET CORE微服务框架 -surging的介绍和简单示例 (开源)

一、前言 至今为止编程开发已经11个年头&#xff0c;从 VB6.0,ASP时代到ASP.NET再到MVC, 从中见证了.NET技术发展&#xff0c;从无畏无知的懵懂少年&#xff0c;到现在的中年大叔&#xff0c;从中的酸甜苦辣也只有本人自知。随着岁月的成长&#xff0c;技术也从原来的三层设计到…

NLP Coursera By Michael Collins - Week1

转载自 NLP Coursera By Michael Collins - Week1 NLP Coursera By Michael Collins - Week1 构建模型框架 - Markov Process 毕竟是机器学习嘛&#xff0c;所以第一步&#xff0c;先要把实际问题转化成数学模型。 在NLP中&#xff0c;一般使用的都是概率模型&#xff0c;…

19级:班级日常分享,一天一瞬间

点击上方蓝色关注我们&#xff01;19级的同学们目前正在做KTV点歌系统项目&#xff0c;截止今日为止&#xff0c;项目已经进展了1天多了&#xff0c;进度还在可控范围内&#xff0c;大部分组的后台都已完成&#xff0c;刘娜小组稍微比较慢了点儿。李磊小组的进度最快&#xff0…