美文网首页
阿里小蜜的架构设计

阿里小蜜的架构设计

作者: 张虾米试错 | 来源:发表于2021-03-03 12:19 被阅读0次

本篇总结了阿里小蜜从2017-2020年的演进过程,更偏向架构体系上的介绍,不对具体技术做详细介绍。具体技术部分会放在后面的文章中。

1. 2017:意图与匹配分层的技术架构体系

来自2017年的分享拆开阿里小蜜的内核,看智能人机交互的实现逻辑
阿里小蜜主要对接的机器人有客服、助理、聊天,根据不同场景的需求采用不同的机器人。后面有说到小蜜主要应用的3大领域场景:智能导购(助理)、智能服务(偏问答)、智能聊天(聊天)。阿里小蜜将对话系统分成两层:

  • 第一层是意图识别层,采用的是根据意图决定后续的领域识别
  • 第二层是问答匹配层,即根据领域场景对应到不同机器人,上面说到的客服、助理、聊天,对应的分别是问答型、任务型、语料型。
基于意图与匹配分层的技术架构

具体思路如下:

在阿里小蜜这样在电子商务领域的场景中,对接的有客服、助理、聊天几大类的机器人。这些机器人,由于本身的目标不同,就导致不能用同一套技术框架来解决。因此,我们先采用分领域分层分场景的方式进行架构抽象,然后再根据不同的分层和分场景采用不同的机器学习方法进行技术设计。首先我们将对话系统从分成两层:
1、 意图识别层:识别语言的真实意图,将意图进行分类并进行意图属性抽取。意图决定了后续的领域识别流程,因此意图层是一个结合上下文数据模型与领域数据模型不断对意图进行明确和推理的过程;
2、 问答匹配层:对问题进行匹配识别及生成答案的过程。在阿里小蜜的对话体系中我们按照业务场景进行了3种典型问题类型的划分,并且依据3种类型会采用不同的匹配流程和方法:
a) 问答型:例如“密码忘记怎么办?”→ 采用基于知识图谱构建+检索模型匹配方式
b) 任务型:例如“我想订一张明天从杭州到北京的机票”→ 意图决策+slots filling的匹配以及基于深度强化学习的方式
c) 语聊型:例如“我心情不好”→ 检索模型与Deep Learning相结合的方式

1.1 意图识别技术方案

通常我们将意图识别作为分类问题来解决;在阿里小蜜中,也存在对话领域语义意图不完整的情况,因此除了传统的文本特征之外,还加入了实时、离线等用户本身的行为以及用户本身相关的特征,通过深度学习方案构建模型,对用户意图进行预测。

另外,在基于深度学习的分类预测模型上,阿里小蜜有两种具体的选型方案:一种是多分类模型,一种是二分类模型。(但是没有详细介绍分别在什么场景下用多分类或者二分类?)对于多分类和二分类的优缺点衡量如下:

多分类模型的优点是性能快,但是对于需要扩展分类领域是整个模型需要重新训练;而二分类模型的优点就是扩展领域场景时原来的模型都可以复用,可以平台进行扩展,缺点也很明显需要不断的进行二分,整体的性能上不如多分类好,因此在具体的场景和数据量上可以做不同的选型。

1.2 匹配模型

主流的智能匹配技术分为如下3种:

  • 基于模板匹配(Rule-Based)
  • 基于检索模型(Retrieval Model)
  • 基于深度学习模型(Deep Learning)

2. 2017应用篇:3大领域场景的技术实践

2.1 智能导购:基于增强学习的智能导购

智能导购对应的是任务型机器人,技术架构如下:


智能导购的技术架构图

意图识别

智能导购的意图理解主要是用户想要购买的商品以及商品对应的属性,相对于传统的意图理解面临的挑战有:

  • 第一:用户偏向于短句的表达。因此,识别用户的意图,要结合用户的多轮会话和意图的边界。
  • 第二:在多轮交互中用户会不断的添加或修改意图的子意图,需要维护一份当前识别的意图集合。
  • 第三:商品意图之间存在着互斥,相似,上下位等关系。不同的关系对应的意图管理也不同。
  • 第四:属性意图存在着归类和互斥的问题。

