姬長信(Redy)

网易在智能分析领域的应用与实践

分享嘉宾:王文开 网易大数据

编辑整理:Hoh

内容来源:网易大数据 & DataFun Talk

出品社区:DataFun

注:欢迎转载,转载请注明出处


导读:DeepMind AI AlphaGo 展现了人工智能给我们带来的可能性,但是在星际 AI 上的困难,也体现了 AI 暂时的局限性,无法借用大量的知识积累,在发现数据和业务场景的关键性上缺少创造性思维。敏捷的可视化分析正是为了结合人类和计算机各自擅长的能力,来达到人机配合的高效分析。

本次分享将从以下三个方面做介绍:

PART 01 部门介绍

网易大数据主要分为俩部分:大数据底层的网易猛犸和大数据应用层的网易有数,具体介绍见下图。

PART 02

1. 网易数据平台发展史

经过多年大数据分析的技术积累,网易有数目前服务150+项目,报表20000+,用户超过3000,整个过程主要分以下几个阶段:

① 初级阶段:

② 起步阶段:

③ 整合阶段:

④ 提速阶段:

这是目前大多数公司的分析方式:

这是我们认为比较高效的分析方式:

2. 当时面临的挑战

① 分析工具层面:

② 用户层面:

③ 对数据产品的要求

PART 03

1. 智能分析平台:网易有数

网易有数是企业级大数据智能可视化分析平台,他可以通过拖拽,自然语言搜索的方式,智能化的完成数据分析与探索。下图为网易有数的编辑界面。

2. 易用性

网易在智能分析上的探索:具有易用性、智能化的可视化系统中的图形智能推导技术。

具体表现为:

下面为大家展示一些 Demo:

① 易用:拖拽、点击、完成一份精美的报告

https://api.cocoachina.com/uploads//20190903/1567478948203712.mp4

② 智能推荐:“还可以怎么看”

根据图表当前的字段,能够匹配值最适合展示的图表类型,用户可以轻松点击完成图表制作。

③ 智能位置匹配:“应该怎么看”

用户双击某个感兴趣的字段,字段会自动匹配放置到最合适的位置。

④ 智能问答:基于自然语言绘制图表

基于用户的文字输入,匹配出最合适的图表,并给出相应的推荐。

https://api.cocoachina.com/uploads//20190903/1567480202528183.mp4

VQL

上述的功能我们是如何做到的呢?实际上,有数在拖拽式数据建模、查询和可视化背后的核心逻辑就是我们把它编译成了 VQL(Visual Query Language),一种可以拖拽式生成的数据可视化请求语言

接下来,将为大家详细讲解下背后的逻辑:

这是图表的界面,它的面板显示了 X 轴,Y 轴分别代表了什么,以及一些筛选条件,这其实就对应了我们的 VQL。

因为要支持拖拽字段的方式生成图表,所以需要解析图表配置面板上的信息,可视化查询也就是图表数据面板上面的字段配置信息,比如 X 轴 Y 轴哪些字段,顺序是怎么样的。

配置的背后会表示成类似 json 格式的结构,会告诉我面板 X 轴上有什么,Y 轴上有什么,颜色上有什么,等等。

当这个配置传给平台端之后,会根据配置做两件事情:

一个图表构成的要素有以下三个:

对于上图,可以看到 X 轴和 Y 轴的配置,根据这个配置我们会得到中间的图,这里有个定义,Pane 是相同结构的东西,如左图,Pane 里面会有一个 Cell,所以通过这个配置,我们得到了一个2*3的透视结构,有6个 Pane(块),12个 Cell(格子)。

结构知道之后,我们需要把数据从数据源中调取出来,当有了数据之后,就可以根据数据结构来切分数据,切分成一个个 pane 和 cell,在这之后,就是智能推导模块要做的事情,寻找最合适的标记组合图形语句。

这里不得不提图形语法,它阐述了一个重要的概念:

所以,图表也是由一些基础的组件,搭建而成的,如坐标轴,平或者扁的标记,颜色等等配合而成的。那么,网易有数在做智能推导的时候,也是运营了图形语法:

这里引用陈为老师《数据可视化》中的例子说明:

图 A 表示了三个不同班级的数学平均分,用柱状图表示,矩形作为几何标记,柱状图的高度作为一个视觉通道,编码了数学平均分的值;

图 B 中,我们想在 A 的基础上多展示语文平均分这一项数据(即增加了一个数据维度),则选用点这个形状作为几何标记,点的横坐标编码语文平均分的值;点的纵坐标编码数学平均分的值。

这时候发现图 B 中我们把班级这个数据维度给丢掉了,于是我们可以用颜色这一视觉通道来编码班级这个属性信息,如图 C。

