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

  1. 硬性可视化约束规范

如前文所述,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)

表明必须使用零作为基线的垂直条形图。

  1. 软性可视化约束规范
  • :~ 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

  1. 比较试验

本文将Draco与voyager2中使用的CompassQL求解算法做比较,将CompassQL中的规定转成Draco中的 -: X(硬规则),将CompassQL中的偏化转成Draco中的 ~:X(软规则)。实验结果可以发现,CompassQL中复杂的规则语句在Draco只需要短短几句。

  1. 使用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/。下面是总结

  • 本文提出了目前最完整的自动化可视设计框架

  • 这个框架具有高度灵活性和可训练性

  • 未来它将支持推荐更复杂的图表或者仪表盘

  • 这个系统为 理解可视化语法,创新可视化设计,理解不同编码的感知 都有不可或缺的作用

论文阅读 | Formalizing Visualization Design Knowledge as Constraints: Actionable and Extensible Models in Draco的更多相关文章

  1. Nature/Science 论文阅读笔记

    Nature/Science 论文阅读笔记 Unsupervised word embeddings capture latent knowledge from materials science l ...

  2. [论文阅读笔记] metapath2vec: Scalable Representation Learning for Heterogeneous Networks

    [论文阅读笔记] metapath2vec: Scalable Representation Learning for Heterogeneous Networks 本文结构 解决问题 主要贡献 算法 ...

  3. [论文阅读笔记] node2vec Scalable Feature Learning for Networks

    [论文阅读笔记] node2vec:Scalable Feature Learning for Networks 本文结构 解决问题 主要贡献 算法原理 参考文献 (1) 解决问题 由于DeepWal ...

  4. [论文阅读笔记] Are Meta-Paths Necessary, Revisiting Heterogeneous Graph Embeddings

    [论文阅读笔记] Are Meta-Paths Necessary? Revisiting Heterogeneous Graph Embeddings 本文结构 解决问题 主要贡献 算法原理 参考文 ...

  5. [论文阅读笔记] Structural Deep Network Embedding

    [论文阅读笔记] Structural Deep Network Embedding 本文结构 解决问题 主要贡献 算法原理 参考文献 (1) 解决问题 现有的表示学习方法大多采用浅层模型,这可能不能 ...

  6. [论文阅读笔记] Adversarial Learning on Heterogeneous Information Networks

    [论文阅读笔记] Adversarial Learning on Heterogeneous Information Networks 本文结构 解决问题 主要贡献 算法原理 参考文献 (1) 解决问 ...

  7. 《Learning to warm up cold Item Embeddings for Cold-start Recommendation with Meta Scaling and Shifting Networks》论文阅读

    <Learning to warm up cold Item Embeddings for Cold-start Recommendation with Meta Scaling and Shi ...

  8. [论文阅读] ALM-HCS(高对比场景自适应对数映射)

    [论文阅读] ALM-HCS(高对比场景自适应对数映射) 文章: Adaptive Logarithmic Mapping for Displaying High Contrast Scenes 1. ...

  9. 论文阅读(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 ...

随机推荐

  1. 查看oracle数据库版本

    1. 登录sysdba用户 sqlplus / as sysdba 2. 方法一:v$version SQL> select * from v$version; 3.  方法二:product_ ...

  2. 2018 ACM-ICPC 中国大学生程序设计竞赛线上赛 F题 Clever King(最小割)

    2018 ACM-ICPC 中国大学生程序设计竞赛线上赛:https://www.jisuanke.com/contest/1227 题目链接:https://nanti.jisuanke.com/t ...

  3. python第八课——random模块的使用

    2.2.如何获取随机整数值? 引入random模块的使用 randint(a,b)函数:作用:返回给程序一个[a,b]范围内的随机整数注意:含头含尾闭区间 思路步骤: 第一步:导入random模块到相 ...

  4. Geeks : Kruskal’s Minimum Spanning Tree Algorithm 最小生成树

    版权声明:本文作者靖心,靖空间地址:http://blog.csdn.net/kenden23/.未经本作者同意不得转载. https://blog.csdn.net/kenden23/article ...

  5. Cannot find module 'webpack/lib/node/NodeTemplatePlugin' 问题原因和解决方案

    当我配置了html-webpack-plugin 打包时报了这个错,查看了一下package.json发现没有webpack,说明使用了全局安装的webapck,导致的版本差异. 这里在本地安装web ...

  6. c++——对象的构造和析构函数、构造函数的分类及调用

    1构造函数和析构函数的概念 有关构造函数 1构造函数定义及调用 1)C++中的类可以定义与类名相同的特殊成员函数,这种与类名相同的成员函数叫做构造函数: 2)构造函数在定义时可以有参数: 3)没有任何 ...

  7. C#中的结构体与类的区别 (转载)

    经常听到有朋友在讨论C#中的结构与类有什么区别.正好这几日闲来无事,自己总结一下,希望大家指点. 1. 首先是语法定义上的区别啦,这个就不用多说了.定义类使用关键字class 定义结构使用关键字str ...

  8. Twenproxy介绍

    1 Twenproxy介绍 Twemproxy是为memcached或者Redis集群提供一个高速.轻量级代理服务.它的主要用途是降低对缓存server打开的连接数.它的主要特性例如以下: l  保持 ...

  9. p标签不自动换行原因

    前言:发现以前写的就像是笔记,哪像博客啊,这里再次修改. 问题描述: 在固定宽度的p元素里(任何块级元素同理),长单词不自动换行,中文字符会自动换行,效果如:http://codepen.io/ali ...

  10. 【10.21总结】一个渗透测试练习实例——发现未知的漏洞(Race condition)

    Write-up地址:Exploiting an unknown vulnerability 作者:Abhishek Bundela 这篇文章跟我之前看到的文章不太一样,作者是按照一个练习的方式简单描 ...