论文阅读 | Formalizing Visualization Design Knowledge as Constraints: Actionable and Extensible Models in Draco
1. introduction
程序员编写的可视化图表与专家眼中的设计标准总存在差距。我们无法每次都向可视化专家咨询设计上的意见,所以我们需求将设计标准,研究成果应用于自动化设计工具的正式框架,这些工具有助于对于推荐数据的合理编码和正确的视觉探索方式。我们建议将可视化设计标准建模为约束的集合,并结合从实验数据中学习到的软约束的权重,使用求解器把理论设计知识具体的,可扩展和可测试的表达出来的系统。我们使用draco实现了我们的想法,draco是一个基于答案集编程(asp)的基于约束的系统。本文的贡献可以概括为以下三点:
- 本文提出了一种自动化可视设计的规范框架 ,使用一些设计规范来帮助用户制作好的可视化设计
- 本文将可视化设计建模为约束条件进行最优化求解,有些约束条件是硬性条件(必须满足),有些是软性条件(带有惩罚)
- 本文基于clingo,这是一种基于答案集编程(asp)的求解器,还有vega-lite, 这是一种json化的可视化图表语法
2. related work
visual encoding principles
可视化设计标准定义了在可视化图表当中最基本的概念,mark是可视化中的基本图形元素,channel是表达数据的方式和频道。比方说一张折线图,它的mark是线段,channel是位置(高低)。
除此之外,可视化还将数据类型data定义为:continuous(数值型,10英尺,23岁),ordered(离散型,有大小之分,如星期几),categorical(离散型,无大小之分,如苹果,梨子)三类。将处理数据aggregate分为,sum, mean,count,median。
vega-lite
vega-lite吸收了前任对于视觉编码的研究成果,并参考了d3,visql(tableau前身)等可视化语言。 vega-lite结合了传统的图形语法,提供了可视化编码规则和分层和多视图显示。用户通过组合选择来指定交互式语义。在vega-lite中,选择是一种抽象,它定义输入事件处理,兴趣点和包含测试的谓词函数。选择通过用作输入数据,定义比例范围或通过驱动条件逻辑来参数化可视编码。 vega-lite编译器自动合成必需的数据流和事件处理逻辑,用户可以覆盖这些逻辑以进行进一步的自定义。
automated visualization design
过去的自动化设计系统使用预先设计的规则对用户的需求进行判定,通过聚类和穷举(dfs),最后得到一个有限集合,通过ranksvm等排序算法,得到最后的偏好。这种方案的缺陷在于,穷举的搜索策略是深度优先搜索,复杂度过大,还有很多回溯,这对于大型设计空间来说效率低。 draco使用现代约束求解器和标准化的表示语言,并且还提出了软约束的概念,增加了灵活性。最近的一篇自动可视设计系统是来自idl实验室的voyager 2。
3. modeling visualization design in draco
- 硬性可视化约束规范
如前文所述,draco当中的规则分为硬规则和软规则。硬规则包括一些可视化图表内部的逻辑(比方说折线图无法表示种类等等),还有许多用户自己定义的偏好。这些规则必须被满足。
mark ∈ {bar, line, area, point}
channel ∈ {x, y, color, text, shape}
field ∈ {site, year, age}
type ∈ {categorical, continuous}
aggregate ∈ {sum, mean, count, median}
zero ∈ {yes, no}
我们还可以写多条件 硬规则,如下所示
- :- x
x这种情况不会发生
- :- channel(_,shape), not mark(point)
表明对于形状编码必须是是“点” ,其他标记类型(如区域,线,条或文本)不能对形状进行编码。
- :- mark(bar), channel(e, y), continuous(e), not zero(e)
表明必须使用零作为基线的垂直条形图。
- 软性可视化约束规范
- :~ x [w]
倾向于x这种情况不会发生,如果违反那么会有w的惩罚
- :~ continuous(e), not zero(e) [5]
表示模型更喜欢连续字段的坐标从零开始,并且违反规则会使这个模型的cost增加5
- 通过以下的语句定义数据的信道偏好设置
:~ channel(e,y), type(e,nominal). [0] :~ channel(e,x), type(e,nominal). [1] :~ channel(e,column), type(e,nominal). [2] :~ channel(e,color), type(e,nominal). [3]
假设我们有m个软性约束,pi为第i个约束,每个约束的惩罚为wi
令 s = {(p1, w1)… (pi, wi)} npi(v)是v这种视图违反软约束pi的次数,那么cost可以定义为:$cost(v)=\sum_{i=1..k}wi*n_{pi}(v)$
这样我们通过求解器可以通过这些权值得到不同可视化图表的偏好。
4. user study
- 比较试验
本文将draco与voyager2中使用的compassql求解算法做比较,将compassql中的规定转成draco中的 -: x(硬规则),将compassql中的偏化转成draco中的 ~:x(软规则)。实验结果可以发现,compassql中复杂的规则语句在draco只需要短短几句。
- 使用ranksvm训练软约束参数
本文使用ly. kim and j. heer. assessing effects of task and data distribution on the effectiveness of visual
encodings,和 lb. saket, a. endert, and c. demiralp. task-based effectiveness of basic visualizations. 所用到的实验数据,训练软约束参数,获得了比原先自定义不同的可视化结果。
5. conclusion
作为今年infovis的best paper,本篇文章确实可圈可点,本论文的文档,在线演示可以看https://uwdata.github.io/draco/。下面是总结
本文提出了目前最完整的自动化可视设计框架
这个框架具有高度灵活性和可训练性
未来它将支持推荐更复杂的图表或者仪表盘
这个系统为 理解可视化语法,创新可视化设计,理解不同编码的感知 都有不可或缺的作用
上一篇: Linux命令之mount挂载
下一篇: Ubuntu系统安装并运行sublime