国内智能对话平台paas能力调研分析

 

1 技术简介

chatbot对话机器人可分为3大类,问答机器人,任务机器人和闲聊机器人,我们主做前2类。

2.1 问答机器人

主要单轮对话形式。

2.1.1 基于检索技术

2.1.1.1 已经问答库,知识库

根据输入语句的语义相似度跟知识库的问题进行匹配,返回对应回答。目前百答主要基于此技术实现。

例如:什么时候发货?

2.1.1.2 已知文档库

批量文档,没有固定问答,需要从中学习提取知识。目前无。

2.1.1.3 已知知识图谱

数据提炼成为知识图谱,可进行相关查询和推理。目前无。

2.2 任务机器人

主要是多轮对话形式,也有部分单轮对话。

该部分节选自电子工业出版社《自然语言处理实践:聊天机器人技术原理与应用》

作者:王昊奋&邵浩&李方圆&张凯&宋亚楠

目前,主流的任务对话系统实现为模块化方式,由于现有训练数据规模的限制,端到端的方式仍处于探索阶段。本文主要介绍模块化的面向任务的对话系统,图1介绍了其主要模块。

(1)NLU:将用户输入的自然语言语句映射为机器可读的结构化语义表述,这种结构化语义一般由两部分构成,分别是用户意图(user intention)和槽值(slot-value)。

 

 

图1 面向任务的对话系统的主要模块

(2)DST:这一模块的目标是追踪用户需求并判断当前的对话状态。该模块以多轮对话历史、当前的用户动作为输入,通过总结和推理理解在上下文的环境下用户当前输入自然语言的具体含义。对于对话系统来说,这一模块有着重大意义,很多时候需要综合考虑用户的多轮输入才能让对话系统理解用户的真正需求。

(3)DPL:也被称为对话策略优化(optimization),根据当前的对话状态,对话策略决定下一步执行什么系统动作。系统行动与用户意图类似,也由意图和槽位构成。

(4)NLG:负责把对话策略模块选择的系统动作转化为自然语言,最终反馈给用户。

在与用户直接关联的两个模块中,ASR指的是自动语音识别,TTS指的是语音合成。如第2章介绍的,ASR和TTS并不是系统必备的模块,也不是本书介绍的重点,因此在面向任务的对话系统中不对这两部分技术做详细介绍。

2.2.1语义理解 NLU(Natual Language Understanding)

对应rasa的nlu模块

例如:我家宝宝2个月大,适合穿多大尺码的纸尿裤?

2.2.1.1意图识别

技术:机器学习的分类问题。

识别上面问题为购买纸尿裤问题。

意图识别的目标是从用户输入的语句中提取用户意图,单一任务可以简单地建模为一个二分类问题,如“询问天气”意图,在意图识别时可以被建模为“是询问天气”或者“不是询问天气”二分类问题。当涉及需要对话系统处理多种任务时,系统需要能够判别各个意图,在这种情况下,二分类问题就转化成了多分类问题。

2.2.1.2槽值提取

技术:

基于规则

基于序列标注,常见:IBO标签,CRF,RNN,LSTM模型。

槽位填充的任务是从自然语言中提取信息并填充到事先定义好的槽位中,例如已经定义好了意图和相应的槽位,对于用户输入“今天上海天气怎么样”系统应当能够提取出“今天”和“上海”并分别将其填充到“时间”和“地点”槽位。基于特征提取的传统机器学习模型已经在槽位填充任务上得到了广泛应用。近年来,随着深度学习技术在自然语言处理领域的发展,基于深度学习的方法也逐渐被应用于槽位填充任务。相比于传统的机器学习方法,深度学习模型能够自动学习输入数据的隐含特征。例如,将可以利用更多上下文特征的最大熵马尔可夫模型引入槽位填充的过程中[8],类似地,也有研究将条件随机场模型引入槽位填充。

2.2.2对话管理 DST(Dialog State Tracking)模块

对应rasa的core模块

这一模块的目标是追踪用户需求并判断当前的对话状态。该模块以多轮对话历史、当前的用户动作为输入,通过总结和推理理解在上下文的环境下用户当前输入自然语言的具体含义。对于对话系统来说,这一模块有着重大意义,很多时候需要综合考虑用户的多轮输入才能让对话系统理解用户的真正需求。

