VizML: 基于机器学习的可视化推荐方法

sdq
Explore, Think, Create
4 min readJun 6, 2019

欢迎关注我的人机交互与可视化设计专栏

论文发表于CHI2019,作者为Kevin Hu (MIT Media Lab), 原文地址:https://vizml.media.mit.edu/assets/2019-VizML-CHI.pdf

数据可视化在探索数据、传达信息与数据决策的过程中起到了举足轻重的作用,然而制作一个数据可视化却并非一件易事,在选择可视化设计的过程中需要有相应的背景知识,这点对于新手来说尤其困难,对于经验丰富的可视化设计师来说也是一项耗费精力的工作。

VizML希望通过机器学习的方法来解决这个问题,让计算机来代替人们的可视化设计决策,在给定数据集后自动挑选可视化形式(柱状图、折线图、散点图等),并且自动决定在x轴和y轴上分别放置什么数据。

下图是可视化设计的过程示意图,左侧的圆表示完整的设计空间,用户在这个空间中进行可视化探索(Visual Exploration),期间要求最终的设计选择能够保证完成任务、保证设计美学等等。整个设计过程其实是一个决策过程,最终我们会得到一系列比较完美的设计选项。

使用机器学习进行可视化推荐的流程如下所示,对于给定的数据集我们会找到对应的设计空间。通过我们的学习方法,推荐系统会给出一个推荐的选项,要使得这个推荐结果和理想结果接近。

训练数据

大部分现有的可视化推荐系统都是基于规则的,比如Tableau中集成的ShowMe和Excel里的自动推荐。而VizML则是直接从数据中去学习这些规则知识,所以对于机器学习方法来说,训练数据是最重要的。在挑选数据集的时候,我们要求包含数据本身和数据对应的可视化。

VizML挑选了一个公开的数据可视化平台Plotly,用户可以在该平台上通过写代码或者交互式的方式创建数据可视化,并发布到用户社区中。使用Plotly社区的API,爬取100万个数据与可视化的数据对。

特征提取

对于单个的数据集我们需要对其进行特征提取,特征提取的内容如下图所示,对于每一个数据集中的每一维可以提取一个81维的特征,维度两两之间可以提取30维特征,最后通过16个Aggregate的方法把这些特征整合在一起,这样每一个数据集可以总共提取一个841维的特征向量。

训练过程

训练的完整流程如下图所示,其中对于单个维度会单独训练可视化编码层面的信息,比如使用什么Mark,是否共享坐标轴,是在X轴上还是在Y轴上等。而对于每个数据集则会训练最终是使用什么类型的可视化(柱状图、折线图等)以及是否只有一个轴。这些信息最终会输入一个神经网络中进行训练。

评估

使用众包的方式对结果进行验证,VizML在两种情况下(两种可视化类型和三种可视化类型)均比其它模型要更优(DeepEye和Data2Viz),在三种可视化类型的情况下甚至比人类的选择要更好一些。

结论

  1. Plotly公开社区的数据可以用作数据集-可视化训练集来进行推荐系统的训练。
  2. 使用机器学习的方法可以有效还原Plotly用户的可视化设计选择。
  3. 使用众包的方法来验证了该推荐系统的有效性。

--

--