智能分析最佳实践——指标逻辑树

背景

所有业务都会面对“为什么涨、为什么降、原因是什么?”这种简单粗暴又不易定位的业务问题。为了找出数据发生异动的原因,业务人员会通过使用多维查询、dashboard等数据产品锁定问题,再辅助人工分析查找问题原因,这个过程通常需要一天时间。几乎每种业务角色的用户都在做相似的分析,但在业务方分析人员发生工作变动时,分析方法难以得到较好传承。因此我们需要一款自动给出分析结论的智能化数据产品来解决上面的问题,产品的基本功能如图1所示。

图1 产品架构图

由上图可知,指标逻辑树就是我们抽象出来的智能异动分析数据产品的最佳实践。它将固定的分析方法和业务场景抽象出来,套用灵活的数据源(包含Kylin、MySQL、Elasticsearch、Druid等),自动生成符合各类用户的异动分析报告;它能够直接给出分析结论进而快速落实业务行动,降低分析成本和决策周期。选定两个时间周期,指定指标顺序,通过指标逻辑树就可找出导致核心指标发生异动的关键指标,同时可对单一指标进行细分维度拆分,锁定细分维度对整体的影响。

挑战

指标逻辑树作为一款支持酒旅各业务线的异动分析数据产品,面临的挑战如下:

  • 基础指标多、维度多,且来自于不同的数据源。
  • 支持多种异动分析算法。
  • 自定义计算指标。

针对上面的挑战,我们给出如下的解决方案。

解决方案:指标逻辑树

体系架构

图2 指标逻辑树体系架构

如图2所示:

  1. 指标计算,用于解决基础指标多、维度多,且来自于不同数据源的问题以及自定义计算指标的问题;
  2. 分析算法,用于支持多种异动分析算法;
  3. 计算服务,采用master-work的方式解决查询性能的问题。

具体方案

指标计算

指标计算包含指标漏斗、基础指标序列、指标分类,它们之间的关系如图3所示。

图3 指标计算

