基于强化学习的文本生成技术

2013年以来Deep mind团队相继在NIPS和Natures上发表了用深度增强(强化)学习玩Atari游戏,并取得良好的效果,随后Alpha go与李世乭的一战更使得深度增强学习家喻户晓。在游戏上取得了不错的成果后,深度增强学习也逐渐被引入NLP领域。本期介绍目前NLP领域较为热点的研究方向,基于强化学习的文本生成技术(NLG),共选择了三篇文章,分别为:

1.             《Generating Text with Deep Reinforcement Learning》

应用Deep Q-Network作为生成模型用于改善seq2seq模型

2.             《Deep Reinforcement Learning for Dialogue Generation》

应用强化学习进行开放领域的文本生成任务,并对比了有监督的seq2seq加attention模型和基于最大互信息的模型

3.             《Hierarchical Reinforcement Learning for Adaptive TextGeneration_lshowway》

以任务为导向的户内导航对话系统用分层强化学习进行文本生成

以下为三篇文章的主要信息:

一、 《GeneratingText with Deep Reinforcement Learning》

1、作者:Hongyu Guo

2、单位:National Research Council Canada

3、关键词:Reinforcement Learning、seq2seq、text generation

4、来源:NIPS2015 Workshop (2015.10.30)

5、问题:本文提出将Deep Q-Network作为生成模型用于改善seq2seq模型,将decoding修改为迭代式的过程,实验表明本模型具有更好的泛化性。

6、模型:

           对seq2seq模型改进的论文层出不穷,本文率先引入深度强化学习的思想,将DQN用于文本生成。对DQN还不了解的同学可以先阅读DeepMind的论文Playing Atari with Deep ReinforcementLearning。

           本文的模型如下:

           如同一般的神经网络,我们也可以把DQN当做一个黑盒来使用。只需要准备好DQN需要的四个元素s(i),a(i),r(i),s(i+1),分别代表i时刻下state,action,reword和i+1时刻的state。

           对照上图我们把算法解剖分为4个步骤:

           1)   先是传统的seq2seq模型。通过LSTM先把输入序列encode为一个定长向量EnSen(i),然后作为decode阶段的初始状态依次生成新的序列DeSen(i)(decoding search使用beam search算法来 expand next words)。经过第一步我们得到初始state:(EnSen(i), DeSen(i))和action集合:每个位置的hypotheses。

           2)   接下来从hypotheses(actions)中选择一个可以获得最大reward的单词(action)作为该位置新生成的词,用新单词来代替之前的旧词,于是生成新的state:(EnSen(i), DeSen(i+1))。

           3)   接着就是标准的DQN的部分,计算Loss函数并对其应用梯度下降。

           4)   回到步骤(2),对得到的state继续迭代,每一次迭代都只生成一个新词来代替旧词,直到迭代次数达到设好的值(作者将次数定为句子长度的两倍,同学们可以思考一下理由)。

           总结DQN所需的四个元素对应如下:

           i时刻下的state:(EnSen(i), DeSen(i));

           i时刻下的action:beam search得到的每个位置的hypotheses;

           i时刻下的reword:target sentence和DeSen(i+1)的相似度(BLEU score);

           i+1时刻下的state:(EnSen(i), DeSen(i+1));

 

           为了更好的提取句子的特征,作者在decode阶段使用了双向LSTM。同时还在reinforcement learning中加入attention机制,可以达到先decode比较简单的部分再处理困难部分的效果。

           最后在生成相似句子的实验中得到了比只用LSTM decoder效果更好的结论:

 

7、related work

 

 

8、简评

           本文的思想其实非常符合写作的一种情况,就像贾岛推敲的故事,回想小时候刚学习写句子时,也不能一次写好,总会不断对一些词语进行修改。Google DeepMind的文章《DRAW:A Recurrent Neural Network For Image》也和本文异曲同工:画画也不是一次画好,也要不断的完善。不同之处在于本文率先引入DQN做文本生成。在机器学习各个分支下,强化学习和人类与环境的交互方式非常相似,在许多领域开始初露头角,期待看到更多将强化学习结合语言模型的应用。

 

 

 

二、 《DeepReinforcement Learning for Dialogue Generation》

1、作者:Jiwei Li

2、单位:斯坦福

3、关键词:Reinforcement Learning、seq2seq、text generation

4、来源:arXiv.org(2016.06.25)

5、问题:本文提出利用强化学习进行开放领域的文本生成任务,并对比了有监督的seq2seq加attention模型和基于最大互信息的模型

6、模型:

           强化学习中的reward

易被响应(Ease of answering),不容易出现对话僵局,其中 S 是无意义回答合集,s是某一时刻的响应

信息流,若开辟新的话题,有利于对话的继续发展,隐层表示 hpi 和 hpi+1 的夹角余弦

 (3)

