这是uber-plato 的研究成果,发表时间:2019-7-11
https://github.com/uber-research/plato-research-dialogue-system
https://arxiv.org/pdf/1907.05507.pdf
http://www.paperweekly.site/papers/3801
Papangelis, A., Wang, Y.-C., Molino, P., & Tur, G. (2019). Collaborative Multi-Agent Dialogue Model Training Via Reinforcement Learning. SIGDIAL, 92–102. https://doi.org/10.18653/v1/w19-5912
摘要
论文阐述了对话代理仅通过自我生成语言进行交流的第一次完整的尝试。
使用DSTC2作为种子数据,为每个代理训练了NLU和NLG网络,使得代理之间能够在线交互。
将代理之间的交互行为看做是随机合作游戏,每个代理(玩家)都有一个角色(助理、导游、食客等),它们只能通过自己生成的语言和顾客进行交互。因此,每个代理都需要学习如何在具有多种不确定性来源的环境中合理运作(它自己的NLU和NLG,其他代理的NLU, Policy, 和 NLG)。我们的实验结果证实,随机游戏代理比有监督的深度学习方法表现优秀。
主要思路
在DSTC2数据集上,Cambridge restaurants领域实现多对话代理。
整体的模型由1个卷积层encoder和2个decoder(一个意图多标签分类器、一个槽位标记器)组成,以多任务的方式进行端到端训练,同时优化多标签意图分类和插槽标记任务。
对话策略学习
论文训练了2个代理:一个是寻找餐馆信息的seeker,另一个是提供信息的provider。
seeker将自己的目标和provider提供的信息建模;而提供者的状态模型则表达了搜索者所要求的约束或信息,以及当前关注项的属性(从数据库中检索)和与当前数据库结果相关的度量,例如检索项的数量、槽值熵等。
每个代理的奖励信号是不同的。
每个代理的对话策略都接收对话状态跟踪的结果,输出对话行为。候选的对话行为也是相同的。每个代理也有不同的对话状态,表示对世界的认知。
论文研究policy环节的强化学习多代理问题。
WoLF-PHC
2.3 文本生成
文中实现了seg2seg的lstm模型,并加入了attention机制。
3 评估
《 Plato Research Dialogue System》用于实现、训练和评估代理。为了训练对话代理的能力,我们再2个维度比较了3个指标:对话成功率、平均累积奖励、平均对话轮数。
- 训练中是否达到了真正的标签
- 是否在静态环境下训练
因此为每个角色训练了4种对话代理(总共8种)。由于设置原因,静态环境的算法(例如DQN)并未考虑。
-
SuperDAct
具体来讲,SuperDAct代理被建模为3层前馈网络(FFN),使用提供的对话动作注释,对DSTC2数据进行训练。 -
Supervised
有监督的代理(也是3层FFN)在DSTC2数据上被训练,但是每个代理的策略使用其各自的NLU的输出:提供者(数据集中的对话系统)使用经过训练的NLG【以数据中的对话行为作为输入】生成它的话语;
接下来,搜索者(数据集中的人工调用者),使用提供者的话语作为其NLU的输入,NLU的输出随后被提供给其策略。
同样的方法也适用于提供方。
-
WoLF-DAct
WoLF-DAct 代理采用并行训练(即在非固定环境中),但通过对话行为进行互动 -
WoLF-PHC
WoLF-PHC 代理采用并行训练,通过生成语言进行互动
在对话行为到对话行为(即没有LU,也没有LG)的实验中,SuperDAct和WoLF-DAct分别达到了81%和95%的对话成功率。
除此之外,我们还使用深度策略梯度算法训练对话代理。但是,即使在考虑到非平稳性而改变策略梯度代理的训练之后,他们的性能也无法与Wolf-PHC或监督代理相匹配。当然,这并不意外,因为这些算法是为在固定环境中学习而设计的。因此,本文不讨论这些结果。
在我们的评估中,如果提供者符合信息寻求者的目标,遵循此域使用的标准定义,则对话被认为是成功的。在此定义之下,提供者必须满足一项,来匹配搜寻着的条件,并且必须回应搜寻着的所有请求。
但是,如表6所示,即使对话管理器的输出是正确的,NLG也可能错误地实现或理解。虽然没有一个模型(NLU, DM, NLG)直接优化这个目标,但它是整个系统性能的一个很好的代理,并允许与之前的工作进行直接比较。我们使用文献中发现的标准奖励函数作为强化学习的奖励信号(Gasic et al., 2013;如第2.2节所述,Su等人,2017年)调整以适应每个代理的感知。
代码见https://github.com/uber- research/ plato-research-dialogue-system