当前位置:网站首页>【Attention演变史】翻译模型seq2seq (第二弹)
【Attention演变史】翻译模型seq2seq (第二弹)
2022-08-04 19:13:00 【Petersburg】
在上一篇文章中我们简要地说了一下RNN是个什么东西,具体数据在模型上时怎么跑出结果的,简单而言我们把RNN的内部看成一个箱子,把输入的词汇一个一个往里放,并根据每一步的输出同步作为下一步的输入,从而达到综合前面的句意和当前的词义的效果。这篇文章我们主要介绍翻译任务的经典模型之一seq2eq。
翻译到底是个啥
千百年来翻译从来都是个苦逼的活,你不但要精通本国的语言,还要精通国外的语言,争取满足各位水平参差不齐但是要求统一很高的看官,达到“信达雅”的标准。我们抽象地来看翻译这件事情,一个人要翻译中文的一本书,比如《论语》
- 他看到了“学而时习之,不亦说乎”
- 在他的脑子里,看到的这句话形成了一个容易理解的、直观的东西:我学习,然后有规律的每天复习以前的知识,这种事儿还是挺爽的。
- 同样在脑子里,他开始尝试用英文的每个字词来对应直观理解的意思,比如“study everyday and review regularly, isn’t it something delightful?”
- 最终他决定落在笔头上,把上述简单的初中词汇、高中语法,逐个替换为GRE/GMAT词汇,以让人看不懂为目的的语法,输出出来。
用流程图来理解这个过程很简单,我得到这句话 -> 我理解这句话 -> 我对应这句话 -> 我输出这句话。
Encoder - Decoder
有了前面的铺垫,这里理解这个模型设计就直白很多了。我们的输入以及输出都是自然语言,比如中文、英文、阿拉伯文这种我们读得懂的文字,同时计算机处理的是数字、向量。我们这里略过单词的向量话不谈,假设我们已经得到了输入的待翻译句子的逐单词的向量表示。
我们需要两个RNN,就如本部分的标题,一个取名叫Encoder,他的兄弟叫Decoder。翻译成人话,就很像二战时候的信息传送,传送方把信息加密后传递出去,接收方用一定的方法还原出来。
Encoder这里的任务就是跑一遍我们之前说过的RNN,拿到一个语义向量,作为Decoder的输入之一。对应上面提到的前两步,得到这句话和理解这句话。
Decoder的任务就是我们要把语义向量分析出来,输出为目标语言的文字。这块对应后面两步,对应每个理解和输出成目标语句。
图中左边是英语的encoder,右边是法语的decoder。至于这块的RNN,我们通常都会选用LSTM或者GRU。
边栏推荐
猜你喜欢
随机推荐
How can test engineers break through career bottlenecks?
BigDecimal 使用注意!!“别踩坑”
win10 uwp win2d 使用 Path 绘制界面
【填空题】130道面试填空题
SAP UI5 视图控制器 View Controller 的生命周期方法 - Lifecycle methods
Usage of collect_list in Scala105-Spark.sql
工业相机CCD与CMOS
win10 uwp MetroLog 入门
Yuanguo chain game system development
天呐,七夕我收到9份告白~
Day018 Inheritance
win10 uwp 修改Pivot Header 颜色
我的四周年创作纪念日
c语言进阶篇:自定义类型--结构体
curl命令的那些事
How to add custom syntax to MySQL?
七夕福利!中奖名单:书籍免费送!
ELECTRA:Pre-training Text Encoders as Discriminators Rather Than Generators
基于YOLOV5行人跌倒检测实验
指静脉识别-matlab









