第1章 对话机器人基本概念
1.1对话机器人平台介绍
机器人有很多类型,除了大家日常生活中看得见摸得着的送餐机器人、工业上使用的机械手这种实体机器人,还有许多虚拟机器人,像大家常常使用的Siri、小爱同学或者自动化的智能客服就属于这个范畴,更准确的说他们和来也对话式AI平台提供的对话服务一样都属于对话机器人。
参考中国信通院提出的《智能对话平台与服务能力评估方法》(2022年1月版),智能对话平台类产品是指能够开放对话系统开发与构建能力的服务型平台或系统,涵盖提供对话理解、对话搭建、对话优化、对话定制、对接部署及管理运营六大核心能力,其特点为可实现低代码或零代码进行对话系统定制、具备对话系统快速优化及迭代能力。
对话机器人与聊天机器人
通常来说,聊天机器人(chatbot)指的是具体的面向最终用户的单个实际对话的机器人,而对话机器人通常指的对话机器人平台(conversational AI platform),又称智能对话平台等。打个比方,对话机器人平台相当于工业系统中的工业母机,是聊天类机器人的摇篮。
其中,对话理解能力并不涉及具体的产品功能操作,主要考察的是支持多种对话类型,对话技能和强壮的算法技能,所以往往没有具体的产品模块对应。除此之外,对话的定制能力往往也和系统提供的产品功能高度结合。
面向智能对话,来也对话式AI平台主要由四部分组成,分别是对话搭建模块,效果优化模块,数据监控模块以及渠道部署模块,除此之外,对话式AI产品也可以辅助现有人工服务人员,提示推荐的回复。
目前,有分别面向中小企业和个人的云服务在线版和面向定制化专属化的私有部署版。
产品版本 | 版本简介 | 关键词 | 推荐场景 |
---|---|---|---|
私有部署 | 一款私有化部署版本的对话式AI平台,它利用业内领先的深度学习算法和自然语言处理技术,提供可视化界面来搭建、训练、优化与部署对话机器人。机器人可具备文档智能检索等复杂能力。适用于大中型企业的客服、营销、企业内部员工服务等复杂业务场景。 | - 行业领先的低代码文本机器人开发平台 - 适用大中型企业 - 私有部署定制 | 对话机器人适用于以下场景: - 沟通对象比较多,但是有比较现成的沟通渠道(比如内部沟通平台、公众号、小程序等) - 需要回答的问题或者要处理的任务相对重复、高频,有比较明确的话术和统一的处理流程 - 涉及到智能文档处理等相对复杂的需求 - 对安全合规性要求比较高 |
在线版 | 一款SaaS版的对话式AI平台。它利用业内领先的深度学习算法和自然语言处理技术,提供可视化界面来搭建、训练、优化与部署对话机器人,搭建好的机器人可以直接接入不同渠道平台(如企业微信、微信公众号、飞书、钉钉等)。能够快速灵活地满足个人和中小企业的场景需求。 | - 行业领先的低代码文本机器人开发平台 - 适用中小型企业和个人 - 高并发SaaS | 对话机器人适用于以下场景: - 沟通对象比较多,但是有比较现成的沟通渠道(比如内部沟通平台、公众号、飞书、企业微信、钉钉、网页、小程序等) - 需要回答的问题或者要处理的任务相对重复、高频,有比较明确的话术和统一的处理流程 |
私有部署版本电话联系来也科技服务热线400-001-8136。
1.1.1典型产品界面概述
来也对话式AI平台(在线版)(以下简称平台,后期未特殊说明皆指在线版)主要包含对话搭建(分为问答搭建和任务搭建)、效果优化、渠道设置、数据分析以及即时沟通五个模块。
用户的消息通过微信公众号等渠道进入平台,而后经过已经搭建好的对话机器人直接回复用户或者给人工服务提供参考,同时系统记录下双方的消息留存作数据分析,沉淀的会话资料在效果优化模块自动处理后,经简单人工审核即可帮助机器人优化。
点击打开机器人会默认切换到对话搭建-知识库页面。以知识库页面为例,平台典型的产品界面有三个层级:
- 第一层级为最左侧的一排,从上至下包括机器人管理、数据分析、对话搭建、效果优化、渠道设置、即时沟通,除此之外还有企业管理、消息中心、帮助中心、用户中心、账号类型。这一层级代表着平台的主要层级。
- 第二层级如对话搭建模块中的问答对话、任务对话、闲聊对话、词库、词槽管理、回复策略、个性化体验、调试机器人。
- 第三层级如知识库、关键词匹配规则这样的层级,点开之后就是具体的功能页面。标题左侧的按钮点击后可以收起二级菜单,展示更大的操作空间。
在具体的功能页上,像知识库页面分为两栏,知识点分类和知识库管理页面。知识库管理页下又有各种各样的筛选和操作按钮。这里要注意“···”按钮下,常常还有一些也需要使用的操作,如这个页面下就还有“批量生效分类下的知识点”,“批量上传知识点”等。
也有一些功能页还有其他形式的结构,比如实体下又分自定义实体和预设实体,自定义实体下还有枚举实体,正则实体,意图实体这些细节的功能。
1.1.2对话搭建
机器人搭建模块,在可视化的产品页面上输入、实现对话机器人的高效搭建,包括
- 关键词匹配规则 能对消息包含或等于某关键词进行回复;
- 问答知识库 能回答模糊性提问;
- 任务对话 能支持结构化产品类知识图谱与问答型对话搭建;提供图形化设计工具在前端页面拖拽即可完成业务设计的多轮任务型对话搭建;提供跨场景可灵活跳转的任务流程引擎;
- 调试机器人 快速验证问答能力,获取与反馈系统运行信息,方便测试优化;
- 自定义闲聊 能自定义回复内容的寒暄闲聊库;
- 开放式闲聊 由百万闲聊语料训练的开放式闲聊;
- 词库 提供对专有词汇、实体及多种说法进行管理和定义能力;
- 回复策略 支持各个模块智能回复也支持自定义优先级进行回复的回复策略;
- 个性化体验 配置欢迎语及个性化回复,查看预设属性和配置自定义标签属性。
1.1.3效果优化
机器人效果优化模块多年技术和产品积累,包含平台人工智能核心能力的体现,包括:
- 语料管理 管理从本地上传的语料数据。
- 挖掘 包括短语和句子挖掘。短语挖掘能帮助发现专业词汇、实体等;句子挖掘帮助聚类相似的句子形成知识点。
- 相似说法学习 机器人不太确定的相似说法会放置在相似说法学习,在这里可以合并到现有知识点意图或新增知识点意图。
- 模型优化 有模型训练、在线标注、模型测评和模型发布四个功能。模型训练可以训练专属于这个知识库的模型(默认是广泛应用的普通模型);在线标注,可以评估单个问题回答的对与错;在模型测评可以比较机器人回答与标注结果相比的准确率与召回率;通过分析模型测评的结果,可在模型发布模块选取合适的模型和阈值进行发布。
- 知识库优化 通过百分制的知识库健康度用来衡量问答知识库构建的良好程度。
1.1.4数据分析
数据分析模块从对话类型、机器人、用户、业务等多维度统计了通过平台对话机器人产生的交互数据,为机器人优化、业务的开展提供了数据决策基础。
- 数据概览 统计机器人交互的会话数据。
- 问答对话分析 包括知识点和关键词使用情况。知识点使用情况通过每日数据和每小时数据来统计问答对话的召回率与准确率等;关键词按天统计每个关键词规则的触发次数与趋势。
- 任务对话分析 主要是意图使用情况以及转化率分析,统计每日、每小时任务机器人的意图触发次数与对话单元触发情况,还可以自定义转化率路径进行转化率分享。
- 相似说法学习统计 反映了相似说法学习模块的操作记录和统计。
- 会话日志 可以通过会话和消息记录查看和导出所有用户和机器人交互产生的消息数据。 用户反馈 含知识点满意度和任务信息收集。知识点满意度界面统计了用户对知识点的满意情况,并能查看对应满意度上下文;汇总了任务对话中,“词槽收集单元”收集的信息,可以以表格形式导出。
- 用户分析 查看所有机器人交互过的用户数据,可以对用户的信息进行管理,维护用户属性。
1.1.5即时沟通
即时沟通承载人工客服回复用户消息的能力,其中分为:
- 会话 接入并在机器人辅助下快速回复客户的页面。
- 待接入 排队用户进入“待接入”,由人工主动接入或关闭。
1.1.6渠道设置
渠道指机器人与终端用户交互的媒介。
假设你已经搭建好了机器人,想在微信公众号、企业微信、小程序、官网或你们企业的APP中,让机器人服务你的终端用户,就需要通过渠道来实现。
平台提供的渠道有:微信公众号、企业微信自建应用、钉钉内部机器人、微信小程序插件、Web SDK以及基于Web SDK可以快速体验的体验机器人。
除此之外,更多渠道可以通过开放平台使用接口进行调用来对接。
1.1.7其他基础配置
除了上面的主要功能之外,平台还包含以下几个模块:
- 机器人管理 可以选取,创建机器人,修改删除机器人等。
- 企业管理 可以添加管理用户权限,查看登录日志以及服务可用性。
- 消息中心 展示新增功能发布消息。
- 帮助中心 提供产品手册,接口文档,新手引导和下线通知的入口。
- 账号管理 可以设置个人资料,修改在线离线状态,设置提示弹屏和提示音以及退出账号。
- 账号类型 可以在此查看版本信息,维护版本升级资料,查看服务支持信息。
平台无安装包,直接在浏览器就可以运行,网址为platform.wul.ai,建议浏览器为Chrome 63版本及以上。
1.2对话的类型
典型的对话根据其形式可以简单的分为单轮对话和多轮对话。
单轮对话大多对应的是一问一答的情况,特点是回答不需要依赖用户的其场景他轮次对话。
单轮对话常常使用关键词规则和问答知识库对话完成,遇到容易混淆的情况我们也常使用任务对话的读取如表格化知识图谱方式来做回答。
关键词规则对话用于对用户的特定词汇做出特定的回复或动作。比如我们经常收到的各大厂商的营销活动,回复“礼金”,可以获得优惠这种操作。
问答对话用于一个完整问题的特定回复,类似于传统客服的高频工作场景,用户表明一个意图后,从常见问答里找到特定回复给用户。
多轮对话的显著特点是回答依赖于用户的交互。用户的回答对下一轮机器人回复有较大的影响。
多轮对话我们主要依赖任务对话完成,通过配置相应的触发、询问填槽、运算跳转逻辑,让用户可以办理各种各样的事情。
需要注意的是,任务对话的搭建也需要有清晰的逻辑和搭建问答对话的经验,因为在意图识别方面,两者逻辑大多一致。同样的,将问答与任务割裂来看也是不对的,在面向用户的时候,问答和任务是一个整体。
除了问答型对话和任务型对话之外,还有闲聊型对话,寒暄类知识常使用问答对话来失效,更广义的闲聊对话实现方式也多种多样,但在偏业务的场景下较少涉及,这里不做过多讨论。
接下来,以问答和任务对话的各一个简单示例开始进行讲解。
为方便大家使用和体验,我们开始主要以对话式AI平台(在线版)进行讲解,在后续章节会补充其他机器人产品的特色,希望大家不要拘泥于具体的产品而是要具有比较强的知识迁移能力。
1.3机器人新建
登录平台之后,首先看到的是机器人管理页面。机器人管理页面下分为“我的机器人”和“新建机器人”。
点击机器人卡片,可以将其切换为正在使用的机器人。
新建机器人界面可以选择“新建空白机器人”或“用模板新建机器人”。
1.3.1新建空白机器人
点击新建空白机器人。输入机器人名称,选择需要的机器人语言和类型后点击确定即可。
新建的空白机器人没有业务数据,需要从零开始搭建机器人,所有配置都是默认的配置,有很多开关需要根据项目需求进行配置。
1.3.2用模板新建机器人
点击想要使用的模板机器人,选择“用模板新建机器人”,即可。
模板机器人里预置了该场景内典型的知识,已经搭建好了该场景典型的任务对话或问答对话,相应的阈值,渠道设置等都已做了配置,是大家参考学习的好材料。
注:模板机器人卡片有简要的介绍、功能使用要点和示例对话,点击右上角对话按钮即可体验。
1.3.3修改机器人
点击机器人卡片上的设置按钮就能进入机器人设置,可以修改机器人名称,复制或删除机器人。
1.4问答对话配置简例
示例场景:回答用户提问关于开具收入证明的问题。
这种场景首先需要给用户问的这个知识取个名字,即标准问题,还要模拟一个答案,在知识库里要这样配置:
- 知识点生效状态从“未生效”切换为“已生效”。
- 在标准问题一栏输入“如何开具收入证明”。
- 分类我们暂时还没创建其他分类,就选择“默认分类”。
- 在相似说法的相似问题中最好输入10个以上表达如何开具收入证明的问题,如果是打字状态,在输入完一句之后可以敲击“Enter/return(回车)”来实现快速新增并切换到下一行。
- 最后输入答案“收入证明办理需要……”。
- 点击“保存”。
做完以上步骤后,就可以在窗口右下角的人“调试机器”来体验一下对话的效果,尝试提问“帮我办个收入证明”。
可以在右侧看到机器人后台理解的结果。语义理解中可以看到分词情况分别是“帮 我 办 个 收入 证明”,未抽取到实体,被触发的是“问答对话”。
触发的知识点是“如何开具收入证明”,匹配到的最接近问题是“如何办理收入证明”,经过数种模型综合打分结果显示“帮我办个收入证明”与“如何办理收入证明”的置信度是0.92分,超过了现在的阈值0.6,所以能直接推出答案“收入证明需要……”。
容易发现,机器人在进行回答的时候并不要求用户的提问必须和录入的相似问题一模一样,它自己具有一定的判断能力。
像这样,用户的提问,机器人回复了知识点,就是一次召回,如果机器人的知识点回复还是正确的,就是准确的召回。
1.5任务对话配置简例
示例场景:以一个学习资料发放场景为例,需要问到用户的邮箱,作为后期发放资料的参考。
客服:您好,回复您的邮箱即可领取学习资料。 用户:是13812344321@laiye.com 客服:好的,资料会在2个工作日内发送到您的邮箱13812344321@laiye.com。
那这里,我们重点是获取用户的邮箱。最好还能将这些用户反馈的邮箱的整理一下,方便后期使用。
搭建这样的一个对话,我们就需要用到任务对话
模块。第一步如果没有场景,首先需要新建场景。
1.新建场景
在对话搭建-任务对话-场景列表点击新建场景,在场景设置中设置名称,具体描述。“通用话术”、“闲置等待时长”、“智能填槽阈值”模块如果没有特殊要求可以先不修改。
向下滚动,“自动添加预置回复”选择“关闭”(因为此场景做用户邮箱推荐不合适,不能排除一个人填报多次邮箱地址,不能推荐别人写的邮箱地址)。
设置好后点击确认即建立了一个场景,推荐大家新建立的意图都放在一个场景下面。
除了新建场景,如果是已有场景,我们还可以导入场景,场景文件需要是从平台导出的.taskbot文件。
2.新建并生效意图
点击场景卡片进入后,点击“新建意图”,意图名称为“发送资料”,点击确认即可新建。除此之外也是可以使用导入意图进行导入。
接下来,将“发送资料”这个意图从“未生效”变成“已生效”。
3.添加触发方式
有了触发方式,机器人才能被顺利的启动。点击“设置触发器”,在关键词组-等于下添加“发送资料”。这样在调试机器人或者其他渠道发送“发送资料”也能启动这个任务。
为了方便用户使用,还可以配置触发方式的地方在对话搭建-个性化体验-用户事件。这样,一打开诸如体验版网页等渠道后,机器人就能开始工作来收集邮箱信息。
4.画布操作
回到对话搭建-任务对话-场景列表,找到意图后点击对应的“编辑流程”就能进入机器人画布。
画布左侧是对话单元列表。上侧菜单栏分别是“返回”按钮,场景名称,意图选择,最后一次发布时间,意图设置,还原至上一次发布以及发布意图。
依照对话示例,我们是从机器人提问开始的,这时我们使用询问填槽单元,添加单元我们可以点击或者拖拽。
询问填槽单元右上角的按钮依次是“编辑”、“复制”、“删除”。
点击“编辑”按钮,进入了询问单元,在“询问语句”中填写“您好,回复您的邮箱即可领取学习资料。” 预置回复按钮可以放置“确认”、“上一步”、“退出”等输入提示,在这里我们尝试填入“退出”。
收集到用户的邮箱之后,需要一个词槽来存储,后期还能继续使用。那像这样,就需要点击关联词槽,新建词槽,词槽名称为“邮箱”,引用的实体也是“邮箱”。如果说词槽用来存储,那实体就是用来筛选,筛选能放进词槽的信息。
配置好后,通常是这样界面是这样,而后选择保存。“对话策略”和“跳转条件”本次都不涉及,采用默认配置,有诸如追问等其他策略要求的可以选择进行配置。
通过从“开始”的右侧拖出连线连接到“询问填槽单元1”的左侧,来告诉机器人开始之后需要流转到“询问填槽单元1”。
问到用户的邮箱后,我们需要发送一个消息给用户,这里使用“消息发送单元”,进行消息发送。在这里要注意,将示例中的邮箱替代成我们的词槽「邮箱」这样才能显示出来刚才用户用来填充词槽信息。
将询问单元和消息单元连接起来。
5.发布意图
保存后,点击右上角的发布意图。发布之后就能在调试机器人和体验版网页进行快速的测试了。
从调试机器人中我们可以看到我们通过“发送资料”这个短语触发机器人后,进入了“服务场景-发送资料”这个意图,机器人获取到的邮箱地址是“123123@laiye.com”。
向下可以看到经过了两个单元,用“123123@laiye.com”填充上了“邮箱”词槽。点击更多可以查看机器人运行的详情。
- 如果需要真实的使用,我们还需要进入体验版网页进行测试,点击调试机器人右上角的“体验版网页”按钮即可进入。配置进入事件之后,打开网页就不需要再输入发送资料了。
- 如果想记录下邮箱,可以在后面接一个词槽收集单元。
- 如果需要用户能反复进入,后面接一个意图终点单元就行。
1.6对话样式的配置简例
根据渠道的不同,机器人展示的自由度也不同。部分功能依赖于渠道才能进行支持,下面的讲解如遇渠道配置不同时,若未说明皆以Web SDK渠道及其生成的体验版网页为例进行讲解。
1.6.1欢迎语
面向用户的欢迎语在对话搭建-个性化体验-用户事件中进行配置,可以以任务或知识点开始。
1.6.2机器人名称、头像、颜色
在渠道设置-Web SDK-页面样式可以自定义机器人名称、头像、颜色。
1.6.3历史会话记录、自动弹窗邀请、用户输入联想、问答满意度收集
在渠道设置-Web SDK-功能设置,可以设置向用户展示历史会话记录、自动弹窗邀请、用户输入联想、问答满意度收集等功能。
1.6.4兜底回复
从对话搭建-回复策略-机器人策略可以找到兜底回复设置。兜底回复是在机器人认为自己无法准确的回答用户时,向用户提供的回复。
1.6.5相似知识点设置
除了直接给出答案之外,还可以推荐几个提问相关的问题让用户点选,从而提高服务用户的效率,改善用户的体验。
1.7项目流程简介
1.7.1问答搭建项目案例
在场景简单,一个人操作的情况下,在知识库开始搭建初期明确一条主线,知道知识点分类的逻辑就可以基本的明确知识库应该如何搭建了。
但是往往当公司的业务线变宽,产品线变长,流程变复杂,语料(语料,通常指历史的聊天记录,工单等也可)变多,时间紧急的情况下,一个人是难以搭建整个知识库的。
工作注意事项
搭建知识库时建议工作人员共同搭建,坐在一起便于沟通。
经验上来说,面对面半分钟能解决的事情,往往远程沟通要3-5分钟,甚至面对面传达的准确率也会更高,最好是两个人共同搭建,方便厘清知识库内容。
在搭建时要注意按照分类分工明确,可以按照分类逻辑将各部分分工下人员职责明确清楚。大于3个人时,需要有人负责进行检查和指导,掌控知识库搭建质量和进度。
后期针对知识点级别的变化(增加,合并,删除知识点,移动修改分类等),也要同步给所有共同参与人员,以便让其及时了解变化,避免不必要的沟通成本。
搭建过程中要明确搭建所处的阶段,及时切换搭建策略,挖掘,测试优化相互配合。
来看一个消费信贷场景的实操案例:
在项目前期我们可以适当整理项目甘特图,辅之以双方职责说明,提前说明双方需要做的工作。
这样,我们与客户就知道双方应该具有哪些实施资源,需要配置什么人力,上面这个知识库是按照1个人需要做20人天来规划的。
经验来看,使用SaaS有历史语料搭建知识库,全流程中可以做到一个人平均一天挖掘20个知识点,项目前期和后期挖掘的数量会少一些,集中搭建的时期,挖掘的会多一些。
私有部署项目因为沟通,远程,或者其他影响因素要在这个基础上慢大约1/3,平均一个人一天能完成15个知识点。
政策类项目,因为缺少相关的语料以及其他影响因素,所以预计的知识点以及答案往往和用户实际提问有较大偏差,在后期需要反复沟通修改的也相对较多,平均大约一个人一天做10个知识点。
前期准备,语料准备和清洗
在工作正式开始前,我们要做有些准备工作,将用户前期的聊天记录整理成可以导入系统的格式。
项目开始前,我们收到了用户的4个G对话数据,因为数据量大,所以确认需要通过数据库等技术来解决基本的清洗问题。
清洗的目的是保留有效的用户提问。
一般来说,语料数量比较大的情况下我们就保留用户有效的第一句话就可以了。来也也有相应的语料清洗工具可以使用, 数据量如果在30万行以下,使用Excel来处理也非常方便。
注意清洗之后,挖掘之前保留测试集。
1.搭建培训
因为客户或者外包人员对于一个系统的知识库搭建知识不是很了解,我们必须先进行培训,以便于让搭建人员了解机器人的工作逻辑,划分知识点的方法。
知识库层面的搭建培训所有的参与知识点挖掘的同学都要参加。
2.分类快速确认
在培训结束之后,我们邀请业务方领导对整个知识库的分类结构做了梳理。
知识库分类确认工作大致需要1.5-2个小时,也可以提前进行沟通,培训结束后花再半个小时确认一下。
分类基本上是按照口诀“一条主线,其他靠边;出现重复,早做功夫”来划分和定义的。
首先我们确定的最核心的主线是用户生命周期。用户生命周期中,从用户过来的第一个意图起,直到用户的最后离开意图就是整个生命周期主线了。
该客户的主要业务是发放贷款,那么用户过来的主线分类就是资料填写,审核,贷款的申请,而后是还贷,最后是用户注销。
为了这个主线业务,客户还有很多其他业务来支撑这个业务,比如说APP,微信号,支付宝,小程序等渠道应用,从而又产生了其他靠边分支,这里面的知识点有,比如,如何在微信绑定,APP注册,APP操作如修改手机号等等。
“出现重复,早做功夫”的意思是,有时一个分类或知识点会出现在主线的各个部分,如果没有明显的逻辑应该放在某一分类下面,这时我们将其放在最早出现的地方。
通常建议一个分类下有5-20个知识点,如果超出可以拆分子分类,少于5个可以看情况适当合并。
为什么要一个好分类
知识点的分类就像机器人的骨架,骨架确定好了之后,我们才能确认我们的知识点应该放在哪里,一个混乱的分类会导致业务人员自身都不了解知识点应该归属的分类,机器人当然也就搭建不好了。
只有清晰明了的分类,我们才能在搭建知识库的时候,搞清楚到底相似问和知识点应该如何归置。
3.挖掘搭建
挖掘:即从杂乱无章语料中提取出意图相同的相似问题的集合。
( ↑ 就是说从聊天记录中将意思一样的用户提问聚成一堆)
分类确认之后,我们采用了按照分类的主线逐步给参加挖掘的业务人员分配任务.
注意第一次划分任务没有必要将所有分类全部划分下去,根据工作进度的快慢,我们可以将工作内容分为若干部分,逐步分配。
当对应分类工作完成后,可以对该分类的工作进行验收,主要验收事项有以下几点:
问该分类下的主要问题,看看能否正常回答;
进入关键词挖掘,查看对应分类是否被挖掘干净(一次挖掘,不补充新的挖掘语料时);
检查必要的专有词汇和其同义词是否添加;
检查相似问是否干净,是否囊括了其他分类下的知识等(可先用知识库优化功能);
当所有工作完成之后,我们需要对虽然挖掘出来但是相似问数量不够的知识点进行必须要的相似问补充,一般来说补充到10-30个就行。
挖掘搭建过程中使用到的功能主要有以下四个功能:
语料管理 主要是将前期清洗后的语料放置到语料库中。
句子挖掘 使用句子挖掘对上传的语料做聚类。按分类挖掘时主要使用关键词挖掘(根据关键词汇聚类)功能;若单人全量挖掘,一般使用机器挖掘(根据语句之间的相似程度自动聚类)功能。
知识点配置高级功能-挖掘 基于该知识点已有相似问计算重要的关键词,按关键词在待挖掘库的语料中发现可能相关的问题,经挑选后添加至该知识点作为相似问题。
相似说法学习 相似说法学习功能:为了查漏补缺可以使用已有的知识点对用户提问(语料)做自动判别形成待审核,方便添加。 PS:相似说法学习功能在运营期也非常有用。
通常的应用策略是:语料上传后,搭建前期主要使用挖掘功能,中期使用知识点配置中挖掘补充相似问题,后期使用相似说法学习查漏补缺。
Tips
在搭建初步完成后、上线前以及刚上线时期,我们可以运行知识库健康度测评看分数是否在90分上来检查有没有相似问错放,或者知识点归类有问题。
推荐在上线前、知识库做大量改动后、知识库运行半年后这样的时间点定期回顾知识库内所有相似问和知识点的对应关系是否正确。
回顾是指展开每个知识点的相似问,人工复查是否有放错或不符合要求的。
4.真实语料检查
我们前期预留的测试集语料现在就派上用场了,从里面抽取200-500条,进行模型测评,标注正确率(可以使用在线标注功能,注意无语义选择忽略或删除)。
通常来说,客户自己第一次搭建的过程中经常会犯一些小问题,造成初始准召偏低,准确率一般在70-80%之间,成熟训练师搭建出来一般是在80-90%之间。
然后我们根据测评结果进行优化,注意总结主要问题,在进行一到两轮优化之后,能达到90%以上的水平。
优化可以采用补充语料导入相似说法学习形成待审核进行补充等功能。
Tips
在知识库进行测评的同时,答案也要请业务同学进行检查,发现并修改答案中的问题,回复的相关注意事项可以参考添加机器人回复编写经验。
5.上线与优化
在达到上线标准之后,我们就可以开始对接(注意转人工逻辑,欢迎语,关联问题,机器人不知道时的兜底回复),对接之后需要做必要的测试(SAT,UAT测试);测试达标之后,我们就可以考虑上线了。
一些大型集成项目我们也会在搭建的同时做开发对接工作,并提前约定好回复的形式及其他项目注意事项。
在上线后的前一周我们要注意用户的提问,每天挑选200条数据,进行标注和优化,尤其注意高频的提问以及错误。
此案例中,我们将知识库上线到对应渠道上之后,结果很快发现某一个特定渠道用户的常见提问没有覆盖到,在前几天的召回中出现了一部分错误。及时调整后,这个问题就解决了。
只有在机器人发现问题后及时予以调整我们才能给予用户更好的体验。
1.7.2任务规划简述
简要来说,我们需要确认以下几个方面,明确一下对接期间双方的工作:
首先,大部分客户并不了解任务如何区分细节,这需要我们和客户一起来梳理任务和任务之间需要分为哪些环节,每个小环节的任务分别要完成什么事情,这些环节的优先级是什么样子的,一个用户进行任务的时候,到什么时候算是完成呢?
第二点是整理任务要素,这个要梳理我们需要从用户那里获取什么信息?用户的浏览路径是否会影响用户的问答表现和我们提供的服务?
关于用户需要提供的这些信息我们是否提前做过归纳总结,后期可以直接用作实体,专有词汇等等,是不是已经有现成的流程制度,甚至是流程图。
第三点和第四点分别是梳理对话案例和提炼任务流程。
对话案例我们要体现典型的任务场景,用户能做什么?服务开始和结束我们要注意哪些事情,这个闭环如何完成,以及一些重点的任务功能效果示意。
提炼任务流程我们需要梳理场景,意图,词槽和实体,定义流程规则,掌握任务的限制,约定好意图梳理的异常处理方法,以下是一些简单的示意:
对话示例编写
角色 | 用户/机器人回复 | 笔记 |
---|---|---|
用户 | 我要【充话费】 | 记住答案 |
AI | 好的,您是要充10元,30元还是50元呢? | 展示选项分组 |
询问逻辑设计
编号 | 询问话术 | 收集信息名称 | 是否必须 | 允许填槽信息 |
---|---|---|---|---|
1 | 请问您要查看哪个基金呢? | 即要收集的词槽,如基金名称 | 是 | 基金名称(约定客户提供具体业务性信息) |
实体的定义和整理
实体名 | 实体描述 | 实体值 | 多种说法 |
---|---|---|---|
基金名称 | A基金 | 某A基 | AX基 |
如果各个环节的关系比较复杂,我们就需要用流程图来表示整体的逻辑关系。下图是一个查询订单场景的示意:
如果需要展示清楚跨系统配合的逻辑就需要更进一步,使用泳道图来展示相关的图片。泳道图的特点就是分工明确,对象清晰,适合多业务协作。
任务对话的常见处理
下面这些都是来也科技在项目实践中做过的逻辑。
- 前序回答是否会影响后续任务
确认逻辑,在很多信息收集类项目中,我们需要对用户的选择和输入做确认,根据确认的结果,可能有通过、不通过、修改填写内容等选择;跳题逻辑,前序回答造成后序题目无需回答或者根据不同的情况需要收集不同的信息。
- 特殊情况如手机号缺位怎么办
是否需要输入位数错误等特殊提示,在一些做的比较细致的项目中,甚至会对手机号的各种情况做提示,比如国外手机号,手机号位数是否正确等。
- 收集逻辑是什么
在收集过程中,以何形式记录用户的回答。
如果是这个用户的信息,只一次性留存,可以使用词槽记录单元;
如果用户后期要长期带着这个标签属性,用属性写入单元记录;
如果用户的回复不仅需要自己随时能看到,还想让其他人看到,我们就使用表格写入单元。
另外有些营销类场景,实现过用户对哪方面感兴趣,虽然不提问但是需要记录下标签属性的需求;再者就是如在用户提前提供手机号的时候,也要将其记录。
- 是否配置说明、上一步、退出等步骤
说明逻辑是指用户在有疑惑时如何与机器人交互才能拿到相应的解答和解释。
一般来说我们可以开启意图中允许在用户意图未能填槽时,允许用户提问并由机器人做回答,也可以单独配置跳转分支做出说明。
部分环节用户可能想要退回上一步进行选择,这个通过平台的新功能也可以方便的配置。
沟通环节中,基本都需要考虑是否让用户可以直接退出任务,目前也可以在场景设置处进行个性化的退出配置。
- 权限控制逻辑
通过读表、属性等单元相互组合,我们能高效实现白名单,分权限,分项目不同回答的配置。
使用平台搭建任务对话部分往往非常迅速,但往往我们也需要花费时间在调试等工作上。
1.8无语料搭建经验
前期我们讲述的很多项目和案例都是在有历史聊天记录(有语料)的场景中搭建知识库。可往往在历史没有应用过客服系统的项目中,缺少相关语料,这种项目(无语料项目)该怎么搭建呢?
本篇将重点介绍无语料知识库搭建项目的方法。
1.明确应用场景
在项目开始前,要明确项目的定位、性质、应用渠道,预计每天来访客户数量,提问数量。构建用户画像,找到用户的关注点,这一步也可以咨询用户现有的服务人员或市场人员。
在项目开展前,大家的预期要明确,应用机器人并不能直接带来流量,更多的是,服务好现有用户,提高现有用户的转化,形成良好的口碑。
2.拆分形成知识点
如果项目没有明确的知识点,那需要拿到客户回答问题的列表,这个可以作为搭建的基本知识点。如客户没有问题列表,可以请客户总结常见的一些问题和答案。也有很多时候,客户会直接给一个政策通知、办理手册等搭建知识库,这时候就需要人工去拆解知识库。
相应地,非业务人员拆解知识库、从文本中拆分知识点,容易出现业务要点把握不准,不知道客户提问重点的问题。所以要在拆解完成之后和业务员人员核对。经验上来说,拆解知识点的时间花费是50个知识点/人天,如有特殊情况会有变动。
3.泛化相似问题
有语料项目,我们通过聚类挖掘等方法从聊天记录中发现用户的提问,形成机器人知识库中对应知识点的相似问题也就是机器人的学习资料。
若搭建知识库没有语料,我们则需要根据现有情况或资料先挑出来用户问的问题,然后通过人工撰写、爬虫爬取问题等方法来增加相似问题。
人工撰写就是模拟真实用户的提问来添加相似问(平台上添加一条后,敲击“Enter”即可新增下一条)。
经验上来说,增加相似问题预计用时为200条/人天,如有特殊情况会有变动。
来也科技在长期实践过程中,也积累了许多收集相似问题的方法,比如来也泛化平台,来也科技研发的相似问题通用收集内部工具。
其作用是输入一句或一批句子,通过不同来源泛化,输出跟目标句子含义相近的其他句子。
来源包括:
同义词替换:使用同义词词表进行词语替换
爬虫:根据输入的标准问题爬取多个知识类网站,过滤后给出相似问排序
全网搜索:以给定的网址为对象搜索所需要的数据,默认包含常见问答网站
长话短说:将长句子缩短为短句子
测试机器人的测试集也可以通过这些方法收集。
有语料和无语料项目的分析
从有语料(有聊天记录)和无语料(无聊天记录)项目的背景来说,我们可以做出这样的总结:
区别 有语料项目 无语料项目 应用场景 成熟,长期对话服务 不成熟,新设对话服务 用户量 一般有稳定流量 未上线,未知 知识点 有常见知识点 通常有文档等,无聊天记录 语料 有聊天记录 未上线,未知
1.9概念总结
概念 | 释义 |
---|---|
问答对话 | 问答对话主要是查找并提供给用户所需的信息,即找到用户这个问题的答案并回复。 |
任务对话 | 任务对话是帮助用户完成一个任务或操作,在这个过程中我们还要收集能帮助完成这个信息的必要操作。 |
闲聊对话 | 闲聊对话是通过寒暄或者闲聊,满足情感诉求,维系关系。 |
机器人 | 一个机器人可完成特定领域的对话;一个平台账号可以创建多个机器人;不同机器人间,在⌈平台⌋数据是互相独立的。 |
置信度 | 机器人召回知识点或意图与用户问题的相关程度。 |
阈值 | 置信度区间的界限;所有对话类型自动回复的阈值可以自由配置。 |
兜底回复 | 当用户的问题机器人无法理解时,机器人回复的默认内容。 |
知识点 | 知识点=标准问题+语义高度相似的多个问法(相似问题)+一个或多个回答 |
问答召回率 | 问答召回率 = 机器人召回知识点的消息数/机器人回复的总消息数 |
问答准确率 | 问答准确率 = 机器人正确召回知识点的消息数/机器人召回知识点的消息数 |
意图 | 用户想要完成的任务; e.g. 查询火车票场景中,有“查询火车票”、“退火车票”等意图。 |
词槽 | 意图当中需要收集的关键信息; e.g. 查询火车票意图中,出发和到达城市需分别保留在词槽中。 |
实体 | 可以与其他物体区分开的物体或关键信息; e.g. “城市”实体,实体值包含“北京”、“上海”等城市名称。当用户发来消息,平台机器人可以从消息中抽取出实体值。 |
对话单元 | 定义意图所需要的最小关键节点;将对话单元按照业务流程组织起来,就组合成了意图。 |