引言

尽管学术界已经走到了基于深度学习构建的第三代对话系统,但工业界基于对可控、可解释、简单易用的要求下,DM通常构建在一个清晰的对话脚本中,预先定义系统动作空间、用户意图空间、回复模板,并定义用户意图、系统动作与回复之间的关系。如今基于数据驱动的任务对话系统在产业界已有落地。虽然这些产品依然沿用模块化的流程系统,但在各个模块上做了很多可喜的改动,使得当前的对话系统从搭建到使用都有了长足的进步,尤其不需要手动定义状态空间和对话流程这一点,作为从业者深感欣慰。今天我们一起回顾一下对话管理的技术发展路线,并探讨数据驱动对话管理在产业界的落地情况。

对话系统历史回顾

在人类悠久的历史长河中,各式文明的神话故事中都有创造自动人偶的杰出工匠,例如偃师、加扎利、Wolfgang等等。已知最古老的“机器人”是古埃及和古希腊的圣像,忠实的信徒认为工匠为这些神像赋予了思想,使它们具有智慧和激情。

自人工智能 (AI) 研究开始以来,人类同样做出了很多努力来开发高度智能的人机对话系统。但普遍认为人机对话系统的开端是1950年。这一年Alan Turing 提出了图灵测试,他认为如果机器通过了图灵测试,它们就可以被认为是高度智能的。为了通过这个测试,机器必须与一个真实的人交流,以便这个人相信他们正在和另一个人交谈。一个研究方向的开端由评测标准的设立作为起点,纵观历史,这一点颇值得我辈深思。

图片

图 1. 对话系统历史节点

Rule Based

第一代对话系统主要基于规则(Rule Based)构建。例如麻省理工学院在 1966 年开发的 ELIZA 系统是一个心理医学聊天机器人,它使用模板匹配方法同时解决语义理解和对话管理的过程。但人们很快发现这样会导致难于维护、规则冲突、代码膨胀等问题,且如果需要支持人机交互中的各种对话现象需要编写大量的规则。

图片

图 2. Rule Based 的规则冲突问题

Finite State-Based

1970年开始流行基于有限状态机(FSA)的对话系统。人们发现人机对话中出现的各种现象如话题的转移、衔接,信息的记忆、引用与自动机的理论非常契合,于是开始使用有限状态自动机 (FSA) 对任务对话系统进行建模。虽然自动机的本质依然是规则,但这些基于自动机的系统具有透明的内部逻辑,易于分析和调试。

图片

图 3. FSA搭建的对话系统

Frame Based

随着应用的推广及技术的发展,人们发现当用户一次性提交所有信息时,系统无法处理未预设的状态。比如开场白中携带了部分或全部槽信息时,基于Finite State 的系统无法处理这种情况,除非它额外的编写与实际对话路径数量等同的状态。于是提出了基于 Frame Based 的对话管理模型。与Finite State 唯一的不同点在于加入了Slot 作为是否跳转的条件。

图片

图 4. Frame Based 对话系统

此时的任务对话系统已经发展为具有模块化结构的流程框架,如下图所示。它由四个关键模块组成:

图片

图5 . 任务对话系统的模块化结构

  1. 自然语言理解(NLU):
  2. 识别和解析用户的文本输入,以获得计算机可以理解的语义标签,例如槽值和意图。
  3. 对话状态跟踪 (DST):
  4. 根据对话历史记录维护当前对话状态。对话状态记录了对话历史中所有动作及收集到的信息,一般表示为槽值对。
  5. 对话策略:
  6. 根据当前对话状态输出下一个系统动作。对话状态追踪(Dialog State Tracker) 与对话策略(Dialog Policy)统称为对话管理(Dialog Manager)。
  7. 自然语言生成 (NLG):
    将系统操作转换为自然语言输出。


