作者 | 林峰
在前不久的上海外滩大会上,蚂蚁集团资深技术专家林峰分享了企业级数据可视化应用的机遇与挑战,以及蚂蚁是如何实践的,我们将内容整理出来与大家分享。
大家好,很荣幸有机会能在这给大家做个分享,今天准备的主题叫做“企业级数据可视化应用的机遇与挑战”,偏向于设计体验和工程实现,主要来自于过去这些年自己在这个领域内的一些实践体会和思考,希望作为引子能给大家带来一点灵感或启发。
AntV 是蚂蚁集团的数据可视化解决方案,甚至可以说是整个阿里数据可视化的基础设施,从15年发起至今已经迭代了5年,支撑着集团内外2万+企业级应用。在这些年里我们也走过弯路,踩过很多坑,也逐渐看到些这个领域未来的趋势,所以会有今天想跟大家分享一些我们的实践和思考。
企业级应用为什么需要数据可视化
对于这个问题,在我看来最主要是两方面的原因,第一方面是因为企业级数据的特征,在当下,我们的身边,IoT 设备,云上无时无刻不在高速的产生着海量的数据,不仅是数字、文本还有各种各样的图片、音视频,这些数据内还蕴含着复杂的多维交叉、时序关系、空间信息等等,互联网企业无一例外,都需要挖掘这些数据做经营决策分析,产品改进等等,但在这快速海量多样价值稀疏的数据中萃取价值的难度不亚于淘金。
而另一方面,数据可视化对我们来说恰好是一个不错的淘金工具。我想主要有三点:
第一点是图形图像识别是人类本能,我们知道阿拉伯数字在1200年前后才被广泛使用,中国的甲骨文数字出现在公元前1600年,世界上最早的楔形文字大概出现在公元前3000年,而最早的洞穴壁画在4万年前就有了,人类习惯用图形图案去表达比用文本、数字早了4万年,科学的实验证明我们对图形图案的处理速度比文本、数字高出1到2个数量级。
而更重要的是人类花了370万年的才习得这个技能,更别提30亿年的生物进化,人类大脑有超过50%的组织用于视觉处理相关,眼睛是人类最快也是最主要的信息输入通道,我想人类基因再怎么突变在我们有生之年都不会改变人类对于图形图案高效识别本能。
第二,在可视领域里我们管这个特性叫隐喻,不管是从300年前发明的折柱饼还是当代的一些新型表达,大家会发现,能流行起来的一定都是那些跟我们生活、常识紧密相关的视觉表达,就像这些。原因很简单,易理解,在可视化领域里对认知效率的追求就像写程序时对性能的追求一样的原始、朴素。
最后一点是统计学加成,不管是简单的加和、平均还是复杂的聚类、回归,统计学是让一组数据变成一个洞察的催化剂,而且随着计算机领域的算法、算力增强,会进一步放大数据可视化的优势,因而也间接增强了人类的认知能力。
所以总结来说,数据可视化是数据淘金的必备工具,而且看起来会在未来很长很长的时间里都还会是一个不错的工具。
也正因为这些原因,我们可以看到在数据行业的版图里,有大量数据可视化强相关的产品、应用,特别是在数据分析、商业智能领域,数据可视化成为了这些产品的核心竞争力,有着数千亿美元的市场规模。
回到蚂蚁集团,在我团队参与的数百个企业级应用里超过8成需要数据可视化的能力,占比远远高于toC类的产品,从最普遍的业务系统上的各类报表,到垂类的数据场景应用,比如像性能监控系统、流量分析应用,再到复杂的如算法搭建、数据加工等研发平台,以及重度依赖可视化的商业智能,蚂蚁集团有着极其丰富的数据可视化土壤。
这就是为什么我们需要数据可视化,为什么我们会投入那么多时间,人力去打造这样一个数据可视化基础设施。
数据可视化面临的三大问题与挑战
第二部分,想和大家分享一下在数据可视化产品设计,应用研发上我们面对哪些主要的问题与挑战,以及我们是如何应对的一些思考。
第一个挑战是设计陷阱,有过这方面系统研发的朋友应该都会深有体会,理想很丰满,但现实很骨感,我们很多产品设计图上都很好看,俨然一个指挥作战中心一样,总览全局,洞察鲜明,但上线后却发现各种别扭,真实应用环境中的畸形的数据分布,类目过多等等都会让原本看起来还不错的设计变得一团糟。
一眼就能看出来的问题通常都比较好解的,为了避免研发上线后再返工,通常我们会要求在产品设计阶段就尽可能拿到真实数据作为输入,了解到真实的数据特征后再做设计,我称这个要求叫“始为真”,真实数据,真实特征;
但更难或者说更不易被发现和解决的问题是那些看起来还行,但总觉得别扭的case,我们发现这图没啥用,但这图所要展现的数据又十分重要不能没有,比较常见的就像一些一年都非常平滑的性能指标、汇总数据,角色构成等等,这些线图、饼图你什么时候来看都长得差不多,细微的变化差别你根本发现不了,而且更可怕的是就算能把变化展现出来,很多数据可视化产品设计上并没考虑分析目标,用这样一个图去表达这份数据究竟想看到什么,如果这条曲线上去了或下来了我们的用户会进一步想知道什么,会从哪些角度进一步分析,相关的决策动作是哪些?如果不往前再想一步,或者说不从终点倒推回来做设计,产出往往就会变成很多报表模块的通病“so what?Useless”
比如在这个图分析相关的项目中,用户会从一个目标节点开始查询,不断查看和展开与该节点直接或间接关联的节点进行探索分析。一开始大家也不知道该如何展现这样一个复杂的关系网络,使用了最常见的力导向算法做布局,但不管如何调整布局参数,依然一片混乱,传递不了有效的信息。但当我们反过来去探寻用户的分析目的关键是要做团伙发现,关键扩散路径,有了这个分析目标的输入,很快就有了相对应的基于特定属性的聚类布局去做团伙发现,用方便查看一度二度邻居关系的径向布局去找寻关键扩散路径。我称这个要求叫“终为实”,实际分析意图,实际决策依据。
甚至更进一步,单一的静态设计已经不能满足动态数据和分析意图变化的需求,我们还会去做运行时的动态增强,比如我们发现饼图出现大量长尾类目时会自动提醒做类目合并减少干扰,条形图自动排序,图表类型切换建议等等。
始为真,终为实,运行时增强这是我们应对设计陷阱的三个主要对策。
第二个挑战是研发困境,正如外滩大会的主题,支付宝希望推动全球金融普惠,背后所依靠的是我们的技术普惠,不仅仅是我们的产品能够服务更多的人,同时也希望我们的基础技术可以赋能给到更多的人使用。然而数据可视化这个方向本身还是有比较高的门槛,掌握各种数据分析、几何计算、图形语法等技能的专家们手里有 D3、Highchart、Tableau等各种武器,他们懂得用什么样的可视表达能解决什么样的分析需求。然而对于更多并不需要成为这个方向专家的平民来说,他们用的是Excel、PowerPoint甚至Photoshop,大量的研发实现都是找到一个看起来跟需求差不多的demo,复制粘贴。但事实上很多看起来差不多的实现可能技术选型都是有问题的,比较常见的比如一个图分析用了一个统计图表库,用离线的地理数据去做一个面对公众的应用,移动应用上用了一个给大屏用的框架等等。
我们希望给大家提供一套完整的,面向各类细分应用场景,专业的企业级数据可视化解决方案,所以会有了 AntV 这个产品矩阵,这是一个按数据特征水平分域,按能力封装垂直分层的开源产品矩阵。
常规统计数据域上我们有前端领域内最完备的图形语法实现 G2,这就是刚才主持人介绍的那个获得图形语法奠基人Wilkinson肯定的项目,这是最主要的数据域,而且为了满足支付宝这种国民级的移动端应用对性能和体积的苛刻要求,我们定制了移动端的实现 F2,大家在支付宝上看到的很多财富收益变化、基金走势等等背后都是 F2,今年的 11.22,AntV 品牌日上,F2 应该还会有一个惊喜给到大家。
第二个重要的数据域是关系数据,这是反映现实世界的特征数据,不管是我们人与人之间的关系,企业间的往来,点对点的物流通通都可以用关系数据表达,今天上午,就在咱们这个会场举办的正是“图智能”的分论坛,讲了很多实时图计算,时序图智能方面的技术,图数据的应用对金融领域来说实在太重要了,不管是风控、推荐还是反洗钱等都需要用到图数据,蚂蚁不仅有图数据库 Geabase,有金融知识图谱平台,还有大量的图分析应用,这部分的需求我们用 G6 去支撑。与此同时,基于图编辑的交互方式去做业务领域建模,流程任务编排,机器学习的算法搭建近两年成为了主流的交互方式,我们其实 4 年多前就有深度依赖图编辑的应用存在,去年我们决定把这个模块的内核抽取出来去应对这个越来越旺盛的需求,在今年 11.22,我们会正式开源这个项目 X6。
第三个重要的数据域是地理空间数据,可能大家对这个数据领域并不陌生,我们早已熟悉各类 LBS 应用,但我想说的是单从数据可视化角度来说,这是一个风险极高的领域,市面上大量离线地图应用基本都是不合规的,不说满足一图一审的要求,一份完全合规的离线地理数据就已经有非常严苛的标准,AntV 的每一个产品都被成千上万个的应用所依赖,这点我们不敢掉以轻心,这就是典型的看起来都差不多,但背后的专业度可能相差十万八千里的项目,在地理空间数据域上我们有 L7.
分层是平衡灵活性和易用性的常用手段,构建在这些基础类库上我们有更高度能力封装的项目,像 G2Plot、Graphin 等等就不多介绍了,这些都可以在 AntV 官网上找到。
但有了一个比较完整的产品方案还远远不够,我们希望研发门槛能够进一步降低,在平衡灵活性和易用性上分层封装能让我们100行原始代码变成50行,但我们仍需要通过学习大量使用文档才写得出这50行代码,我们希望我们的用户不需要看文档,也不需要50行那么多,是否可以就一行代码,这不是什么天荒夜谈,我们已经在做了,半年多前的SEE Conf上我们演示过 AVA 的原型,感兴趣的朋友可以线上找到 AntV 的这个分享。我希望 AntV 的产品矩阵和智能研发能解决掉大部分的研发实现上问题。
最后一个更大的挑战,是解读诉求的升级,过往企业级的数据可视化诉求更多都只是简单直接的叙述,描述性分析,但随着越来越多可视分析的人才和理念从学术界走到工业界,出现了大量灵活多变的探索需求,圈取、联动、下钻,探索性分析逐渐成为标配,这方面我们目前也没有很成熟的解法,应对这挑战,一方面我们会从业界,特别是学术界引进可视化方向的专业人才,另一方面结合业务诉求我们自己也做了大量创新尝试,就像KPI指标的可视化拆解,波动分析等等,如果大家有这方面的想法欢迎更多的交流。
数据可视化未来趋势
关于未来趋势,我想和大家分享一个我对数据可视化发展的思考模型,过去的一些技术判断以及对未来方向的预判其实都是从这个模型而来。
正如刚才所说,数据特征对数据可视化来说是一个很重要的维度,大家看到 AntV 目前的产品矩阵设计其实只是这个模型的一个切面,跟数据特征同样重要的还有两个维度。
其中一个是时间,从时间的维度观测数据可视化的能力你会发现,我们绝大部分的应用都在展现过去的数据,一个时刻的单一数据和一个时间段上的汇总数据,本质上并没有区别,都是单点数据,比如用一个饼图去看某个组成。而当多个这样的点按照先后关系排列出来就会进入离线序列的阶段,对离线序列的可视表达跟对单点数据的表达方式是很不一样的,因为观测点更多会落在变化上面,就像我们会常用折线图去看趋势,会用动画去表达变化本身。离线序列再往前走会走到实时序列,这里面很关键的一个技术推动力是 5G/IoT 时代的到来,他会让实时计算成为主流,同样也会对实时数据可视提出新的要求,特别是在性能上,对响应时间、算法处理都会有更高的要求,另外,我认为对实时序列观测点更多会落在异动上,视觉呈现会有更多变化残影的设计去体现实时的状态。
第三个维度是分析,Gartner 给出了分析发展的几个阶段,描述性分析、诊断性分析,这包含刚才我们提到过的探索性分析,这是我们当下的主流阶段,随着 AI 技术的发展,AI 跟可视化的结合我们会把我们带入到预测性分析和规范性分析,这不仅会大大降低我们获得数据洞察的成本,提高效率,而且还会带来更具决策建议的洞察从而产生更大的价值。
所以从这几个切面去看企业级数据可视化的未来发展,能看到几个比较明朗的趋势:
第一个趋势是智能化,从设计、研发、展现到分析,每一个阶段都有跟AI结合的地方,就像阿里云 DataV 从手绘设计稿自动生成代码的功能已经在生产环境上投放,刚才提到过的 AVA 在研发阶段的智能辅助,图表推荐也验证了可行性,我们内部的 BI 系统正在探索洞察的自动解读,自然语言查询和增强分析,今年初我写过一篇文章,讲的就是智能数据可视化时代的到来(传送门:欢迎进入 2020 数据可视化智能研发时代),相信接下来的几年会有突破性的进展。
第二个趋势是平民化,这是我手机里的几张照片,第一张是我支付宝上买的一个基金的走势,第二张我家附近菜市场的门口的大屏,第三张是在杭州到千岛湖路上某个高速公路服务区厕所门口的引导牌。有充分的理由相信,随着IoT设备的增多,数字生活服务普及,数据可视化会在我们生活中无处不在,可视化不再只是给数据科学家用的工具,我们要有更多让老百姓一看就懂的设计。
第三个趋势是决策集成,想想假如我们的数据能实时到来,决策建议能自动产生,需要我们做的就是判断是否执行,就像一个陌生来电系统提醒你这是一个被200人标记为电话推销号时一样,你闲着没事可以选择听听卖啥,也可以果断挂掉。所以以终为始的看,数据可视化的价值是决策执行后带来的,他前置依赖辅助决策时给的行动建议,而能给出行动建议的一个很关键技术能力是增强分析。我想未来的数据可视化应用都会有决策集成,就像一个数字驾驶舱一样,不仅只是看,更重要的是连接起各个系统,下发行动指令。
这是今天分享的全部内容,可能只是企业级数据可视化应用机遇与挑战的冰山一角,欢迎大家补充,数据可视化是一个即古老又年轻的领域,期待有机会跟大家有更多的交流,谢谢大家。
🔥第十五届 D2 前端技术论坛开放报名,速抢!
关注「Alibaba F2E」
把握阿里巴巴前端新动向