京东JIMI 技术架构

架构演变

基础技术架构

JIMI智能机器人现有技术架构主要由以下模块组成,如图1所示:

(1)算法:包括纠错、分词、实体识别、知识图谱、词法分析等模块,根据用户输入的问题,结合领域术语词库和其他语法、语义方面的资源,在解决歧义、指代关系等问题后,使用深度神经网络技术,提供用户意图的精准理解。

(2)工程:根据业务处理逻辑,判断该问题的答案处理流程,例如答案是闲聊或业务,是否需要用户登录等。

(3)数据:通过对用户原始数据的挖掘、清洗和聚合等,实现对客服领域知识的储备,并对现有数据做可视化处理。

演进

与所有系统一样,JIMI也是从小系统开始演进的。从图中也可以看出,JIMI的架构是封闭的,应答流程强依赖于京东内部系统,这种强依赖的关系也制约着JIMI应答系统对外提供服务。


1.jpg

图1 JIMI老架构

互联网需要开放的系统,而JIMI需要开放的架构,改造迫在眉睫,我们对系统进行了分层,聚合,解耦,最终形成了下图中的新架构。按照新架构,应答系统不再与大脑共存在一个器官中,而是抽离成各个器官,各司其职。系统分层后,每一层的分工更加明确,作用也是显而易见的,在新的架构中采用了面向服务的设计思路,将原有的大系统解耦,按照高类聚原则重新组装成身体的各个器官,重新组装的小服务也更好的支撑着系统扩展,新的业务通过对各个服务的串联和控制,可以快速的定制新流程,满足不同业务的需求,业务人员更加专注于业务实现,研发更加专注于服务的提供。


2.jpg

图2 JIMI新架构

了解了整体架构后,我们开始分析新的应答架构是如何做到开放的:


3.jpg

图3 JIMI开放式应答架构

一、开放式接入点

开放式接入点主要负责了与各个终端的交互工作,负责内部协议与外部协议的转换,将内部抽象的模型,转换成外部业务模型,低耦合式的交互方式,确保了应答架构的独立性,同时开放式接入点还负责了流量控制和协议路由的功能,可谓开放式应答架构的门户。

二、应答引擎核心

应答引擎的核心是由流程引擎,规则引擎和模板引擎组成的,分别实现了流程和节点的控制,规则判断与执行,模板组装等工作,与普通的架构不同,这些引擎均是可干预的,可配置化,可视化程度相当高,用户在使用时能够明显的感受到区别;

三、运营平台

运营平台是对应答系统的管理平台,通过报表及数据的展示,能够清楚的了解某个端,某个入口的运营情况,基于京东大数据的数据挖掘,还能帮助您更加透彻的分析薄弱环节;

四、运维平台

运维平台(即开放平台)是可配置化,可视化的具体展现,用户可以在平台上申请和维护开放式的机器人,通过平台来实现控制应答引擎,京东内部的运维平台已经使用了多年,积累了大量的经验,未来在对外开放时,将会具备很好的人性化体验;

五、接口中心

未来还将展开开放式接口中心的改造,对接各种业务接口,让智能机器人深入到我们的生活中。

开放式的应答架构具备以下几个优点:

  1. 内部模型与外部系统解耦;
  2. 人工干预度高,答案和流程均可配置;
  3. 可视化程度高,所见及所得;
  4. 接入方便快捷,具备规范的接入协议;
  5. 体系闭环,不仅可以控制应答过程,还提供了应答数据分析平台,帮助提升。

互联网的时代是开放的,JIMI智能机器人也跟上了时代发展的步伐,通过今天的应答架构改造,已经初步完成了系统架构的升级,京东自主研发的人工智能系统JIMI对外开放一触即发,凭借开放式架构,我们已经成功接入了京东金融,京东到家机器人,智能硬件系统dingdong音响也正在接入中。我们期待人工智能技术日星月异的发展过程中,JIMI智能机器人能够切实改善我们的生活品质,也期待JIMI在陪伴我们的过程中,提供更加多元化和便捷广阔的服务。

情感分析

现在你去和京东客服智能助手JIMI对话时,能够感觉到她更加亲切了。

4月15日,京东正式对外发布人工智能开放平台“NeuHub”,主要围绕自然语言处理,语音交互、计算机视觉等方向,建设京东智能客服解决方案。

