AI 模型与平台

使用深度强化学习进行隐喻生成 – 思想领袖

mm
将 Unite.AI 添加到您在 Google 上的首选来源

在写作或交谈时,我们都曾经想过是否有更好的方式来向他人传达我们的想法。我们应该使用什么词语?如何构建我们的思维?他们可能会如何回应?在 Phrasee ,我们花了很多时间思考语言 – 什么有效,什么无效。

想象一下,你正在为一封电子邮件活动编写主题行,这封邮件将发送给你的名单中的 1000 万人,促销一款新款笔记本电脑的 20% 折扣。

你会选择哪一行:

  • 您现在可以在下一次订单中额外享受 20% 的折扣
  • 准备好了 – 额外 20% 的折扣

虽然它们传达相同的信息,但其中一行实现了几乎 15% 更高的打开率(我打赌你无法击败我们的模型来预测哪一个?)。虽然语言可以通过 A/B 测试多臂老虎机 进行测试,但自动生成隐喻仍然是一个具有挑战性的研究问题。

如果两句话具有相同的含义并且可以互换使用,则认为它们是彼此的隐喻。另一个常常被忽视的重要事项是,机器生成的句子是否通顺。

与监督学习不同,强化学习(RL)代理通过与环境交互并观察结果奖励来学习。这一细微的差异对算法的工作方式和模型的训练有着巨大的影响。 深度强化学习 使用神经网络作为函数近似器,以便代理学习如何在复杂环境中超越人类,例如 围棋 、Atari 和 星际争霸 II

尽管如此,强化学习并没有被广泛应用于包括自然语言处理(NLP)在内的现实世界问题。

作为我在 数据科学硕士论文 的一部分,我们展示了如何使用深度 RL 来超越监督学习方法,自动生成输入文本的隐喻。生成最佳隐喻的问题可以看作是找到一系列最大化句子之间语义相似度的单词,同时保持输出的流畅度。 RL 代理非常适合在控制环境中找到实现最大预期奖励的最佳动作集。

与机器学习中的大多数问题不同,自然语言生成(NLG)应用中最大的问题并不在于建模,而在于评估。虽然人类评估目前被认为是 NLG 评估的金标准,但它具有显著的缺点,包括昂贵、耗时、难以调整,并且在实验和数据集之间缺乏可复制性 (Han,2016) 。因此,研究人员一直在寻找简单、通用且反映人类判断的自动指标 (Papineni 等,2002)

以下是评估机器生成图像字幕的最常见自动评估方法的总结,包括其优缺点:

使用强化学习的隐喻生成管道

我们开发了一个名为 ParaPhrasee 的系统,用于生成高质量的隐喻。该系统由多个步骤组成,以便在计算上高效地应用强化学习。以下是高级管道的简要总结,更多细节请参见 论文

数据集

有几个可用于研究的隐喻数据集,包括: Microsoft 隐喻语料库 (MSFT ) 、ACL 的语义文本相似度竞赛、 Quora 重复问题Twitter 共享链接 。我们选择了 MS-COCO ,因为其规模、清洁度和作为两个著名隐喻生成论文的基准的使用。 MS-COCO 包含 120k 个常见场景的图像,每个图像由 5 个不同的人类注释者提供 5 个图像字幕。

虽然它主要用于计算机视觉研究,但字幕往往具有高语义相似度,并且是有趣的隐喻。由于图像字幕由不同的人提供,因此它们往往具有细节的轻微变化,因此生成的句子往往会出现细节的幻觉。

监督模型

虽然强化学习在样本效率、训练时间和最佳实践方面有了显著改进,但从头开始训练 RL 模型仍然相对较慢且不稳定 (Arulkumaran 等,2017) 。因此,我们首先训练一个监督模型,然后使用 RL 进行微调。

我们使用 编码器-解码器 模型框架,并评估几个基准监督模型的性能。当使用 RL 微调模型时,我们只微调解码器网络,并将编码器网络视为静态。因此,我们考虑两个主要框架:

  • 使用标准/普通编码器解码器和 GRU 从头开始训练监督模型
  • 使用预训练句子嵌入模型作为编码器,包括:池化词嵌入(GloVe)、InferSent 和 BERT

监督模型在不同模型中表现相对相似,BERT 和普通编码器解码器实现了最佳性能。

虽然性能趋于合理,但存在三个常见的错误来源:结巴、生成句子片段和幻觉。这些是使用 RL 所要解决的主要问题。

强化学习模型

实现 RL 算法非常具有挑战性,尤其是当你不知道问题是否可以解决时。环境、代理、超参数、奖励函数或所有这些的实现都可能存在问题。这些问题在进行深度 RL 时更加严重,因为你需要调试神经网络的复杂性。

与所有调试一样,从简单开始 至关重要。我们实现了两个众所周知的玩具 RL 环境(CartPole 和 FrozenLake)的变体,以测试 RL 算法并找到将知识从监督模型转移到强化学习模型的可重复策略。