这种模块化的系统结构具有高度可解释性,易于实现,并在产业界中得到广泛应用。前面提到的Rule-Based 尚没有分立模块的概念,所有的功能直接通过模式匹配实现。Finite State-Based 与 Frame-Based 已经开始使用上述的模块化系统。后续任务对话系统的发展基本都基于该框架,或对某些模块的实现方式予以改变,或直接使用端到端的方式对其中的模块进行合并。
Data-Driven Based
随着大数据技术的兴起,第二代统计数据驱动的对话系统应运而生。基于数据驱动的对话管理主要有两种实现方式。一是通过有监督学习将机器人下一步动作看作分类问题。通过当前状态、历史动作、用户输入预测系统下一步动作,将对话模式学习到模型中。Rasa 中TED Policy 即为该种方式的实现之一。另外一种方式是使用强化学习中的马尔可夫决策过程对机器人动作进行建模,为了与统计学习结合起来,同时提出将基于部分状态可观察的马尔可夫决策过程(POMDP, Partially observable Markov decision process)对任务对话建模。该系统在鲁棒性方面明显优于基于规则的对话系统。它可以通过NLU给出的用户意图的概率分布作为每一轮对话的状态,然后根据对话状态选择对话策略以生成自然语言响应。

图片
图 6. POMDP 在任务对话中的应用
同样是将对话模式学习到模型中,监督学习追求当前步最优,强化学习追求一系列动作后结果最优。至于代码层面,最大的不同是更新参数的策略。监督学习使用单轮对话标签计算Loss并更新网络,强化学习使用会话(多轮对话)结束后的评价(会话是否成功的标记 -- 成功获取客户联系方式、成功下单)计算Reward 并更新网络。更新策略的不同直接导致使用场景不同。
客服场景中并不是所有的人工回复策略都是最优的,可以根据会话的最终反馈(会话评价、是否获得用户微信等)作为训练的目标,从而使模型学习到最优的回复策略。
  1. 面对动作空间庞大,策略复杂多变的任务有优势。
  2. 善于从对话中挖掘最优策略:固定套路 vs 营销话术。
理论上上面的两种方式(监督学习、强化学习)都可以及时的对话术进行澄清,并且可以对NLU的结果进行纠偏。如输出意图概率分布action_dis = [0.3,0.3, 0.4],该例子中,用户意图不明确,可以及时的使用澄清话术。还可以对NLU的结果进行纠偏。当输出意图向量 Intent = [0.51, 0.49], 历史状态向量 state = [0.01, 0.9, 0.09],可以根据历史状态,认为置信度为0.49的意图为正确意图。
所谓第三代对话系统,只是使用深度神经网络对原框架中的浅层网络进行代替,理论上还是大力出奇迹,并没有十分令人惊奇的操作。不管是起初的贝叶斯网络,还是随后兴起卷积神经网络(CNN)、深度神经网络(DNN)和循环神经网络(RNN)。近年来在工业界唯一值得一提的是RASA中的TED,利用Transformer 中的注意力机制,使得每轮对话可以着重参考不同的历史信息。该机制可以使动作预测模型在不同的轮次分别关注历史对话轮次中不同的信息。强化学习本身也是一种很好的技术,也见到了同业中一些落地场景,但由于其限制条件较为特殊,最终导致了产业界与学术界冰火两重天的局面。
工业界案例
工业界任务对话产品由于同时面向知识管理者(对话系统搭建环节)和知识使用者(对话获取知识环节),所以除了要求机器人对话流畅、拟人程度高之外,还要求易于搭建。尽管在学术界中已经来到了基于深度学习构建的第三代对话系统,但是在工业界基于对可控、可解释、简单易用的要求下,当前产业界的落地依然沿用模块化结构的流程框架,并在其之上做了很多可喜的改动,使得我们的对话系统从搭建到使用都有了长足的进步。
我们调研了市面上数十家主流任务对话系统平台,已经有数家竞品开始使用基于数据驱动的方式搭建任务对话,该方法不需要手动定义状态空间和对话流程,极大的降低了知识管理者的搭建维护成本。接下来我们将着重介绍Amazon Alexa、Amazon Lex,以及RASA 这三款产品,他们在落地产品的同时通过论文输出了自己的观点和贡献,便于我们探究其技术细节和可行性。
数据驱动创建对话产品一览
Company

Product

Conversation design

