美文网首页
聊天机器人-DPL模块

聊天机器人-DPL模块

作者: 魏鹏飞 | 来源:发表于2019-10-16 17:13 被阅读0次

有一些资料把这部分称为Policy Optimization/Policy Learning。

1. 什么是DPL

DPL模块的输入是DST模块输出的当前对话状态s_n,通过预设的对话策略,选择系统动作a_n作为输出。

对话策略模块可以认为是根据对话历史状态进行决策的一个部件,当然历史上DPL本身有很多发展过程,例如通过人工设计有限状态自动机方法、用部分可观察马尔科夫随机过程的方式建模(POMDP),当然现代研究主要都转向了使用神经网络直接有监督训练和基于强化学习的训练。

2. 案例一:询问天气

有限状态自动机的方法进行规则的设计,有两种不同的方案:一种以点表示数据,以边表示操作;另一种以点表示操作,以边表示数据,这两种方案各有优点,在具体实现时可以根据实际情况进行选择。

方案一:以点表示数据(槽位状态),以边表示操作(系统动作)如下图

“询问天气”的有限状态自动机设计(1)

在这种情况下,有限状态自动机中每一个对话状态S表示槽位的填充情况,例如槽位均为空时,状态为NULL,表示为(0, 0);仅时间(Time)槽位被填充时,状态表示为(0, 1)。本示例共有两个槽位,分别是时间和地点(Location),因此共有4种不同的状态。

状态转移是由系统动作引起的,例如仅时间槽位被填充时,下一步系统动作为“询问地点”(Ask Location),以获取完整的槽位填充。S0为起始状态,Z为终止状态,S1、S2、S3三种状态的作用是对槽位填充进行确认。如果成功填充,则跳转到下一个状态继续;如果没有成功,则再一次询问进行槽位填充(Ask Again)。

这种方式弊端非常明显:随着槽位数量的增加,对话状态的数量也会急剧增加。具体来说,在上述方案中,对话状态的总数由槽位的个数决定,如果槽位有k个,那么对话状态的数量为2^k个。尝试进行这一弊端研究有很多,如Young S^{[2]}等人提出的隐藏信息状态模型(Hidden Information State , HIS)和Thomson B^{[3]}等人提出的基于贝叶斯更新的对话状态管理模型(Bayesian Update of Dialogue State, BUDS)等。

方案二:以点表示操作(系统动作),以边表示数据(槽位状态)如下图

“询问天气”有限状态自动机设计(2)

在这种情况下,有限状态自动机中每一个对话状态S表示一种系统动作,本例中系统动作共有3中,分别是两种问询动作:“询问时间”(Ask Date)和“询问地点”(Ask Location),以及最后的系统回复“回答天气”(Answer)动作。有限状态自动机中状态的迁移则是由槽位状态变化,即“用户动作”引起的。

对比上述两种方案可以发现,第二种有限状态自动机以系统动作作为核心,设计方式更简洁,并且易于工程实现,更适合人工设计的方式。第一种有限状态自动机以槽位状态为核心,枚举所有槽位情况的做法过于复杂,更适合数据驱动的机器学习方式。

系统动作的定义通常由问询、确认和回答3中。问询的目的是了解必要槽位缺失的信息;确认是为了解决容错性问题,填槽之前向用户再次确认;回答则是最终回复,意味着任务和有限状态自动机工作的结束。

采取问询的方式获得缺失的槽位信息,在一些情况下是不合适的,以“询问天气”任务为例,向用户问询槽位缺失的信息会大幅降低用户对系统的满意度。在真实的业务环境下,系统往往会直接采取默认值槽位的方式,或者结合以往的对话历史数据,自动填补个性化的结果。例如,用户以往问的都是广州的天气,那么“地点”槽位就会被个性化地填充为“广州”。

这就引出了面向任务对话系统的质量评估方法。对面向任务的对话系统而言,完成用户指定任务所需的对话轮数越少越好。在实际应用中,诸如“询问天气”这样的任务,通常都尽可能地在一次对话中完成,而有些任务则必须要进行多轮对话,例如订餐、购票等任务

接下来,我们以“订餐需求”为例,说明多轮对话的必要性,以及对话轮数的取舍问题。

案例二:订餐
在典型的订餐领域的对话系统中,根据生活经验,我们知道需要为系统定义以下几个槽位。

1. slot1:用户地址(Address)。
2. slot2:用户手机号码(Phone)。
3. slot3:订餐餐厅名称(Res_name)。
4. slot4:食物名称(Food_item)。
5. slot5:食物类型(Food_type)。
6. slot6:价格范围(Price_range)。

其中前4项为必要槽位,对订餐任务来说是必须提供的参数,最后两项为非必要槽位,可有可无,有的话可以提高餐厅任务的精确度。参考案例一的处理过程,首先对此任务设计相应的有限状态自动机,如下图

“订餐”系统有限状态自动机设计

可以发现,在该任务下的有限状态自动机设计中,我们只加入了必要槽位的问询操作,没有对Food_typePrice_range进行强制的系统询问。两个非必要槽位能够对“Ask Food_item”,即询问具体食物名称起到辅助作用。当用户没有明确需求时,系统可以给出具体食物推荐,这样的设定可以有效地减少非必要的对话,减少对话轮数

参考文献

  1. 自然语言处理与实践
  2. Young S, Keizer S, Mairesse F, et al. The Hidden Information Statemodel: A practical framework for
    POMDP-based spoken dialogue management. Computer Speech & Language, 2010, 24(2):150-174.
  3. Thomson B, Schatzmann J, Young S. Bayesian update of dialogue state for robust dialogue systems, IEEE International Conference on Acoustics, Speech and Signal Processing, 2008:4937-4940.

相关文章

网友评论

      本文标题:聊天机器人-DPL模块

      本文链接:https://www.haomeiwen.com/subject/erpemctx.html