DST(对话状态追踪)常用方法
当前DST的一些主流方法,其实主要就是四大类:
人工规则、
生成式模型、
判别式模型、
Web Rank
就目前来讲,判别式模型效果更好,因为他通过特征提取的方法对对话状态进行精准建模,而且可以方便的结合深度学习等方法进行自动提取特征。此外,RNN、CRF等模型可以将对话当做序列数据进行建模,学习对话轮次之间的状态变化,较传统的分类方法效果更好。
1,Hand-Crafted Rules for DST,人工设计对话状态追踪
一般只使用概率最高的SLU结果结合人工编写的更新规则进行状态更新:F(s,u')=s'。如下图所示,只有置信度高于0.8的slot和value才会被更新到对话状态中:
优点:不需要训练数据,很适合冷启动,而且很容易将领域的先验知识编码到规则中。
缺点:无法利用ASR和SLU解析出的N-Best列表,也没有办法同时追踪多种状态。一般使用的规则都很简单,没有办法定制复杂状态的更新机制;缺乏灵活性。
*有些方法直接编写N-Best列表进行状态更新。但是缺点是相关参数需要人工编写制定,没有办法根据数据分布进行学习
口语语言理解(Spoken Language Understanding,SLU),目的是为了获取用户询问语句的框架语义表示(semantics frame)信息,进而将这些信息为对话状态追踪模块(DST)以及自然语言生成模块(NLG)所使用。
SLU任务通常包含以下两个任务:
意图识别(intent detection)
槽位填充(slot filling),
以下图的句子I like to watch action movie为例,这两个任务的输出对应分别为WatchMovie和O, O, O, B-movie-type,I-movie-type, I-movie-type。
自然语言理解(NLU)就是要获得一个计算机能直接使用的语义表示,比如
Distributional semantics、
Frame semantics、
Model-theoretic semantics等,
本文采用的是frame semantics。
DSTC(Dialog System Technology Challenge,对话系统技术挑战赛)
DST(对话状态追踪)常用方法相关推荐
- 任务型对话(二)—— DST(对话状态追踪)
1,概述 关于任务型对话的简介看任务型对话(一)-- NLU(意识识别和槽值填充). 首先我们来看下对话状态和DST的定义. 对话状态:在$t$时刻,结合当前的对话历史和当前的用户输入来给出当前每个s ...
- 实录 | DSTC 8“基于Schema的对话状态追踪”竞赛冠军方案解读
本文将回顾平安人寿近期在 PaperWeekly 直播间进行的主题为「DSTC 8"基于 Schema 的对话状态追踪"竞赛冠军方案解读」的技术分享,由平安人寿 AI 团队高级算法 ...
- 直播 | DSTC 8“基于Schema的对话状态追踪”竞赛冠军方案解读
「PW Live」是 PaperWeekly 的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和交流可能会让知识的传播更加有意义, ...
- 对话系统-“任务型”多轮对话(二):对话状态追踪(DST)【基于规则;基于模型】【输入:当前意图和槽值对+历史槽值对;输出:State(槽值对集合)或State Vector 】【为DP做数据准备】
在任务型的对话系统中,对话状态跟踪(DST)的目标是从对话历史中监控对话的状态. DST的输入:Intent+Slot+History:输出:State或State Vector DST中的State ...
- 【多轮对话】任务型多轮对话状态跟踪-NBT原理
让机器像人一样自由的对话,对话机器人必然要具备连续对话的能力,即多轮对话,多轮对话不用多讲,那么什么是多轮对话状态跟踪呢(DST, dialogue state tracker | belief tr ...
- Thread类源码解读(2)——线程状态及常用方法
上一篇我们讨论了线程的创建,本篇我们来聊一聊线程的状态转换以及常用的几个比较重要的方法. 本篇依然是通过源码分析来了解这些知识. 本文源码基于jdk1.8 . 阅读完本文,你应当有能力回答以下常见面试 ...
- Thread类源码解读2--线程状态及常用方法
本文源码基于jdk1.8 . 线程状态 在Thread类中, 线程状态是通过threadStatus属性以及State枚举类实现的: /* Java thread status for tools,* ...
- 【Hibernate框架开发之五】Hibernate对象的三种状态Session常用方法
1. Hibernate对象的三种状态:(图解如下:) 如图所示,Hibernate对象有三种状态,1.Transient 2.Persistent 3.Detached; 三种状态的区别如下: 1 ...
- Java并发包常见异常_Java并发包1--线程的状态及常用方法
一.线程主要有以下几种状态: new(新建):线程刚刚被创建 runnable(就绪):新建的线程执行start方法进入就绪状态等待系统调度分配CPU,被分配了之后就进入运行中状态 blocked(阻 ...
- 浅谈语音助手的对话管理与策略制定
本篇文章首先梳理了对话系统中的对话管理的原理,包括中控系统的分发.各类bot处理Query的逻辑.候选回复融合和排序的功能,其中也包含了垂直领域知识图谱的构建.最后从PM角度思考,为了提升bot的表现 ...
最新文章
- 利用Python绘制萌萌哒的皮卡丘
- Spring配置中context:annotation-config VS context:component-scan
- 秀秀的森林(forest)
- Ruby的module(模块)
- Vue 组件间通信六种方式
- 不会Python开发的运维终将被淘汰?
- 华为云域名注册_华为云域名专场钜惠,助推中小企业云速建站
- .net api reference中文_在macOS上使用.NET SDK编译 .NET 通用中间语言
- VS2008的C++TR1库已经支持正则表达式
- GitHub 上开源哪家强?| 原力计划
- Facebook开发实时分析控制面板
- win10电脑找不到xps查看器的详细解决步骤
- 贴片电容的命名规则和参数解释
- 快播将关闭QVOD服务器 清理低俗内容与涉盗版内容
- SDL2音视频渲染入门
- Mac OS X平台下QuickLook开发教程
- 雪糕大军纷纷网红出道,“天价”背后是什么让消费者买单?
- 计算机的基础操作知识试题,计算机操作基础知识试题(220道)
- Ansible-大总结(六)
- AMM做市无常损失对冲分析系列(一)—— 损益及期权对冲模型构建