Key Idea

Amazon

Alexa

Alexa Dialog

SL - Action Predict

Amazon

Lex

Automat Dialog desinger

Automatic Intent-Slot

RASA

RASA

Story

TED Policy

Microsoft

Azure

QnMaker

\

流程图创建对话产品一览

Company

Product

Conversation Design

Key Idea

Microsoft

Power Vritul Bot

Flowgraph

FSA

Google

DialogFlow ES/CX

Flowgraph

FSA

Facebook

Wit.ai

Flowgraph

FSA

IBM

Watson Assistant

Flowgraph

FSA

Kore.ai

Kore.ai

Flowgraph

FSA

Boost.ai

Boost.ai

Flowgraph

FSA

Amazon Alexa
Amazon Alexa 是亚马逊出品的音箱,为用户提供了对话搭建功能。用户获得授权之后可以自定义Alexa的技能。除了拥有主流的流程图搭建方式之外,还提供了称之为Alexa Conversations  的产品功能。在此功能下用户无需创建对话流程,后端引擎可以根据用户提供的对话Demo学习对话策略。相比同时代其他产品,已经不需要人工构建对话流程。
图片
图 7. Amazon Alexa 产品演示
Alexa Conversations 同时还发表了产品相关的论文,其架构图如下所示。包含三个模型:Named-Entity Recognition 负责为用户输入标注实体,Action Prediction 负责预测机器人下一步执行的动作,Argument Filling 模型负责填充动作中需要的信息。

图片
图 8. Amazon Alexa 系统架构
动作可以是API或者对NLG的调用,或者是一个代表对话结束的特殊动作。每个动作都会更新对话历史。其中NER模型使用双向LSTM接CRF做命名实体识别,输入为历史对话向量拼接词向量。为了能在多变实体(e.g.电影名称、餐馆名称)上有好的表现,将收集的各种实体值加入到目录特征中。
AP模型的输入集合了用户当前输入、当前实体、历史输入、历史实体、Bot历史动作,以上所有特征向量过  Feature-specific 编码层(相互独立),然后进行拼接。拼接向量进Linear 或 Softmax,获得动作概率分布。
图片
图 9. AP模型的特征向量
论文中把AP(Action Predict)的任务比作阅传统读理解任务,历史对话即为需要理解的文章,执行的动作是答案。AF(Argument Filling)去询问为什么执行这个动作,执行这个动作的理由是什么?AF模型判断是否将识别到的实体信息对他进行填充。
图片
图 10. AF模型结构
可以看到 Alexa Conversation 中,依然沿用了经典的NLU、DM、NLG框架,只是NLU中不在对意图进行识别,只识别信息实体。DM改用了监督学习的方法进行建模,并通过历史动作、实体等信息作为预测下一步动作的依据,从而实现了上下文依赖。
Amazon Lex
Amazon Lex 是亚马逊云服务中一个独立的产品,用户可以通过Lex 搭建任务对话系统。与Amazon Lex 不同的是,它无需对Intent 和 Slot 进行标注,用户只需要为每个对话任务上传不少于500个对话。上传对话数据后模型会自动发现意图、槽位,并自动创建对话流。
产品演示
图片
图 11.  Amazon Lex 产品演示

系统架构如下所示:
图片
图 12. Amazon Lex 系统结构
产品未发布对应论文,从配置流程及各流程结果上简单分析其算法。
意图发现:
相同含义的意图并没有进行合并,需要人工审核,从意图示例来看,这是一个低召回高准确的结果。猜测仅仅通过发现相同的模式串。令人意外的是意图示例增加了改写模块,其收集起来加入语料库中的语料并非完全拷贝自用户上传的数据,而是经过的简单的改写。
图片
图 13.  Amazon Lex 产品演示-2
实体发现:
系统能够发现预设实体之外的未知实体,但其效果堪忧。如下图中的any、ask。猜测仅仅通过问答对中的相对位置提取词语作为实体。
图片
图 14.  Amazon Lex 产品演示-3
对话流程挖掘
不同意图的初始对话流相同,仅仅是把所有需要填充的槽进行逐个询问。
图片
图 15.  Amazon Lex 产品演示-4
使用体验:
  1. 相同含义不同的类别并没有进行合并,生成之后需要人工进行筛选。

  2. 生成对话流之后需要进行人工调整,默认所有的槽都是非必填写

  3. 距离理想的端到端搭建还有差距,但已经是市面上最大胆的对话设计工具。

