在上一篇文章中我们简要地说了一下RNN是个什么东西,具体数据在模型上时怎么跑出结果的,简单而言我们把RNN的内部看成一个箱子,把输入的词汇一个一个往里放,并根据每一步的输出同步作为下一步的输入,从而达到综合前面的句意和当前的词义的效果。这篇文章我们主要介绍翻译任务的经典模型之一seq2eq。
翻译到底是个啥
千百年来翻译从来都是个苦逼的活,你不但要精通本国的语言,还要精通国外的语言,争取满足各位水平参差不齐但是要求统一很高的看官,达到“信达雅”的标准。我们抽象地来看翻译这件事情,一个人要翻译中文的一本书,比如《论语》
- 他看到了“学而时习之,不亦说乎”
- 在他的脑子里,看到的这句话形成了一个容易理解的、直观的东西:我学习,然后有规律的每天复习以前的知识,这种事儿还是挺爽的。
- 同样在脑子里,他开始尝试用英文的每个字词来对应直观理解的意思,比如“study everyday and review regularly, isn’t it something delightful?”
- 最终他决定落在笔头上,把上述简单的初中词汇、高中语法,逐个替换为GRE/GMAT词汇,以让人看不懂为目的的语法,输出出来。
用流程图来理解这个过程很简单,我得到这句话 -> 我理解这句话 -> 我对应这句话 -> 我输出这句话。
Encoder - Decoder
有了前面的铺垫