为什么很多人说RL不适合用来做NLP ?

在知乎上浏览过很多帖子,在看一些踩坑贴时,发现有一部分人说RL根本不适合做NLP 任务。有些人也说NLP 很多任务的本质就是序列决策,本质上就可以使用…
关注者
728
被浏览
140,693
登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏

我觉得可以这么理解。

1.NLP现有的主要问题,是离散空间的建模问题,比如一句话,去掉任意一个词,句意就很可能变化甚至完全不一样。这种现象是很难以平滑的数学公式来建模的(深度模型就可以理解为一个大的黑盒数学公式)。RL的初衷就是通过对当前状态进行reward,来实现筛优去劣的过程,但是由于离散的语义空间,使得reward函数极度不稳定,一点点小变化就会带来大灾难

2.NLP很多问题难以用一个确定的reward函数衡量结果的好坏,原因也是离散的语义空间。比如机器翻译,对于同一句汉语,往往可以翻译成若干句不同的英语(paraphrase),这就导致bleu等统计学方法无力实现真正筛优去劣的功能。RL在有些问题只能依托成熟的NLP模型才能勉强试用

3.依旧是这个离散的问题,导致NLP很多任务的解空间过于庞大。比如生成任务(机器翻译,人机对话)吧,本来就存在一对多的现象,但是每一步都需要在整个vocab空间上去搜索,这样的结果就是总共有30000^20(假设句子长度为20,词表大小为30000)种组合的可能。再怎么抽样也抽不到能表示大部分空间的case。。。

所以嘛,RL作为解决大部分NLP问题的一种方法,受以上条件限制过多,就变成了一个食之无味,弃之可惜的鸡肋。

当然,我这些都是个人拙见。。。不得不承认有很多优秀的大佬设法解决或者避开了以上问题,让RL在一些任务上疯狂开花。很期待有优秀的大佬能够将RL在NLP任务上推进一大步