在智能对话项目搭建的过程中,高效筛选、处理对话日志并将其转化为新的训练数据,是对话系统效果持续提升的重要环节,也是当前开发者面临的难题之一。为此百度大脑UNIT推出学习反馈闭环机制,提供数据获取、辅助标注工具DataKit,帮助企业提升数据处理效率。

【快速了解什么是DataKit】

DataKit是面向开发者提供的数据生产工具集,可以利用交互式学习、规则样本生成和多模型一致性检验等技术方法自动获取大量数据,并从中筛选出带标注、半标注和无标注3类样本,这些样本经过高效的预处理后形成新的训练数据,可进一步提升语义解析效果,有效提升对话系统的优化人效。

1、样本获取

利用DataKit,用户可以从生产环境的日志中不断挖掘样本数据,逐步优化语义理解效果。

2、辅助标注

通过数据生产、自动筛选与辅助标注,能够使训练数据集构造效率平均提高8倍,帮助开发者更低成本地优化模型理解效果。

【DataKit背后的技术解读】

1. 交互式学习技术

在对话系统的效果迭代优化中,利用用户的多轮对话行为作为对话效果的反馈,帮助发现当前系统效果的瓶颈,并挖掘有意义的对话样本供开发者标注以解决效果瓶颈。交互学习就是这样一种以用户交互行为数据为基础,积累交互样本,解决系统效果瓶颈的迭代优化辅助方案。

交互学习主要包含话术干预技术和异常样本发现技术:

话术干预技术

当用户认为系统的理解结果有误时,往往会试图通过强调的方式来澄清理解错误的部分。那么,用户用于强调的话术就是对于理解结果的一种干预。例如,

系统通过语义理解技术,将用户的干预话术识别为修改意图、词槽等操作,然后对被干预的理解结果进行意图和词槽上的修改。修改完成后会作两步处理:对于当前进行话术干预的用户,系统会记录该用户的话术偏好,从而下一次会按照用户的干预结果进行解析;同时,被干预的样本会在页面上展示给对话系统的开发者,由开发者决定是否将该样本加入训练数据从而对全局用户生效。

异常样本发现技术

异常样本发现主要用于挖掘对话系统内部理解异常和用户反馈异常的样本。

当用户认为系统的理解结果有误时,尽管会不断强调错误信息,但可能不会明确指出错在哪里和如何修正;同时,语义理解结果可能存在歧义、意图不识别等异常情况。例如:

①理解歧义——  U:明天北京  R:您是查天气还是查机票

②复述强调——  U1:贷款  U2:保单贷款

③复述强调——  U1: k21点会议室  U2: 1点的k2会议室

以上情况虽然无法通过多轮的技术来确定理解结果,但是可以通过异常样本发现技术进行异常样本挖掘。

异常样本发现的原理是:根据对话理解系统的中间状态来判定理解歧义和意图不识别的情况,并利用用户复述(当前问法强调上文中出现的关键信息)识别技术来判定用户在指出上文理解错误。异常样本被挖掘后展示给开发者,帮助开发者发现系统理解效果的瓶颈,有选择性的进行异常样本标注,并有针对性的调整模板。

2. 规则样本生成技术

在UNIT平台上用户可以方便地配置模板得到语义解析结果,实现语义解析的快速冷启动。在模板配置达到比较好的语义解析效果时,可以利用规则样本生成技术,产生带标注的样本集合供UNIT进行深度训练,更进一步提升语义解析效果。其方法是利用用户已经标注的模板和上传的词表,通过模板和词槽的组合关系,产生带标注结果的样本集合。这批样本可以直接用于深度训练,提升语义解析效果,能够有效降低人力投入。

在使用上,首先,冷启动阶段通过配置模板,使技能的解析效果达到比较好的程度。同步积累了一定的模板、词槽和关键词数据。然后,基于当前模板、词槽和关键词,触发样本生成功能,获得一定数量的带标注样本。最后,将该样本加入到训练数据中,进行深度训练,进一步提升模型的解析效果。

3. 多模型一致性检验技术