如图3所示,指标漏斗为用户自定义的有序指标序列,包含基础指标和计算指标(如,B=(L+H)*Y) ;基础指标序列,是将指标漏斗中的计算指标按照顺序拆分之后的指标序列;指标分类采取大圣魔方(可以参考大圣魔方:https://tech.meituan.com/dsmf.html )配置的规则对基础指标进行分类。

分析算法

目前指标逻辑树支持两种异动分析算法,后续可以根据需要进行扩展。

  • 生成瀑布分析图的连环迭代分析法。
  • 根据指标下钻维度方案,生成单个指标解释度的基尼系数算法。

下面分别介绍这两种算法在指标逻辑树中的运用。

连环迭代分析法

连环迭代分析法,用于从用户自定义的有序指标列表中找出导致核心指标发生异动的关键指标,如图4可知,本期结果指标E产生的波动,主要由于A指标的波动影响。

图4 瀑布分析图

图5 指标漏斗

如图5所示,意向UV、访购率、人均单量、连带率、SKU单价等几个指标中的任意一个发生数据波动,都可能引起支付GMV的波动。采用连环迭代分析法,可以确定某个具体指标在本期支付GMV的波动中产生的影响最大。算法公式,支付GMV=意向UV*访购率*人均单量*连带率*SKU单价。

基尼系数

基尼系数A/(A+B),用于计算各下钻维度方案对单个指标波动的影响程度,横轴用特征分组基期累计占比,纵轴用波动值累计占比(可以为负值),基尼系数越大说明该特征对波动的解释效果越好。

图6 基尼系数计算

如图6所示,指标计算,用于获取层级下钻维度中各个维度的基础数据,如各个城市等级的本期、基期值等信息;分析算法,根据维度基础数据计算出排序因子,利用排序之后的排序因子计算各特征分组的基期累积占比及波动值累计占比,进而获取到基尼系数;最终选取基尼系数最大的特征作为最终解释。

计算服务

随着业务分析需求的增加,分析用户自行配置的指标序列以及针对单个指标的下钻维度方案将会急剧增加,随之带来的影响就是单个请求需要支持大量的查询任务,因而提升并行计算能力是提升系统性能的一个关键因素。如图7所示,计算服务包括任务拆分、并行计算和结果合并。

图7 计算服务

任务拆分

任务拆分分为如下几个步骤:

  • 将指标漏斗中的计算指标拆分成基础指标。
  • 填充基础指标的细化维度方案,记录指标的各个维度方案及各方案下的层级下钻维度。
  • 对基础指标按照数据模型和维度方案进行分类。

并行计算

并行计算提供分布式计算功能,主要处理的是任务拆分之后的细粒度查询任务。

查询任务主要有以下两类:

  • 按照数据模型分类之后的指标序列查询任务,需要分别查询本期和基期值,查询量相对较少。
  • 按照数据模型和维度方案分类之后的查询任务,需要分别查询本期和基期值,涉及到细化维度,查询量比较大。

结果合并

结果合并主要是针对计算指标来说的,计算指标是分析用户自定义的针对基础指标的一组计算公式。并行查询的结果是针对基础指标的,需要合并基础指标的查询结果数据,生成符合计算公式的指标数据。结果合并模块需要做两部分的工作,一是解析计算公式,二是根据已有的数据,按照计算公式生成新的数据。

系统中用到数据组装的模块主要有如下:

  • 如图8所示,根据拆分之后的基础指标数据,生成满足计算公式的计算指标数据。
  • 如图9所示,根据拆分之后的下钻维度基础数据,分别计算出各个维度的数据,生成符合计算公式的下钻维度数据。

图8 计算指标数据组装

图9 指标下钻维度数据组装

总结

指标逻辑树在美团点评酒店旅游各业务线中已经得到了一定的应用,并收获了大量好评。本文只是指标逻辑树的一个总纲,目前产品尚处于初级阶段,后续还有很多功能需要完善。

原文发布于微信公众号 - 美团点评技术团队(meituantech)

原文发表时间:2017-12-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器之心

深度揭秘谷歌TPU2机器学习集群:新一代的「谷歌云TensorFlow处理单元」

选自The Next Platform 作者:Paul Teich 机器之心编译 参与:Nurhachu Null、黄小天 在最近的 2017 Google ...

3429
来自专栏机器之心

业界 | 微软推出深度学习加速平台「Project Brainwave」:FPGA驱动实时人工智能

选自微软博客 机器之心编译 参与:路雪、黄小天、蒋思源 近日在 Hot Chips 2017 上,微软团队推出了一个新的深度学习加速平台,其代号为脑波计划(Pr...

2837
来自专栏人人都是极客

剖析自动驾驶双目视觉解决方案

未来十年,为了完成从感知+预警到决策+执行的进化之路,高级辅助驾驶系统(ADAS)将接入更多的传感器,实现更为复杂的计算,同时具备更高的安全性。 双目视觉简介 ...

3864
来自专栏斑斓

软件设计的风格

? 1 风格对于软件系统,犹如文化对于人类社会,对于组成系统的各个要素(无论模块、组件、对象还是函数),都会施加影响,只要是在运用该风格的边界范围之内。 这种...

3544
来自专栏人工智能头条

微博深度学习平台架构和实践

1624
来自专栏人工智能

老师木讲架构:深度学习平台技术演进

新智元推荐 来源:OneFlow 【新智元导读】近日,袁进辉(老师木)代表OneFlow团队在全球互联网架构大会上海站做了《深度学习平台技术演进》的报告。报告包...

3678
来自专栏腾讯高校合作

【犀牛鸟论道】深度学习的异构加速技术(一)

一、概述:通用 == 低效 作为通用处理器,CPU (Central Processing Unit) 是计算机中不可或缺的计算核心,结合指令集,完成日常工作中...

3385
来自专栏机器之心

业界 | 深度学习芯片公司Graphcore初探:颠覆GPU、FPGA和CPU的新一代处理器IPU

选自Nextplatform 作者:Nicole Hemsoth 机器之心编译 参与:朱朝阳、侯韵楚、李亚洲、黄小天 ? 作为思维锻炼,让我们将神经网络视为大量...

2444
来自专栏腾讯架构师的专栏

给 AI 换个“大动力小心脏”之通用 CNN 加速设计

基于 FPGA 的通用 CNN 加速设计,可以大大缩短 FPGA 开发周期,支持业务深度学习算法快速迭代;提供与GPU相媲美的计算性能,但拥有相较于 GPU 数...

1.2K2
来自专栏量子位

详解谷歌第二代TPU:功耗性能究竟如何?巨头想用它干什么?

安妮 陈桦 编译自 The Next Platform 量子位 报道 | 公众号 QbitAI 在上周召开的Google I/O 大会上,谷歌正式公布了第二代T...

3094

扫码关注云+社区