语义连贯性,减少与对话无关问题的影响,其中,pseq2seq(a|pi,qi) 是由上一轮状态得到响应的概率,后一项是由当前产生响应通过网络生成之前的 qi 的概率。

最终的reward是对三者加权求和,系数分别为:0.25、0.25、0.5

 

对比试验:

Ÿ   对话初始状态为一个SEQ2SEQ加attention的模型作为强化学习的初始状态

Ÿ   在前面的基础上将最大互信息加入其中作为reward,对于一个给定的输入[pi,qi],可以根据模型生成一个候选回答集合A。对于A中的每一个回答a,从预训练模型中得到的概率分布上可以计算出互信息的值 m(a,[pi,qi])。

Ÿ  


将互信息训练过的模型作为初始模型,用策略梯度更新参数并加入课程学习策略,最终最多限定五轮对话

7、related work

 

8、简评

           本文作者提出了一个强化学习框架,模拟两个agent让其自动对话训练神经网络SEQ2SEQ模型,将Encoder-Decoder模型和强化学习整合,从而能保证使对话轮数增加。文中使用的模型非常简洁,reward函数定义清晰,评价指标也较为科学,可以生成信息更为丰富、易于响应的对话系统。

 

三、 HierarchicalReinforcement Learning for Adaptive Text Generation_lshowway

 

文章作者

德国不莱梅大学的Nina Dethlefs, Heriberto Cuay´ahuitl

 

文章来源和时间

2010年发表于国际自然语言生成会议INLG

 

关键词

NLG, 分层强化学习, 文本生成,wayfinding

 

文章解决的问题

在wayfinding(户内导航对话系统)领域利用分层强化学习进行文本生成。该方法的目标是对wayfinding的NLG任务整合进行优化,并在模拟系统中验证该方法的有效性。

 

相关工作

1.             rule-based

2.             n-gram

3.             flat RL

 

文章思路

本文任务在wayfinding中的NLG任务有多个,且各个任务之间并非独立。从而提出应该根据用户类型,导航距离, 环境条件等作出不同的导航策略,介绍了分层强化学习。

文章将户内导航对话系统的文本生成问题分为四块:

Content Selection:给不熟悉环境的用户的导航要比熟悉环境的用户的导航更细致

Text Structure:根据导航距离以及用户熟悉环境程度给予不同类型的导航,如大白话的,以fisrt, second…表达或者示意性的。

Referring Expression Generation:一间房间可以叫“A203”,也可以叫“办公室”或者“小白楼”

Surface Realisation:往前走可以用“go”也可以用“walk”等。

强化学习示意图如下,分层强化学习的思想与强化学习类似,但在强化学习的基础上加上层次,不同层次的模型处理不同层次的问题。

agent根据当前状态,执行动作a与环境交互,之后环境产生一个新的状态s并返回给agent一个奖赏r(可正可负),强化学习的目标函数便是使agent获得奖赏r最大。

分层增强学习包含L个层,每层N个模型,如Figure 1是有15个agents的hierarchy,其中不同的agent负责不同的层次。例如编码空间环境和用户类型信息,编码句子结构信息等。

每个agent定义为半马尔科夫决策过程,可以表示成一个四元组分别为状态集, 动作集, 转换函数,奖励函数。奖励函数表示agent在时间t状态s是执行动作a转换到新的状态s’所获得的奖励。半马尔科夫的目标是找到policy π*,

使得在从当前状态转换到新的状态获得的累计奖励最多

本文使用两种奖励函数,一种着重在 interaction length, 另一种着重在alignment and variation之间的平衡(具体公式可见论文)。root以及使用第一种, 使用第二种(分层由此可见)。

本文是在模拟环境中进行试验,其中模拟环境包括user type(熟悉环境,不熟悉环境), information need(高,低),length of the current route(短,中长,长),next action to perform(转,直走),current focus of attention(继续走,关注标识)。baseline为为部分agent随机选择action,即不考虑用户类型,导航距离等因素。经与baseline比较,效果较好。

 

资源

文章使用了用于抽取grammatical categories的词性标注工具:http://nlp.stanford.edu/software/tagger.shtml

 

简评

将来的工作:将分层强化学习应用于其他NLG任务

不足之处:实验是在模拟环境下进行的,未来应该在真实环境进行评估。

 

           这三篇文章皆是强化学习在NLP领域的应用,第一篇主要侧重点在于应用DQN进行文本生成,并用BLUE指标进行评价,对比传统的LSTM-decoder和加入DQN之后的结果;第二篇文章侧重点在于虚拟两个Agent,在传统Seq2Seq的基础上加入强化学习从而使得聊天能够持续下去;第三篇文章侧重点在于任务驱动的对话系统应用分层强化学习,针对不同情况进行分层处理。

以上为本期Paperweekly的主要内容,感谢lshowway、美好时光海苔、Tonya三位同学的整理。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值