基于机器学习的阿里智能助理在电商领域的架构搭建与实现

本文涉及的产品
NLP自然语言处理_高级版,每接口累计50万次
NLP自然语言处理_基础版,每接口每天50万次
NLP 自学习平台,3个模型定制额度 1个月
简介: 在2016杭州云栖大会的“开发者技术峰会”上,来自阿里巴巴的高级技术专家陈海青带来了题为《基于机器学习的阿里智能助理在电商领域的架构构建与实践》。本次分享主要包括阿里小蜜平台介绍、智能人机交互构建技术实践、挑战与未来三部分。

在2016杭州云栖大会的“开发者技术峰会”上,来自阿里巴巴的高级技术专家陈海青带来了题为《基于机器学习的阿里智能助理在电商领域的架构构建与实践》。本次分享主要包括阿里小蜜平台介绍、智能人机交互构建技术实践、挑战与未来三部分。

以下内容根据演讲PPT及现场分享整理。


阿里小蜜平台介绍

当今人工智能的领域是从感知到认知领域发展,将会带来拟人化体验的提升;同时,这也会带来行业模式的变化,应用领域成本的降低。现阶段,自然语言交互型的私人助理已经成为人工智能的热点领域之一,如微软的小冰、苹果的Siri等,未来更是会成为入口级领域,各大公司竞争必将十分激烈。

9c08eb2d17697058b3556ebebc290d277429a2af

目前阿里推出了电商领域的私人助理——阿里小蜜,它基于阿里海量消费数据,结合线上、线下的生活场景需求,以智能+人工的模式提供智能导购、服务、助理的业务体验。目前阿里形成了两个大的生态圈:一个是买家卖家的生态圈;另一个是钉钉企业级生态圈。因此阿里对应地在电商领域的两种平台化开放:商家开放——千牛平台、企业开放——钉钉平台。

f3aec35959c6305088cb010abd53ede93132c10e

上图是阿里小蜜及平台输出的展示页面,最左侧是阿里小蜜;中间是店小蜜,用于商家店铺,目前几个较大流量的商家已经部署;最右侧是企业钉小蜜。

6f89368116ab077fe9571325a093b0550286e5c7

阿里小蜜的整体结构体系如上图所示,架构采用水平切分的方式:虚线上侧是前端部分,主要的任务是多终端部署和多场景识别以及多轮交互、多模交互、推荐预测;虚线下侧涉及到多种模型,如客户模型、文本模型、语音识别、图像识别;最底层分为三个领域:客服领域、导购领域和助手领域。

50d10791d93021f2c0a6ac0dd62eef21c60d0bc9

上图是阿里小蜜平台,其中输出平台目前包括:阿里小蜜、千牛店小蜜、钉钉企业小蜜;服务层按照领域划分为服务、导购、物流、聊天和其他;中间的技术层包含多轮交互、多模交互、推荐预测、用户模型等;数据层用于数据回流和机器学习训练以及数据挖掘、多维数据分析等。

智能人机交互构建技术实践

 

a96d222158af254b6d16751fa998f3add344764e

上图是通用的智能人机交互的基本技术流程:语音输入之后进行语音识别(ASR),转成文本的方式进行自然语言理解(NLU);再通过语义表示和上下文进入对话管理(DM);此后根据上下文和语义表示进行自然语言生成(NLG);再将生成的文本转语音(TTS)输出给用户。

d59468e5e654c89d4f0f5e6457dcb22cb87295f8

可以将简单的一问一答按领域拆解为语义识别和对话匹配两部分。由于意图非常复杂,因此需要进一步拆分。在对话领域中,可以按照面向目标和非面向目标拆分,例如“我要订一张机票”这类的问题就属于面向目标型,而“我心情不好”这类的输入就属于非面向目标型。意图又可以分为明确意图和隐式意图,例如“我心情不好”这个输入的意图是隐式的、不明确的。总结来看,在意图层面的领域模型拆解时会分为面向目标、非面向目标和明确意图、隐式意图,不同的领域有着各自不同的技术选型和算法方案。

