论文阅读 | Falcon: Balancing Interactive Latency and Resolution Sensitivity for Scalable Linked Visualizations
作者: Dominik Moritz, Bill Howe, Jeffrey Heer
发表于CHI 2019, 三位作者都来自于University of Washington Interactive Data Lab
项目代码:https://github.com/uwdata/falcon
简介
Linked Visualization(链接可视化系统)是通过刷选、放缩等操作,在不同可视化视图上进行交互,链接(link)不同视图的操作,并更新视图的一种可视化方式。为了支持有效的探索,Linked Visualization必须提供快速响应来消除延迟敏感。在百万级以上的数据量时,传统可视化方法无法实现实时的探索,引出一系列问题。
本文提出falcon,一个大数据Linked Visualizations的低延迟方案,实现对十亿数据集的冷启动探索。falcon平衡交互延迟和视图精度,从查询和界面系统两方面对Linked Visualizations进行优化,降低刷选和链接(brushing and linking)的延迟。结合数据索引,数据预取和渐进式交互等方法,falcon系统使用加载数据子索引来优化刷选延迟,通过逐步加载交互式分辨率,以减少视图切换时间。实验表明,falcon实现了50fps的刷选交互延迟,无需昂贵的预计算和存储代价。
相关工作
- Linked Visualization在商用可视化软件,如tableau, powerBI, DataV中应用非常广泛。他们经常使用直方图作为可视化方式,辅以brushing and linking 作为交互手段,让用户在展示不同维度的视图之间交互式刷选部分子集,同时在其它视图间同步展示子集结果。
- 在论文The effects of interactive latency on exploratory visual analysis(2014 TVCG)中,Liu and Heer指出超过500ms的延迟会对用户行为造成较大影响,用户对刷选(brushing and linking)相比平移(pan)和缩放(zoom)有更高的延迟敏感度。
- 过去的工作采用预处理数据索引或者稀疏数据块的方案来达到加快可视查询和交互的目标,但它们无不会导致高昂的计算和存储代价。这些文章有imMens(2013 EuroVis), Nanocube(2013 VIS)等等。
- falcon分解高维数据索引,分解后它仅支持与单个活动视图的交互,当用户与特定视图交互(active view)时,将其所需部分数据索引进行加载。这样每次交互所需索引的大小在视图数量上是线性的,这避免了维度爆炸。
界面设计
- falcon提供了一个可视化的视图仪表板,具有零,一个或两个维度的直方图。如图显示的是flights数据的可视化结果。每个视图都支持刷选,放缩,平移的功能,通过brushing and linking同步更新所有视图的查询结果,此外还可以通过按钮来选择是否查看没有被过滤的数据。
- 需要注意的是正在刷选的视图是主视图(active view), 其余都是次视图(passive view),上图中鼠标所正在刷选的(第二行第二个)就是active view。
算法与模型
数据索引
大数据可视化系统中,我们常常使用数据索引来存储数据,以此优化后端处理中的时间复杂度和空间复杂度。数据索引又叫data tile, datacube。如下图所示,一个1维的直方图,我们可以使用一个同样长度的数组,每条数据按照维度信息放入相应的数据方格当中,形成数据索引。如果是2维的直方图,同理,我们需要一个2维的数组(一个平面)作为数据索引,此时每个直方图的相应格子就是平面中的某一行或者某一列的和。3维依次类推,是一个立方体,此时每个直方图的相应格子就是立方体中的某个平面的和。
假设数据条数是T, 维度数为m, 每个维度的划分精度为n,那么构建时间复杂度: $O(T)$,空间复杂度: $O(n^m)$,查询复杂度: $O(n^{m-1})$。可以发现空间复杂度和查询复杂度都随维度呈指数型增长,这样在高维度(多视图)的可视化系统中,存在巨大的维度灾难。针对较高的查询复杂度,我们可以使用sum area table将查询复杂度降到$O(2^m)$,但是处理数据索引的空间复杂度依然巨大,当可视化系统的前后端分离的情况下,更会带来巨大的传输延迟和存储负担。
本文针对这个情况提出处理当前刷选窗口(active view)相关的数据子索引的方案,有效减小了空间复杂度,也一并减少了查询复杂度。假设有5个维度,每个维度粒度是10,显示五个单维度的直方图。旧方案需要$O(10^5)$的空间复杂度和$O(2^5)$的查询复杂度(有sum area table), 只会预处理一次。新方案冷启动无需预处理,每次切换刷选窗口(active view)时需要O(4 * 100)的空间复杂度和仅仅O(4)的查询复杂度。
Falcon 采用两种数据索引的实现方案。一是如果数据量比较小(< $10^6$), 会直接在前端生产高维数据索引, 进行查询。二是如果数据量很大,通过后端的高性能GPU数据库(OmniSci)来生成数据索引。由于falcon只需要当前界面数据子索引的思想,有效减小了响应时间。
延时加载与线性插值
有时计算数据索引需要很长时间,falcon会优先计算粗精度下的数据索引,之后再加载细精度的索引。如果框选范围处于条形图的中间位置,falcon会使用线性插值的方式进行拟合。论文通过实验证明,尽管使用线性插值,真实值和拟合值的Wasserstein distance处于非常小的范围内(99%的情况下< 0.01)。
实验
作者将Falcon与SquareCrossfilter进行了比较,记录了300万条记录的5个视图的刷选实验结果。Falcon的性能是恒定的,接近浏览器的最大帧速率60fp。反观SquareCrossfilter,当向刷选开始和结束过程中,系统会反应缓慢。
此外本文还针对不同数据集进行了测试。下表统计不同数据集大小的所有视图的在切换刷选窗口(active view)的等待时间的平均值,中位数和第95百分位树,分别在像素分辨率(1维为500个bins,2维200×200bins)和bin分辨率(1维25bin和2维25×25bins)下进行统计。测试结果其中包括了网络传输的时间,灰色显示计算第一个视图的传输完成的时间,Browser指只有前端的实现方法,Core指使用GPU数据库作为后端的实现方法。
实验表明:
- falcon对于只有前端和前后端分离的两种方案,都有显著的性能提升。
falcon的框选操作的时长不再取决于原数据量大小,框选精度不再取决于原本数据的最小精度。
falcon通过逐步加载和线性插值的方式来减小用户在数据量较大时的不舒适感。
总结
针对大数据Linked Visualizations,本文提出了考虑刷新延迟优先于视图切换延迟,以及降低交互的初始分辨率以改善视图切换时间的方案。基于原型系统falcon,当连接到后端GPU数据库系统时,falcon支持流畅浏览和刷选数十亿条记录,而无需昂贵的预计算或其他内存等方面的限制。但falcon还有许多不足之处,如:
falcon只实现了关于求和的功能,并不涉及中位数,平均数等更复杂的计算。也不涉及非数值型数据的计算。
默认用户每次只会刷选一个视图,如果用户使用的是触屏设备,这个假设就会被推翻。
更注重刷选的操作,对于缩放等操作并没有进行优化和讨论。
对于数据索引的处理方面有更多的发挥空间,比如数据压缩,中间件的处理等等。
总之,falcon从一个不同的视角解决了Linked Visualizations的刷选延迟问题,实现了对十亿数据集的冷启动探索。
论文阅读 | Falcon: Balancing Interactive Latency and Resolution Sensitivity for Scalable Linked Visualizations的更多相关文章
- Event StoryLine Corpus 论文阅读
Event StoryLine Corpus 论文阅读 本文是对 Caselli T, Vossen P. The event storyline corpus: A new benchmark fo ...
- YOLO 论文阅读
YOLO(You Only Look Once)是一个流行的目标检测方法,和Faster RCNN等state of the art方法比起来,主打检测速度快.截止到目前为止(2017年2月初),YO ...
- [论文阅读] ALM-HCS(高对比场景自适应对数映射)
[论文阅读] ALM-HCS(高对比场景自适应对数映射) 文章: Adaptive Logarithmic Mapping for Displaying High Contrast Scenes 1. ...
- 论文阅读(Xiang Bai——【PAMI2017】An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition)
白翔的CRNN论文阅读 1. 论文题目 Xiang Bai--[PAMI2017]An End-to-End Trainable Neural Network for Image-based Seq ...
- BITED数学建模七日谈之三:怎样进行论文阅读
前两天,我和大家谈了如何阅读教材和备战数模比赛应该积累的内容,本文进入到数学建模七日谈第三天:怎样进行论文阅读. 大家也许看过大量的数学模型的书籍,学过很多相关的课程,但是若没有真刀真枪地看过论文,进 ...
- 论文阅读笔记 - YARN : Architecture of Next Generation Apache Hadoop MapReduceFramework
作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 更多论文阅读笔记 http:/ ...
- 论文阅读笔记 - Mesos: A Platform for Fine-Grained ResourceSharing in the Data Center
作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 更多论文阅读笔记 http:/ ...
- Deep Reinforcement Learning for Dialogue Generation 论文阅读
本文来自李纪为博士的论文 Deep Reinforcement Learning for Dialogue Generation. 1,概述 当前在闲聊机器人中的主要技术框架都是seq2seq模型.但 ...
- 论文阅读笔记 Word Embeddings A Survey
论文阅读笔记 Word Embeddings A Survey 收获 Word Embedding 的定义 dense, distributed, fixed-length word vectors, ...
随机推荐
- 每日一问:谈谈 SharedPreferences 的 apply() 和 commit()
SharedPreferences 应该是任何一名 Android 初学者都知道的存储类了,它轻量,适合用于保存软件配置等参数.以键值对的 XML 文件形式存储在本地,程序卸载后也会一并清除,不会残留 ...
- python数据库-MySQL数据库的增删改查基本操作(49)
一.数据库基础 表 table:数据是保存在表内,保存在一个表内的数据,应该具有相同的数据格式 行:行用于记录数据 记录:行内的数据 列:列用于规定数据格式 字段:数据的某个列 主键:唯一地标识表中的 ...
- FluentValidation:一个非常受欢迎的,用于构建强类型验证规则的.NET 库
1. FluentValidation:一个非常受欢迎的,用于构建强类型验证规则的.NET 库 请求参数实体定义: FluentValidation 验证类定义: 过滤器:ActionFilter中O ...
- C++学习书籍推荐《Exceptional C++(英文)》下载
百度云及其他网盘下载地址:点我 作者简介 Herb Sutter is the author of three highly acclaimed books, Exceptional C++ Styl ...
- C# 使用表达式树获取特性的值
一.定义特性 /// <summary> /// 定义特性 /// </summary> [AttributeUsage(AttributeTargets.Field | At ...
- Running Code on a Thread Pool Thread_翻译
The previous lesson showed you how to define a class that manages thread pools and the tasks that ru ...
- 关于红黑树(R-B tree)原理,看这篇如何
学过数据数据结构都知道二叉树的概念,而又有多种比较常见的二叉树类型,比如完全二叉树.满二叉树.二叉搜索树.均衡二叉树.完美二叉树等:今天我们要说的红黑树就是就是一颗非严格均衡的二叉树,均衡二叉树又是在 ...
- Spring+MyBatis时Access denied for user '高欢欢'@'localhost' (using password: YES)的异常解决方案
今天在做spring+mybatis整合的时候系统只要一运行就会报下面的错误,搞了几个小时硬是没有找的原因 警告: com.mchange.v2.resourcepool.BasicResourceP ...
- VS2010 winform开发笔记---combox的SelectedIndexChanged事件及级联问题
DisplayMember绑定需要显示的数据表字段, 而ValueMember绑定需要获取选择的项的值. 然后通过 combo.SelectedValue就可以取得选中项的值了. DisplayMem ...
- 消息中间件及IBM MQ
MQ 消息中间件: 中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源. 中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯.是连接两个独立应用程 ...