如果我们还想展示班级人数这一信息,则可以用尺寸这一视觉通道来编码,如图 D。

所以有数的面板中也会有几何标记和视觉通道。

那么说了这么多,想表达的意思就是,我们希望通过寻找合适的标记组合,把图形展示出来。

举个例子,上图就是车辆颜色销售额的排名,那么这张图在有数是怎么做出来的呢。

它是由这两张图合并出来的,上边是用线做出来的图表,下面是用点和数字做出来的图表,它们表示的都是同一个意思。

寻找最合适标记的方法:

① 数据角色 ( Role ):维度 ( Dimension ) 、度量 ( Measure )

② 数据阐释 ( Interpretation ):离散 ( Discrete )、连续 ( Continuous )

③ 数据类型 ( Type ):整数、小数、字符串、日期、时间、地理等

① 轴的配置+视觉属性

图形语句合并的时候,会有一些算法逻辑包含在里面。

最后,VQL 主要的内容解析完毕之后生成的透视表结构,数据,以及推导出来的抽象图表描述将会交给图标合成层,合成最终将在前端渲染出来的图表配置。在这个模块中,VQL 中剩下的一些信息,如用户自定义的轴的范围,数据格式等将会被解析执行。这就是 VQL 智能生成与解析的完整链路流程。

使用 VQL 让网易有数具有以下的这些优点:

以上就是今天要解决的第一个点:易用性,以及在智能化上的探索。

3. 洞见性

从上图可以看出,很多时候,我们停留在什么地方?比如我们用一个分析工具,来描述当前的业务现状,做了一些报表,做了一些监控,帮助我们发现问题,但是其实用户更想知道的是为什么会发生这些问题,未来是否还会发生这样的问题,是否可以提前知道,应该该如何解决,这块我们把他认为是高级分析领域,目前大多数分析师,还是停留在知道发生了什么。

针对这样的问题,我们有了智能模块,包括:智能洞察、智能问答、机器学习。

① 智能洞察

比如我想查看下华东和东北为什么会有这么大的差异。

这里会有两种,一种是对比分析,一种是解释分析。

② 智能问答:自然语言解析

智能问答的作用有很多:

如上图,我们输入了“2018年销售额情况”,下面就是我们智能问答给出的结果:

③ 机器学习算法

这是常用的一些机器学习算法,直接集成在网易有数中,比如回归、聚类、时序预测等,这里并不是做成黑盒傻瓜式的工具,而是根据用户自己的需求进行选择。

4. 高性能

影响性能的因素:

性能优化的点很多,这里以报告性能为例:

报告性能由会由几部分构成:页面渲染、数据查询,网络延迟等等,页面渲染通常比较容易优化的,这里的难点在数据查询,它跟用户数据源的性能是强相关的,如果用户数据源性能非常差,那么请求就会非常慢,经常落库查询会需要 20s,但是如果可以命中缓存的话,其实只需要 0.06s。

所以,我们的思路就是如何做缓存:

这里我们有两个层面:

① 数据驱动,从被动缓存(可能用户第一次查询这个数据的时候会非常慢,那没关系,这时我们已经把它缓存了,当用户再次查询这个数据的时候就会非常快)到定时缓存(用户第一次查询还是很慢,这时就会采用定时缓存,比如每天3:00定时把报表都重新刷一遍,这样就起到了加速的作用,但是这种方法对计算资源消耗非常大),这时我们就采用了数据驱动缓存:

比如说我有这些报名,它们背后都有对应的数据模型在猛犸中,所以表数据有没有更新完,猛犸是很清楚的,当表猛犸更新完之后来主动触发对所有图表的缓存,这样就解决了缓存的问题,同时也实现了图表级的缓存。

② 精细化

从对报告级缓存,到页面级缓存,再到图表级缓存,越来越精细化。从上图可以看出,当达到图表级的时候,对系统的压力就非常分散了。

5. 分析思路产品化

这也是我们有数在做的事情,分析思路产品化:当用户使用的时候只需要选择对应的模板,把自己的数据替换进去,就可以了。

PART 04

最后给大家分享一些案例:

https://api.cocoachina.com/uploads//20190903/1567481072451987.mp4
这是我们的一些大屏展示
这是生成海报的例子

最后,欢迎大家登入官网体验我们的智能分析平台:

https://youdata.163.com/

嘉宾介绍

王文开,网易大数据资深数据产品专家,复旦大学软件工程硕士,从事多年可视化分析工作,具备丰富的数据分析、智能分析实践及应用经验,熟悉国内外主流 BI 产品。目前任职网易数据科学中心,负责网易数据分析产品设计工作。

——END——