查看原文
其他

干货 | 京东JIMI用户未来意图预测技术揭秘

邹波 携程技术中心 2019-05-03
作者简介
 

邹波,京东JIMI核心算法架构师,致力于NLP领域和深度学习方向。目前负责用户未来意图预测,智能分流,会话结束预测等项目,极大的提高了客服工作效率,同时也降低人力成本,提升了客户体验。本文来自邹波在“携程技术沙龙——人机语义交互AI”上的分享。


 *视频由“IT大咖说”提供,时长约48分钟,请在WiFi环境下观看*

https://v.qq.com/txp/iframe/player.html?vid=n0562zcng67&width=500&height=375&auto=0


随着近年来人工智能技术的发展,Chatbot聊天机器人越来越普及,随之而来的用户访问不断增多,如何让Chatbot系统在解决用户问题的同时简化用户操作,优化用户与机器人聊天过程中的体验成为当前难点。


目前的智能问答机器人不仅需要实现智能人机交互(文本、语音等)的全渠道多媒体整合应用,而且需要各领域内大数据、深度语义理解等前沿技术上的研究与积累,让机器人去回答用户的同时预测用户接下来的意图,并做对应的个性化处理,因此针对Chatbot的用户未来意图预测技术应运而生。


1、京东JIMI及发展现状


1.1 关于JIMI


京东JIMI是由京东自主研发的Chatbot,通过自然语言处理、深度神经网络、机器学习等技术,能完成全天候、无限量的用户咨询,涵盖售前咨询、售后服务、闲聊陪伴等环节。


自2012年诞生至今,已累计服务数亿用户,覆盖京东10亿+的商品,应答准确率90%以上,用户满意度高达80%以上,每月为京东节省上千万人力成本。


1.2 现有技术方案


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


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


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


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



图1:Chatbot系统架构图


1.3 现有方案的缺点


传统Chatbot只能根据用户的当前问题,给出对应的答案,类似于一问一答的形式。对于用户在聊天过程中接下来的意图,没有预测功能。如此以来用户每次都必须完整输入自己想问的问题,才能获得相关答案。这种方式比较费时,用户体验也不是特别好。


本文接下来会介绍一种基于用户未来意图预测的方法,对用户的聊天过程做实时分析,根据当前及历史问题,智能预测用户接下来的意图,提升用户的聊天体验。


2、预测未来意图技术方案


2.1 应用场景


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


1)用户开始咨询前预测


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


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


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

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


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


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


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

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


2.2 未来意图预测流程


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

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


各模块的作用如下:


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


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


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


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


1)样本构造


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


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


2)标签构造


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


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


3)标签选择


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


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

图5:构造样本和标签


样本构造的总体思路:


  • 从最近1年的聊天日志取出用户原始问题

  • 将用户的问题分类,每个用户问题对应一个类别标签

  • 每通会话包含N个用户问题,其中前N-1个问题拼起来作为样本,第N个问题的分类,作为该样本标签

  • 最终取TOP10的标签分类,保证预测结果能够覆盖用户的高频问题


4)模型训练:


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


  • 词向量采用100维

  • 每个样本限定30个字以内,超出30截断,不足30补充随机向量

  • 单层CNN网络,第一层卷积核大小3*50


5)模型效果


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


模型

点击率

准确率

Baseline

52.4%

62.4%

LSTM

68.7%

75.5%

LSTM + Attention

71.2%

78.2%


3、结语


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

下载讲师PPT请点击文章底部“阅读原文”。


推荐阅读:



    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存