对话状态的表示(DST-State Representation)通常由以下3部分构成。

(1)目前为止的槽位填充情况。

(2)本轮对话过程中的用户动作。

(3)对话历史。

其中,槽位的填充情况通常是最重要的状态表示指标。

实现DST模块的方法主要有:基于条件随机场模型的序列跟踪模型、基于RNN和LSTM的序列跟踪模型等。

2.2.3 对话策略优化 DPL(Dialog Policy Learning)模块

DPL:也被称为对话策略优化(optimization),根据当前的对话状态,对话策略决定下一步执行什么系统动作。系统行动与用户意图类似,也由意图和槽位构成。

2.2.4 文本生成 NLG(Natual Language Generate)模块

NLG:负责把对话策略模块选择的系统动作转化为自然语言,最终反馈给用户。

基于规则

根据规则可以将各个系统动作映射成自然语言表达。

例如:前面问答内容:您家宝宝多重呢?[weight]斤

最后回复:亲,宝宝[weight]的话,建议穿[size]的[productType]

基于生成模型

seq2seq的典型方法,用前N-1句话生成第N句话。效果不一定好。

3 第三方平台paas能力调研

3.1 百度

理解与交互技术UNIT

机器人管理api:增删改查

技能api:查询

意图api:增删改查

词槽api:增删改查

模型api:查询,训练,删除

训练数据api:样本,模板,特征词,问答对(知识库)增删改查

生产环境部署api:增删改查

基于用户输入的文本内容(语音输入最终也转为文本),返回技能理解与应答的信息。调用本对话API的前提是您已经在unit.baidu.com 已经创建了技能,并定义了技能(新建了对话意图或问答意图)、添加了对话模板/对话样本,且最少完成了一次模型的训练。

百度将积累多年的自然语言理解与交互技术对外开放,推出了可定制的对话系统开发UNIT(Understanding and Interaction Technology),将业界领先的技术能力输出给广大的开发者,以便降低对话系统的研发门槛。

接下来,你只需花费3~5分钟的时间,即可配置出一个完整的对话技能了。

一个简单的对话技能从无到有需要以下四个步骤。

  • 创建技能
  • 配置意图及词槽
  • 配置训练数据
  • 训练模型

其中创建技能,配置意图和词槽这两步是为了定义对话能力。

技能

  • 在特定场景下的对话理解与交互能力。
  • 每个账号最多拥有20个自定义技能,主要用于解决特定场景下的对话理解与交互任务。同时UNIT平台提供了一些预置的系统技能(比如问候、电视指令等,更多系统技能会陆续开放),您可根据业务需要直接选用。
  • 技能中包含了一系列『对话意图』或『问答意图』用于完成特定场景下的所有对话任务(例如,智能电视技能包含了换台、调音量、找部电影等一系列『对话意图』)。 技能训练出模型并生效到沙盒环境后,您可以在『训练/体验』对话窗口中与技能对话,体验技能的对话理解能力。您也可以在自己的产品中通API直接调用它,让您的产品具有智能对话理解与交互的能力。

智能对话

  • 系统提供智能对话窗口,便于开发者通过和自己配置的技能对话,完成数据标注与验证。智能对话窗口分为三个区域:信息展示区、对话展示区、对话输入区。
    • 信息展示区:展示生效模型版本与当前对话样本集信息,开发者可在学习模式下快速切换对话样本集。
    • 对话展示区:展示开发者、技能和工程师UNIT之间的对话内容。
    • 对话输入区:用于开发者输入内容,系统也提供一些快捷键便于用户操作。

 

  • 在对话展示区,开发者可以看到自己与技能和工程师UNIT之间的对话。技能可以展示对用户输入对话样本的解析结果,包括动作内容、动作名称、对话意图和词槽。
    • 动作内容:此时技能回复给终端用户的内容,可能是开发者配置的答复或引导,也可能是词槽的澄清话术;技能未能成功识别时,也会直接答复,开发者可以在技能的高级设置中编辑此话术。
    • 动作名称:当前动作的名称。
    • 意图:技能识别到的意图,包括对话意图和问答意图。
    • 词槽:技能识别到的词槽与词汇。

 

  • 在对话输入区,开发者可以直接输入内容,技能会对开发者输入的内容进行解析并答复。
    • 重置对话状态:清空词槽澄清信息,体验模式中不保存对话状态。
    • 技能反馈频率:高频、中频、关闭。当技能对输入的内容理解不置信(对意图、词槽的理解结果不太确定)时,技能将主动询问开发者,开发者澄清确认后,技能将根据澄清的内容主动确定或纠正之前不太确定的理解结果。