近日该平台上线了情感分析API,依托于此,京东智能机器人JIMI也迎来升级,能够精准感知用户情绪,并在回复表达中蕴含相应情感,让互动更有温度。


u=3906025268,992887001&fm=173&app=25&f=JPEG.jpg

京东方面表示,京东情感分析API由京东AI研究院常务副院长、深度学习及语音和语言实验室主任何晓冬博士带队攻关,基于京东语义理解技术,优质电商、金融、物流场景数据研发而成。

它可应用于带有主观描述的中文文本进行情感分析,不仅可以识别生气、喜悦、失望、着急等多种人类细分情感,还能够生成相应带情感的表达:判断精准,用户体验佳。

DNN

2014年,京东深度学习实验室DNN Lab成立。
DNN Lab主要研究方向为深度学习、自然语言识别、用户“画像”等,还在成长阶段的京东JIMI获得了DNN Lab的重点关注。目前DNN在JIMI的应用,主要包括命名实体识别、用户意图识别、自动问答等三个层面。

DeepQA

背后有很多强大的技术支持,包括深度神经网络、机器学习、搜索引擎技术、知识图谱构建、用户画像技术、自然语言处理技术、信息抽取与知识挖掘技术等等。

京东自身经过多年的累积,拥有大量的用户咨询语料。当用户在JIMI中咨询问题时,大部分问题都可以从这些历史语料中找到正确的答案。至于如何根据用户问题从海量的语料库中找到正确答案,就是DeepQA完成的工作了。

京东的DeepQA深度问答系统,融合深度学习、语义分析、焦点识别等多种技术,进一步提升JIMI“智力”。这个系统通过机器学习算法,从语义、字面等维度分析用户的输入,快速准确地从海量候选集里匹配筛选出最正确的答案。

DeepQA的技术原理在于通过机器学习算法拟合大量特征来判断用户问题与一条具体的回答是否匹配的。JIMI常规的商品咨询数据、历史咨询日志等候选语料库累积了大量的问答对,也就是一问一答的问答对话。当判断一个答案是否能够回答用户提出的问题时就有了一个三元组:用户问题、历史问题、历史答案。

依托字面匹配算法、各种语义特征、焦点识别及语言模型等技术,当用户在JIMI中提问时,DeepQA能够迅速准确地从海量问答对中找出正确的回答。

DeepQA流程

DeepQA在JIMI上的应用流程,简单来说就是用户输入一句话,JIMI首先对这句话进行分词、预处理,用深度学习算法进行命名实体识别,再进行用户意图识别,然后对用户的问题进行回答,将最准确的答案反馈给用户。通过与用户的互动以及互联网数据挖掘开展的学习,使JIMI能自动完善自身的知识数据,并随着时间推移越来越强大和智能。

DeepQA实质上就是从海量的候选集合里面筛选符合用户问题的答案。包括京东主站大部分商品单品页的大量商品咨询数据、京东咚咚上的用户与客服的海量历史聊天日志、网页抓取的各种闲聊问答对、人工编辑的高频FAQ问答对等场景均有应用。

使用DeepQA系统带来的效果也是十分明显,召回(JIMI可应答内容的范围)提升两倍以上,准确率从85%提升到90%,FAQ相关流量的满意度也有明显提升。

image

预测意图技术方案

应用场景

基于现有技术存在的问题和缺陷,我们提出了一种智能预测用户下一个意图的方法。该方法基于用户目前订单、购物车状态等账号信息以及历史聊天内容,智能预测用户接下来最可能问的问题。它主要会在以下两种场景下使用:

1)用户开始咨询前预测

如何在用户进入JIMI后还未咨询前,提前预测用户可能会问到的问题,并将其直接展示给用户供用户点选,提升用户体验,需要解决两个技术问题,一是如何获取用户可能会问的标准问题,二是如何做到个性化地对不同的用户推送不同的问题。

在具体实现上,采用人工去整理就存在人力成本高、问题更新不及时的情况,因此我们采用无监督的聚类方式得到用户可能问的标准问题,再通过线上试验,先随机出这些问题,收集用户点击作为分类标签,最后用分类的思想去解决它。

具体技术实现如下,如图2所示,首先按热门SKU的维度收集问题,包括用户在JIMI/咚咚发送的信息,以及单品页购买中咨询的问题。这些原始问题不能直接作为标准问题进行使用,所以需要人工进行一次过滤,由于数据量非常庞大,这里采用Logistic Regression训练一个语料过滤模型,用于数据清洗。接着对这些问题做切词,word2vec训练词向量,进而得到句子向量,最终用K-means聚类的方法,找到最大的前20个Cluster,选出现次数最多的问题作为标准问题。