在问答匹配流程中,可以划分为三个类型:问答型,一问一答,通常需要知识输入,如“密码忘记怎么办?”;任务型,例如“我想订一张明天从北京到杭州的机票”;语聊型,例如“我心情不好”。

语义意图

ae8d99c92870cdbfc2e828336e733cad805bda02

语义意图识别的基本技术流程如上图所示:输入是Query+Context;之后进行自然语言的基本处理,进行分词词性标准及NER;在对话管理中,需要数据沉淀与积累,因此需要上下文模型和领域数据模型;在整个技术流程中,意识识别分类和意识属性抽取是其中的重头戏;最后通过意图语义表示再输出给对话管理系统。

下面来具体看下技术选型和技术架构的思考。

42eb3ef3f8d4c29f052762ec8e205d1435f014ed

如果构建的是相对简单对话系统,采用传统的机器学习方法即可,这里不再详细阐述。传统的方式由于部分情况用户的意图表述的并不清楚,在进行文本标注、分类时会丢失大量信息。基于深度学习以及结合用户行为可以解决传统方式无法完成的难题,这种方式适用于较大数据量积累场景:采用结合用户行为特征的深度学习意图预测模型,在文本缺失、不明确或者不完整的情况下,增加用户行为特征进行意图分类预测。

8df2d2c71a6d972eb44675e2cc88494440e507ba

深度学习模型需要大量意图数据积累,数据必须保证相关性和多样性:

  • 相关性方面:通过初步建模,匹配用户问句和知识点标题的相似度以及用户问句和历史问句的相似度建立相关性维度;
  • 多样性方面:通过数据分布的维度保证多样性,常采用的方法是:随机展示(均匀采样)和按历史的知识点使用频次来推荐。

e82af0c4f9549712b29e0213b8990644a52882df

用户点击数据结合用户相关特征、用户行为序列、Query+Context构建成深度学习模型。

5bcc5660581672dae95795c15905efe4e9454841

上图是两种深度学习模型的实现方案。第一种方案是多分类的方案,将因子+行为相关的用户特征构建成N,文本特征构建成V;再将这两个维度的特征向量化;之后在中间层简单地将两个向量进行拼接;最后再通过Softmax进行多分类;第二种方案的底层操作和第一种方案完全相同,两者的不同之处在于后者采用多个二分类。

第一种方案的优点是性能很快,但如果分类不稳定时,会直接导致成本的增加;第二种方案隐层的分类是可以复用的。

四种主流的问答匹配技术

在人工交互对话领域,问答匹配技术主要分为:基于模板式匹配(Rule-Based)、基于检索的模型(Retrieval model)、基于统计机器翻译模型(SMT)、基于深度学习模型(Deep leaning)四类。在实际实践中,根据不同分策略模块分别进行技术选型:

  •  问答型采用基于知识图谱+传统检索模型的方式;
  •  任务型采用的是Slots Filling;
  •  语聊型采用的是传统检索模型+Deep Learning方式。

问答型领域技术构建

a5cf48a22926a13f42b294a4b1c9c8112d175115

问答型领域首先需要构建知识图谱,知识图谱构建的第一步需要进行语义挖掘,语义挖掘又分为同义语义挖掘和词和短语挖掘,在同义语义挖掘中会采用文本相似度计算、潜在语义分析、聚类等相关技术;词和短语挖掘通过种子词获取、深度挖掘;此外,还可以通过Pattern构造模板匹配。

397591bcabac2c8d221cd956b92616559a818b91

上图是知识图谱的构建体系,主要分为词和短句两个维度。这里采用了主题模型不断地进行模型构建,构建成短句库或实体库放到词数据库或索引中使用。

3958b57298bc28a37ef963eed89a5b9c1ccfa67d

