当前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(对话状态追踪)常用方法相关推荐

  1. 任务型对话(二)—— DST(对话状态追踪)

    1,概述 关于任务型对话的简介看任务型对话(一)-- NLU(意识识别和槽值填充). 首先我们来看下对话状态和DST的定义. 对话状态:在$t$时刻,结合当前的对话历史和当前的用户输入来给出当前每个s ...

  2. 实录 | DSTC 8“基于Schema的对话状态追踪”竞赛冠军方案解读

    本文将回顾平安人寿近期在 PaperWeekly 直播间进行的主题为「DSTC 8"基于 Schema 的对话状态追踪"竞赛冠军方案解读」的技术分享,由平安人寿 AI 团队高级算法 ...

  3. 直播 | DSTC 8“基于Schema的对话状态追踪”竞赛冠军方案解读

    「PW Live」是 PaperWeekly 的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和交流可能会让知识的传播更加有意义, ...

  4. 对话系统-“任务型”多轮对话(二):对话状态追踪(DST)【基于规则;基于模型】【输入:当前意图和槽值对+历史槽值对;输出:State(槽值对集合)或State Vector 】【为DP做数据准备】

    在任务型的对话系统中,对话状态跟踪(DST)的目标是从对话历史中监控对话的状态. DST的输入:Intent+Slot+History:输出:State或State Vector DST中的State ...

  5. 【多轮对话】任务型多轮对话状态跟踪-NBT原理

    让机器像人一样自由的对话,对话机器人必然要具备连续对话的能力,即多轮对话,多轮对话不用多讲,那么什么是多轮对话状态跟踪呢(DST, dialogue state tracker | belief tr ...

  6. Thread类源码解读(2)——线程状态及常用方法

    上一篇我们讨论了线程的创建,本篇我们来聊一聊线程的状态转换以及常用的几个比较重要的方法. 本篇依然是通过源码分析来了解这些知识. 本文源码基于jdk1.8 . 阅读完本文,你应当有能力回答以下常见面试 ...

  7. Thread类源码解读2--线程状态及常用方法

    本文源码基于jdk1.8 . 线程状态 在Thread类中, 线程状态是通过threadStatus属性以及State枚举类实现的: /* Java thread status for tools,* ...

  8. 【Hibernate框架开发之五】Hibernate对象的三种状态Session常用方法

    1. Hibernate对象的三种状态:(图解如下:) 如图所示,Hibernate对象有三种状态,1.Transient  2.Persistent 3.Detached; 三种状态的区别如下: 1 ...

  9. Java并发包常见异常_Java并发包1--线程的状态及常用方法

    一.线程主要有以下几种状态: new(新建):线程刚刚被创建 runnable(就绪):新建的线程执行start方法进入就绪状态等待系统调度分配CPU,被分配了之后就进入运行中状态 blocked(阻 ...

  10. 浅谈语音助手的对话管理与策略制定

    本篇文章首先梳理了对话系统中的对话管理的原理,包括中控系统的分发.各类bot处理Query的逻辑.候选回复融合和排序的功能,其中也包含了垂直领域知识图谱的构建.最后从PM角度思考,为了提升bot的表现 ...

最新文章

  1. 利用Python绘制萌萌哒的皮卡丘
  2. Spring配置中context:annotation-config VS context:component-scan
  3. 秀秀的森林(forest)
  4. Ruby的module(模块)
  5. Vue 组件间通信六种方式
  6. 不会Python开发的运维终将被淘汰?
  7. 华为云域名注册_华为云域名专场钜惠,助推中小企业云速建站
  8. .net api reference中文_在macOS上使用.NET SDK编译 .NET 通用中间语言
  9. VS2008的C++TR1库已经支持正则表达式
  10. GitHub 上开源哪家强?| 原力计划
  11. Facebook开发实时分析控制面板
  12. win10电脑找不到xps查看器的详细解决步骤
  13. 贴片电容的命名规则和参数解释
  14. 快播将关闭QVOD服务器 清理低俗内容与涉盗版内容
  15. SDL2音视频渲染入门
  16. Mac OS X平台下QuickLook开发教程
  17. 雪糕大军纷纷网红出道,“天价”背后是什么让消费者买单?
  18. 计算机的基础操作知识试题,计算机操作基础知识试题(220道)
  19. Ansible-大总结(六)
  20. AMM做市无常损失对冲分析系列(一)—— 损益及期权对冲模型构建

热门文章

  1. 理解position:relative 与 position:absolute
  2. 解析ES6箭头函数中的this
  3. TiDB 源码阅读系列文章(二十)Table Partition
  4. Appium Server
  5. px 与 dp, sp换算公式?(转)
  6. android ViewFlipper的使用
  7. maven项目对象模型(二)
  8. SQL SERVER 2005 批量收缩数据库
  9. 小石坝第一次月赛:A
  10. webpack 打包第三方库_webpack提取第三方库的正确姿势