挑战解法-阿里小蜜技术解析(一)|学习笔记

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 快速学习挑战解法-阿里小蜜技术解析

开发者学堂课程【阿里小蜜中的机器阅读技术:挑战解法-阿里小蜜技术解析】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/43/detail/966


挑战解法-阿里小蜜技术解析(一)


内容介绍:

一、店小蜜活动规则中的解法

二、解决方法和实践小结

三、领域覆盖


一、店小蜜活动规则中的解法

首先基于领域扩展困难以及数据标注收集困难问题,如下图是店小蜜活动规则中的解法:

多任务—店小蜜活动规则

image.png

之前提到最开始是把店小蜜作为一个回答用户关于官方活动的问题,对于每一个在淘宝平台上开店的商家来说,他们有自己的一些活动,那其和之前的场景都是一种规则性的阅读理解场景,但是其区别在于它面向了多个行业同样也是高频变动的。在此处,把机械的能力复用在店小蜜活动专区的一个场景中,可以发现通过左边对于活动的一些结构化与非结构化规则性的配置,右边机械阅读会直接抓取相关的内容作为回复。在此过程中为了达到快速的能力复用以及数据标注的介绍。

多任务——领域数据结构复用,减少数据标准

image.png

在此利用了多种多样的数据,包括了点击日志和人工知识去丰富不同的问法信息,以及对问题和答案的语义做一定的关联性建模,但这些数据相比机器阅读任务本身会更加容易收集,可以看到如上右图,在整个机器阅读理解 Benchmark 数据集上面,通过其他任务的数据引入,准确率从83提升到95,其背后的一个模型原理是基于深度神经网络的模型迁移原理,

如下图:

image.png

对于一个做图像分类或者识别的网络来说,它是有一个多层的 CNN 结构来堆叠,最终完成一个具体的任务,它从底向上,也就是说从最初的输入即靠近输入的这一端到输出的那一端,它的不同层次会关注不同的特征,比如最底层它会关注一些边缘、颜色,在更上层它会有一些简单的一些形状,乃至去组合成更复杂的一些物体,再把这些物体结合出来,作为整个场景的分类。

在14年 ins 有一篇文章提出在整个模型的不同层次中具有不同的特征迁移能力,简而言之就是其底层的特征即使是面对不同的任务也可以快速的复用起来,任务a上用到的模型的底层特征可以直接复用在任务 b 上,不需要做额外的微调,而越接近于上层,即输出层,越与这个任务有关,越需要在新的任务上去做一定的调整优化。

基于这种神经网络的多层可迁移性,小蜜在文本匹配上也探索了相关的迁移学习任务,这个工作是发表在2017年 wsdm 上,

如下图:

小蜜在文本匹配迁移学习的探索

image.png

去做一个跨领域的短文本匹配的迁移学习,其中主要分为两种领域,原领域和目标领域,原领域是一个已经具有了大量标注数据的匹配场景,而目标领域仅仅具有少量的数据标注,在上图左边描述了一种最简单的共享结构,就是原领域和目标领域都去共享网络中的一部分,然后通过原领域的数据去整个训练的网络,再同时去预测在原领域中和目标领域中分别两个领域的匹配结果。

在这个基础上面,又引入了更加复杂的结构,像上图右边所示,原领域本身和目标领域有一些领域的共通性,这些共通的知识可以作为一些通用的内容抽取出来,在这里面我们是使用了一些共享的结构 shared、neural network,即中间灰色的这一层。在左边是其领域之间独有的、特有的一些领域知识,此处会利用一些独立的参数、不会共享的层次来对其做建模。

当这种领域参数共享以及不共享同时存在于整个框架中时,其实就做出了一个领域的迁移,它的迁移会针对于领域之间的相似性知识而同时去建模领域之间不同的知识来对整个任务去做一个互相的借鉴学习,达到了在目标领域这种少数场景里更好的学习效果,具体效果可参照相关的论文。

再回顾机器阅读本身,此处把机器阅读整个做了一个层次的抽象,如下图:

利用跨领域/跨任务数据共同学习

image.png

最下面一层就是熟知的 Embedding Layer ,它把文章和问题中的单词字符映射成了不同的高维向量,再上一层就是 Encode Layer 去对这些向量/序列去做一个更进一步的编码,基于这些编码,要去做attention,即黄色的这一层,再去基于 attention 去最终建模和预测答案的起始位置,即 Model Layer 、Ouput Layer,基于机器阅读的多层的模型结构,复用了前面提到的神经网络的层次迁移性,在最底层的 Embedding Layer 上引入了 Chatlog, 即用户的问答日志去做一个共同的学习。

