对话系统

2021-10-19 16:56:49 浏览数 (1)

本文是个人笔记,来源于资料标注与reference中。

对话系统涉及的五种主要技术。

  • 语音识别(ASR)
  • 口语理解(SLU)
  • 对话管理(DM)
  • 自然语言生成(NLG)
  • 文本生成语音(TTS)

口语理解-SLU

输入经过ASR输出的语句,将其转换为语义表示,如frame形式,包含intent和多个槽位,如订票系统中的:speechActType,departureCity,destinationCity,更多信息见:http://t.cn/RQfkTPP

现在主流的一种做法是讲intent和槽位识别做成multi-task,例如

论文:Joint Online Spoken Language Understanding and Language Modeling with Recurrent Neural Networks (PDF)

代码:https://github.com/HadoopIt/joint-slu-lm

对话管理-DM

口语理解下游是对话管理,任务是针对用户输入决定系统如何回复,例如根据上下文信息请求缺失的槽位,或者确认系统理解,或者输出结果。

同时DM需要一个知识库(KB)来查询信息提供给用户。DM通过结合槽位信息来请求知识库获得信息,类似于sql查询语句,槽位是限制条件。

主要研究方法有:

  • 基于有限状态和对话语法 
  • 基于Frame的系统 
  • 信息状态更新(ISU) 
  • 马尔可夫决策过程(MDPs)和部分可观测的马尔可夫过程(POMDPs)

其中的前三种方法都偏规则,需要设计编写对话方案,缺乏灵活性,不赘述。

为了克服前三的缺点,出现了基于机器学习的对话管理系统,主要是MDP和POMDPs,其有两个主要的优点:第一,可以将不确定性表示引入到模型中,相对基于规则的系统,其对语音和语义理解的噪音有更好的鲁棒性。第二,这种框架具有自动学习功能,可以极大的降低人工开发成本。但是需要标注的数据集。下文将主要讲基于 POMDP 的统计对话管理系统。

自然语言生成-NLG

DM输出的抽象表达到NLG,由NLG生成自然语言,转化为句法和语法合理的自然语言。其方法主要有:

  1. 基于模板。根据句子类型制定相应的模板,然后将DM输出的相应槽位填充到句子中,例如:我 查 到 了 趟 号 到 的航班。其中等就是要填充的槽位,填充后该 NLG 模块输出为:我查到了 30 趟 20 号从北京到上海的航班。
  2. 基于Seq2Seq的方法,例如Sequence-to-Sequence Generation for Spoken Dialogue via Deep Syntax Trees and Strings

基于 POMDP 的统计对话管理系统

假定对话过程是马尔可夫决策过程,对话初始状态是?_0, 每一个后续状态用转移概率来表示:?(?_?|?_{?−1}, ?_{?−1})。状态变量??是无法直接观察到的,它代表了对用户需求理解的不确定程度。系统把SLU 的输出看作是一个带噪音的基于用户输入的观察值,这个观察值的概率为?(?_? |?_? ),这里的转移概率和生成概率用恰当的随机统计模型表示,又称为对话模型 M,而每个步骤中采取哪个行动则由另一个随机模型控制,该模型称之为对话策略 P。 在对话过程中,每一步还需要一个回报函数来体现理想中的对话系统特性。对话模型 M 和对话策略 P 的优化是通过最大化回报函数的期望来实现的,该过程可以通过直接用户交互在线训练,也可以利用离线的语料库训练。

一个POMDP可以用以下集合来定义:S_m; A_m; T ; R; O; Z; lambda; b_0,其中S是agent状态的集合,A是Action的集合,T是状态转移概率P(s’_m|s_m, a_m);R是获得的奖励;O是观测结果;Z是状态概率:P(O|s’_m, a_m);lambda是geometric discount factor, 0 leq lambda leq1 ;b_0是初始的置信状态。

POMDP 过程:在每一个过程中,真实世界是一个无法观察的状态?_?。因为?_?是未知的,变量置信状态b_?表示所有可能状态的分布,?_?(?_?)表示处在某个特定状态?_?的概率。系统基于b_?选择行为??,得到一个激励值??,然后转化到状态?_{? 1},这里?_{? 1}仅仅依赖于?_{? 1}?_?和??。然后系统得到一个观察值?_{? 1},该值依赖于?_{? 1}和??。

新的置信状态?_{t 1}的更新可以表示如下:

b_{t 1}(s_{t 1}) = eta P(o_{t 1}|s_{t 1, a_t}) sum_{s_t}P(s_{t 1}|s_t, a_t)b_t(s_t)

核心方法:置信状态跟踪(belief tracker)和增强学习(RL)。

Reference

  1. Bing Liu, Ian Lane, “Joint Online Spoken Language Understanding and Language Modeling with Recurrent Neural Networks”, SIGdial, 2016 (PDF)
  2. Review of spoken dialogue systems
  3. POMDP-based statistical spoken dialog systems: A review
  4. http://qngw2014.bj.bcebos.com/zhuankan/10/对话系统任务综述与基于POMDP的对话系统.pdf

0 人点赞