样例介绍

【提升篇】UNIT2.0--火车票场景实例教程

搭建对话BOT的总体流程

创建完后就进入技能定义的阶段,技能又分自定义技能和预置技能,每个技能都是由多个相关的意图组成,这个阶段的新建意图就对应我们需求分析阶段的功能定义。订票功能就可以转化为订票意图BOOK_TICKET,订票的关键信息可以定义为实现订票意图的词槽,这里我们简单一些,把出发时间、出发站点、到达站点、车次定义为词槽:user_time、user_from、user_to、trainnumber。

后台管理功能都可以通过restapi来实现,自己搭建一套跟百度一样的管理系统

多轮对话模块完全开源

DM Kit是UNIT的开源对话管理模块,可无缝对接UNIT云端对话理解能力, 并轻松对接外部知识库,丰富技能回复信息量,实现多状态的复杂对话流程控制。

针对状态繁多、跳转复杂的垂类,DM Kit支持通过可视化编辑工具进行状态跳转流程的编辑设计,并同步转化为对话基础配置供对话管理引擎加载执行。

对应的可视化配置开源工具

这里的可视化编辑工具使用开源的mxgraph可视化库,对话开发者可在可视化工具上进行图编辑,而该可视化库支持从图转化为xml文件,我们再利用转换框架实现对应的编译器将xml文件转化为对话基础配置加载执行。以demo场景【查询流量及续订】为例,步骤为:

  • draw.io中按照编辑规则进行图编辑
  • 在编辑好的图导出为xml文件,放置于conf/app/demo目录下
  • 运行language_compiler/run.py程序,该程序调用对应的转换器将conf/app/demo目录下的xml文件转化为json文件
  • 将json文件注册于conf/app/products.json文件后,运行DMKit加载执行

语言处理基础技术

包含情绪识别api

针对用户日常沟通文本背后所蕴含情绪的一种直观检测,可自动识别出当前会话者所表现出的一级和二级细分情绪类别及其置信度,针对正面和负面的情绪,还可给出参考回复话术。帮助企业更全面地把握产品服务质量、监控客户服务质量。在自动监控中如果发现有负面情绪出现,可以及时介入人工处理,帮助在有限的人工客服条件下,降低客户流失。

3.2 阿里云小蜜

提供paas接口

云小蜜-阿里云

3.2.1 公有云

机器人管理api: 增删改查

知识库管理api: 增删改查

多轮对话管理api :包括对话单元,对话流,意图的增删改查

聊天api:根据输入返回对应的知识库id

3.2.2 私有云

意图识别

根据输入属于返回对应的意图和槽值,尺码推荐依赖此功能

3.3 腾讯

小微客服机器人

只有知识库相关的api,无意图识别和多轮对话api

为适应用户的各种接入场景,小微客服机器人提供了一系列的解决方案,包括Rest API接口,第三方回调接口,用户签名生成接口等。利用这些组件,可以在各种场景中构建用户自己的智能应答系统,解决用户在自动应答领域的问题。机器人的操作管理可以通过控制台实现,也可以通过Rest API方式实现,管理功能如下:

  • 创建机器人。
  • 删除机器人。
  • 上传知识库。
  • 下载知识库。
  • 编辑知识库。
  • 编辑默认答案。
  • 获取历史交互信息。
  • 获取数据统计信息。
  • 使用调试工具测试机器人功能。

腾讯智能对话平台 TBP

TODO 待补充

3.3 今日头条

无对话相关开放api

3.4 华为

对话机器人服务 (Conversational Bot Service)

开放的api不多,还满足不了需求