多模型一致性检验是日志挖掘的一种有效方法,其输入是用户的请求日志,输出有三类:带标注结果的正例样本,当前解析为负例的样本和当前没有解析结果的样本。其方法是检验UNIT上多个解析模型的结果,假设多个模型的解析结果越一致,其解析正确率越高。其中,具有高正确率的样本可以直接作为训练正例,解析为负例的样本可以直接作为负例,当前没有解析结果的样本可以进一步进行人工校验,不断优化解析效果。

【快速上手DataKit】

1、周期性的在UNIT平台下载生产环境的日志

进入UNIT平台技能的「对话日志」页面选择「生产环境」,导出日志明细(文件类型选择「JSON文件」),开发者可以一周一次或者一个月一次下载生产环境的日志,如果沙盒环境的对话日志是真实的用户对话(非内部测试的)也可以使用。

2、执行挖掘对话日志的Python脚本挖掘日志

比如上面下载的对话日志文件为:unit_1000.json.txt

执行命令:python extract_train_data.py  unit_1000.json.txt  1正例样本.txt  2负例样本.txt  3无结果样本.txt

上述Python代码下载链接:https://pan.baidu.com/s/16g9l40aqT8GdcGzDLWB5Yw 密码:0p6t;需要在Python2.7 环境下运行

3.对挖掘出来对话样本文件进行后续处理

「1正例样本.txt」一般情况下,可以直接导入对话技能的样本集里作为训练数据即可(已经是标注好的格式)。

「2负例样本.txt」 为当前平台识别为SYS_OTHER的样本,可简单审阅后在对话技能的训练数据中创建一个单独的负例样本集,导入该文件,作为负例训练数据,再下次训练时选择使用。

「3无结果样本.txt」为当前平台没有解析结果的对话样本,这些建议重点关注,看看那些应该识别却没有识别,筛选出来导入样本集进行人工标注。那些不应该识别的样本,导入负例样本集,标注成SYS_OTHER意图。

DataKit的一些使用建议:

1、周期性的下载存储平台上的JSON格式的对话日志;

2、周期性从日志里挖掘对话样本;

3、针对不同样本继续不同处理,对话技能模型效果会有明显提升。

另外,下载、挖掘日志的周期可以根据技能的对话日志量以及能挖掘出来的正例样本量来评估,一般情况下挖掘出1000条以上的正例样本结合已有的样本和对话模板用来训练模型才能在模型上效果上带来正向的提升。而需要从多少条对话日志、多长时间段的对话日志里才能挖掘出1000条正例样本,这主要取决于技能的使用情况(比如生产环境的对话数据真实,会更好),也与对话场景、模型已有的对话效果有关,需要开发者进行一些尝试,找到符合自己的一个日志挖掘周期。

相关文章:

百度大脑UNIT3.0解读之对话式文档问答——上传文档获取对话能力

百度大脑UNIT3.0详解之语音语义一体化方案

