Chapter7-13_Dialogue State Tracking (as Question Answering)

文章目录

  • 1 什么是Dialogue State Tracking
  • 2 数据集
  • 3 两个挑战
  • 4 经典模型

本文为李弘毅老师【Dialogue State Tracking (as Question Answering)】的课程笔记,课程视频youtube地址,点这里👈(需翻墙)。

下文中用到的图片均来自于李宏毅老师的PPT,若有侵权,必定删除。

文章索引:

上篇 - 7-12 Controllable Chatbot

下篇 - 无

总目录

1 什么是Dialogue State Tracking

Dialogue State Tracking是Task-oriented Dialogue的一个子模块。先来讲一下Task-oriented Dialogue是什么。Task-oriented Dialogue的输入是用户当前说的话和历史的对话记录,如果用户的输入是语音,会有一个额外的ASR模块将输入转成文字,同时也会有一个额外的TTS模块将输出转为语音。用户的输入会经过一个理解模块NLU(Natural language understanding),输出会交给state tracker,也就是本文的核心内容。state tracker会从当前的输入中抽取有用的信息,保存下来。同时历史的输入都会以相同的形式把有用的信息保存下来。这些存下来的信息会以state的形式交给决策模块(Policy)。Policy会告诉生成模块NLG(natural language generation)该输出什么内容。最后NLG输出回应用户的话。
1

说了一大堆,其实简单来说Dialogue State Tracking就是上面的state tracker,目标是把用户说的话简化为一个有用的信息库,也可以理解为做了摘要。下图比较形象地说明了这一过程。这么多的对话,最终变成了key-value的键值对。

2

这些keys是人为事先定义好的内容,而value都是选择题,也是人为规定好的选项。因为现在的Dialogue State往往有很多的keys,所以key会有domain和slot两个部分组成,用来区别和归类不同的keys,方便模型处理,也方面模型的迁移。
3

总之,Dialogue State Tracking就是根据对话内容,填写事先设定好的keys的values是什么的问题。

2 数据集

Dialogue State Tracking比较著名的数据集有MultiWOZ 2.0,SGD,CrossWOZ等等。这里的这个WOZ就是取自绿野仙踪(The Wizard of Oz),绿野仙踪里最终的大BOSS是一个老头子在幕后操纵的。这里的数据集也是用人来伪装成AI和人对话得到的数据,没错就是人和人对话,AAI(Artificial Artificial Intelligence)。

4

3 两个挑战

Dialogue State Tracking的values要做成很多个选项是因为之前的方案都把这个当作一个分类问题,输出的是一个类别,但比如电话号码,时间等一些难以穷举的选项,这个方法就行不通了,这是一个挑战。

另一个挑战是有新的keys进来,模型就要重新train过,数据也要重新构造过,迁移成本大。

总结一下:

  • 有些value难以穷举
  • 新的key进来,迁移成本大

这两个问题,都可以用QA(Question Answering)的方法解决。QA的结构如下图所示,我们把Dialogue history作为source输入,然后根据key问出相应的问题让模型来回答即可。这样模型回去从source中找一个span作为答案,解决了value难以穷举的问题。然后针对domain不同,slot相同的问题,改一下问题的domain即可,解决了迁移的问题。当然前提是这个QA模型是ok的。

5

4 经典模型

Dialogue State Tracking比较经典的模型就是TRADE,其结构如下图所示。Dialogue会经过一个encoder抽取特征,同时key的domain和slot会分别取embedding,然后加在一起作为question部分的输入,同时也会和Dialogue的encoder输出作一个attention。attention的结果会是一个slot gate,决定了是PTR(从对话中抽取一个span),还是DONTCARE(用户不在乎),还是NONE(还没提到这个key)。根据这个决定,state generator会输出最终的结果。
6

因为key会分别抽取domain和slot的embedding,所以这个方法是可以适用于应的key的,这也意味着是可以解zero-shot的问题的。

有些key会有一些description,抽取这些description的embedding也是解决zero-shot问题的方法。
7