基于以上问题,阿里小蜜通过品类管理和属性管理维护了一个意图堆。以下分别是品类管理和属性管理的架构图,方法都大同小异。

品类管理
品类管理架构图

品类识别采用了基于知识图谱的识别方案和基于语义索引及dssm的判别模型:

  • 基于商品知识图谱的识别方案:基于知识图谱复杂的结构化能力,做商品的类目识别。这是品类识别的基础。
  • 基于语义索引及dssm商品识别模型的方案:知识图谱的识别方案的有事在于准确率高,但是不能覆盖所有的case。因此,小蜜提出一种基于语义索引和dssm结合的品类识别方案兜底。具体过程如下:
基于语义索引及dssm商品识别模型的方案
语义索引的构造

阿里小蜜的语义索引是结合搜索点击数据和词向量构造的,主要包括下面几步:

  1. 利用搜索点击行为,提取分词到类目的候选。
  2. 基于词向量,计算分词和候选类目的相似性,对索引重排序

我的理解是,语义索引是一种召回方式。

具体样本构造

训练的正样本是通过搜索日志中的搜索query和点击类目构造的。负样本则是通过利用query和点击类目作为种子,检索出来一些相似的类目,将不在正样本中的类目作为负样本。正负样本比例为1:1。

属性管理

属性管理的思路可以直接参考品类管理,具体架构图如下:


属性管理架构图

部分细节需要说明的是,品类关系在智能导购中主要考虑的关系是:上下位关系和相似关系。(补充:在知识图谱构建中实体与实体之间的关系,包括但不限于上下位、顺承、时序等。)
上下位关系计算的2种方案:

  • 采用基于知识图谱的关系运算
  • 通过用户的搜索query提取

相似性计算的2种方案:

  • 基于相通的上位词。比如小米、华为的上位词都是手机,则他们相似
  • 基于embedding的语义相似度。(原文说的是fast-text,考虑到技术迭代,现在应该是bert了)
深度强化学习的探索及尝试

这里只总结下阿里小蜜如何定义action、state、reward:

  • action: 本轮是否出主动反问,还是直接出搜索结果
  • state:这里状态的设计主要考虑,用户的多轮意图、用户的人群划分、以及每一轮交互的产品的信息作为当前的机器感知到的状态。

state = ( intent1, query1, price1, is_click, query_item_sim, …, power, user_inter, age)
其中intent1表明的是用户当前的意图,query1表示的用户的原始query。price1表示当前展现给用户的商品的均价,is_click表示本轮交互是否发生点击,query_item_sim表示query和item的相似度。power表示是用户的购买力,user_inter表示用户的兴趣, age 表示用户的年龄。

  • reward: 最终衡量的是用户的成交和点击率和对话的轮数。

主要包括以下3个方面:
a):用户的点击的reward设置成1
b):成交设置成[ 1 + math.log(price + 1.0) ]
c):其余的设置成0.1

  • DRL选型:主要采用了 DQN, policy-gradient 和 A3C的三种方案。

2.2 智能服务:基于知识图谱构建与检索模型的技术实践

智能服务对应的是问答型机器人,小蜜采用基于知识图谱构建与检索模型。

智能服务的特点:有领域知识的概念,且知识之间的关联性高,并且对精准度要求比较高
基于问答型场景的特点,我们在技术选型上采用了知识图谱构建+检索模型相结合的方式来进行核心匹配模型的设计。

知识图谱的构建我们会从两个角度来进行抽象,一个是实体维度的挖掘,一个是短句维度进行挖掘,通过在淘宝平台上积累的大量属于以及互联网数据,通过主题模型的方式进行挖掘、标注与清洗,再通过预设定好的关系进行实体之间关系的定义最终形成知识图谱。

基本的挖掘框架流程如下:


知识图谱的实体和短语挖掘流程

基于知识图谱匹配的优缺点:

\textbf{优点}

  • 在对话结构和流程的设计中支持实体间的上下文会话识别与推理
  • 通常在一般型问答的准确率相对比较高(当然具备推理型场景的需要特殊的设计,会有些复杂)
    \textbf{缺点}
  • 模型构建初期可能会存在数据的松散和覆盖率问题,导致匹配的覆盖率缺失
  • 对于知识图谱增量维护相比传统的QA Pair对知识的维护上的成本会更大一些