百度大脑UNIT3.0详解之数据生产工具DataKit的更多相关文章

  1. 百度大脑UNIT3.0详解之嵌入式对话理解技术

    相信很多人都体验过手机没有网时的焦虑,没有网什么也做不了.而机器人也会遇到这样的时刻,没有网或者网络环境不好的情况下,无法识别用户在说什么,也无法回复用户.在AIoT(AI+物联网)飞速普及的现在,智 ...

  2. 百度大脑UNIT3.0详解之知识图谱与对话

    如今,越来越多的企业想要在电商客服.法律顾问等领域做一套包含行业知识的智能对话系统,而行业或领域知识的积累.构建.抽取等工作对于企业来说是个不小的难题,百度大脑UNIT3.0推出「我的知识」版块专门为 ...

  3. 百度大脑UNIT3.0详解之语音语义一体化方案

    在电话客服场景里,用户和机器人交流的过程中,经常会出现沉默.打断机器人.噪声等情况,机器人在应对这些异常情况的时候,需要语音和语义理解技术进行处理,才能实现用户和机器人的流畅交谈.而这些能力的获取与应 ...

  4. 百度大脑UNIT3.0智能对话技术全面解析

    智能客服.智能家居.智能助手.智能车机.智能政务……赋予产品智能对话能力是提升产品智能化体验.高效服务的重要手段,已经开始被越来越多的企业关注并布局.然而,智能对话系统搭建涉及NLP.知识图谱.语音等 ...

  5. 百度大脑UNIT3.0解读之对话式文档问答——上传文档获取对话能力

    在日常生活中,用户会经常碰到很多复杂的规章制度.规则条款.比如:乘坐飞机时,能不能带宠物上飞机,3岁小朋友是否需要买票等.在工作中,也会面对公司多样的规定制度和报销政策.比如:商业保险理赔需要什么材料 ...

  6. iOS百度地图简单使用详解

    iOS百度地图简单使用详解 百度地图 iOS SDK是一套基于iOS 5.0及以上版本设备的应用程序接口,不仅提供展示地图的基本接口,还提供POI检索.路径规划.地图标注.离线地图.定位.周边雷达等丰 ...

  7. 发布AI芯片昆仑和百度大脑3.0、L4自动驾驶巴士量产下线,这是百度All in AI一年后的最新答卷...

    机器之心报道,作者:李泽南. 去年的 7 月 5 日,百度在北京国际会议中心开办了首届「AI 开发者大会」.在会上,百度首次喊出了「All in AI」的口号.一年的时间过去了,今天在同样地点举行的第 ...

  8. 十图详解tensorflow数据读取机制(附代码)转知乎

    十图详解tensorflow数据读取机制(附代码) - 何之源的文章 - 知乎 https://zhuanlan.zhihu.com/p/27238630

  9. 百度搜索结果页url参数详解

    在百度首页输入任意关键词搜索之后,我们跳转到搜索结果页面,在浏览器的网址栏我们可以看到很长的一串url地址.那么,你真的了解这一串url的含义吗? s?:搜索 百度搜索结果页使用了重定向,因此我们看到 ...

随机推荐

  1. Spring中,多个service发生嵌套,事务是怎么样的?

    前言 最近在项目中发现了一则报错:"org.springframework.transaction.UnexpectedRollbackException: Transaction roll ...

  2. JavaScript实战实例剖析——(激励倒计时日历)

    如今JavaScript在前端开发中的地位越来越高,掌握JavaScript的深度往往能决定你职业道路深远,这次通过制作 带着倒计时功能的激励日历的小实例,进一步细致的掌握JavaScript的语法与 ...

  3. Python用正则表达式匹配汉字

    Python用正则表达式匹配汉字 匹配多个汉字,不包括空格 import re res = re.match(r'[\u4E00-\u9FA5]+', '我是 汉字') print(res) # &l ...

  4. 程序员的算法课(17)-常用的图算法:深度优先(DFS)

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/m0_37609579/article/de ...

  5. python函数-函数对象

    python函数-函数对象 实验室 当函数定义时,就类似a=1,以函数名为变量名 def zx(): pass print(zx) zx=21 print(zx) <function zx at ...

  6. 【BZOJ4001】【Luogu P3978】 [TJOI2015]概率论

    题目描述: Description: Input 输入一个正整数N,代表有根树的结点数 Output 输出这棵树期望的叶子节点数.要求误差小于1e-9 Sample Input 1 Sample Ou ...

  7. 【JZOJ】3490. 旅游题解报告

    题目 思路 这道题看上去就像一个动态规划!但是还是要把矩阵压成一行. 然后按 \(A\)数组 将结构体从小到大排个序. 随后我们开始了动规标准步骤: 确定状态 很显然, \(f_i\) 表示游览完第\ ...

  8. Spring IOC容器装配Bean_基于注解配置方式

    bean的实例化 1.导入jar包(必不可少的) 2.实例化bean applicationContext.xml(xml的写法) <bean id="userDao" cl ...

  9. windows系统tomcat上开发的j2ee程序,如何适配linux系统上奔跑的websphere7

    公司需要将几个windows系统tomcat中间件下开发的j2ee系统部署到linux系统websphere7中间件下去运行. 这就需要做系统的适配工作.由于时间比较久了,具体问题就不详细写了.把这个 ...

  10. POJ3261 Milks patterns(后缀数组)

    Farmer John has noticed that the quality of milk given by his cows varies from day to day. On furthe ...