其他还有一些变形,比如Slot Carryover Prediction认为每说一句话都要把所有的keys问一遍太费时费力了,于是就设计了一个“是否同上”的classifier来帮助避免问一些已经知道且没有被修改的keys;DST QA认为有些keys之间的values是有关联的,比如知道了要订哪家饭店,那么叫的出租车的目的地很可能就是这家饭店,然后设计了一个模块来解决这个问题;SimpleTOD基于GPT-2设计了一个end-to-end的方法,用户说一句话,模型输出一句话,效果出奇地好。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/470582.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Migrate Instance 操作详解 - 每天5分钟玩转 OpenStack(40)

Migrate 操作的作用是将 instance 从当前的计算节点迁移到其他节点上。 Migrate 不要求源和目标节点必须共享存储,当然共享存储也是可以的。 Migrate 前必须满足一个条件:计算节点间需要配置 nova 用户无密码访问。 下面是 Migrate instance 的流程图 …

十四、PHP框架Laravel学习笔记——构造器的排序分组、子查询

一.排序分组 使用 whereColumn()方法实现两个字段相等的查询结果; //判断两个相等的字段,同样支持 orWhereColumn() //支持符号create_time,>, update_time //支持符号支持数组多个字段格式[create_time,>, update_time] $users …

python找不到文件怎么办_python open找不到文件怎么办?

推荐教程:《python视频教程》 python open找不到文件怎么办? python open找不到文件的解决办法: 在python和很多程序语言中"\"转义符号,要想输出\有两种方法,一是多加一个\写成\\ ,一是在字符串前加一个r,提…

css:蓝环章鱼

css&#xff1a;蓝环章鱼 许多海洋生物色彩艳丽&#xff0c;这次用css仿制一下蓝环章鱼的蓝环 <script type"text/javascript" src"http://cdn.bootcss.com/jquery/1.11.2/jquery.min.js"></script> <script type"text/javascript&quo…

论文阅读 - Jukebox: A Generative Model for Music

文章目录1 概述2 什么是VQ-VAE2.1 Auto-encoder(AE)2.2 Variational AutoEncoder(VAE)2.3 Vector-Quantized Variational AutoEncoder(VQ-VAE)2.4 VQ-VAE-23 Music VQ-VAE4 Prior and upsamplers5 Lyrics Conditioning参考文献By learning to produce the data, we can learn t…

十五、PHP框架Laravel学习笔记——构造器的 join 查询

一&#xff0e;join 查询 使用 join 实现内联接的多表查询&#xff0c;比如三张表进行 inner join 查询&#xff1b; $users DB::table(users) ->join(books, users.id, , books.user_id) ->join(profiles, users.id, , profiles.user_id) ->select(users.id, user…

论文阅读 - Group Normalization

文章目录1 概述2 几种normalization的方法2.1 Batch Norm2.2 Layer Norm2.3 Instance Norm2.4 Group Norm3 效果对比参考文献1 概述 Group Nomralization的提出是为了解决一张GPU上能容纳的batch_size很小&#xff0c;导致模型训练效果显著变差的问题。随着深度学习的快速发展…

十六、PHP框架Laravel学习笔记——构造器的增删改

一&#xff0e;增删改操作 使用 insert()方法可以新增一条或多条记录&#xff1b; //新增一条记录 DB::table(users)->insert([ username > 李白, password > 123456, email > libai163.com, details > 123 ]); //新增多条记录 DB::table(users)->insert…

git如何切换分支_拜托,不要再问我Git分支如何使用

今天来讲讲我使用Git分支的一些经验&#xff0c;记录一下&#xff0c;希望对大家有帮助。阐述在平常开发中&#xff0c;一般都会对应三种环境&#xff0c;本地环境、测试环境、线上环境。开发的基本流程都是先在本地环境开发好,再把代码发布到测试环境测试&#xff0c;最后再发…

搞懂HMM