基于检索模型的对话匹配的流程:

其在线基本流程分为:
(1).提问预处理:分词、指代消解、纠错等基本文本处理流程;
(2).检索召回:通过检索的方式在候选数据中召回可能的匹配候选数据;
(3).计算:通过Query结合上下文模型与候选数据进行计算,通过我们采用文本之间的距离计算方式(余弦相似度、编辑距离)以及分类模型相结合的方式进行计算;
(4).最终根据返回的候选集打分阈值进行最终的产品流程设计;

离线流程分为:
(1).知识数据的索引化;
(2).离线文本模型的构建:例如Term-Weight计算等;

检索模型整体流程如图:


检索模型的流程图

2.3 智能聊天:基于检索模型和深度学习模型相结合的聊天应用

智能聊天的特点:非面向目标,语义意图不明确,通常期待的是语义相关性和渐进性,对准确率要求相对较低

智能聊天对应聊天型机器人,目前主要有两种技术:

  • Generation Model(生成模型)

优点:通过深层语义方式进行答案生成,答案不受语料库规模限制
缺点:模型的可解释性不强,且难以保证一致性和合理性回答

  • Retrieval Model(检索模型)

优点:答案在预设的语料库中,可控,匹配模型相对简单,可解释性强
缺点:在一定程度上缺乏一些语义性,且有固定语料库的局限性

因此在阿里小蜜的聊天引擎中,我们结合了两者各自的优势,将两个模型进行了融合形成了阿里小蜜聊天引擎的核心。先通过传统的检索模型检索出候选集数据,然后通过Seq2Seq Model对候选集进行Rerank,重排序后超过制定的阈值就进行输出,不到阈值就通过Seq2Seq Model进行答案生成。
整体流程图如下:


小蜜的闲聊模块

3. 2018

内容主要来自于2018 - 阿里小蜜这一年,经历了哪些技术变迁?

算法方面本质上变化不大,新增了一些功能模块。


算法体系架构

通过对话管理系统的控制,面向不同的领域场景采用不同的领域技术:

  • QA Bot:通过知识图谱、传统IR以及DeepMatch的方法完成知识问答的匹配
  • Task Bot:面向多领域技术完成任务型对话构建与问答
  • Chat Bot:完成闲聊机器人的问答
  • Rec Bot:完成推荐机器人的问答体系构建
  • MC Bot:在文档无法结构化的场景下(例如淘宝或者商家的活动场景),通过Machine Reading的方法来完成问答

与2017年相比,增加了Rec Bot和MC Bot。另外,随着阿里小蜜平台的扩展,部分领域存在难以获得或者标注数据量不足的问题,因此开始引入迁移学习。

3.1 机器阅读理解技术

应用背景:(从各分享文章推测,阿里小蜜平台应该是2018年推广到其他业务)

在阿里小蜜平台的业务体系中,存在大量知识数据是无法通过先验知识结构化或者结构化效率极低的场景,例如淘宝双十一大促的活动、税务法律等等。因此我们通过机器阅读理解的运用,可以减少人工知识点拆解工作,让机器直接对规则进行阅读,为用户提供规则解读服务,是最自然的交互方式。因此在2017年阿里巴巴iDST团队与我们阿里小蜜团队合作共同在机器阅读领域进行了深入的探索和应用。
面对的挑战:

  • 设计具有针对性的业务模型:这是与业务场景中数据的表现形式有关,如文档结构、文章长度、跨多个句子等,这些可能与wiki类数据有巨大差异,因此需要针对场景的特点来设计模型结构。
  • 模型领域的迁移:因为机器阅读理解模型是领域相关的,因此需要解决跨领域的问题
  • 模型的性能考虑:学术界模型一般较为复杂,应用到工业界需要做一些简化使得模型效果下降可控的情况下,尽可能提升线上预测性能。

基于机器阅读理解模型的在线问答流程如下图所示:


基于机器阅读理解模型的问答流程

具体说明:

