NLP八卦每日谈 2

昨日说到了RL Language Generation,就是把decoder看成agent,metric视作reward来训练语言生成。RL的问题在于非常难以训练。而至于为什么难,回答都是variance很大啦,收敛很慢啦,对reward的scale敏感啦,这些模棱两可的答案。而这些从纯公式角度出发,本不该面对的痛苦,说明RL的实际效果和RL背后的数学道理是有出入的。

RAML就试图从另一个角度来考察RL的实际效果。思路非常简单,将RL转化成数学上等价的ML(teacher forcing来训练)。

具体如下:

RL: x --> 通过decoder sample一个句子y' --> 和y计算metric --> 把metric作为reward,算policy gradient

RAML: y --> 通过和metric对应的一个distribution sample一个句子y* --> 把y* 作为GT进行ML训练

具体为什么等价看paper的公式推导,非常简单。

这样做的好处是RL的sample是根据decoder sample,而decoder有参数,所以需要policy gradient。而RAML,是根据y(target sentence)来sample句子。这样就没有参数的问题,也就不需要policy gradient了。

RAML看起来几乎完美,不存在任何优化问题。可天下没有免费的午餐。RAML的难点在于如何将Metric转化成对应的distribution。RAML只提供了将诸如edit distance等metric转化成dist的方法,但对于BLEU等却无能为力。

所以目前为止,RAML的主要贡献在于让我们理解RL language generation到底train了个啥。简单来说就是不学ground truth distribution,而学习一个跟metric相关的dense distribution。这么做的好处是y的distribution更大,相对来说更容易学习。No magic in it.


现在,大家普遍知道RL generation很tricky,却依旧趋之若鹜,一个原因是合理的在NLG中用GAN必须要走RL的这条思路。非常凑巧,前天,deepmind release了第一个成功在LM上使用GAN的工作。之后来介绍一下这篇文章中使用的技巧。



Jacob Eisenstein全职去google ai西雅图了。

发布于 2019-05-29 08:26