文章目录1 概述2 符号说明3 两点假设4 Evaluation4.1 前向算法&#xff08;forward algorithm&#xff09;4.2 后向算法&#xff08;backward algorithm&#xff09;5 Learning6 Decoding参考资料1 概述 本文是B站上机器学习-白板推导系列(十四)-隐马尔可夫模型HMM的学习笔记&…

书店售书最低价格问题

书店针对《哈利波特》系列书籍进行促销活动&#xff0c;一共5卷&#xff0c;用编号0、1、2、3、4表示&#xff0c;单独一卷售价8元&#xff0c; 具体折扣如下所示&#xff1a;本数 折扣 2 5% 3 10% 4 …

十七、PHP框架Laravel学习笔记——模型的定义

一&#xff0e;默认设置 框架可以使用 Eloquent ORM 进行数据库交互&#xff0c;也就是关系对象模型&#xff1b; 在数据库入门阶段&#xff0c;我们已经创建了一个 User.php 模型&#xff0c;如下&#xff1a; php artisan make:model Http/Models/User //默认在 app 目录 …

centos 启动一个redis_基于prometheus+grafana体系监控redis缓存服务

概述前面已经介绍了怎么用prometheus监控mysql数据库&#xff0c;今天主要分享下怎么去监控redis服务。由于没有redis环境&#xff0c;所以用docker模拟了一下。一、Docker部署1、下载sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.…

十八、PHP框架Laravel学习笔记——模型的增删改

一&#xff0e;增删改操作 新增方法如下&#xff0c;注意&#xff1a;默认模型接管 created_at 和 updated_at&#xff1b; $users new User(); $users->username 辉夜; $users->password 123; $users->email huiye163.com; $users->details 123; $use…

搞懂语音去噪

文章目录1 概述2 传统语音去噪2.1 谱减法2.2 维纳滤波法3 深度语音去噪参考资料1 概述 语音去噪(noise reduction)又被称为语音增强(speech enhancement)&#xff0c;主要是针对于有人声的音频进行处理&#xff0c;目的是去除那些背景噪声&#xff0c;增强音频中人声的可懂性(…

软件架构设计案例_透过现象看本质:常见的前端架构风格和案例

所谓软件架构风格&#xff0c;是指描述某个特定应用领域中系统组织方式的惯用模式。架构风格定义一个词汇表和一组约束&#xff0c;词汇表中包含一些组件及连接器&#xff0c;约束则指出系统如何将构建和连接器组合起来。软件架构风格反映了领域中众多系统所共有的结构和语义特…

十九、PHP框架Laravel学习笔记——批量赋值和软删除

一&#xff0e;批量赋值 上一节增删改中&#xff0c;新增中我们发现需要进行批量赋值的许可&#xff1b;一般情况下&#xff0c;是为了防止提交过来的字段在部分场景中不需要或不能&#xff1b;所以&#xff0c;我们需要通过黑白名单机制进行过滤掉必要的字段&#xff1b; //通…

speech production model

文章目录1 概述2 source model3 filter model4 小结参考资料1 概述 本文的目的是为了厘清在speech production model中source model和filter model所扮演的角色&#xff0c;不涉及具体公式的推导或者模型的建立&#xff0c;只是为了把这两个model在干什么事情说明白。文中用到…

二十、PHP框架Laravel学习笔记——模型的作用域

一&#xff0e;本地作用域 很多情况下&#xff0c;我们在数据查找时有一部分条件会被重复且大量使用&#xff1b;而这个条件&#xff0c;可能只是在这个模型对应的数据表使用&#xff0c;别的表并不使用&#xff1b;那么这种情况&#xff0c;可以使用本地作用域的方式&#xf…

论文阅读 - Joint Beat and Downbeat Tracking with Recurrent Neural Networks

文章目录1 概述2 信号预处理3 分类神经网络4 动态贝叶斯网络&#xff08;HMM&#xff09;4.1 原始的bar pointer model4.2 原始的bar pointer model的缺点4.3 改进后的模型5 预测参考资料1 概述 最近在做音乐卡点相关的项目&#xff0c;需要对音乐的基本特征进行理解&#xff…