阿里小蜜
论文题目:AliMe Assist: An Intelligent Assistant for Creating an Innovative E-commerce Experience
这篇论文主要讲了阿里小蜜的整体架构,在技术细节上并没有深入的讲解
- 这篇论文的贡献点
- 设计并开发了一个真实世界的具有工业智能的助手,提供助手服务,客户服务,和聊天服务,在电子商务领域
- 提出了一个卷积神经网络模型来做意图识别,用来处理带有上下文的用户问题
- 提出了语义归一化和基于知识图谱方法的知识导向型的用户问答服务
- 提出了了混合IR和attentive Seq2Seq模型优化开放领域聊天
2 系统总览
- 第一层是输入层,支持语音,文本,等多端输入
- 第二层是意图层,决定了每个问题的路由
- 第三层指明了处理问题的组件
- 第四层代表了只是的来源,QA对,知识图谱
问题处理流程
- 给出一个问题q,首先传输到一个业务规则解析器(business rule parser, a trie-based pattern matcher),应该是一种基于trie树规则的匹配
- 如果匹配到确定的模式
- 如果请求的是任务型助手服务,那么将会匹配槽位填充引擎。例如:我想预定飞机票
- 如果问的是促销活动,一个预先配置的答案将会被返回
- 如果问的是在线服务相关的,例如"real person, please"。那么将会要求用户提供描述问题的信息
- 如果没有匹配到确定的模式,问题q将会被发送到意图分类器(intention classifier)当中被分类,问题会带上被分类的意图场景
- 如果匹配到确定的模式
- 接着 q 将会被送到基于trie树的语义解析器当中,如果 q 当中有任何 语义标签被解析到了(知识图谱当中的实体,例如用户账户),q 就将被视为业务相关(即知识导向的)的,识别出来的标签将会被用来从知识图谱引擎当中检索出来答案,如果没有答案被检索出来,AliMe将会使用q的上下文和q进行concat,重新送到语义解析器当中
- 有两点要注意:一是q没有上下文信息,二是concat(q, c)仍然没有答案。 那么进入下一步,如果识别出来的标签仅包含一个实体,或者行动,那么向用户询问更多的信息,否则的话,将q传入IR引擎当中。
- 如果IR引擎依旧没有答案,那么q将会根据意图场景被发送给客服人员,这里可以给客服人员使用推荐系统
- 如果q识别出来跟业务无关,并且是一个聊天,那么聊天引擎将会提供答案
- 如果q也不是一个聊天,那么预先配置的答案将会返回
意图识别
- 阿里小米的用户意图分为三个类别:
- 寻求帮助,eg: 我想订飞机票
- 寻求信息,或者解决方案。 eg: how to find back my password
- 聊天
- 两个组件,业务规则解析器 + 意图分类器
- 意图分类器使用了 Text-CNN,如下图所示
- 意图分类器使用了 Text-CNN,如下图所示
任务导向的助手服务(任务型)task-oriented
- 任务型的QA,通常会定义一个固定的模式,并对一个task指定强制的slot 和 可选的 slot,使用slot-filling 相关的技术,从用户的输入当中抽取信息并填入到预定义的slots当中。
- aliMe已经能够识别15种槽位信息,如产品,位置,日期等
- AliMe会向用户询问强制的信息,然后调用第三方服务来完成task
知识型(Knowledge-oriented)
- 解决的是 looking for information/solutions 需要尽可能的强调准确度,使用了知识图谱
- 构建知识图谱
- 抽取名词,动词,从自然语言知识当中,使用分词,词性标注,tf-idf过滤等技术
- 使用人工信息构建高级别的实体
- 业务分析师,review这些实体,并设计实体之间的关系,构建层次结构
- 最后使用Neo4j作为我们的查询引擎
- 我们的只是图谱包含了上千的实体和固定数目的关系
- 支持简单的推理(短跳推理)
- 这个只是图谱展示如何回答"how to find my lost login password"
- 实践中,语义的归一化是一个关键的因素:如何将不同的表达映射到一个在知识图谱当中相同的语义实体
聊天服务
- 结合了IR + attentive seq2seq,有专门对应的一片论文