任务型对话系统公式建模&&实例说明

#任务型对话的框架图:

SLU:把自然语言转换成机器可以处理的领域(domain)/意图(intention) 和槽植对(slot-value pairs),他的输入是代表用户输入Utterance的Xn,输出是Un。

Xn就是用户说的话,一般是几个到几十个词。

Un=(In, Zn), In是intention,Zn是槽植对。

In=f(Xn) , 就是意图分类,一般分类方法都行,也可采用DBN、DCN等方法。

Zn=f(Xn),Zn = {?1,?2,?3…},是序列标准问题,传统的CRF、HMM都行,RNN、LSTM、GRU等也可以。

另外为了解决领域数据不足的问题,SLU还有很多迁移学习(Transfer Learning)方面的工作。比如实例迁移、模型适配、参数迁移、领域关系迁移等。

DST:作用是根据领域(domain)/意图(intention) 、曹植对(slot-value pairs)、之前的状态以及之前系统的Action等来追踪当前状态。它的输入是Un、An-1和Sn-1,输出是Sn。

S? = {Gn,Un,Hn},Gn是用户目标、Un同上、Hn是聊天的历史,Hn= {U0, A0, U1, A1, … , U?−1, A?−1},S? =f(S?−1,A?−1,U?)。

DST涉及到两方面内容:状态表示、状态追踪。具体方法和论文后续我会一一放出(其实早就整理好了,还在想用什么形式来出更容易理解,有好的建议的欢迎提出来)。

另外为了解决领域数据不足的问题,DST还有很多迁移学习(Transfer Learning)方面的工作。比如基于特征的迁移学习、基于模型的迁移学习等。

DPL( 也叫DPO)基于当前状态(state)决定系统需要采取action。它的输入是Sn,输出是An。

S? = {Gn,Un,Hn},An是系统的Action,A? ={Dn, {Ai, Vi}},Dn是对话类型,Ai、Vi是第i轮对话的attribute和其value。DST一般会建模成强化学习或深度强化学习(从不同维度区分的话有非常多的变种,后面一一介绍)。

另外为了解决领域数据不足的问题,DPL还有很多迁移学习(Transfer Learning)方面的工作。比如线性模型迁移学习、高斯过程迁移学习、BCM迁移学习等。

NLG:把系统的Action转换成用Yn表示的自然语言形式的系统response。它的输入是An,输出是Yn。NLG方法非常多,比如基于规则的、基于模板的、基于短语的、基于token的、基于句法树的( 变种也不少,不过大同小异,大多是trick层面的)、基于corpus的、基于神经网络的(变种很多,如RNN、RNN+CNN、RNN+LM、LSTM+SC等)、基于神经网络+句法树的等等,后续会一一介绍。

其中A? ={Dn, {Ai, Vi}},Yn = {y1,y2,y3…},yi是第i轮的系统回复(response)。

另外为了解决领域数据不足的问题,NLG还有很多迁移学习(Transfer Learning)方面的工作。比如线在 原始领域预训练然后在目标领域(Target domain)做fine-tuning、基于实例的迁移学习、基于参数的迁移学习等。

为了在抽象的建模的基础上加深理解,看个小例子:

?1:I would like a cup of coffee.

?1:What coffee would you like?

?2:What coffee do you serve?

?2:We serve Espresso, Americano, Latte, Mocha, etc.

?3:I would like a cup of Latte.

?3:Hot Latte or Iced Latte?

?4:Hot Latte.

?4:What cup size do you want?

?5: Tall.

SLU:

输入:??=“I would like a cup of Latte.”,

输出:U?={L3, ?3},其中L3: Intention=Order、?3: {CoffeeType=Latte}

DST:

输入:

S2 ={G2, U2, H2}, 其中 :

G2= {CoffeeType=?, Size=?, Temp=?}

U2={Intention=Ask, {CoffeeType=?}}

H2 ={U1, A1}

A2={Action=Inform, {CoffeeType=Espresso, Americano, Latte, Mocha}}

U3 ={Intention=Order, {CoffeeType=Latte}}

输出:

S3 ={G3, U3, H3}, 其中 :

G3= {CoffeeType=Latte, Size=?, Temp=?}

U3={Intention=Order, {CoffeeType=Latte}}

H3 ={U1, A1, U2, A2}

DPL:

输入是S3,输出A3= {Action=Ask, {CoffeeType=Latte, Temp=?}}

NLG:

输入A3,输出Y3= "Hot Latte or Iced Latte?”。

转自
https://zhuanlan.zhihu.com/p/48268358
https://zhuanlan.zhihu.com/p/50095779
https://zhuanlan.zhihu.com/p/50347509
https://zhuanlan.zhihu.com/p/50704090
https://zhuanlan.zhihu.com/p/51476362

