阿里云服务器ECS    
弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新 [咨询更多]
阿里云存储OSS
简单易用、多重冗余、数据备份高可靠、多层次安全防护安全性更强、低成本 [咨询更多]
阿里云数据库RDS
稳定可靠、可弹性伸缩、更拥有容灾、备份、恢复、监控、迁移等方面的全套解决方案 [咨询更多]
阿里云安全产品
DDoS高防IP、web应用防火墙、安骑士、sll证书、态势感知众多阿里云安全产品热销中 [咨询更多]
阿里云折扣优惠    
云服务器ECS、数据库、负载均衡等产品新购、续费、升级联系客服获取更多专属折扣 [咨询更多]
分析关键技术能力
2020-6-16    点击量:
  分析关键技术能力   对增强分析的概念有了基本的认知之后,我们来看看增强分析具体包含了哪些技术能力。结合 Gartner 的分类,我们可以将增强分析相关的技术分为了三类:增强数据准备、增强数据分析和增强数据挖掘。
  
  1. 增强数据准备
  
  准备数据通常是最耗时的工作。这里的数据准备不仅包含所谓的 ETL 或者 ECTL,通常包含有数据探查、数据质量、数据协调、数据模型、数据清洗、数据聚合,元数据管理,以及数据编目等工作,涵盖了数据管理的各个方面,甚至向前延伸到数据集成和数据湖的管理。
  
  增强数据准备通常从两个方向着手加速以上过程:
  
  可视化交互:通过类似 Excel 的界面以及托拉拽式的操作方式实现可视化的数据配置、数据源的混合以及数据清洗工作,让数据准备变得 " 无代码化 "。
  
  算法辅助:利用机器学习和 AI 技术来自动化上述的部分流程。例如,自动的查找数据之间的关系,对数据质量进行评估,推荐用于连接、丰富、清洗数据的最佳方法,还有自动查找元数据和血缘关系等功能。例如下图中,Paxata 平台自动找到了两张表最佳的 join 方式。
  
  提供智能数据连接
  
   Paxata 提供智能数据连接
  
  显然,攻克数据准备这一瓶颈将大大提升分析的效率,从 2012 年前后,市场上开始出现专注于数据准备的供应商,包括 ClearStory Data、Datawatch、Paxata、Trifacta 等公司。近两年,许多 BI 平台和数据科学平台厂商也都在将增强数据准备作为重点提升方向。2018 年,CAE 仿真平台厂商 Altair 宣布收购 Datawatch;2019 年,专注于 AutoML 的数据科学平台 DataRobot 将 Paxata 纳入麾下;除了资本运作,更多的大厂也在优化自己产品的数据准备功能,例如 Tableau 推出的 Tableau Prep ( 如下图 ),PowerBI 推出的 Power BI Premium 都提供了简单直观的自助式数据准备功能。
  
  图形化界面
  
   Tableau Prep 图形化界面
  
  目前,图形化的操作界面似乎已经被习以为常了,但是,针对数据准备目前能够提供的算法辅助功能还是散点式的,虽然交互式界面使得用户操作数据不再依赖代码,但整个过程仍需要人工大量的参与,相信这一领域仍有很大的发展空间。
  
  2. 增强数据分析
  
  与数据准备思路类似,我们也可以将增强数据分析相关的技术按照其业务应用目标划分为了易用和智能两类。易用类技术帮助数据分析的用户无需建模和编写算法,而是通过可视化和对话界面来研究数据,大大提高了数据分析的可用性;而智能类技术在帮助用户自动寻找数据规律,将相关结果自动的转化为可视化表达,提高分析的效率。
  
  ① 易用性
  
  易用类技术主要包含了自然语言查询 ( Natural Language Query,NLQ ) 和自然语言生成 ( Natural Language Generation,NLG ) 两个方向。
  
  自然语言查询 ( NLQ ):
  
  自然语言查询是指用户直接在搜索框输入或通过对话的方式查询数据。想要将用户的问题与数据表中的数据对应上,NL2SQL ( Natural Language to SQL ) 技术就是其中的关键。举个例子,用户可能会问「特斯拉的车总共卖了多少辆?」,通过 NL2SQL 就会将其转化为相应的 SQL 表达式是「SELECT SUM(销量) FROM TABLE WHERE 品牌 ==“特斯拉”;」。NL2SQL 这一任务的本质,是将用户的自然语言语句转化为计算机可以理解并执行的规范语义表示,是语义分析 ( Semantic Parsing ) 领域的一个子任务。
  
  在深度学习方法流行之前,这一领域的解决方案主要是通过高质量的语法树和词典来构建语义解析器,再将自然语言语句转化为相应的 SQL,例如 Google 2017 年提出的 Analyza 方法[2],Sen 等人提出的 NLIDB 方法[3]。这类方法都具有类似的框架,以 NLIDB 为例,通过 Evidence Annotator 按照规则对查询语句进行分解,而后通过多步的 " 组装 " 拼接成 SQL 语句。
  
  现在的解决方案主要是深度学习与 SQL 特征规则相结合的方法。
  
  NLIDB[3]系统框架
  
   NLQ 方法 NLIDB[3]系统框架
  
  近几年在学术界和业界这一领域都得到了广泛的关注,Salesforce、斯坦福、耶鲁等机构提出了 WikiSQL、WikiTableQuestions、Spider、SParC 等大规模数据集,并得到多次评测结果的提交。其中,Salesforce 于 2017 年提出的 WikiSQL 数据集是目前规模最大的有监督数据集。在这个数据集上,SQL 执行结果的准确率目前已经突破 90%。但 WikiSQL 数据形式过于简单,只支持最基础的 SQL 语句,而聚组、排序、嵌套等其它众多常用的 SQL 语法都不支持。这样的数据集并不符合真实的应用场景。相比之下,Spider 等数据集更贴近于真实应用场景,支持几乎所有 SQL 语法的用法,而相关的评测各项指标还都很低。如何应对复杂的 SQL 语句仍是非常值得探索的方向。
  
  NLQ 技术在产品形态上主要有两种,搜索式和对话式:
  
  搜索式类似于搜索引擎,用户输入感兴趣的分析目标,系统将辅助用户进行查询条件的细化,而后自动将结果进行图形化展示。搜索式的代表产品就是 2019 年闯入 BI 魔力象限 Leader 梯队的黑马 ThoughtSpot,它的 slogan 就是 "Search & AI-Driven Analytics",从 2012 年诞生之初,它就是使用搜索作为访问数据的主要界面,这种设计就意味着其面向的最终用户是普通业务人员而不是分析师,较低的使用门槛为它快速积累了大量客户。目前主流 BI 大厂都基本能够支持搜索式的数据分析。
  
  对话式数据分析主要是数据分析与对话机器人的结合形成的数据机器人,Qlik Insight Bot、QuickBI 的智能小 Q、我们团队开发的数小蜜都是此类的典型产品。数据机器人不仅可以以独立产品存在,而且可以提供 PaaS 能力与其他机器人相结合,例如阿里数小蜜机器人的能力就输出到了阿里店小蜜、阿里内外小蜜、钉钉智能助理等诸多的场景。
  
  自然语言生成 ( NLG ):
  
  NLG 技术是将语义信息以人类可读的自然语言形式进行表达。根据输入信息的不同,NLG 又可分为:数据到文本的生成、文本到文本的生成、意义到文本的生成、图像到文本的生成等。在数据分析中应用 NLG 主要是数据到文本的生成,它能够将分析结果转换为人类理解的清晰叙述,以帮助用户更好的理解数据,讲好数据故事。
  
  与其他 NLP 领域类似的,在 NLG 技术发展的历史过程中,主要包括基于模板的 NLG 和基于神经网络的 NLG 方法两个阶段。
  
  Reiter 等人[4]将基于模版的系统进行了归纳总结,将 NLG 系统划分为文本规划、句子规划、句法实现 3 个模块。其中,文本规划决定文本要说什么 ( what );句法实现决定怎么说 ( how );句子规划则负责让句子更加连贯。在该框架下,针对不同模块,若干基于统计的模型被提出。
  
  典型的三阶段式
  
   典型的三阶段式 NLG 架构[4]
  
  近几年,基于深度学习的 NLG 方法也层出不穷。在今年 2 月份,微软公布了史上最大的语言生成模型,Turing-NLG,拥有 170 亿参数量,可以说是超级庞然大物。基于神经网络的方法又分为基于神经机器翻译 ( Neural Machine Translation ) 的方法和基于神经语言模型 ( Neural Language Model ) 的方法。前者将基于结构化数据的文本生成任务视为一个翻译任务,即输入的源语言是结构化数据,输出的目标语言是文本[5];后者则主要是将以 bert 为首的大量预训练模型应用到了 NLG 任务中。
  
  对比基于模板的方法和基于深度学习的 NLG 方法,基于模板的更可控,但是结果较为生硬、死板,而且后期扩展对初期规划依赖较大,常用于天气预报、财报、新闻等场景;而基于深度学习的端到端方法可以更好的生成创意性、个性化、娱乐性等文本,但是效果不可控或者难以控制,目前的研究方向主要是将两者进行融合。这一领域的另一个挑战来自于数据,一方面,不同应用场景中的文本要求差异很大,现在能够用于训练的数据集仍然不够丰富;另一方面,data2text 任务的训练数据需要大量数据到文本的映射,收集成本很高。这就限制了需要大量训练数据的深度学习模型发挥出更好的效果。
  
  而在产品应用方面,BI 平台目前对 NLG 的应用还比较简单,例如下图 Tableau 的 Expain Data 中的 C 区域,就是对结果的简单解释。想必其背后应该是一套基于模板的方法,随着分析人员对自动化报告的要求越来越高,这一领域 NLG 的应用也会不断深入,不知道未来 BI 能不能自己帮董秘们写出一份慷慨激昂的董事会发言稿。
  
  界面
  
   Tableau Expain Data 界面
  
  ② 自动化
  
  另一个方向就是自动化,自动的帮助用户完成数据分析中的一些过程。这里典型的技术包括自动洞察 ( automated insights ) 和自动可视化 ( automated visualization )。
  
  自动洞察:
  
  自动洞察,也叫主动洞察,是增强分析的核心功能,但同样也是一个宽泛的概念。现在大部分的主流 BI 平台都有自动洞察的相关功能推出,且方向各有不同。自动洞察的目标就是代替一部分分析师的工作,从数据中发现潜在信息和价值。从任务目的的角度划分,主流的技术有以下几个方向:
  
  发现关联:比如分析 GMV 关联因素,可能涉及到订单量、金额、人数、产品类型等多种因素,通过自动洞察可以在分析高费用收入时,找出哪项因素对高费用影响最大。传统的指标解释常常需要数据分析师依靠业务理解和经验对数据指标进行拆解,找出影响因素。而自动洞察则能够自动完成这一过程。图 9 中的 Tableau 的 Expain Data 就是通过构建贝叶斯模型评估各个数据项对目标值的影响大小,而后通过图表的方式给出了对目标值影响最大的数据项分布,引导用户进一步探查。
  
  发现异常:自动的发现数据异常,不再依赖于规定固定的阈值。这个领域在学术界应该是个古老话题了,在此就不做赘述。
  
  自动聚类:聚类是一种典型的无监督学习,可以自动的将样本分成若干组,因此也被认为是一种自动洞察能力。
  
  现在学术界和 Google、微软等大型科技公司都在自动化 insight 推荐方面走的比较远,且方向各有不同。以微软的 PowerBI 为例,其推出的 " 快速洞察 " ( Quick Insights ) 功能能够自动对于源数据做出各种交叉的一阶或者多阶计算 ( 百分比,排序,同环比 ),从而挖掘数据内部各种趋势,显著点等洞察,同时发现数据之间的相关性、数据内的异常点、时序数据的趋势以及周期性变化规律等等,并进行可视化呈现。
  
  快速洞察功能
  
  PowerBI 快速洞察功能
  
  自动可视化:
  
  自动可视化的概念就非常直观了,就是根据你的数据结果自动的选择可视化的方式进行展示,以清晰的展现数据分析结果。自动化报表与自然语言查询、自然语言生成等技术配合,将大大加快整个分析流程,对前台业务人员十分友好。
  
  但这同样是个很大的话题,数据可视化毕竟不是选择用柱状图还是折线图展示这么简单。它大概可分成两个层次:
  
  自动化图表:无需用户操作直接生成图表,根据图形语法、图表配置映射等方式将图表渲染出来
  
  自动化报表:自动生成报表,参考分析目的和图形样式等方面来生成报表布局、配置控件、图表联动等
  
  如果把可视化比作是一种数据到设计的翻译,那么好的可视化也需要做到 " 信达雅 "。生成的数据表不仅要能被看懂,还要美,还要能交互,更高的要求是能够帮助用户讲好故事 ( storytelling ),比如直接生成 deck 或者海报。
  
  在学术领域,自动化图表技术可以分为两类,基于规则的方法和基于机器学习的方法[6]。基于规则的方法依赖于预先设置好的规则库,这种方法的效果非常依赖于规则库的质量,也缺少灵活性。另一类方法则是将问题转化为了分类或排序问题,而后训练相应的模型,例如将一种可视化方案分类为 " 好 " 或 " 坏 "。这其中,如何刻画源数据的特征和可视化图表的特征是相关研究重点讨论的问题。
  
  在产品方面,基础的自动化图表已经有许多主流 BI 厂商提供,一些开源的软件也有着不错的支持,例如 AVA,Rath 等等。感兴趣的同学可以关注一年一度的可视化领域顶级会议 IEEE VIS,每年都会有有意思的方法、工具出现。
联系客服免费领取更多阿里云产品新购、续费升级折扣,叠加官网活动折上折更优惠