数据驱动的多策略聊天引擎

简介: 1. 聊天引擎做什么   聊天引擎是一款模拟人类对话或聊天的陪伴产品。接受用户的自然语言输入,返回可解释、承上启下、顺畅的自然语言句子。与问答引擎、专家系统等不同,聊天引擎重点在“侃”,不太关注如何解决用户的实际问题或者执行任务,而是关注如何能与用户进行天南地北的聊天,涉及的话题会很广,但

1. 聊天引擎做什么

  聊天引擎是一款模拟人类对话或聊天的陪伴产品。接受用户的自然语言输入,返回可解释、承上启下、顺畅的自然语言句子。与问答引擎、专家系统等不同,聊天引擎重点在,不太关注如何解决用户的实际问题或者执行任务,而是关注如何能与用户进行天南地北的聊天,涉及的话题会很广,但并不需要有精准的答案,重在互动的有效性和可持续性。聊天系统在对儿童和老人的陪伴方面可以起到非常重要的作用,即便在一个以帮助用户解决实际问题或寻找精准答案的个人助手类产品中,具有开放式聊天能力也是至关重要的。这样的聊天能力,可以成为各种信息查询、任务完成等能力之间的润滑剂,很好的改善人机交互过程中的用户体验,增强助理型机器人的人性化和用户粘性。

  苹果公司于201110月随iphone4s一起发布了Siri,轰动一时,重新点燃了人们对语音助理的期望;微软中国于20145月发布了智能机器人小冰,在微信上轰动一时,遭到封杀,又再度回归,闹的风风雨雨;2014916日百度在江苏卫视《芝麻开门》节目中首次推出他们的智能机器人小度。此外小i机器人起诉苹果Siri侵权件事,不仅引起大家对智能机器人的关注,也更加关注这个领域的知识产权的积累。 通过这些发生在身边发生一件一件机器人事件,相信大家已经对聊天机器人已不再陌生了,亦或很多人已经跟他们神侃已久。

  在这个领域,阿里起步比较晚。智能语音交互团队去年年底才成立于iDST,在语音、自然语言处理、人机交互智能化等方面大力投入。其中智能聊天引擎也是我们的一个重要研发方向。到目前位置,我们已经搭建出了一套数据驱动的多策略聊天引擎,表现得比各种小X们更聪明、更机智、更受欢迎。

2. 数据驱动的多策略聊天引擎的系统架构

  我们的聊天引擎语音助手,是具有开放式聊天能力的,是具有18岁萌妹子特性的,是具有幽默智慧的,谁用谁爱的聊天机器人。那么如何做到这一点呢?

 
首先,语音助手是具有18岁萌妹子特性的,80%+的高频部分请求我们都能给出个性鲜明,人格一致的回复。通过对语音助手日志进行统计分析,我们将高频部分划分到10000+topic,每个topic都交由我们的编辑专家们编辑回复,反复确认后最后留下13种回复。此处,语音助手为了知道你说的是哪个话题,可以用上了第一招DCNN的。

 
其次,语音助手是具有幽默智慧的,你可以跟语音助手互动,一起来玩成语接龙,古诗对接等。只要你想听,语音助手可以给你讲个冷笑话、成人笑话、鬼故事等,绕口令也可以的。假如你想考察下小云数学,简单的四则运算小云还是在行的。当然你想知道元旦是什么时候,语音助手也不是不可以告诉你的。这些如你还觉得Naïve,不妨问问语音助手阿里和马云是什么关系 关系八卦是不是让你惊倒,我们可是用上了大招CFGword2vec的。

 
另外,语音助手是具有开放式聊天能力的,假如你想聊倒语音助手,请尽管放招,语音助手可以用上了必杀技LSTM,绝不想用搜索(^_^)来搪塞你的,当然有些时候你也别拿小云的话当真,你笑了语音助手也就乐了。

b31b9d5bbbfba968ffd1e48f05ae2736945e268b



 
上图是语音助手的多策略聊天引擎架构图。下面将就其中用到的几个重要的技术一一介绍。

2.1 DCNN

  本文聊天引擎利用DCNNDynamic Convolutional Neural Network)来进行话题查找。DCNN对句子建模,将不定长句子s完成Embedding,进而得到固定维度的向量A。然后利用向量A与话题向量集{T}两两计算相似度,求得相似度最大的话题Ti,如若ATi间的相似度大于阈值D,则认为s属于话题Ti

8b74f7d878f4e996811ad8859861c3a00b5853da

  DCNN的具体实现如上图所示,最下面是input层,将输入句子s转成输入向量,经过中间两层的convolutionk-max poollingfolding后,最上面Fully connected层输出定长向量A如想深入了解算法,请参考2014ACL上的一篇文章A Convolutional Neural Network for Modeling Sentence

