UNIT对话系统开发训练营干货大放送
魏亚非669 发布于2018-09 浏览:5148 回复:3
4
收藏
最后编辑于2018-09

为了让更多开发者学习百度UNIT对话系统开发技能,8月30日起每周四14:00-15:30,百度与InfoQ联合推出了“ 从入门到实战 百度UNIT对话系统开发训练营”主题活动,百度的三位大咖级专家联合出席讲授三门线上课程,从UNIT对话系统的基本结构和功能入手,介绍UNIT核心模块和常用技术,以及UNIT平台底层机制,零起步零编程,教你快速完成对话系统的搭建和应用,掌握UNIT高级实用技巧,完成对话系统全套开发实践。

没有参与直播的同学可以直接看这里了

传送门——三期课程的回放地址和PPT下载地址:

http://infoqstatic.com/cn/zones/baidu-salon/baiduUNIT.html

三期课程中,很多开发者互动提问,由于课堂上只答复了部分同学的问题,拼了老命找到我们的工程师同学将所有问题一一作答,吐血整理:

一、产品功能&场景应用类提问

1、百度开发了何种人机对话产品?
百度UNIT是人机对话系统开发平台,通过它您可以快速搭建属于您的人机对话系统。

2、目前都有哪些成熟应用?
目前在智能家居、智能客服、车载导航、家用机器人、教育机器人、企业智能办公、智能硬件等领域都有成熟的应用。其中百度地图的所有语音操作对应的对话理解都是在unit平台上完成配置的,可以百度地图中体验。

3、请问UNIT是否提供了智能切换场景的能力? 也就是能根据用户语言上下文自动切换场景,以及自动继承词槽的功能?(如果切换先后的场景的词槽相同) 比如预设场景:1.查天气;2.订机票 要能实现以下对话: U:查天气 A:请问哪里的天气 U:帮我定明天去上海的飞机票 A:已订好 U:那天气呢 A:上海明天的天气晴
UNIT会提供智能切换场景的能力,该项技术正在不断优化完善。

4、有基于UNIT开发的案例可以在线体验一下吗?
可以在百度地图app里用语音的方式体验导航、找地点等功能(例如:小度小度,我要去清华大学),对应的对话需求理解都是基于UNIT平台配置开发的。

5、要做个外呼系统 如何设置unit
外呼系统比较个性化,实现的思路可参考https://ai.baidu.com/support/news?action=detail&id=421

6、UNIT搭建智能对话机器人主要关注那些点?
1)分析对话场景中对话属于什么类型?对话型还是问答型?2)对话型要解析哪些对话意图?问答型要解决哪些类型的问题。3)然后根据分析的结果在平台上定义好技能,接着要收集对应的训练数据,并标注、训练。

7、bot如果投产 qps配额要怎么提额
如需QPS>40或BOT>3时,可提交工单申请,2个工作日内完成审核 http://ticket.bce.baidu.com/#/ticket/create

8、用UNIT 2.0,开发者可以打造一样的客服机器人。在对话管理方面,项目中专门为本次外呼做了定制优化,后续会升级为针对外呼场景的通用框架,逐步开放。请问这个后续会开放吗?
后续可能会提供解决方案

9、智能问答可否与语音识别相结合,客户可以通过语音回答,或者客户文字提问,转语音回答?
可以与语音结合,可以调用百度语音或其它的语音技术接口 把用户的语音转文字给UNIT解析,得到解析结果后组织好给答复后可以再调用TTS接口使用语音的方式输出

10、现在支持的语言有什么
中文

11、在什么地方可以看到更多的unit案例
unit.baidu.com

12、使用UNIT搭建智能对话机器人相对于别的方式而言,有什么更强的优势吗?
更小的成本,更低的门槛,相对更高的召回与准确率(其中你提供训练数据的数量和质量也是决定效果的关键因素)

13、UNIT 整体框架包括几个主要模块?
工程架构角度主要分为3个模块。对话定制化平台(网站、管理API等)、数据传输与任务调度系统(训练、推荐、评估等)、对话服务平台(这部分正在重构,之后有机会再介绍)。

14、如何纠正对话的错误?
系统提供纠错和澄清机制,能够一定程度上起到纠错作用。

