返回介绍

PaperWeekly 第四期 - 基于强化学习的文本生成技术

发布于 2025-01-21 00:48:32 字数 7880 浏览 0 评论 0 收藏 0

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 Text Generation_lshowway》
以任务为导向的户内导航对话系统用分层强化学习进行文本生成

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

Generating Text with Deep Reinforcement Learning

作者

Hongyu Guo

单位

National Research Council Canada

关键词

Reinforcement Learning、Seq2Seq、Text Generation

来源

NIPS2015 Workshop (2015.10.30)

问题

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

模型

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

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

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

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

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

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

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

总结 DQN 所需的四个元素对应如下:
(1) i 时刻下的 state:(EnSen(i), DeSen(i));
(2) i 时刻下的 action:beam search 得到的每个位置的 hypotheses;
(3) i 时刻下的 reword:target sentence 和 DeSen(i+1) 的相似度(BLEU score);
(4) i+1 时刻下的 state:(EnSen(i), DeSen(i+1));

为了更好的提取句子的特征,作者在 decode 阶段使用了双向 LSTM。同时还在 reinforcement learning 中加入 attention 机制,可以达到先 decode 比较简单的部分再处理困难部分的效果。最后在生成相似句子的实验中得到了比只用 LSTM decoder 效果更好的结论:

相关工作

简评

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

Deep Reinforcement Learning for Dialogue Generation

作者

Jiwei Li, Will Monroe, Alan Ritter, Michel Galley, Jianfeng Gao, Dan Jurafsky

单位

(1) Stanford University, Stanford, CA, USA
(2) Microsoft Research, Redmond, WA, USA
(3) Ohio State University, OH, USA

关键词

Reinforcement Learning、Seq2Seq、Text Generation

来源

http://arXiv.org(2016.06.25)

问题

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

模型

强化学习中的 reward

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

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

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

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

对比试验:
(1) 对话初始状态为一个 SEQ2SEQ 加 attention 的模型作为强化学习的初始状态。

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

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

相关工作

简评

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

Hierarchical Reinforcement Learning for Adaptive Text Generation

作者

Nina Dethlefs, Heriberto Cuay´ahuitl

单位

University of Bremen, Germany

关键词

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

来源

国际自然语言生成会议 INLG(2010)

问题

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

模型

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

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

(1) Content Selection:给不熟悉环境的用户的导航要比熟悉环境的用户的导航更细致
(2) Text Structure:根据导航距离以及用户熟悉环境程度给予不同类型的导航,如大白话的,以 fisrt, second…表达或者示意性的。
(3) Referring Expression Generation:一间房间可以叫“A203”,也可以叫“办公室”或者“小白楼”
(4) 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 之间的平衡(具体公式可见论文)。

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

资源

词性标注工具: The Stanford Natural Language Processing Group

简评

将来的工作:将分层强化学习应用于其他 NLG 任务
不足之处:实验是在模拟环境下进行的,未来应该在真实环境进行评估。

总结

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文