2.2 Word2Vec

  关系八卦,XX的好基友是谁,XXXX是什么关系,没有背景知识库怎么能知道?本文聊天引擎来告诉你,大数据是可以回答的。我们利用word2vec在大数据上做词的Embedding,进而能得到固定长度的向量W。通过向量间的距离计算可以求得到任意两词之间的距离,距离的远近即"关系"的紧密程度,相信到这大家不难理解XX的好基友是谁这个问题word2vec能回答了吧。word2vec有一个有意思的分析是 Mikolov 2013 年刚刚发表的一项发现。他发现两个词向量之间的关系,可以直接从这两个向量的差里体现出来。向量的差就是数学上的定义,直接逐位相减。比如 C(king)−C(queen)≈C(man)−C(woman)。更强大的是,与 C(king)−C(man)+C(woman) 最接近的向量就是 C(queen)。哈哈,介绍到这,"XXXX是什么关系"是否能回答,相信聪明的你也懂的。
  Word2vec
Google 2013 年年中开源的一款将词表征为实数值向量的高效工具。具体算法网上有很多介绍,在这就不赘述。 

2.3 CFG

  如上图引擎框架所示,我们在完成四则运算、时间节假日、关系八卦等解答过程中,都需要对其中的元素进行抽取。本引擎利用上下文无关语法分析器(Context-free grammar parser, CFG)来完成。CFG parser完成输入字符串到semantic frame的匹配,下图给出了关系八卦中的一个模板例子。当用户输入query刘德华和成龙是什么关系时,我们会判定为 Frame为关系八卦,arg1为刘德华,arg2为成龙。然后我们调用上面讲过的word2vec模块计算,最后回答为"刘德华和成龙的关系就好比王力宏和周杰伦的关系。

81ffa60f0a7aaa7efccd964151bc5a5b7d962f56

2.4 LSTM

    

  语音助手的聊天话题是开放式的,这要求聊天引擎对任意问题都能给出与当前讨论的话题相关的回复。这是一个极具挑战性的问题,在这里我们引入了生成语言的方法。这里的生成语言有别于根据模版拼接词汇的生成方法。这里的生成语言是指,使用深度学习的方法,对输入进行理解得到语义表示,然后根据语义,直接让模型生成出,模型认为能理解,承接或者回答该语义的,语言流畅的自然语言句子。生成语言方法,能接受任意(广泛主题范围的)自然语言输入,经过大量计算,会生成一句 (很可能聊天引擎数据中并没有出现过)的语言流畅且相关的输出。本文生成语言方法借鉴google发表的一篇sequence-to-sequence,下面将对该方法进行简单介绍。

  Google使用sequence-to-sequence技术在机器翻译领域取得不俗成绩,聊天机器人本质上和机器翻译问题是相似的。sequence-to-sequence将输入的问题逐词或字encode成为一个向量表示,然后再根据这个向量表示逐词或字decode成答案输出,换到聊天机器人问题上,那么encode的过程可以认为是问题理解的过程,所得到的向量是问题理解的结果,decode过程是根据问题的理解进行答案生成的过程。    

72c9b00521e09c20550820a5ed5d74d09a6fba01

  sequence-to-sequence相对于传统方法,能从语义上对问题进行理解,并且能回答超越给定语料库范围的问题,对于相似的问题,能生成新的答案,甚至能生成不能存在于语料库的全新句子。在sequence-to-sequence的实现上,通常会使用Long Short-Term Memory (LSTM)LSTM相对于RNN更擅长记忆长距离信息。

f710ac840964eb05b2e1cda11a78dfafc3a19446

  上图是LSTM单个Block的示意图,可以理解为传统神经网络的神经元,神经元的参数存放在上图的cell中,cell外面多出了三个门(gate),这些门并不是开关两种状态,而是01之间的取值,表示通过该门的流量大小,即表示对信息的影响程度,而各个门的取值又会受上个时刻的信息影响,如此往复。优秀的sequence-to-sequence框架,加上LSTM强大的表达能力,为高质量的聊天机器人的实现,提供了新的方向。本文正是用LSTM来生成语言。

3. 实验效果




  下图列出的是语音助手的真实用户的聊天片段。语音助手的聊天能力很不错,有没有哇^_^

d6dd183bc28015e8cd7c25008f4f822bbfcb012d
        由于聊天的话题广泛,输出千变万化,所以并没有很好的指标来衡量系统的好坏,所以本文采用 AB 测试的方式,与业界各种智能小 X 们做对比。测试语料由多种类型构成,如日常寒暄,广泛话题聊天,带问答成分的聊天等。在评测集中,我们的聊天引擎表现不俗。