这块数据的数据量非常大,可以认为是一个海量的规模。在上层的编码引入了 QQ Pair ,即用户的问题和知识点标题的一些匹配信息,以及用户在问答过程中的对于推荐问题的一些点击信息,它也有非常大量的数据。再之上利用了知识库中人工编辑的问题和知识内容之间的 QA Match之间的语义关系数据,它相对来说没有那么多,但是对于整个电小蜜的体量来说,因为已经有非常多的商家在通过店小蜜提供服务,所以说数据规模也还是比较大中等的。再到上面可能仅仅只需要针对 mrc 本身这个任务来提供一个少量的标注,即可以达到一个比较好的效果。

除了多领域多任务的学习,接下来是另一个挑战,即当文档过多是怎么去处理的,此处展示的是一个关于政务办事问答的的应用场景,如下图:

多文档-政务办事问答

image.png

如上图可看到其中主要是关于政府去做一些具体的事项、办理相关的一些材料文件时需要用到的一些内容条款它是一种条款性。比如上图是一个关于养犬许可服务指南相关的规定介绍,用户可能会问“这个在哪里可以办理?需要多长时间?我需要去准备什么样的材料?”它的一个典型特点就是民众对于政务往往有非常多需要办理的事务,不单单是个人,可能还有一些公司级的,就导致了对于每个省来说,可能需要有百万级办事的文档库规模来去支撑整体的政务办事问答。那在此整体做了一个 Pipeline 链路,如下图:

工业系统——完整的文答 Pipeline 链路

image.png

用户的问题首先会去提取一些相关的关键词,比如图上是关于3M 的

一个活动的优惠,里面核心的一些活动词或者办事的事项名称会提取出来,在文档库里做一个大规模召回,召回之后的话针对召回的文档再去做一个粗排,粗排出来的结果会基于机器阅读模型做一个精细化的答案提取,再把提取到的答案与用户的完全问题再做一个精细化排序,来返回最合适的答案。

在其中它与传统的 pipeline 式的结构稍微的区别是在于把整体的文章排序,段落排序,其最终的答案排序做了一个联合学习。这个工作也是发表在 AAAI 2018 鼎会上的一篇论文,如下图:

层叠式阅读理解过程

image.png

上图可看到前置的检索整体缩短了阅读的范围,同时会带着问题去在缩小范围后的每个候选段中阅读,去寻找相关的答案,但是不同的段落独立寻找之后,又会去把整体不同段落里面的答案统一拿出来做一个整体的可信度对比,如此可以防止在过长或者过短段落上答案最终得到的分值,分布不一致导致的不可比问题,最终综合考虑选取全局的最优结果。可以看到上图左边黄色的部分在不同的模型上,所有的参数都是共享的,共享去学习,如此不会引发前一个步骤出现了错误而累积导致影响下一步的环节。接下来是整个流程在业务数据上的表现,如下图:

性能与准确率表现

image.png

可以看到折线图主要是代表了一个模型的响应时间,柱状图是表示模型在数据集上的一个准确程度。用的是F1指标,图中随着文章长度的增长,即横轴部分,改进模型实现这一块整个的响应时间仅仅做了少量的一个增加,而原始的虚线会成倍的去增长,同时,在这个包含了这个检索式的模型之中,F1 也会随着文章长度的增加而仅仅做一些少量的衰减。而原始没有检测的文章、文章检索的模型会表现出一个很大的性能损失。同时前面提到有一个整个的答案后排序的过程,

融合后置排序进一步增强可控

image.png

在此也同样用到了 Multi-Task Training,即多任务学习的能力,同时我们还利用了 Wide & Deep Ensemble 整个去做一个引 example,Deep 端是上述提到的各种各样的一些深度学习模型,Wide 端可以结合一些业务上面需要的可解释性比较好的特征,比如问题的类型、问题答案的长度、之间的一些相似度、以及外部的一些语义知识和意图知识去做一个整体的引 example。在 Wide & Deep 结合的框架下面,通过引入额外的答案后排序阶段,可以看到在部分活动场景能减少将近60%的错误答案,同时可以保留超过90%的正确回复来进一步提高模型的准确率。

