对话系统论文阅读-A Simple Language Model for Task-Oriented Dialogue

简介

2020七月,salesforce 发布的,还不知道在哪个会议,先一睹为快吧。
论文下载链接

Motivation

传统任务导向的对话系统,单独对每个模块进行处理,即使所有模块性能都很好,但如果其中一个模块出现错误,那么错误会传播到其他的模块,影响整个对话系统的性能。

Contribution

提出了使用end2end的模型,同时对多个任务进行处理,把整个pipeline当做一个序列预测问题。整个模型是一个因果模型(单向模型)。

Method

训练过程

在这里插入图片描述
模型输入包括五个部分,上下文,状态值,数据库查询结果,动作,输出响应。它代表的意思是,在给定的这个上下文信息,需要预测出后面的state,action等信息。一个输入用例如下:

在这里插入图片描述

  • 上下文(context):是之前用户和系统之间的对话信息
  • 信念状态(belief state):系统应该输出的状态值(包括意图识别,实体识别)
  • 数据库查询结果(DB Search):指通过state中生成的需要查询的指令,对数据库进行查询
  • 动作(Action):根据前面的各项信息,当前应该执行的动作有哪些
  • 响应(Response):根据前面的各项信息,当前消息应该输出哪些信息

训练时是GPT那种单向模型,需要做掩码,每次只预测一个token,注意,这里无论是上下文还是状态或者动作,都当做不同的token对待,模型要做的就是根据前面的已有信息去预测各个token,只不过每个token的含义不同而已,有的token代表了对话状态,有的代表应该执行的action。

推理过程

推理过程和训练过程有些不一样。
在这里插入图片描述
首先,输入给系统的应该只有当前所有的对话上下文,然后去预测后续的state,action等。预测过程是一个自回归(Auto-Regression)过程,给定上下文信息后,先预测出一个属于state的token。
在这里插入图片描述
然后把预测出来的这个token拼接到输入端,接着预测下一个token。
在这里插入图片描述
这里当预测到state的最后一个token时,则根据预测到的各个state信息,去查询数据库,并把查询结果整个拼接到输入端,然后接着预测后面的所有token。
在这里插入图片描述
直到response的最后一个token预测完成,结束推理。

Conclusion

一个很好的例子,可以尝试在这个工作的基础上,做一些东西,它既是任务导向的对话系统,又是端到端的,但端到端中又实现了每个模块的功能,使得中间的部分过程可解释,同时也可以评价,可以和pipeline的方法进行比较。它把所有的预测都当做不同token的预测,并且取得了不错的效果,这启示我们可以把很多需要顺序执行或者分模块的任务,做类似的操作。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值