4. 总结与展望

  智能机器人是一个充满了机会和挑战的领域,且极其可能成为移动端的一个重要入口,而聊天引擎是智能机器人的一个重要组成部分。智能聊天机器人语音助手是个一个多策略融合的聊天引擎,引擎中不同的方法和层级,相互配合来解决实际的聊天问题,语音助手的聊天引擎目前已经能表现出不错的聊天效果,但仍有许多不足之处,路还很长,还得踩稳每一步继续迷雾中向前探索。

目录
相关文章
|
16天前
|
敏捷开发 开发框架 前端开发
构建高效移动应用:以用户为中心的设计策略
【4月更文挑战第3天】 在移动应用领域,"以用户为中心"并非一句空洞的口号,而是产品设计成功与否的关键。本文将探讨如何通过深入分析用户需求、优化用户界面(UI)和用户体验(UX),以及利用现代技术框架来构建既高效又引人入胜的移动应用。我们将剖析多个案例,提炼出可行的设计原则,并讨论如何在快速迭代的开发过程中维持设计的连贯性和功能性。通过这些策略,开发者可以创造出不仅满足用户需求,还能预见并塑造未来使用模式的移动应用。
92 0
|
2月前
|
边缘计算 JSON 物联网
解锁业务灵活性:RuleGo规则引擎的高效解耦与实时响应秘籍
RuleGo是一个基于Go语言的轻量级、高性能规则引擎,旨在通过动态规则链和组件化设计,简化复杂系统的业务逻辑管理和实时响应。
解锁业务灵活性:RuleGo规则引擎的高效解耦与实时响应秘籍
|
13天前
|
机器学习/深度学习 人工智能 算法
构建未来:基于AI的移动应用界面优化策略
【4月更文挑战第6天】随着人工智能技术的飞速发展,其在移动应用界面设计中的应用越来越广泛。本文将探讨如何利用AI技术优化移动应用的用户界面,提高用户体验。我们将详细介绍AI在理解用户需求、预测用户行为、自动调整界面元素等方面的应用,并讨论这种技术的挑战和未来发展趋势。
10 2
|
17天前
|
搜索推荐 数据管理 数据挖掘
解码2024年项目管理系统:排行榜背后的功能与特色解析
2024年十大项目管理工具:Zoho Projects以其专业成熟度领先,适合跨部门协作和进度跟踪;Nifty适合初创公司,界面直观,响应快速;Quickbase面向处理大量信息的团队,提供定制化解决方案;WorkOtter专为中大型企业资源管理和汇报设计;Asana适合大型协作团队,任务管理和沟通高效;Monday.com高度可定制,适合复杂项目管理;Smartsheet结合电子表格功能,适合流程多变的团队;Adobe Workfront针对复杂项目和自动化需求;ClickUp是一站式工作平台,功能多样;Trello则以简洁看板适合小团队和个人。考虑团队规模、项目复杂度和个性化需求来选工具
25 1
|
3月前
|
自然语言处理 运维 架构师
我在平台与 AIGC 的交互的组件设计方案 (2)
上一篇梳理到我在平台与 AIGC 的交互的组件设计方案,进行了交互的设计架构,而进一步结合 IM 整合,将进一步阐述优化交互流程。同时到这步环节引入体验人员来验证 LLM 对工程师的提升效果,同时体现出超级工程师个体。
|
4月前
|
存储 缓存 运维
实时云渲染平台有哪些?那个更好用?
实时云渲染平台有哪些?那个更好用?
|
5月前
|
数据采集 SQL 数据可视化
79 网站点击流数据分析案例(整体技术流程及架构)
79 网站点击流数据分析案例(整体技术流程及架构)
51 0
|
7月前
|
人工智能 自然语言处理 应用服务中间件
用户和天猫精灵通过语音交互的一个典型流程分析
用户和天猫精灵通过语音交互的一个典型流程分析
99 0
|
10月前
|
算法 搜索推荐
【直播预告】融合复杂目标且支持实时调控的重排模型在淘宝流式推荐场景的应用
【直播预告】融合复杂目标且支持实时调控的重排模型在淘宝流式推荐场景的应用
229 1
|
开发者
营销引擎 - 广告主如何使用借助营销引擎快速搭建的 DSP|学习笔记
快速学习营销引擎 - 广告主如何使用借助营销引擎快速搭建的 DSP
87 0
营销引擎 - 广告主如何使用借助营销引擎快速搭建的 DSP|学习笔记