Encoder-Decoder 模型(seq2seq、集束搜索、贪心搜索)简记

seq2seq顾名思义就是模型的输入和输出均是序列(sequence),机器翻译模型是seq2seq的一典型例子。

RNN-Encoder-Decoder模型

1、机器翻译模型

机器翻译模型

上图的机器翻译模型由左边的多对一RNN(many to one)和右边的一对多RNN(one to many)组成,左边绿色部分是编码器(encodeer),右边紫色部分是解码器(decodeer) 某种语言的句子序列通过编码器生成一个向量作为其代表,传递给解码器作为解码器的输入向量,输出另一种语言的句子序列。

根据语言模型可以发现,机器翻译模型的解码器与语言模型几乎相同,只是语言模型中的预输入向量a^{<0>}\vec{0} ,而机器翻译模型的解码器的输入a^{<0>}是编码器输出的向量,所以机器翻译模型又叫条件语言模型(condition language model)。

语言模型告诉我们的是一个句子的概率,机器翻译解码器的作用在编码器传递的向量的基础上,随机抽样得到多种翻译,再通过某种算法找出句子概率最大的一个,即最合适的翻译结果。

每种翻译结果的可能性=P(y^{<1>},..., y^{}\vert x),其中y^{<i>}是翻译结果的第i个词,T_y是翻译结果总词数,x是输入的需要翻译的句子序列,x=[x^{<1>},...,x^{}]


2.1、集束搜索和贪心搜索比较

在寻找最佳翻译结果(概率最大的结果)时常用的算法是集束搜索(beam search)。在讨论集束搜索之前,先对比另外一种算法,贪心搜索(greedy search),这种对比也体现了集束搜索的最大优点。

简单的来说,贪心算法是先挑出一个最可能的词,在此基础上再挑出第二个最有可能的词,以此类推,使每个词的概率最大化。集束搜索是站在整个词序列整体的角度上使其概率最大化。典型的结果是,通过贪心搜索得到的翻译结果可能会包含一些日常使用中词频较高的词。

比如较理想的翻译结果为“Jane is visiting Africa in September”时,通过贪心搜索得到的结果可能是“Jane is going to be visiting Africa in September” ,因为在英语中“is”后加“going to”的频率要比加“visiting”的频率高很多。致使翻译结果中穿插一些高频词组,让翻译结果冗长,不简洁,所以不是最佳。

关于集束搜索得内容参见:集束搜索


2.2、集束搜索

法语“Jane visite l’Afrique en septembre” 希望翻译成英文句子 “Jane is visiting Africa in September”

集束搜索有一个参数:集束宽(beam width),表示在生成每个翻译结果\hat{y}^{<i>}时会考虑集束宽个候选结果。本文此后讨论时设集束宽为3。

在生成每个结果\hat{y}^{<i>}时,通过softmax得到字典中所有词的概率向量,维度与字典维度相同,从中取概率最高的3个词存于内存作为候选。

第一步,生成翻译结果的第一个词,即完成编码器与解码器的连接。第一个结果词的概率为 P(y^{<1>} \vert x)x为输入的法语句子序列。

第一步示意图

第二步,生成后面的结果序列。第二个词在确定第一个词的基础上搜索,以此类推。假设经过学习后y^{<1>} 的候选为“Jane”、“in”、“september”(此处暂不考虑大小写)。在第二步中,第一个和第二个单词的联合概率是关心的重点,即P(y^{<1>} ,y^{}\vert x).

P(y^{<1>} ,y^{}\vert x)=P(y^{} \vert x)P(y^{} \vert x,y^{})所以最终可以考虑每个时间步输出概率的乘积。

第二步示意图

由于此处集束宽为3,所以y^{<1>} 的3个候选词“Jane”、“in”、“september”要重复上述操作。

3个候选词重复操作

由于集束宽为3,假设字典中词数为1w,那么考虑第一、二个词会产生3w个可能的结果,并得到所有组合的联合概率P(y^{<1>} ,y^{}\vert x)因为集束宽为3,从3w个结果中挑选出联合概率最高的3个结果作为候选存于内存,同时保存每个候选的P(y^{<1>} ,y^{}\vert x),以便最终计算整个句子的概率


第三步,以此类推,得到整个句子的翻译结果。



2.3、集束搜索的改进

集束搜索的目的是最大化下式,即翻译结果句子的概率

1、因为式右端的每个概率P值都大于0小于1,其乘积结果会是一个很小的数,造成数值下溢(numerical underflow) 。了解决这个问题 ,将最大化的乘积式(即输出结果序列的联合概率)取对数 ,由 logM*N=logM+logN 公式得,上述需要最大化的乘积式可以转化为\log的和。

2、还有一个问题是概率P值大于0小于1,结果越长句子P越小,而我们寻找的是句子概率最大的结果,这就会造成集束搜索偏向更短的翻译结果。解决方法是归一化。因此将原先的公式除以翻译后句子序列长度,这样很明显的减少了对输出长的结果的惩罚。(\alpha 指数小于1,是为了缓和直接除以T_{y} 带来的影响) 

3、有时得到的结果不理想,我们需要知道是机器翻译模型(RNN构造)出了问题,还是集束搜索算法出了问题。

需要翻译法语句子: Jane visite l’Afrique en septembre ,验证集中人工翻译的正确答案为 Jane visits Africa in September将人工翻译的结果标记为y^\ast  ,使用训练完成的机器翻译模型翻译结果为 Jane visited Africa last September 并将其标记为\hat{y}

RNN编码器和解码器的功能是计算P(y \vert x),所以可以通过比较 P(y^* \vert x)P(\hat{y} \vert x)的大小就能判断问题出现的地方。

P(y^* \vert x)\geq P(\hat{y} \vert x),说明集束搜索算法选择的\hat{y} 并不能使P(y \vert x)最大,不是最佳\hat{y} ,所以是算法问题。

P(y^* \vert x)\leq  P(\hat{y} \vert x),首先假设验证集的y^\ast  是更好的结果,然而根据左式得到的是\hat{y} 比 y^\ast  更好,这说明机器翻译模型的RNN构造出现问题,不能对结果的P(y \vert x)做出有效判断,它应该判断更好的翻译结果有更高的P(y \vert x)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,544评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,430评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,764评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,193评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,216评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,182评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,063评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,917评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,329评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,543评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,722评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,425评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,019评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,671评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,825评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,729评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,614评论 2 353

推荐阅读更多精彩内容