15、推荐对话样本是否会涉及到语句通顺的检测?如果有,原理是什么?
样本推荐暂时没有进行通顺度检测,后面会加入语言模型,过滤不通顺的推荐样本

16、能否提供系统内置特征词 比如请这类的常用语气词
目前没有,不过我们已经在计划、梳理提供一些常用的特征词,敬请期待。

17、直接在线配置BOT 和DM Kit的主要区别在哪里? 现在看DMKit C语言写的,不好搞啊。
目前DM Kit的作用对应 BOT回应部分的功能,DM Kit目前开源了C++版本的代码,如果只是实现一些个性化对话流程的处理,可在本地部署DM Kit服务后通过配置的方式实现,如果是要处理更复杂的业务,可根据需要修改DM Kit的功能,后续我们会考虑提供Java版本的开源DM Kit。

18、在测试的时候,如何用自己的bot叠加百度本来有的bot
请期待『技能商店』的上线。在技能商店中,一个bot可以被复用、分享。这种复用可以是引用的(不可修改,随着引用源的更新而更新),也可以是复制的(自己完全可控,保证版本的稳定)。

19、请问unit拥有的泛化效果是什么意思?
通俗的讲就是你教给他一个问题的多个表达方式,经过UNIT训练得到的模块对同一问题可以识别更多的不同的表达方式。

20、UNIT平台提供的有相似语句生成功能么? 如刚才的 我要做红烧肉怎么做 生成相似的
有。可以尝试一下UNIT的样本推荐功能。