相关文章
|
17天前
|
域名解析 存储 网络协议
深入解析网络通信关键要素:IP 协议、DNS 及相关技术
本文详细介绍了IP协议报头结构及其各字段的功能,包括版本、首部长度、服务类型、总长度、标识、片偏移、标志、生存时间(TTL)、协议、首部检验和等内容。此外,还探讨了IP地址的网段划分、特殊IP地址的应用场景,以及路由选择的大致流程。最后,文章简要介绍了DNS协议的作用及其发展历史,解释了域名解析系统的工作原理。
66 5
深入解析网络通信关键要素:IP 协议、DNS 及相关技术
|
3天前
|
人工智能 算法 安全
探索未来科技的基石:量子计算技术深度解析
探索未来科技的基石:量子计算技术深度解析
15 5
|
5天前
|
机器学习/深度学习 存储 监控
深入解析软件测试中的自动化测试技术
本文旨在全面探讨软件测试中的自动化测试技术。通过对自动化测试的定义、优势、常见工具和实施步骤的详细阐述,帮助读者更好地理解和应用自动化测试。同时,本文还将讨论自动化测试的局限性及未来发展趋势,为软件测试人员提供有益的参考。
24 6
|
2天前
|
机器学习/深度学习 前端开发 JavaScript
前端技术探索:从基础到未来趋势的全方位解析
前端技术探索:从基础到未来趋势的全方位解析
10 1
|
11天前
|
移动开发 Android开发 数据安全/隐私保护
移动应用与系统的技术演进:从开发到操作系统的全景解析随着智能手机和平板电脑的普及,移动应用(App)已成为人们日常生活中不可或缺的一部分。无论是社交、娱乐、购物还是办公,移动应用都扮演着重要的角色。而支撑这些应用运行的,正是功能强大且复杂的移动操作系统。本文将深入探讨移动应用的开发过程及其背后的操作系统机制,揭示这一领域的技术演进。
本文旨在提供关于移动应用与系统技术的全面概述,涵盖移动应用的开发生命周期、主要移动操作系统的特点以及它们之间的竞争关系。我们将探讨如何高效地开发移动应用,并分析iOS和Android两大主流操作系统的技术优势与局限。同时,本文还将讨论跨平台解决方案的兴起及其对移动开发领域的影响。通过这篇技术性文章,读者将获得对移动应用开发及操作系统深层理解的钥匙。
|
13天前
|
存储 缓存 Java
在Spring Boot中使用缓存的技术解析
通过利用Spring Boot中的缓存支持,开发者可以轻松地实现高效和可扩展的缓存策略,进而提升应用的性能和用户体验。Spring Boot的声明式缓存抽象和对多种缓存技术的支持,使得集成和使用缓存变得前所未有的简单。无论是在开发新应用还是优化现有应用,合理地使用缓存都是提高性能的有效手段。
15 1
|
18天前
|
缓存 负载均衡 Dubbo
Dubbo技术深度解析及其在Java中的实战应用
Dubbo是一款由阿里巴巴开源的高性能、轻量级的Java分布式服务框架,它致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。
43 6
|
16天前
|
传感器 机器学习/深度学习 自动驾驶
未来出行的革新:无人驾驶技术深度解析
在当今科技飞速发展的时代,无人驾驶技术正逐步从科幻走向现实,成为未来交通领域最具革命性的变化之一。本文旨在深入探讨无人驾驶技术的工作原理、关键技术组件以及面临的伦理与法律挑战,并展望其对社会经济和日常生活的深远影响。通过分析感知、决策和执行三个核心环节,本文揭示了无人驾驶汽车如何利用先进的传感器阵列、复杂的算法和精密的机械控制来实现自主行驶。同时,文章也讨论了数据安全、隐私保护及责任归属等问题,呼吁建立相应的法规框架以促进技术的健康发展。最后,无人驾驶技术被预测将为减少交通事故、缓解拥堵、提高能效及推动共享经济等方面带来显著益处,预示着一个更加智能、高效和可持续的出行未来。
|
2天前
|
消息中间件 监控 关系型数据库
MySQL数据实时同步到Elasticsearch:技术深度解析与实践分享
在当今的数据驱动时代,实时数据同步成为许多应用系统的核心需求之一。MySQL作为关系型数据库的代表,以其强大的事务处理能力和数据完整性保障,广泛应用于各种业务场景中。然而,随着数据量的增长和查询复杂度的提升,单一依赖MySQL进行高效的数据检索和分析变得日益困难。这时,Elasticsearch(简称ES)以其卓越的搜索性能、灵活的数据模式以及强大的可扩展性,成为处理复杂查询需求的理想选择。本文将深入探讨MySQL数据实时同步到Elasticsearch的技术实现与最佳实践。
18 0
|
12天前
|
Cloud Native 持续交付 Docker
深入解析Docker容器化技术及其在生产环境中的应用
深入解析Docker容器化技术及其在生产环境中的应用
18 0

热门文章

最新文章

推荐镜像

更多