任务型对话系统(一)相关推荐

  1. 【NLP】首个任务型对话系统中生成模块资源库Awesome-TOD-NLG-Survey开源!

    原创作者:覃立波.黎州扬.娄杰铭.禹棋赢.车万翔 代码链接:https://github.com/yizhen20133868/Awesome-TOD-NLG-Survey 简介 自然语言生成(Nat ...

  2. 任务型对话系统预训练最新研究进展

    ©PaperWeekly 原创 · 作者 | 褚维芜 单位 | 北京邮电大学硕士生 研究方向 | 自然语言处理 引言 近年来,随着预训练模型的发展,对话领域的研究也逐渐开始关注基于预训练的端到端对话系 ...

  3. ACL 2020 | 用于多领域端到端任务型对话系统的动态融合网络

    ©PaperWeekly 原创 · 作者|王馨月 学校|四川大学本科生 研究方向|NLP 近期的研究已经在端到端面向任务对话系统中取得了很多的进步,然而,大部分模型还是依赖于大规模的训练数据,且只适用 ...

  4. 《ACL 2020丨哈工大多领域端到端任务型对话系统》

    原文链接:https://www.cnblogs.com/cx2016/p/13471731.html 分享一个基于动态聚合网络的多领域端到端任务型对话系统 覃立波,哈尔滨工业大学社会计算与信息检索研 ...

  5. 【任务型对话系统】Database Search Results Disambiguation for Task-Oriented Dialog Systems

    链接:https://arxiv.org/pdf/2112.08351.pdf 简介 在任务型对话系统(task-oriented dialog systems)中,有时我们会遇到这样一个问题: 对于 ...

  6. 《论文阅读》任务型对话系统——面向角色的对话摘要

    <论文阅读>任务型对话系统--面向角色的对话摘要 前言 文本摘要 对话摘要 Other Roles Matter! Enhancing Role-Oriented Dialogue Sum ...

  7. 中文任务型对话系统中的领域分类

    大规模跨领域中文任务导向多轮对话数据集及模型CrossWOZ:项目地址:https://gitee.com/yh14232988/CrossWOZ?_from=gitee_search 具体介绍:ht ...

  8. 百度任务型对话系统小记

    意图扩展阅读: 古月哲亭: AAAI 2021 | 清华提出深度对齐聚类用于新意图发现:https://mp.weixin.qq.com/s/9dNs8TTERPdxmrVc3tF1zw 相关项目地址 ...

  9. 对话系统(任务型、检索式、生成式对话论文与工具串讲)

    Motivation 对话是一个很大的概念,有非常非常多的子问题,刚入坑的小伙伴很可能迷失在对话的一小块区域里无法自拔,本文就是为解决这一类问题的.希望读者在看完本文后,可以理清楚对话的每个概念为什么 ...

最新文章

  1. 服务器 'xxxx' 已被定义为分发服务器。若要将该服务器重新配置为分发服务器,必须首先卸载现有的分发服务...
  2. Android 自定义view时用到的TypedArray
  3. DataSet 去除重复的行
  4. 【ARM】Tiny4412裸机编程之LED(一)
  5. 简历中该怎么写自己了解html,我用HTML写简历
  6. Sharepoint学习笔记---SPList--创建一个带有Lookup字段的List
  7. php对学历要求较低,学历低学起php来难不难-PHP问题
  8. 基于uniapp开发的适用于微信小程序,头条小程序
  9. vue怎么自己创建组件并引用_如何在组件库项目内直接引用vue-cli生成的组件库文件...
  10. [MYSQL]如何并发查询并更新
  11. tomcat内存设置
  12. 【jmeter安装】jmeter下载安装超详细简单步骤
  13. 精选JAVA毕业设计83套——源码+论文完整资源
  14. 缺少tlsys.conf文件
  15. 论文公式自动编号及引用(自动更新)
  16. 关于ps中钢笔工具的介绍
  17. (2019)基于传感器融合的机会主义占用计数估计:一个案例研究
  18. FusionAccess桌面云介绍
  19. 【已失效】免翻在Chrome上使用新必应(New Bing)聊天机器人
  20. 用MATLAB编写限幅滤波程序,双二阶滤波器之MATLAB设计及C语言实现

热门文章

  1. ASCII编码以及转换
  2. 使用ipv6内网穿透,实现私有云盘搭建,实现远程控制等功能
  3. 华为云服务之存储服务
  4. 海量数据大课学习笔记(2)-不在其位要谋其政,技术Leader能力模型提升-小滴课堂
  5. android 设置打印级别
  6. 您的计算机无法启动磁盘损坏,解决办法:如何修复SATA硬盘损坏并无法启动?...
  7. MLC的寿命是否真如厂商标称的只有3000次?论原装芯片测试的重要性!
  8. 密码管理方案之SafeInCloud+坚果云同步
  9. Deformable Convolutional Networks论文翻译——中文版
  10. 编写类A2, 定义方法find, 实现查找某字符串数组中的元素查找,并返回索引,如果找不到,返回-1