对话机器人服务 (Conversational Bot Service) 是一款基于人工智能技术,针对企业应用场景开发的云服务,主要包括智能问答、智能质检和任务型对话等功能。智能问答旨在帮助企业快速构建,发布和管理基于知识库的智能问答机器人系统;智能质检致力于为客户提供高效、可靠的智能对话分析服务;而任务型对话机器人提供人机交互中机器人所需的语义理解和对话能力,可用来实现自动话务机器人,智能硬件语音助手等应用。

对话机器人服务包含几个子服务:智能问答机器人(QABot)、任务型对话机器人(TaskBot)、智能质检(SA)、定制对话机器人(CBSC)。其中,智能质检和定制对话机器人处于邀测中。

公有云提供了Web化的服务管理平台,即管理控制台和基于HTTPS请求的API(Application programming interface)管理方式。

  • API方式如果用户需要将公有云平台上的对话机器人服务集成到第三方系统,用于二次开发,请使用API方式访问对话机器人服务,具体操作请参见《对话机器人服务接口参考》。
  • 管理控制台方式其他相关操作,请使用管理控制台方式访问对话机器人服务。如果用户已注册公有云,可直接登录管理控制台,从主页选择“EI企业智能”>“对话机器人服务”下对应的子服务。如果未注册,请单击右上方“注册”,根据界面提示填写用户基本信息,然后单击“同意协议并注册”完成管理控制台用户注册。

智能问答包含如下功能:

  • 问答机器人提供智能问答机器人服务,在管理控制平台上传知识库后,通过REST API即可使用智能问答引擎。基于智能问答机器人,用户可以构建和发布自己的智能对话系统。
  • 知识管理对于问答机器人而言,知识管理是必须的。语料库是问答机器人问答用户问题的知识来源,问答机器人从语料库中获取答案来回答用户的问题。在知识管理中,系统统计和管理了未解决问题、问答日志,您可以通过处理未解决问题和问答日志,反向推动并优化问答机器人语料。
  • 对话体验在调试机器人的过程中,系统提供实时体验环境,您可以在界面直接对机器人进行提问,查看返回结果是否满意,方便管理员对机器人的优化和管理。
  • 词典管理为了提升问答机器人的问答效果,支持配置和管理词典。其中,包括标准词和同义词。词典配置完成后,可应用到模型中对数据进行训练和评估,使问答机器人达到更好的效果。
  • 数据标注数据标注是指标注用户问与标准问是否匹配,此标注数据主要用于模型训练,作为模型训练时的数据集。通过训练,能让模型学习到用户问和标准问之间的匹配关系,提升问答机器人的问答准确率。
  • 模型管理模型的配置和训练,可以使得问答机器人处理用户问题时有更好的语义匹配效果,提升问答机器人的问答准确率。模型管理包括历史版本、最优版本和上线版本,您可以使用不同的算法模型进行构建和训练,在多次训练后,选择最优版本发布成线上版本,以提升问答机器人的问答效果。
  • 运营看板对话机器人服务提供问答机器人运营看板。用户可通过运营看板,查看运营信息,包括问答次数、热点问题等。

CBS服务提供了如下接口,方便用户对对话机器人的使用。

表1

接口说明接口类型说明问答机器人在线问答接口主要功能接口,包括获取问题提示接口、问答请求接口、问答满意度评价接口和问答转人工接口。智能话务机器人接口

  • 话务机器人管理接口包含查询、创建、删除、更新话务机器人的接口。
  • 会话管理接口包含发起会话、结束会话、进行会话的接口。

 

自然语言处理适用于智能问答系统、舆情分析、内容推荐等场景。

    • 智能问答系统通过中文分词、短文本相似度、命名实体识别等相关技术计算两个问题对的相似度,可解决问答、对话、语料挖掘、知识库构建等问题。
    • 舆情分析通过关键词提取、文本聚类、主题挖掘等算法模型,挖掘突发事件、舆论导向,进行话题发现、趋势发现、舆情分析等。多维度分析情绪、热点、趋势、传播途径等,及时全面的掌握舆情动态。
    • 内容推荐通过关键词提取、短文本相似度等技术,提取关键语义信息,精准匹配出语义相似的内容,从而快速构建内容推荐场景。

 

posted @ 2020-02-29 16:13  深度预习  阅读(1168)  评论(0编辑  收藏  举报