21、UNIT 直接访问业务资源模式 数据结构怎么定义 开发者可以直接在UNIT里面配置吗 DMKit中能否使用这种模式
UNIT云端的相关功能还在研发中,届时会有明确的文档。
使用DMKIT可以通过函数调用业务资源,目前内置HTTP调用函数,使用方式可以参考文档(https://github.com/baidu/unit-dmkit/blob/master/docs/tutorial.md#params%E4%B8%AD%E5%8F%98%E9%87%8F%E7%B1%BB%E5%9E%8B%E5%88%97%E8%A1%A8%E5%8F%8A%E5%85%B6%E8%AF%B4%E6%98%8E)

22、UNIT介绍的都是文字输入的交互方式,有语音输入/输出交互方式的方案吗?语音的是不是要用其他的先做识别转换成文字
我们近期会推出语音+UNIT的二合一接口,实现输入语音,输出语义的效果,缓解当前开发者连续调用两个接口的负担。

23、本地dmkit和unit云端通信流量大吗?有优化配置吗?
dmkit和云端的通信量当前确实偏大。这是由于会话历史信息由于多轮对话的积累,越来越大导致的。我们正在考虑把这些信息托管在云端的方案。

24、因为如果做B端的项目,肯定是对每一个商家是一个新的bot,但每一个bot间应该是要共享些内容的,这个也是之后会有的功能吗?
这个在我们下半年的技能商店功能中会有体现。一个bot可以被复用、分享。这种复用可以是引用的(不可修改,随着引用源的更新而更新),也可以是复制的(自己完全可控,保证版本的稳定),敬请期待。

25、部署到线上肯定会有开发环境,测试环境和正式环境,那么bot可以复制吗?
BOT的复制是支持的,尤其是沙盒向生产环境的复制。我们一起先做人工支持,并将尽快把这个流程自动化。

26、dmkit c++版不会用呀 后台会提供其他语言版本吗
dmkit还有一个php版,我们正在评估将其开放的可行性

27、unit是否具有可视化运行性能监测分析功能?
我们内部有完善的报表机制。如果有需求,我们可以考虑将其中的一部分开放。

28、支持方言吗
这主要取决于ASR的能力。另外,方言的特殊表达,特殊词汇需要开发者处理好。

29、对话和问答方式哪个更有优势?
这个要看业务需求,可以参照PPT开头的内容,判断场景最合适的类型。


二、技术原理类提问

1、底层有没有用到语义网络/知识图谱?如果用了,怎么搭建?有没有使用现成框架?
百度UNIT正在积极探索使得语义网络/知识图谱发挥作用的方式。

2、请问能够说明一下基于语义解析和匹配的两种口语理解方式的对比吗,如效果优劣,实现难易程度等,谢谢。
解析模式重在理清内部结构,匹配模式重在找到相似候选。两种方法各有适用的应用场景。例如,指令类场景适宜用解析模式,FAQ类场景适宜用匹配模式。

3、对话系统的处理速度受到哪些因素影响?
对话系统实际运行中的处理速度主要受词典、样本和模板等数据资源的规模所影响。

4、NLP 在语义区分主要用什么方式
从策略上看,主要包括分类和匹配两种方式。

5、百度是如何进行语义匹配的?都要考虑什么特征,情感,意图,句法?
百度综合采用多种技术策略实现高精度的语义匹配。所采用的特征既包括结构化的句法和语义等信息,又包括非结构化的深度语义表示信息。

6、请问语义分歧和去噪声问题,请问有什么好的办法解决吗?
歧义是NLP问题难度的核心所在。更多的上下文信息、更好的外部知识资源、更强的推理判断,都有助于处理歧义。

7、机器学习方法是否只用在了意图和槽值提取上?对话管理策略选择部分有用到机器学习的方法吗?用的什么方法?
口语理解和对话管理均用到了多种机器学习方法。有监督、无监督、半监督以及深度学习技术,均被大量使用。

8、在语义匹配的常用方法中,什么情况适用离散型表示,什么情况适用连续性表示?
当有大量领域内文本资源存在时,适用连续性表示;当有丰富的外部结构化语义资源存在时,则可以采用离散型表示。两种表示并非二选一,可以综合采用。

9、老师,您好。请问:精细对话逻辑,和粗话对话逻辑,怎样理解?
这是说在我们理清业务对话逻辑时,状态表示的详尽程度。如果一种逻辑表示,能够精细到一个节点就表示整个对话状态,那么这就可以称为精细对话逻辑。

10、请问UNIT底层是用的什么机器学习的框架呢?(不知道能不能问哈哈)
UNIT不拘泥于特定的机器学习算法,而是从实际问题出发选取最恰当的技术进行组合创新,UNIT所采用的技术那就多啦,规则模板、传统统计学习、深度学习和强化学习等等都会使用。

11、可否理解为,模板使用的是规则进行句式的硬匹配,对话样本才是用的机器学的方法进行解析?对话样本的训练和解析用的是CRF吗?那一句话进来后,规则匹配和机器学习是同时解析还是有先后顺序呢?
可以这么理解,略加补充一下:基于模板匹配时可以采用软匹配模式,不要求完全对应,而是可以算出一个匹配的程度。对于一个给定query,我们有一个整体策略用以组织规则技术和统计技术的搭配关系。

12、如何配置多轮对话过程中的上下文理解能力?实现的原理是什么?
基于上下文的理解能力是多轮对话中最大的难点之一,现有的SLU技术主要针对当前轮输入的query进行单轮理解,做不到结合上下文。为此我们提出了『交互式学习』的概念,允许用户通过上下文之间的关联对理解结果进行修正,从而得到想要的结果,详细内容可见 https://ai.baidu.com/forum/topic/show/889963

13、多轮对话过程中如何识别一句话中的多个意图?实现原理是什么?
多意图解析是研究领域的一个难解问题,多轮对话的目的不是识别同一句话中的多个意图。目前小伙伴们正在积极开发多意图识别功能。

14、UNIT的NLP的技术是通用的如词向量等技术吗还是根据百度搜索的技术自己研发的
UNIT用到的各项NLP技术是百度NLP部门各个相关方向上的长期积淀。这些技术在百度内部的各个主力产品上都有广泛的应用。

15、基于检索的对话系统和基于生成的对话系统 ,各有什么优势与不足?
从任务型对话系统来看,基于检索的系统应该指的是基于显式语义表达的Frame-based系统,也就是『意图+词槽』的模式。这种模式相对于生成系统来说,效果更加可控,也更容易定制化。

16、问答系统和对话系统技术实现上有什么区别?
对话系统,尤其是任务型的对话系统,需要关心输入对话的内部结构,即意图、词槽等信息。问答系统不太需要关注输入对话的内在结构,本质上更像是一个输入问题到标准问题的语义匹配过程。

三、词槽功能类提问

1、问题理解需要不需要分词词库?如果用的话怎么构建词库?怎么抽取新词/实体?
用户可以通过提供分词词库以改善问题理解的效果,词库可以通过人工编撰构建,也可以通过购买等其他渠道获得。百度NLPC平台提供新词和实体相关的技术能力。

2、实体对齐怎么做?同义词?
百度采用词典和规则等复杂的融合技术实现实体消歧,同义词词典是其中所采用的一种重要资源。

3、请问,词槽(词槽值)和特征词这两者应该怎么理解,如果对话样本再不同场景下,可能会有所交错(比如法律行业的问题复杂),那某些关键词可能会作为词槽值,也有可能可能作为特征词,这样有无问题?
词槽可以用在对话样本标注、对话模板配置中,特征词只用在对话模板配置中。词槽在被解析后返回给开发者,可以在产品代码中把词槽值作为入参去查询业务系统然后组织答复用户的内容。而特征词不会被放入解析结果,只是用于帮助对话模板去匹配用户的问题。一些词是要定义为词槽还是特征词主要看你是否需要在解析结果中拿到这个词,用它做进一步的处理。

4、请问系统内置特征词 地点类的,支持国外的地址吗? 比如:东京、首尔
支持

5、词典间的词有重复的时候怎么会怎么处理?比如一个词既是小说又是电影,UNIT是怎么判断当前语境下这个词应该是哪个类别呢?
一方面通过根据上下文判断,也会给出其他候选类别

6、如果目前没有偏向于自身业务的字典,这个时候进行关键词提取会不够准确, 这个时候怎么办?
把业务的字典导入到词槽的自定义词典中

7、词典间的词有重复的时候怎么会怎么处理?比如一个词既是小说又是电影,UNIT是怎么判断当前语境下这个词应该是哪个类别呢?
一方面通过根据上下文判断,也会给出其他候选类别

8、unit是否支持语义理解过程中融入领域知识?如何融入的?开发者如何将自己的知识融入?
UNIT支持您在开发过程中引入领域相关知识,领域相关知识可以以领域词典的形式引入。

9、中英混合好识别吗?如果对软件内部操作,给某个物体用户自己命名与通用词冲突怎么办?
基本的识别模型都是基于中文来训练的,中英混和的效果我们并未评估,无法保证。如果复用了某个系统词槽,并且和用户字典有冲突,会选择系统词典。若没有复用,则会出用户自定义内容。

10、请问一下词槽内容是不是越多越好?
这个问题想问的是枚举型的词槽。词槽内容越多,对词槽识别的覆盖就越好。但是要注意两个问题:第一:尽量复用系统词槽;第二,注意歧义问题。

11、unit的一些系统内部的词槽后面会支持干预吗?比如追问意图时“您是需要导航吗?”用户回答“是”是可以识别的,回答“需要”会识别失败
这是系统内部意图SYS_YES的识别效果问题。我们有这个计划,让系统意图也接受外部的定制。


四、对话逻辑类提问

1、针对用户的意图,从对话中如果判定出多个的话,如何筛选出一个最优的意图出来?而不是让用户和机器多次对话来确定意图?
如果系统对判定出的最优意图足够确信,比如置信度大于一定阈值,那么就可以确定下来,否则可以和用户进行澄清。

2、什么情况下会触发多意图确认?
当系统遇到歧义,并对识别结果不够确信的时候。

3、多轮训练的时候,是不是也是转成单轮的,多轮是个业务流程在里面的,主要看每个来回应答的引导呢?
单轮对话是多轮对话的组成部分,但多轮对话不是单轮对话的简单拼接,而是通过复杂和智能的对话管理组织起来。

4、一个BOT场景下,多个对话意图可以自动切换吗
系统根据用户响应进行判断,控制对话意图之间的切换和其他重要信息的传递。

5、多轮对话一定在形式上表现为与用户的多次对话交互吗?
先说什么叫一轮对话,一问一答为一轮,在任务型对话中,对话的目的是完成了一个目标,当需要的所有关键信息(词槽)在第一轮的问题中都已经提供,回答也满足问的需求了,那整个对话单轮就结束了。当完成目标需要的关键信息第一轮的『问』中并没有提供或不全,那就需要在后续的对话轮次中补全,直至所有关键信息都提供后回答者根据完成的信息给出答复,对话目标达成,这样的对话形式是任务型的多轮对话。而目前闲聊型的对话也有多轮交互的形式,不同轮次的对话之间可能有一定的关联性也可能没有,这种多轮对话不是以完成一个任务为目标的。

6、bot_session有大小限制吗?
没有限制。Session中设计有对话历史字段,因此会随着多轮对话的进行而增长,我们正在设计session托管机制以避免由session变得过大导致的传输延时、流量的过度开销。

7、对话过程中,如果所有的词槽和意图都已经确定后,机器给出查询结果,紧接着变更词槽中的出发时间和目标地址,系统会自动更换这两个词槽,然后根据上一次的对话词槽和意图给出结果吗?还是需要用户确认一下当前的词槽和意图后再给出答复?
UNIT里内置了对话中用户更换词槽值的意图识别,还有用户对话缺少词槽时主动让用户澄清的能力,在用户更换词槽或补充词槽被系统识别后不需要用户确认,会自动给出相应的答案。

8、dmkit是使用传bot_sessionid的方式优化了吗?
bot_sessionid主要针对云端session数据进行优化。由于DM Kit需要使用bot_session存储对话管理相关的状态,暂时不支持bot_sessionid的方式,仍需要传入完整bot_session数据。

9、多轮对话一定需要多轮吗?如果用户说出的所有的条件是否可以一轮搞定?
不一定,如果一句话说出所有的条件就一轮搞定。

10、unit返回的理解和确认有啥区别 我认为是一种类型可以吗
理解状态表示NLU步骤已经完成,但DM相关逻辑还没有走。这个状态是和DMKit等本地化DM工具包配合使用的。

11、您好, 咨询一下调用函数后的返回信息的处理方式是什么样的?直接在线配置BOT 和DM Kit的主要区别在哪里? 现在看DMKit C语言写的,不好搞啊。
目前DM Kit的作用对应BOT回应部分的功能,与在线配置BOT回应相比,DM Kit可以实现较为复杂的对话流程,允许开发者在本地执行函数、查询外部服务等操作。
DM Kit目前开源了C++版本的代码,如果只是实现一些个性化对话流程的处理,可在本地部署DM Kit服务后通过配置的方式实现,如果是要处理更复杂的业务,可根据需要修改DM Kit的功能、添加自定义函数,调用函数后返回值可用于条件判断以及拼装回复话术。
后续我们会考虑提供Java、Python等其他语言实现自定义函数的方案。

12、请问UNIT是否提供了智能切换场景的能力? 也就是能根据用户语言上下文自动切换场景,以及自动继承词槽的功能?(如果切换先后的场景的词槽相同)
在意图之间切换时,词槽可以继承。在场景之间切换的功能正在研发中,场景之间的信息共享机制通过『上下文』来完成,敬请期待。

13、自定义两个场景的场合,UNIT是否能根据用户语言上下文自动切换场景,以及自动继承词槽。 比如预设场景:1.查天气;2.订机票 U:查天气 A:请问哪里的天气 U:帮我定明天去上海的飞机票 A:已订好 U:那天气呢 A上海明天的天气晴 要能实现以上对话。
这个需求是完全可以支持的,敬请期待。词槽的继承机制会通过上下文实现。

14、复杂的对话流程一定要用dmkit么
这个要看具体的业务到底有多复杂,以能够支持业务,且使用起来最方便的方案为宜。我们欢迎开发者根据自身需求自由选择各种对话管理方案。

15、1、问:以下三种情形,问题识别意图后,如何返回对应答案?答案应该如何结合词槽整理? ①同一意图,同一词槽类别下,一个词槽值对应一个答案 ②同一意图,同一词槽类别下,多个词槽值对应一个答案 ③同一意图,不同词槽类别下,多个词槽值对应一个答案 2、问:对话意图(词槽管理和样本整理好后)和问答意图(问题和答案整理好后)如何相互补充结合使用?
第一个问题,云端的对话触发条件应该可以描述出这些约束。如果有特殊的条件约束表达不了,我们可以具体问题具体讨论。第二个问题,当前问答意图与对话意图是一起参与解析的,对话意图的优先级要高于问答意图,同时对话一股还支持向问答意图做引导。

16、我怎么将写好的函数传到UIT
写好的函数可以在调用端执行。UNIT端只需要在回复配置中配置一个『代号』,调用端见到这个代号,就运行相应的函数。事实上这正是UNIT的『执行函数』功能,可以试一试。


五、调用对接相关提问

1、底层存储怎么做?有没有用到图数据库?用哪一个?
我们持久化存储用的百度云的RDMS(mysql),模型存储用的是BOS(百度云的对象存储服务)。对话请求的执行过程比较复杂,类似于检索系统要自己管理索引,我们的对话系统要加载用户的自定义对话模型,并针对每一个请求进行实时的计算和处理,这个系统过程并没有使用数据库。

2、小程序如果想用 怎么配置呢
目前小程序跟native的app、pc端的都一样,都需要你有一个服务端获取unit上对话机器人解析的结果然后根据需要组织处答复用户的内容输出给用户。后续我们有规划会提供一个通用的小程序对接unit的对话机器人,问答型的技能可以直接对接,对话型的还需要结合自己的业务处理、组织好答复内容后在输出到小程序用户端。

3、您好, 咨询一下调用函数后的返回信息的处理方式是什么样的?
函数的执行需要在调用端完成,与返回值相关的判断如果与UNIT的对话过程无关,可以在调用端内部解决。如果需要传递返回值给UNIT,请和我单独沟通需求。

4、DM Kit 现在接合自己业务怎么弄 我这边跑起来DM kit了 但是接入自己的业务(http接口,thrift接口)不知道怎么接,能提供一个样例吗
DM Kit可以通过函数调用外部http服务,相关内置函数说明可以参考文档(https://github.com/baidu/unit-dmkit/blob/master/docs/tutorial.md#params%E4%B8%AD%E5%8F%98%E9%87%8F%E7%B1%BB%E5%9E%8B%E5%88%97%E8%A1%A8%E5%8F%8A%E5%85%B6%E8%AF%B4%E6%98%8E ) , 函数调用方式与demo场景中调用方式demo函数类似。


六、API对话接口相关提问

1、请问UNIT API调用响应时间(response time)我测试下来一般都在两三百毫秒的,百度侧能否优化到二三十毫秒? 或者百度能否提供SDK形式,允许用户放到自己本地服务器上执行,达到只消耗二三十毫秒的程度?
我们对话服务本身需要100ms左右,因为百度外的开发者需要通过一些鉴权和限流的流程,再加上公网的传输耗时,最终从调用端看到的响应时间会在两三百毫秒。对话服务离线部署这个事情,这个事情已经再做了,但暂时还给不出明确的时间表。

2、底层存储怎么做?有没有用到图数据库?用哪一个?
我们持久化存储用的百度云的RDMS(mysql),模型存储用的是BOS(百度云的对象存储服务)。对话请求的执行过程比较复杂,类似于检索系统要自己管理索引,我们的对话系统要加载用户的自定义对话模型,并针对每一个请求进行实时的计算和处理,这个系统过程并没有使用数据库。

3、Unit2.0对话接口返回值情感相关参数: 实际场景调用中返回值如下: : "sentiment_analysis": : { : : "pval":0, : : "label":"1" : }, 请问上述返回值的含义是否是:"无情感"、“置信度0”(即"无情感"但该结果不可信)?如何取得可信的情感结果?
pval=0的问题正在修复

4、请问一下资源API如何和UNIT对接使用呢?
目前unit平台还没有统一对接、管理开发者资源API的功能,需要开发者在自己的产品代码中直接调用自己拥有的资源API结合UNIT解析的结果生成给用户的答复。
未来unit平台会提供资源API的对接和管理,减少大家在这方面的开发成本。

5、可以通过API修改上传样本吗?包括词槽、意图等等
目前unit除了对话API外还有管理API,可以通过管理API上传对话样本并标注意图、词槽。管理API下载地址:https://ai.baidu.com/docs#/UNIT-v2-download/top

6、一个session 的最大上下文有没有限制?
没有限制。Session中设计有对话历史字段,因此会随着多轮对话的进行而增长,我们正在设计session托管机制以避免由session变得过大导致的传输延时、流量的过度开销。

7、请问一下,UNIT有提供接口 让开发调用接口上传、更新、删除词槽类的内容吗
管理API了解一下。

8、能否提供unit调用报表功能 支持区分识别的类型 方便拉出来所有不识别的 用于优化
可以通过管理API管理日志。


七、评估优化相关提问

1、如何衡量智能对话机器人的智能化效果、有哪些具体的评估指标呢?
可以从两个层面进行衡量,一是衡量对话过程中问题解析的精度,二是衡量对话过程的完成情况。其中前者易于实现,最为常用,采用Precision、Recall和F-score衡量。

2、我们在使用的过程中 怎么评估我们的返回是意图理解是客户真实想要的 通过客户评论回馈吗?还是人工一个一个检查?
在系统开发过程中,可以通过抽样人工检查的方式进行评估;在更长的系统迭代周期中,大量的客户回馈信息能够用来辅助评价和积累数据。

3、刚刚提到的评估方法只是评估口语理解么?如何评估多轮对话效果?
多轮对话效果的评估,相比于口语理解的评估较为复杂和耗时,可以通过人工评价完成度来实现。

4、请问在部署成功后,怎么样去不断迭代聊天机器人呢? 比如用户输入了一些语句是应该触发某种意图的,但是机器人没有识别,作为开发怎么样去获取反馈呢?
部署对话机器人到生产环境后如果有大量的真实用户与它对话,会产生很多真实的对话日志,每轮对话的解析结果都可以在unit平台对应的对话机器人的日志分析模块中看到,可以导出日志把应该识别却未识别的用户问题导入训练样本进行标注、训练,周期性的进行这样的分析、标注、训练,可持续优化效果。

5、如何衡量智能对话机器人的智能化效果?有哪些具体的评估指标呢?
任务型对话:目前主要有召回率和准确率,整体Precision = 意图和词槽都识别正确的正例样本数 / 模型识别为正例的总数;整体recall = 意图和词槽都识别正确的正例样本数 / 评估样本中所有正例样本数;
问答行对话:P@1 =top1回结果正确数/样本总数、 P@3 =top3结果正确数/样本总数;

6、按你们业界的经验,一轮的正确率大概在多少,多轮准确率多少,算不错的指标了。能否提供一个量化的参考值
单轮对话理解准确率至少要85%以上。多轮对话与对话逻辑的配置有关,因此不好给出一个单一的指标。

八、一些技巧分享

1、老师您好,语料收集比较困难,请问好的办法编写语料吗?
语料资源是构建对话系统的基础,语料编纂可以由粗到精,不断优化。如条件具备,也可以通过网络搜集或从资源方购买等等途径获取。

2、问答意图和对话意图混淆如何处理
问答意图的优先级地低于对话意图。如果在这个设定之下仍然出现解析的混淆,那么需要看一下模板、样本的配置,以及两个意图是否有本质上的区别。

3、如何确定对话样本?
对话样本的量,建议值是『100可训,1000可用,多多益善』

4、如何解决语料不平衡问题
最简单有效的策略是重复采样,例如深度学习训练的每个batch,从正例集合和负例集合中随机选取batch大小的一半构成一个batch。

5、推荐的样本能否自动提供推荐标注 推荐2000条 手动一个一个标注扛不住呀
可以使用现有模型做一下预标注。

6、问答集的阈值和泛化能力相关么?
阈值调低,能够匹配到问答库中的标准问题的概率就越高。但是要注意观察是否有语义转义现象。

7、unit对话管理如何配置多对话?
当前系统中多轮对话主要体现的是词槽信息的继承。开发者可以从这个思路上多想办法。

收藏
点赞
4
个赞
共3条回复 最后由tiancorn回复于2018-09
#4tiancorn回复于2018-09
#2 联络易科技回复
客服机器人是用问答的方式更好吗?只用添加问答对,就可以了嘛

如果只是解答客户一些常规问题(有标准问题和标准答案)的可以直接用问答。如果要把用户说的话中一些信息识别出来,用于在你的系统里查询跟用户相关的信息后再执行一些动作的(比如办理话费套餐变更),这时候要用对话意图去做。

0
#3jimview回复于2018-09

Q&A整理得好!

给小度点赞!

0
#2联络易科技回复于2018-09

客服机器人是用问答的方式更好吗?只用添加问答对,就可以了嘛

0
TOP
切换版块