RASA
RASA 发布的正式产品中并没有使用数据驱动搭建对话的相关功能。但在其发表的论文《Dialogue Transformers》中探讨了该种方式的可行性。其中提出的TED模型也作为RASA中的对话策略之一。
论文的初衷是为了解决任务对话中插入闲聊的情形,测试TED模型能够在处理闲聊之后将话题拉回到最初的任务上来。它的动作预测使用了单向的Transform,如下图所示:
图片
图 15.  TED模型结构
TED模型用来预测当前轮次机器人的动作,使用识别到的意图、实体以及系统历史意图、实体、动作作为当前轮次模型的输入,输出为预设动作空间的概率分布。利用Transformer 中的注意力机制,使得每轮对话可以着重参考不同的历史信息。该机制可以使动作预测模型在不同的轮次分别关注历史对话轮次中不同的信息。
我们对模型中的实验进行了复现,发现原模型确实可以在动作准确率上有不错的表现,并且正确的进行闲聊与任务的切换,但是测试一次输入多个槽位信息时,模型的动作预测往往会对该槽进行重复的追问。目前我们通过模型的改版已经解决了这个问题,并且实现了各种复杂语言现象的正确应对。此处为后续文章留一个悬念。
总结
本文回顾了对话管理的技术发展路线,并探讨基于数据驱动的对话管理在产业界的落地情况。在任务对话领域产业界与学术界之间巨大的鸿沟正在逐渐缩小,促使鸿沟缩小的除了商业利益驱使之外,还有人类天生对繁琐重复工作的厌恶,所有能消除这种厌恶的算法和产品都值得被实现。

参考文献
[1].TURING A M. I.—COMPUTING MACHINERY AND INTELLIGENCE[J]. Mind, 1950.
[2].Weizenbaum J. ELIZA---a computer program for the study of natural language communication between man and machine[J]. Communications of the ACM, 1966.
[3].Young S, Gašić M, Thomson B, et al. Pomdp-based statistical spoken dialog systems: A review[J]. Proceedings of the IEEE, 2013.
[4].Bordes A, Boureau Y L, Weston J. Learning end-to-end goal-oriented dialog[J]. arXiv preprint arXiv:1605.07683, 2016.
[5].Wen T H, Vandyke D, Mrksic N, et al. A network-based end-to-end trainable task-oriented dialogue system[J]. arXiv preprint arXiv:1604.04562, 2016.
[6].Su P H, Budzianowski P, Ultes S, et al. Sample-efficient actor-critic reinforcement learning with supervised data for dialogue management[J]. arXiv preprint arXiv:1707.00130, 2017.
[7].L. Qiu, Y. Chen, H. Jia and Z. Zhang, "Query Intent Recognition Based on Multi-Class Features," in IEEE Access, vol. 6, pp. 52195-52204, 2018.
[8] J. Chen, R. Prasad, S. Stoyanchev, E. Selfridge, S. Bangalore and M.Johnston, "Corpus and Annotation Towards NLU for Customer Ordering Dialogs," 2018 IEEE Spoken Language Technology Workshop (SLT), Athens, Greece, 2018.
[9] Razzaq M.A., Khan W.A., Lee S. (2017) Intent-Context Fusioning in Healthcare Dialogue-Based Systems Using JDL Model., Enhanced Quality of Life and Smart Living. ICOST 2017.
[10] X. Dong, L. Qian, Y. Guan, L. Huang, Q. Yu and J. Yang, "A multiclass classification method based on deep learning for named entity recognition in electronic medical records," 2016.
[11].Vladimir Vlasov, Johannes E. M. Mosig, and Alan Nichol. Dialogue transformers. CoRR,abs/1910.00486, 2020.

作者:HuangWei