构建完成的知识图谱示例图如上所示,该示意图由实体—关系—实体的RDF三元组构成,天然支持实体间上下文与推理;同时,把核心知识的维护带给业务的成本降到最小,不需要维护复杂相似问法,通过技术挖掘生成可扩展图结构。该知识图谱精确匹配率相比之前的机器人匹配模型提升10%,用户体验得到进一步提升。

但该结构也存在一定的缺点:在模型构建初期会损失一定的覆盖率。

a4b04d659b75c9b43737a9ff82311740cfbbe429

知识图谱构建完成后也可以用在检索计算模型中,上图是经典的检索计算模型架构,主要分为提问处理模块、搜索召唤模块、索引模块、计算模块、答案处理模块。为保证精准度会提升检索模型的阀值,目前检索模型的匹配量占到全局匹配的5%-10%。

任务型领域技术构建

3749843f7bb84db993185e447885759b7f5c14dc

任务型领域构建主要采用Slots Filling的方式,首先需要构建领域意图树,例如检索到输入“机票”:首先需要确定是否是“购买”行为;再确定对应的“出发地”、“到达地”、“时间”等信息。第二步通过Slots Filling的方式在Query中slot属性的抽取;之后进行获取意图树的属性进行填充,填槽之后判断意图树种填写状态;根据设定的状态结果进行返回,进行不断判断、填充、转移和完结。

语聊型领域技术构建

语聊型领域技术构建采用了传统检索模型+Deep Learning两种方案相结合的方式,这是因为传统的检索模型的答案跳不出知识图谱语料库;而Seq2Seq模型(Deep Learning模型)序列化生成的答案尽管跳出了知识图谱语料库的限制,但答案的合理性和语言的连贯性存在明显问题。

91a6a36ecc09b4614c60a5ac005203572c5dbb51

语聊型领域技术并非简单地将在传统检索模型和Deep Learning进行结合,其具体方案如图所示。左侧模块是传统的检索模型,将IR模型作为候选结果,对搜索答案进行二次排序。具体来说是先通过搜索的方式找到一百条答案;这一百条答案通过检索模型本身进行排序;之后在通过Seq2Seq模型对答案基于语义维度重新进行排序,如果最后的分值大于置信度阀值,则认为答案合理,可以用于回答;如果分值不高,再通过深度学习模型进行答案生成。

ecc719faa7ea38e455e9cc77fd53cfc83d753edb

上图是Rerank Generation离线数据结果图,横轴是数据集。从图中可以看出:80%的结果选型是Rerank方式;20%的结果选型是Generation;置信度阀值为0.21。

挑战与未来

尽管人工智能领域发展十分迅速,但目前智能人机交互机器人的智能程度还比较低,还有很长一段路要走;同时工业领域由于设计的领域及复杂度情况很多,需要进行不断的细分并通过不同的方案来解决。

展望未来,人工智能交互技术领域知识体系的不断构建完善,以及与Deep Learning更好的结合与发展是未来一段时间的方向;同时,随着学术界和工业领域的不断紧密结合,未来人机交互会在更多的场景被应用,并且会进一步提升。

