分享 UNIT 核心技术的,是百度理解与交互技术平台(Understanding and Interaction Technology, UNIT)的技术负责人孙珂,他着重讲解了百度在理解与交互方面所做的工作,同时也介绍了背后的核心技术。
要明晰什么是 UNIT 技术,先看对话系统最简单的组成部分。
首先,当用户通过语音说出一条需求后,首先要经过 ASR 进行语音识别,转成文字,之后会进入语言理解(NLU)的部分,将文字中蕴含的”意图”和”词槽”提炼出来,并通过对话状态管理(DST)将其与历史的对话状态进行整合;此后计算机需要根据当前的对话状态,通过动作候选排序(POLICY)从后台用户配置的多个系统动作中,选择一个最符合当前状态的。得到应该执行的动作后,对话系统会再通过语言生成(NLG)和语音合成(TTS),与用户做出互动。
而在语言理解地部分,孙珂进一步解释道,要精准地让机器理解,重点是把握“意图”和其中的”词槽”。
通俗的来讲,要想理解一句话,光是看懂每个字是不够的,需要理解它背后所蕴含的需求和指令并将其转换为计算机能够识别的表达形式,这就是语言理解(NLU)。以“今晚六点帮我在全聚德预约一个包间,十个人”这句话为例,UNIT的NLU模型可以分析出来,其意图是要预定餐馆。同时其中还包含一些关键的条件信息,如餐厅是全聚德,时间是6点,这些叫做词槽。
除了语言理解之外,要想打造一个较为完善的对话系统,交互能力也是不可获取的。孙珂介绍了UNIT提供的两种交互能力:澄清与推荐。所谓澄清指的是,当用户的需求中缺乏一些必要条件时,需要对话系统主动发问,把必要条件全部集齐之后再去做最终的满足执行。而所谓推荐指的是,当用户订了餐厅后,机器还应帮他推荐打车的服务,例如把“您还需要叫车吗”这样的需求,主动引导出来,完成场景的关联。
UNIT 除了面向精确意图与词槽解析的对话能力之外,还提供了面向问答匹配的对话能力,可以满足对用户提供的问答资源进行直接匹配检索的需求。当然,对于一个完整的对话系统而言,问答匹配也不仅仅是理解,也需要有交互能力的配合。
例如,在智能客服的场景中,用户提出的第一个问题可能并不精确。他可能一开始只会说想贷款,这个时候,对话系统是不可能将所有贷款相关的问题都反馈给用户去做选择的,而是应该像电话客服一样,一层一层深入地将用户引导至他最想要了解的部分。
两种对话理解的能力,和与之配套的交互能力,构成了整个 UNIT 对话理解能力的全貌。
对开发者而言,更关心的可能是 UNIT 的整体框架。孙柯介绍道,UNIT 整体框架包括两个主要模块,一个是学习模块,一个是在线服务模块。
其中,学习模块包括有快速生效、持续优化、预置能力、对话逻辑四种能力。
从流程上来讲,开发者从学习模块开始,需要定义自己的场景、词槽等,并提供一定量训练样本等,并最终通过这个模块学习出自己的对话模型。对话模型学习好之后,可以推送到在线服务模块中。在这里,在线服务模块会整体理解用户的当前需求与历史状态,完成意图和词槽的解析工作,并通过后继的对话状态管理和候选动作选择模块完成对话动作的选择。最终得出的动作可以被开发者在本地用于完成函数的执行和资源的整合,并最终生产出对用户的回应。
具体到这背后的核心技术,孙珂首先讲解了多引擎驱动的 QUERY 理解与匹配技术,它能够让机器快速获得理解与匹配能力,并且持续优化。
孙珂解释说,目前UNIT提供的系统词槽识别能力有20多种,与之搭配的是词槽灵活的组装能力。举例而言,系统提供了一个识别“明星”的词槽,开发者有一个很喜欢的明星,但是机器不认识,这种情况下可以把名字作为词典或规则,与系统词槽进行组合并整体完成识别输出。此外,UNIT平台还预置有十余个对话场景,如天气、商超、地图、外卖等,预计近期会开放给第三方使用。
此外,UNIT还提供了基于海量用户数据的训练数据的扩展能力,并在其中整合了主动学习的能力,帮助开发者更加快速、精确的优化自己的理解模型。
基于一个传统的双向 GRNN 和 CRF 的意图识别网络,UNIT 进一步增强了对知识的整合能力。比如对于“北京明天下雨吗”这样的一条 QUERY,UNIT 会在词输入的基础上,将其进一步转化为知识,并融入到系统之中。目前,融合了知识的理解模型可以帮助开发者用更少的语料得到更好的理解模型,减轻开发者的数据标注成本。
什么是零门槛的训练师模式?
开发者定制一个任务机器人,用来与用户进行交流。但是UNIT在这其中,增加了响应用户反馈的逻辑,努力让对话变得更加顺畅,让用户更轻松的纠正任务机器人的错误,完成所求。同时也完成了对错误的学习,纠正一次,再也不会犯同样的错误。
雷锋网(公众号:雷锋网)了解到,UNIT 在对话流管理方面,也提供了大量的定制化功能。例如,对话单元与对话单元之间,对话单元与问答单元之间,都可以通过定制规则进行串联与引导。同时,UNIT 的对话管理也可以很轻松的完成意图切换、意图澄清、词槽切换、词槽澄清等对话功能。所有的对话流程管理,都被梳理为衔接规则,用户可以针对当前或历史对话、意图词槽去完成存在、包含、等于等对话跳转规则的定制。
孙珂最后说:
如果期望对话系统的效果达到预想中的智能程度,我们需要耐心的使用 UNIT 平台去一点点打磨自己对话系统的效果。通过 UNIT 提供的众多优化手段,开发者可以有选择地组合使用,通过提供相应的必要的数据,来完成理解效果从快速生效到持续优化并最终实现质变的突破。