A Diversity-Promoting Objective Function for Neural Conversation Models论文阅读笔记

本文是李纪为的论文“A Diversity-Promoting Objective Function for Neural Conversation Models”阅读笔记。违章提出使用MMI代替原始的maximum likelihood作为目标函数,目的是使用互信息减小“I don’t Know”这类无聊响应的生成概率。一般的seq2seq模型,倾向于生成安全、普适的响应,因为这种响应更符合语法规则,在训练集中出现频率也较高,最终生成的概率也最大,而有意义的响应生成概率往往比他们小。通过MMI来计算输入输出之间的依赖性和相关性,可以减少模型对他们的生成概率。本文提出了两种模型(其实就是改了下目标函数,而且训练过程中仍然使用likelihood,仅在测试的时候使用新的目标函数将有意义的响应的概率变大~~),MMI-antiLM和MMI-bidi,下面分别进行介绍。

新的目标函数

在介绍模型之前先来看看新的目标函数和普通的目标函数的区别,以便清楚地明白新目标函数的作用和功能。首先看下原始的目标函数,就是在给定输入S的情况下生成T的概率,其实就是一个T中每个单词出现的条件概率的连乘。

接下来看提出的第一个目标函数MMI-antiLM,在其基础上添加了目标序列本身的概率logp(T),p(T)就是一句话存在的概率,也就是一个模型,前面的lambda是惩罚因子,越大说明对语言模型惩罚力度越大。由于这里用的是减号,所以相当于在原本的目标上减去语言模型的概率,也就降低了“I don’t know”这类高频句子的出现概率。

然后是第二个目标函数MMI-bidi,在原始目标函数基础上添加logp(S|T),也就是T的基础上产生S的概率,而且可以通过改变lambda的大小衡量二者的重要性。后者可以表示在响应输入模型时产生输入的概率,自然像“I don’t know”这种答案的概率会比较低,而这里使用的是相加,所以会降低这种相应的概率。接下来我们再详细介绍两个模型的细节

MMI-antiLM

如上所说,MMI-antiLM模型使用第一个目标函数,引入了logp(T),如果lambda取值不合适可能会导致产生的响应不符合语言模型,所以在实际使用过程中会对其进行修正。由于解码过程中往往第一个单词或者前面几个单词是根据encode向量选择的,后面的单词更倾向于根据前面decode的单词和语言模型选择,而encode的信息影响较小。也就是说我们只需要对前面几个单词进行惩罚,后面的单词直接根据语言模型选择即可,这样就不会使整个句子不符合语言模型了。使用下式中的U(T)代替p(T),式中g(k)表示要惩罚的句子长度:

此外,我们还想要加入响应句子的长度这个因素,也作为模型相应的依据,所以将上面的目标函数修正为下式:

MMI-bidi

MMI-bidi模型引入了p(S|T)项,这就需要先计算出完整的T序列再将其传入一个提前训练好的反向seq2seq模型中计算该项的值。但是考虑到S序列会产生无数个可能的T序列,我们不可能将每一个T都进行计算,所以这里引入beam-search只计算前200个序列T来代替。然后再计算两项和,进行得分重排。论文中也提到了这么做的缺点,比如最终的效果会依赖于选择的前N个序列的效果等等,但是实际的效果还是可以的。

实验结果

最终在Twitter和OpenSubtitle两个数据集上面进行测试,效果展示BLEU得分逗比标准的seq2seq模型要好。

你可能感兴趣的:(深度学习,nlp,QA,RNN循环神经网络,QA_对话机器人_机器阅读专题,深度学习,自然语言处理,对话系统,seq2seq)