相关文章
|
4天前
|
机器学习/深度学习 数据采集 运维
机器学习在运维中的实时分析应用:新时代的智能运维
机器学习在运维中的实时分析应用:新时代的智能运维
37 12
|
1月前
|
机器学习/深度学习 数据采集 运维
智能化运维:机器学习在故障预测和自动化响应中的应用
智能化运维:机器学习在故障预测和自动化响应中的应用
59 4
|
2月前
|
机器学习/深度学习 数据采集 运维
智能化运维:机器学习在故障预测和自动化响应中的应用
【10月更文挑战第1天】智能化运维:机器学习在故障预测和自动化响应中的应用
71 3
|
3月前
|
机器学习/深度学习 人工智能 搜索推荐
如何让你的Uno Platform应用秒变AI大神?从零开始,轻松集成机器学习功能,让应用智能起来,用户惊呼太神奇!
【9月更文挑战第8天】随着技术的发展,人工智能与机器学习已融入日常生活,特别是在移动应用开发中。Uno Platform 是一个强大的框架,支持使用 C# 和 XAML 开发跨平台应用(涵盖 Windows、macOS、iOS、Android 和 Web)。本文探讨如何在 Uno Platform 中集成机器学习功能,通过示例代码展示从模型选择、训练到应用集成的全过程,并介绍如何利用 Onnx Runtime 等库实现在 Uno 平台上的模型运行,最终提升应用智能化水平和用户体验。
68 1
|
4月前
|
机器学习/深度学习 资源调度 分布式计算
阿里PAI-ChatLearn:大规模 Alignment高效训练框架正式开源
PAI-ChatLearn现已全面开源,助力用户快速、高效的Alignment训练体验。借助ChatLearn,用户可全身心投入于模型设计与效果优化,无需分心于底层技术细节。ChatLearn将承担起资源调度、数据传输、参数同步、分布式运行管理以及确保系统高效稳定运作的重任,为用户提供一站式解决方案。
|
4月前
|
机器学习/深度学习 缓存 运维
智能化运维:机器学习在IT管理中的革命性应用
【8月更文挑战第28天】 随着技术的飞速发展,传统的IT运维方式已不能满足现代企业的需求。智能化运维,通过整合机器学习技术,正在重塑我们对IT基础设施的管理方法。本文将探讨智能化运维的概念、实施步骤及其带来的变革,同时分享一些成功案例,以期为读者提供一种全新的视角和思考路径。
66 6
|
4月前
|
图形学 机器学习/深度学习 人工智能
颠覆传统游戏开发,解锁未来娱乐新纪元:深度解析如何运用Unity引擎结合机器学习技术,打造具备自我进化能力的智能游戏角色,彻底改变你的游戏体验——从基础设置到高级应用全面指南
【8月更文挑战第31天】本文探讨了如何在Unity中利用机器学习增强游戏智能。作为领先的游戏开发引擎,Unity通过ML-Agents Toolkit等工具支持AI代理的强化学习训练,使游戏角色能自主学习完成任务。文章提供了一个迷宫游戏示例及其C#脚本,展示了环境观察、动作响应及奖励机制的设计,并介绍了如何设置训练流程。此外,还提到了Unity与其他机器学习框架(如TensorFlow和PyTorch)的集成,以实现更复杂的游戏玩法。通过这些技术,游戏的智能化程度得以显著提升,为玩家带来更丰富的体验。
70 1
|
4月前
|
机器学习/深度学习 存储 前端开发
实战揭秘:如何借助TensorFlow.js的强大力量,轻松将高效能的机器学习模型无缝集成到Web浏览器中,从而打造智能化的前端应用并优化用户体验
【8月更文挑战第31天】将机器学习模型集成到Web应用中,可让用户在浏览器内体验智能化功能。TensorFlow.js作为在客户端浏览器中运行的库,提供了强大支持。本文通过问答形式详细介绍如何使用TensorFlow.js将机器学习模型带入Web浏览器,并通过具体示例代码展示最佳实践。首先,需在HTML文件中引入TensorFlow.js库;接着,可通过加载预训练模型如MobileNet实现图像分类;然后,编写代码处理图像识别并显示结果;此外,还介绍了如何训练自定义模型及优化模型性能的方法,包括模型量化、剪枝和压缩等。
61 1
|
4月前
|
机器学习/深度学习 分布式计算 Cloud Native
云原生架构下的高性能计算解决方案:利用分布式计算资源加速机器学习训练
【8月更文第19天】随着大数据和人工智能技术的发展,机器学习模型的训练数据量和复杂度都在迅速增长。传统的单机训练方式已经无法满足日益增长的计算需求。云原生架构为高性能计算提供了新的可能性,通过利用分布式计算资源,可以在短时间内完成大规模数据集的训练任务。本文将探讨如何在云原生环境下搭建高性能计算平台,并展示如何使用 PyTorch 和 TensorFlow 这样的流行框架进行分布式训练。
145 2
|
4月前
|
机器学习/深度学习 人工智能 监控