image

图2:用户进入咨询前预测

系统上线后,先随机出这些问题,然后根据用户点击行为确定样本的标签,再收集用户的订单、服务单、实时浏览数据、以及画像数据作为样本,最终训练一个用于用户开始咨询前的未来意图预测分类模型。当用户再来咨询时,根据分类模型给出用户最可能问到的前3个问题,供其点选。

2)用户咨询过程中实时预测

对于用户咨询过程中的未来意图预测,如图3所示,系统会在用户说每句话时,实时预测用户下一意图,并将预测的TOP5用户意图展示在前端界面。如果用户觉得预测准确,可直接点击该问题获取答案,不用自己手动输入问题,从而提升用户体验。

image

图3:用户咨询过程中实时意图预测

未来意图预测流程

用户咨询过程中未来意图预测流程包括预处理、模型预测,数据记录三大模块。如图4所示:

image

图4:用户咨询过程中未来意图预测模块内部流程图

各模块的作用如下:

预处理:预处理模块主要做一些必要入参的判断,比如判断输入的用户ask是否合法,以及对于用户提问小于2句的情况,不做未来意图预测处理。用户提问大于2句才会继续往下走到模型预测模块。

模型预测:通过模型计算用户下一个可能的问题概率,如果预测值低于当前设置的阀值则不做推送,高于阈值才会继续往下走到数据记录模块。

数据记录:负责系统日志记录,比如记录下每句话具体推送了哪些分类,方便系统上线后模型调优。

接下来,详细介绍模型预测子模块。该模块通过模型分类的方法,将用户问题对应到不同分类,并实时计算用户下一问题的概率。具体技术方案如下:

1)样本构造

首先,收集用户和客服的聊天日志信息,我们可以根据这些海量信息,发现用户当前问题与下一个问题的联系。

比如用户进入咨询首先发送“你好”,然后说“这个商品有货吗?”,紧接着问“有优惠吗?”,最后问“现在下单,什么时候能送到?”。这时我们构造样本就需要把前三句话拼在一起,构造出来这样的样本“你好这个商品有货吗?有优惠吗?”

2)标签构造

上面这个样本的标签就是第四句话“现在下单,什么时候能送到?”所对应的分类。

如何确定分类?用人工审核的方式,将所有用户的问题都看一遍,并将每个问题对应到一个具体的分类。比如用户问“我的商品有货吗?”或者“还有货吗?”都会被分到“是否有货”这个分类,标记“分类1”,以此类推。

3)标签选择

推送给用户的问题,最好是用户常问的问题,而不是一些长尾问题,这样可以提升推送的准确率。

统计最近1年的聊天日志,将所有用户每句话对应到一个分类标签,计算出TOP10的分类标签,主动推送的分类就限定在这TOP10之中。最终构造出的样本和标签信息,如图5。

image

图5:构造样本和标签

样本构造的总体思路:

  • 从最近1年的聊天日志取出用户原始问题
  • 将用户的问题分类,每个用户问题对应一个类别标签
  • 每通会话包含N个用户问题,其中前N-1个问题拼起来作为样本,第N个问题的分类,作为该样本标签
  • 最终取TOP10的标签分类,保证预测结果能够覆盖用户的高频问题

4)模型训练:

深度学习CNN模型,可用于求解一个分类问题,将用户的问题映射到一个具体的分类。最终在算法选型上,我们采用深度学习CNN模型,其中模型参数:

  • 词向量采用100维
  • 每个样本限定30个字以内,超出30截断,不足30补充随机向量
  • 单层CNN网络,第一层卷积核大小3*50

5)模型效果

最终模型效果的统计,我们通过建立BaseLine与模型对比的方式来度量。BaseLine的建立思路如下:针对当前分类X,基于历史数据统计,给出最高频的下一分类Y

image

3、结语

经线上验证,用户未来意图预测技术已经能优化用户咨询效率和咨询体验,让机器人不仅“懂你所问”,更“知你所想”。后续基于不断优化提高的自然语言理解能力和深度学习,对用户未来意图预测会越来越准确,让用户体验更智能的机器人。

推荐阅读更多精彩内容