本文是个人笔记,来源于资料标注与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生成自然语言,转化为句法和语法合理的自然语言。其方法主要有:
- 基于模板。根据句子类型制定相应的模板,然后将DM输出的相应槽位填充到句子中,例如:我 查 到 了 趟 号 到 的航班。其中等就是要填充的槽位,填充后该 NLG 模块输出为:我查到了 30 趟 20 号从北京到上海的航班。
- 基于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
- Bing Liu, Ian Lane, “Joint Online Spoken Language Understanding and Language Modeling with Recurrent Neural Networks”, SIGdial, 2016 (PDF)
- Review of spoken dialogue systems
- POMDP-based statistical spoken dialog systems: A review
- http://qngw2014.bj.bcebos.com/zhuankan/10/对话系统任务综述与基于POMDP的对话系统.pdf