如何应对Seq2Seq中的“根本停不下来”问题?
ICML 2020 的文章 Consistency of a Recurrent Language Model With Respect to Incomplete Decoding 比较系统地讨论了这个现象,并提出了一些对策,本文来简单介绍一下论文的主要内容。
论文标题:Consistency of a Recurrent Language Model With Respect to Incomplete Decoding
论文来源:ICML 2020
论文链接:https://arxiv.org/abs/2002.02492
解码
对于自回归模型来说,我们建立的是如下的条件语言模型:
1.1 确定解码
确定性解码算法就是当输入文本固定之后,解码出来的输出文本也是固定的,这类算法包含贪心搜索(Greedy Search)和束搜索(Beam Search),事实上贪心搜索是束搜索的一个特例,所以只需要讨论束搜索。
1.2 随机解码
随机性解码算法,顾名思义,就是哪怕输入文本固定了,解码出来的输出文本也不是固定的,比如从训练语言模型进行随机采样就是这这种算法(参考《现在可以用 Keras 玩中文 GPT2》[1] )。
对于 Seq2Seq 来说,我们很多时候希望得到确定性的结果,所以多数场景下我们都是用 Beam Search。但是 Beam Searc 的生成结果可能会出现过于单一的现象(即类似“好的”、“不知道”、“谢谢”这类比较“安全”的回复)。
或者有时候我们希望增加输出的多样性(比如我们之前开源的做相似句生成的 SimBERT [2] 模型),这时候就需要随机性解码算法,它包含三种情况:原生随机解码、top-k 随机解码、Nucleus 随机解码。
适可而止
这推理过程是不是有点让人啼笑皆非?没错,是能停,但是要采样足够多步,感觉就像是“只要你买足够多张彩票就一定能中头奖”一样,并没什么确切的实际价值。
采样足够多步之后,该循环的、该重复的 token 可能都已经重复多次了,就算能停下来,得到的输出可能也没有意义了,或许还不如直接按长度截断。
个人评价
原论文的主要内容大体上就是这样了,总的来说,它确实给我们提供了对解码算法的一些新认识,以及提供了一些缓解“根本停不下来”问题的有效策略。但是,作为一篇 ICML 论文来说,我觉得原论文的视角并不高,总体显得有些显浅。
原论文的大部分篇幅,是在用数学化的语言来重新表述已有的内容,比如什么是解码算法、什么是 top-k 随机解码、什么是 Beam Search、什么是“根本停不下来”等等,原论文都给下了个数学定义,这不能说没有意义,但对论文本身要探讨的问题并没有什么价值,而除去这部分东西,原论文就没多少内容了。
其次,原论文的结论太弱,关于随机解码的应对策略前面已经点评过了,结论是对的,但基本没实用价值;而对于确定性解码的自截断设计,其实很生硬,有种粗暴截断的感觉,完全没有优雅感。
最关键的问题是,对于“根本停不下来”这个问题,论文通篇都是在回答“是什么”、“怎么办”这两个问题,没有探讨“为什么”,没有提供任何关于理解“根本停不下来”本质的有用信息,从而并没有得到更贴近本质的应对策略,这是笔者觉得相当难以接受的。
文章小结
本文介绍了 Seq2Seq 的解码算法,讨论了解码过程中可能出现的“根本停不下来”的现象,并介绍了 ICML 2020 的一篇论文中提供的应对策略。
参考链接
[1] https://kexue.fm/archives/7292
[2] https://kexue.fm/archives/7427
[3] https://arxiv.org/abs/1805.04833
[4] https://arxiv.org/abs/1904.09751
[5] https://arxiv.org/abs/1905.05702
声明:文章收集于网络,版权归原作者所有,为传播信息而发,如有侵权,请联系小编删除,谢谢!
时间:2020-07-06 23:32 来源: 转发量:次
声明:本站部分作品是由网友自主投稿和发布、编辑整理上传,对此类作品本站仅提供交流平台,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,不为其版权负责。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。
相关文章:
相关推荐:
网友评论:
最新文章
热门文章