我们发现,使用 Actor-Critic 算法在这些环境中优于 REINFORCE。在将知识转移到 Actor-Critic 模型方面,我们发现初始化 Actor 的权重使用训练好的监督模型,并预训练 Critic 获得了最佳性能。我们发现将复杂的策略蒸馏方法推广到新环境具有挑战性,因为它们引入了许多新的超参数,需要调整才能起作用。

在这些见解的支持下,我们然后转向为隐喻生成任务开发一种方法。我们首先需要创建一个环境。

该环境允许我们轻松测试使用不同的评估指标作为奖励函数的影响。

然后我们定义代理,鉴于其众多优势,我们使用 Actor-Critic 架构。 Actor 用于选择序列中的下一个单词,并使用训练好的监督模型初始化其权重。 Critic 提供了一个状态可能接收到的预期奖励的估计,以帮助 Actor 学习。

设计正确的奖励函数

设计 RL 系统最重要的组成部分是奖励函数,因为这是 RL 代理试图优化的内容。如果奖励函数不正确,即使系统的其他部分都能正常工作,结果也会受到影响。

一个经典的例子是 CoastRunners ,其中 OpenAI 研究人员将奖励函数设置为最大化总分,而不是赢得比赛。结果是代理发现了一个循环,可以通过不断击中涡轮而不完成比赛来获得最高分。

https://www.youtube.com/watch?time_continue=2&v=tlOIHko8ySg&feature=emb_title

鉴于评估隐喻的质量本身就是一个未解决的问题,设计一个自动捕捉这一目标的奖励函数就更加困难。语言的许多方面不能很好地分解为线性指标,并且取决于任务 (Novikova 等,2017)

RL 代理经常发现一种有趣的策略来最大化奖励,这种策略利用了评估指标的弱点,而不是生成高质量的文本。这通常会导致在代理没有直接优化的指标上表现不佳。

我们考虑三个主要方法:

  1. 词重叠度指标

常见的 NLP 评估指标考虑生成的隐喻和评估句子之间的词重叠度比例。重叠度越大,奖励越大。词级方法的挑战在于,代理包含太多连接词,例如“a is on of”,并且没有流畅度的衡量标准。这导致生成的隐喻质量非常低。

  1. 句子级相似度和流畅度指标

生成的隐喻的主要属性是,它必须是流畅的,并且在语义上与输入句子相似。因此,我们尝试单独评分这些指标,然后组合它们。对于语义相似度,我们使用预训练模型(包括 BERT)的句子嵌入之间的余弦相似度。对于流畅度,我们使用基于 GPT-2 中句子的困惑度的评分。余弦相似度和流畅度评分越高,奖励越大。

我们尝试了多种句子嵌入模型和流畅度模型的组合,虽然性能尚可,但代理面临的主要问题是不能充分平衡语义相似度与流畅度。对于大多数配置,代理优先考虑流畅度,导致删除细节和大多数实体被放在“中间”某物或被移到“桌子上”或“路边”。

多目标强化学习是一个开放的研究问题,在这种情况下非常具有挑战性。

  1. 使用对抗模型作为奖励函数

鉴于人类被认为是评估的金标准,我们训练了一个名为判别器的单独模型,用于预测两个句子是否是彼此的隐喻(类似于人类的评估方式)。然后,RL 模型的目标是说服这个模型,生成的句子是输入的隐喻。判别器生成一个评分,表示两个句子有多可能是彼此的隐喻,这个评分被用作训练代理的奖励。

每 5,000 次猜测,判别器都会被告知哪个隐喻来自数据集,哪个是生成的,以便它可以改进未来的猜测。该过程在多个轮次中继续,代理尝试欺骗判别器,判别器尝试区分生成的隐喻和数据集中的评估隐喻。

经过多轮训练后,代理生成的隐喻超过了监督模型和其他奖励函数的性能。

结论和局限性

对抗方法(包括游戏中的自我对战)为训练 RL 算法超过人类在某些任务上的水平提供了一个非常有前途的方法,而无需定义明确的奖励函数。

虽然在这种情况下 RL 超越了监督学习,但在代码、计算和复杂性方面的额外开销并不值得在大多数应用中获得的性能提升。 RL 最好留给监督学习无法轻松应用且奖励函数易于定义的情况(例如 Atari 游戏)。监督学习中的方法和算法更加成熟,错误信号更强,导致训练更快、更稳定。

另一个考虑因素是,像其他神经方法一样,代理可能在面对以前未见过的输入时以戏剧性的方式失败,从而需要为生产应用添加额外的合理性检查。

过去几年中对 RL 方法的兴趣的爆发以及计算基础设施的进步将在行业中,尤其是在 NLP 中,为应用 RL 提供巨大的机会。

Andrew Gibbs-Bravo 是 Phrasee 的数据科学家,专注于改进 Phrasee 世界领先的 AI 驱动的文案写作技术。他也是伦敦强化学习社区聚会的联合组织者,并对所有与强化学习、自然语言处理和机器学习相关的事情感兴趣。