1.文章片段定位模块 文章片段定位模块针对用户问题,召回候选的文档段落集合供机器阅读产生答案。借助该模块,可帮助缩减机器阅读理解模型的计算量,同时在一定程度上提升准确率。例如用户提问「天猫造物节的活动什么时候开始?」,该模块需要返回所有与「天猫造物节」有关的文档段落。定位的方式可以通过文本分类、文本检索或者问题模板拦截来完成,文本分类需要提前标注数据训练模型,目前我们的流程中主要以无监督的文本检索或者人工维护的问题模板定位为主。
2.预处理模块 预处理模块包含4个步骤,首先需要对用户问题和待阅读文章做文本分词,由于带阅读文章常常伴有多级段落、特殊标签等结构信息,需要做格式化处理。
3.在线服务模块 DNN在线服务模块部署了本文前半部分描述的深度机器阅读理解模型,在接受第2步处理好的<question, doc>向量后,计算输出文章中的词语或者句子作为答案的概率。
4.后处理模块 后处理模块负责具体答案的构建,根据在线服务模块输出的答案概率,其按照特定策略计算出最可能的答案

4. 2019

2019-01 - 未来已来!阿里小蜜AI技术揭秘
整体架构体系上基本没什么变化,相比之前,2019的分享在任务型机器人中新增了slot,应该是在动作判断中采用意图+slot去做决策。

2019-09 - 干货 | 阿里云小蜜对话机器人背后的核心算法
从2019年下半年开始的分享内容有了很大的改动,主要体现在:

  • 自然语言理解:重点是小样本学习(few-shot learning)
  • 平台视角下的对话管理
  • 用户模拟器
    可以看出,前期做好平台建设,已经开始了技术深度上的探索。

5. 2020

内容来自于 2021-01 达摩院Conversational AI研究进展及应用。由于是2021年初的分享,所以放在了2020年。

2020年的分享与2019年下半年的分享内容比较相似了,持续在技术深度上探索。改动点在:

  • 自然语言理解:新增基于元学习
  • 对话管理:从状态机到深度模型
  • TableQA:Conversational Semantic Parsing的难点和进展。(这是个新概念)
达摩院Conversational AI的整体架构

学习资料

对话平台

情感分析

知识结构化

其他

相关文章

  • 阿里小蜜的架构设计

    本篇总结了阿里小蜜从2017-2020年的演进过程,更偏向架构体系上的介绍,不对具体技术做详细介绍。具体技术部分会...

  • 智能客服设计

    Chat-bot 设计思路 在下面介绍的设计思路过滤了一些细节。 阿里小蜜设计思路 腾讯客服设计思路 智能客服机器...

  • 阿里小蜜

    公开数据集 facebook bAbl 微软的MCTest deepmind的CNN 和dailymail 斯坦福...

  • 阿里两轮面试都被问了组件化问题,你会嘛?

    阿里4轮面试,两轮面试都被问到组件化问题,面试的点各不相同,有组件化架构设计、插件化框架设计、路由架构设计、热修复...

  • 架构设计方法初探

    最近学习了阿里资深技术专家李运华的架构设计教程,颇有收获,总结一下。 本文主要介绍架构设计的相关概念,系统复杂度的...

  • KBQA研究进展

    KBQA研究进展 阿里小蜜 小蜜KBQA问题分类表 https://mmbiz.qpic.cn/mmbiz_png...

  • 阿里双十一微服务改造—架构设计

    阿里双十一微服务改造—架构设计链接 http://geek.csdn.net/news/detail/244259

  • 推荐系统架构-5 总体架构设计

    一、推荐系统 二、阿里云智能推荐AIRec 三、用户画像介绍 四、用户行为日志 五、总体架构设计 1、总体架构图

  • 深入浅出经典java架构设计方法

    最近学习了阿里资深技术专家小马哥的架构设计教程,颇有收获,总结一下。 1 基本概念和目的 架构设计的目的是为了解决...

  • 阿里毕玄:我在系统设计上犯过的14个错

    阿里毕玄:我在系统设计上犯过的14个错 摘要继上篇《架构师画像》提到了自己在系统设计上犯过的一些错之后,阿里毕玄又...

网友评论

      本文标题:阿里小蜜的架构设计

      本文链接:https://www.haomeiwen.com/subject/atjtqltx.html