AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


用自然语言提示词就能轻松完成UI数据可视化
发布日期:2024-11-12 06:47:38 浏览次数: 1596 来源:苏哲管理咨询


编者:各类专业咨询顾问,投资分析师、财务人员、企业经营管理人员等业务用户不懂编程,如何用AI工具辅助类似Excel更便捷整理数据和输出自己偏好的数据UI样式。在使用 AI 驱动的数据可视化工具时,你是否遇到过这些难题?比如,当你想要设计图表时,需要一次性描述你的可视化需求,既冗杂又繁琐;再比如,当你想要更改图表设计时,又需要从头重新输入一遍你的文本提示,AI 可能还会出错。现在,微软雷德蒙研究院深度学习组推出了 Data Formulator 工具。结合图形化用户界面和自然语言输入,该工具可以更加智能地完成你的数据可视化需求,它不仅支持通过简便地拖拽来生成图表,还能自发生成原来没有的数据概念,而且,可以通过 prompt 轻松完成各阶段的图表迭代。Data Formulator 现已开源。Data Formulator 的独特之处在于,它允许用户通过自然语言添加原始数据中不存在的数据概念(data concept)到可视化映射中,从而打破现有数据格式的限制,实现更加深入和丰富的可视化设计。

数据可视化是分析数据、激发灵感的重要手段。在将数据转化为图表的过程中,通常会先利用数据处理工具对数据进行预处理,再通过可视化工具将数据映射为图形,并根据图表效果进行必要的调整或进一步设计。随着大语言模型的进步,AI驱动的数据可视化工具使创作过程变得更加简便。例如,通过自然语言描述可视化设计,大模型便能自动生成代码完成任务,大大节省了数据转换和可视化的工作量。


然而,如何有效利用AI 更好地辅助数据分析师进行可视化创作,仍面临诸多挑战。特别是在可视化创作的迭代过程(iterative process)中,我们往往无法一蹴而就。每次更新设计都需要重新处理数据和绘制图表。当前 AI 可视化工具大多要求创作者通过文本提示(prompt)一次性描述完整的可视化需求,这不仅使得描述过程冗长繁琐,而且难以精确传达丰富的视觉信息。此外,当需要不断迭代更新设计时,每次也都要从头描述设计需求,既耗时又费力,且 AI 可能也无法一次性准确完成任务。微软推出这样的一个开源数据可视化工具Data Formulator 22023年推出的1版本)。


-Data Formulator 2:使用 AI迭代创建丰富的可视化开源技术报告


王成龙,微软研究院,美国 李奉真,韩国延世大学  STEVEN DRUCKER, DAN MARSHALL, 高建峰,微软研究院,美国


图1. 使用Data Formulator 2,分析师可以在数据线程中浏览迭代历史,并选择之前的设计以便重新用于新设计;然后,使用Concept Encoding Shelf,分析师可以使用混合UI和自然语言输入来指定他们的图表设计,将数据转换工作委托给AI。创建新图表时,数据线程会进行更新以供将来参考。Data Formulator 2 可在 https://github.com/microsoft/data-formulator 获取。


为了创建丰富的可视化,数据分析师经常需要在数据处理和图表规范之间来回迭代以实现他们的目标。为了实现这一点,分析师不仅需要熟练掌握数据转换和可视化工具,还需要努力管理包含许多不同版本数据和图表的分支历史。最近由LLM技术驱动的人工智能系统极大改善了可视化作者的体验,例如通过LLM的代码生成能力减少手动数据转换障碍。然而,这些系统在迭代可视化创作方面效果不佳,因为它们通常要求分析师在一个回合中提供一个仅包含文本的提示,充分描述待执行的复杂可视化任务,这在许多情况下对用户和模型都是不现实的。在本文中,我们介绍了Data Formulator 2,这是一个由LLM技术驱动的可视化系统,用于解决这些挑战使用Data Formulator 2,用户通过混合UI和自然语言输入描述他们的可视化意图,并将数据转换委托给人工智能为了支持迭代,Data Formulator 2允许用户浏览他们的迭代历史,并重复使用先前的设计以创建新的设计,这样他们就不需要每次都从头开始。在一项包括八名参与者的用户研究中,我们观察到Data Formulator 2使参与者能够制定自己的迭代策略来完成具有挑战性的数据探索会话。


作者联系信息:王成龙,chenglong.wang@microsoft.com,微软研究院,华盛顿州雷德蒙德,美国;李凤神,b.lee@yonsei.ac.kr,韩国首尔延世大学;史蒂文·德鲁克,sdrucker@microsoft.com,微软研究院,华盛顿州雷德蒙德,美国;丹·马歇尔,danmar@microsoft.com,微软研究院,华盛顿州雷德蒙德,美国;高建峰,jfgao@microsoft.com,微软研究院,华盛顿州雷德蒙德,美国。


目录


1简介


2示例场景:探索可再生能源趋势


2.1使用计算笔记本进行探索


2.2数据制定者2的探索


2.3探索经验的比较

3数据表达式生成器2系统设计


3.1多模态用户界面:解耦图表规范和数据转换


3.2数据线程:浏览迭代历史


3.3杂项:检查结果并设置图表样式


3.4实施


4评估:迭代式探索性分析


4.1研究设计


4.2结果


5相关工作


6结论


致谢


参考文献


1 简介  


从最初的设计理念开始,数据分析师经常需要在各种图表之间来回反复,直到达到他们的目标。在这个迭代过程中,除了更新图表规范,分析师还面临着转换和管理不同数据格式的挑战,以支持这些可视化设计。迭代式图表创作在探索性数据分析中很常见[42],分析师经常从最初的图表中发现新的方向。例如,在注意到图1关于可再生能源占比的折线图对比不同国家趋势时非常密集后,分析师可能希望对其进行过滤,仅显示排名前5的CO2排放国的趋势,或者每年可视化这些国家的排名。为了实现这些目标,分析师需要不同的数据转换:前一种需要根据每个国家的累积二氧化碳排放量来过滤数据,后一种需要按年份分割数据以计算每个国家的排名。类似的挑战也出现在数据驱动叙事背景[40, 41]中,作者需要推导新数据来完善图表设计(例如注释)。例如,为了突出哪些国家在可再生能源采用方面处于领先地位,作者会在折线图上叠加一个全球中位采用率的趋势线;作者可能随后将图表转换为小多面图,讲述关于每个大洲中最可持续的国家的故事。再次,这些新的设计需要从当前的结果进行数据转换。


在这些迭代的创作过程中,同时管理不同的数据和图表设计是具有挑战性的。当分析员提出新的图表设计时,他们不仅需要了解图表和工具期望的数据格式,还需要知道如何使用各种转换运算符(例如重塑、聚合)。


使用数据转换工具或库(如窗口函数,字符串处理)来准备数据。已经开发出许多基于人工智能的工具来解决这些可视化挑战(例如,[2, 9, 26, 31, 54, 55])。这些工具让用户用自然语言描述他们的目标,并利用底层人工智能模型的代码生成能力 [1, 5] 来自动生成代码来转换数据并创建可视化结果。尽管它们取得了成功,但当前的工具在迭代式可视化创作环境中表现不佳。大多数工具要求分析员在单次输入中提供一个仅包含文字的提示,完全描述要执行的复杂可视化创作任务,这种要求通常对用户和模型都不现实。


首先,尽管自由文本提示提供了无限的表达性,让用户描述他们的可视化意图,但它们缺乏UI 交互的精确性和便利性,使用户难以清楚地描述在后续迭代阶段中提出的复杂设计。例如,用户需要详细的提示来清楚阐述他们想要在每个视觉通道中使用哪些字段以创建一个分面条形图;若没有这样的提示,AI 模型可能会误解意图并创建不需要的图表,需要用户进一步澄清。系统可以为用户提供即时的视觉反馈。实际上,撰写高质量的提示需要技巧和努力。即使心中有明确的目标,对于缺乏经验的用户来说,清晰地描述他们的意图也是具有挑战性的。


现有的基于人工智能的工具仅支持单轮或线性与AI模型的交互,因此无法适应在迭代创作过程中常见的分支和回溯。要以迭代方式使用单轮文本到可视化工具,用户每次创建新设计时都需要从头重新指定他们的意图,即使设计更新仅是轻微的。这不仅对用户耗时,而且增加了AI模型无法完成任务的机会,因为模型需要在一个步骤中解决复杂的任务。虽然基于聊天的工具[26, 34, 66]通过在后续轮次中重用先前的输出来支持多轮交互,但对于分支情境并不奏效。当非线性情境合并到线性历史中时,不仅用户难以沟通下一个迭代应该使用哪些设计,而且AI模型也难以正确从庞大的对话历史中检索相关内容。


为了克服这些限制,我们设计了一种新的交互方式用于迭代图表制作。我们的关键思想是将GUI和自然语言(NL)输入相结合,使用户既能够精确地指定图表,又能够灵活地进行操作,并为用户设计了一个界面来控制上下文,使用户能够浏览和重用以前的设计,而不是每次都从头开始。我们通过概念编码架构实现了这一设计,用于指定超出数据格式约束的图表,并通过数据线索管理用户的非线性创作历史(图1)。


图表规范与混合UI 和 NL 输入类似于he concept encoding shelf

配置 UI [40, 55],概念编码货架允许用户拖动他们希望可视化的现有数据字段,并将它们放置到可视通道中以指定图表设计。不同的是,使用概念编码货架,用户还可以在图表配置中输入新的数据字段名称,以表达他们希望从转换后的数据中可视化的字段。然后,他们可以提供补充的 NL 指令来解释新字段,并要求 AI 转换数据并实例化图表。这种图表规范的混合 UI 和 NL 方法使用户输入既精确又灵活。由于 Data Formulator 2 可以精确提取来自编码货架的图表规范,用户不需要冗长的提示来解释设计。通过使用 NL 输入传达数据语义,用户将数据转换委托给 AI,因此他们不需要担心数据准备。这种方法还提高了 AI 模型的任务成功率。因为 Data Formulator 2 可以直接从 UI 输入推断出可视化脚本,所以AI 模型只需要生成数据转换代码。通过以图表设计作为 AI 模型的上下文,模型有更多信息来为更好的代码生成基于用户指令。管理和利用迭代上下文与数据线程。Data Formulator 2 将用户的非线性迭代历史呈现为数据线程,并让他们管理在整个过程中创建的数据和图表。使用数据线程,用户可以轻松导航到以前的结果,创建一个新分支,并重用其上下文来创建新的图表这样,用户只需告诉模型如何更新先前的结果(例如,“仅显示前 5 个二氧化碳排放最高的国家的趋势”,图 1),而不是从头开始重新描述整个图表。当用户决定重用时,Data Formulator 2 会定制对话历史,只包括对该数据相关的上下文,以生成带有清晰上下文信息的代码,而不会包含其他线程的(不相关的)消息。除了一般的导航和分支支持外,数据线程还为用户提供了快速回溯和修改提示以更新最近创建的图表的快捷方式,这对于分析师探索替代设计或纠正 AI 的错误非常有用。


基于这两个关键设计,我们开发了Data Formulator 2,这是一个基于人工智能的迭代可视化工具,用于创建可视化内容。Data Formulator 2支持由Vega-Lite标记和编码提供的多样化可视化,并且人工智能可以灵活地转换数据以适应不同的设计,支持重塑、过滤、聚合、窗口函数和列派生等操作。与其他人工智能工具一样,Data Formulator 2也为用户提供面板,用于查看生成的数据、转换代码和代码解释,以便检查和验证人工智能的输出。


为了了解Data Formulator 2的多模态交互如何有助于分析人员解决具有挑战性的数据可视化任务,我们进行了一个用户研究,参与者包括八名具有不同数据科学专业知识的人员。


他们被要求复现两位专业数据科学家的分析会话,共创建了16个可视化图表,其中12个需要进行非平凡的数据转换(例如,按照标准对类别进行排序,并将排名低的类别合并为一个带有标签“其他”的类别)。研究表明,参与者能够快速学习使用Data Formulator 2来解决这些复杂任务,Data Formulator 2的灵活性和表达力使参与者能够制定自己的验证、错误更正和迭代策略来完成任务。我们对研究会话的归纳分析揭示了用户对AI系统的体验和期望如何影响他们的工作方式的有趣模式。


总之,本文的主要贡献如下:


我们设计了一个多模态UI,由概念编码架(concept encoding shelf)和数据线程组成,以混合UI和NL交互,让用户能够指定他们的意图进行迭代图表创作。


图2. 一次数据分析会话,分析师在一个关于20个国家2000年至2020年二氧化碳和电力数据的数据集中探索不同能源的能源、可再生百分比趋势,以及国家按其可再生百分比排名。分析师必须创建五个数据版本,以支持三个分支中不同图表设计。数据制定者2允许用户管理迭代上下文,并使用融合的用户界面和自然语言输入创建丰富的可视化。


  • 我们使用交互式可视化工具Data Formulator 2 来实现我们的设计,该工具使用户能够在途中进行多轮数据转换,以便迭代创建需要丰富数据转换的可视化效果。

  • 我们进行了一项用户研究,以了解混合 UI 和自然语言交互如何使分析师在数据探索会话中受益。我们观察到,分析师可以轻松地制定自己的策略,让 AI 系统执行数据分析和可视化任务,最能体现他们个人的经验和对 AI 模型的期望。




2   示例场景:探索可再生能源趋势


在本部分中,我们描述了几种场景,以说明用户使用一个包含20个国家从2000年到2020年能源数据的数据集创建一系列可视化图表的体验。初始数据集如图2-1所示,包括每个国家每年从三个来源(化石燃料、可再生能源和核能)生产的能源量,以及年二氧化碳排放值(二氧化碳排放数据仅涵盖2000年至2019年)。我们比较了一名专业数据分析员使用计算笔记本的体验,以及一位记者使用Data Formulator 2 完成图2所示的分析会话的体验。


2.1  使用计算笔记本进行探索


Heather是一名分析师,精通计算笔记本和R库,如ggplot2和tidyverse。因为ggplot2希望所有数据字段都可视化在视觉通道(例如x轴、y轴、颜色、facet)中作为输入数据的列,因此Heather使用tidyverse进行数据转换。


基本图表。Heather想要通过一条线图来可视化各国多年来的可再生能源产量,以了解“我们的地球是否可持续”。由于输入数据(表1)包含所有必要字段,Heather通过将Year→x、可再生能源发电量(Twh)→y和Entity→颜色(图表1-A)进行映射,轻松创建了线图。然后,她又创建了另一条CO2排放趋势的线图,将CO2排放量(kt)映射到y轴(图表1-B)。Heather感到困惑,中国这个可再生能源使用大幅增加的国家,CO2排放量也增加最多。这是令人费解的,因为可再生能源本身不会导致CO2排放增加。因此,Heather决定深入研究。


可再生能源与其他能源之间的对比。Heather怀疑二氧化碳排放增加是由于化石燃料消耗增多。为了比较化石燃料的使用与可再生能源,她希望有一个能够将每种能源的电力并排显示的分面折线图(图2)。为了创建这个图表,Heather需要一个数据表。


以列-年份、电力、实体和能源来源为列,并将这些列分别映射到x、y、颜色和分面,使图表根据能源来源列的值分成子图。由于表1以宽格式存储了电力数值,Heather将表1转换为长格式,将指定的列名折叠为能源来源字段中的值,并将相应的数值折叠为电力字段中的值。然后,她创建了转换后的数据2的所需图表2,并验证了她的假设:尽管可再生能源的使用增加,但化石燃料的使用也显著增长,导致二氧化碳排放量增加。这促使Heather通过可视化三种资源中来自可再生能源的电力百分比趋势来探索可再生能源的趋势。


可再生能源比例和排名。为了可视化可再生能源比例,Heather回到了表格。


为了得出一个新的列“可再生能源百分比”,需要将每个国家每年生产的可再生能源电力(TWh)除以总产生的电力。使用这个新数据,Heather在图表3中展示了可再生能源百分比的趋势,该图表显示百分比的增长速度比它们的绝对值增长速度慢(如图表1所示)。


由于许多国家共享类似的可再生能源占比,因此很难比较不同国家的趋势。因此,Heather决定创建一个可视化图表,展示各国可再生能源比例的排名以补充现有的图表。为了计算每个国家在每年中的排名,Heather在表3上使用窗口函数,根据年份对表进行分区,并应用rank()函数到可再生能源百分比上以得出一个新的列Rank。通过将Rank映射到y轴,图表4允许Heather清楚地查看过去二十年来不同国家的排名变化;例如,德国和英国是排名最高的两个国家,在2000年从末尾包中脱颖而出。


顶部二氧化碳排放量最大的国家可再生能源趋势。最后,Heather想要关注顶部二氧化碳排放国家的可再生能源比例趋势,这对全球的可持续性产生最大的影响。尽管表3包含了所有需要可视化的列,Heather需要根据各国的二氧化碳排放量进行筛选。为此,Heather回到表1,汇总每个国家的总二氧化碳排放量,进行排序并找出排名前五位的国家。然后,Heather使用这个中间结果来筛选表3,获得排名前五位二氧化碳排放国家的可再生能源比例(显示为表5),并创建图表5。


图3. Data Formulator 2概览。用户通过为Concept Encoding Shelf提供字段(拖放现有字段或输入新字段)和自然语言指令来创建可视化,并将数据转换委托给人工智能。数据视图显示派生数据。用户可以使用Data Threads导航数据派生历史。然后,他们可以通过在Concept Encoding Shelf中提供后续指令找到所需点以进行细化或创建新图表。


从这张图表可以看出,尽管总二氧化碳排放量仍在增加,但排名前列的二氧化碳排放国确实在朝着可持续性发展的方向迈进。为了发布这个可视化图表,Heather 决定在图中添加一条注释,注明全球可再生能源比例的中位数。在表格5的顶部,Heather 添加了每年从表格3计算出的可再生能源比例的中位数,并包括了一个新的列“全球中位数?”,用作标志以帮助绘图,以便可以将全球中位数以不同透明度着色。图表6展示了最终结果,通过将全球中位数作为一个实体并将“全球中位数?”映射到透明度,中位数可再生能源比例以不同透明度的方式呈现在其他国家之中。Heather 对结果感到满意,并结束了这次会话。


2.2 数据制定者2的探索


Megan是一名记者,对数据可视化有着扎实的了解。她在工作中有效地利用可视化,但并不擅长编程。Megan可以使用Data Formulator 2(图3)来迭代地创建和优化丰富的可视化,该工具继承了基本的架构配置风格工具的经验。她可以通过将数据字段映射到所选图表的视觉通道来指定图表,并使用自然语言提供额外的背景信息。


基本图表。梅根从折线图开始,以可视化可再生能源的电力趋势(图2-1A)。由于输入数据中提供了所有三个必需的字段,梅根在编码货架中简单地选择“折线图”图表类型,并将字段拖放到相应的可视通道中(图4-1)。数据配方器2然后生成所需的可视化。为了可视化二氧化碳排放趋势,梅根将y轴编码与二氧化碳排放(kt)交换→y。


图4.使用数据公式化器2的经验:(1)使用拖放操作来编码字段创建基本的可再生能源图表;(2和3)通过提供字段名称和可选的自然语言说明来创建需要新字段的图表,以推导新数据。


可再生能源与其他能源之间的比较。Megan现在需要创建分面线图来比较所有能源来源的电力,这需要新的字段“电力”和“能源来源”。通过数据公式化2,Megan可以在概念编码架构中使用未来字段和自然语言指令来指定图表(如图3-2),并把数据转换委托给人工智能。


如图4-2所示,梅根首先将现有字段“年份”和“实体”拖放到x轴和颜色上;然后,在y轴和列中分别键入新字段“电力”和“能源来源”的名称,以告知。


AI智能体预计会从这些属性中衍生出两个新领域;最后,梅根提供了一项指示。


“比较来自所有三种来源的电力”,以进一步澄清意图并单击"制定"按钮。为了创建图表,Data Formulator 2 首先从编码中生成一个 Vega-Lite 规范框架(根据转换后的数据的信息完成);然后将数据、编码和 NL 指令汇总到一个提示中,要求一个 LLM 生成一个数据转换代码,以准备数据以满足所有必要字段,然后用于实例化图表框架。在审查生成的图表和数据之后,Megan 感到满意并进行下一个任务。


Data Formulator 2还会更新数据线程(图3-5),将新推导出的数据和图表与Megan可以管理和利用数据来源。例如,Megan可以删除图表,从原始数据或新数据创建/复制新图表,或选择现有图表进行迭代。


可再生能源百分比和排名。梅根继续将可再生能源百分比可视化。尽管需要进行不同的数据转换,但梅根享受着与前一个任务相同的经验:梅根将年份和实体拖放到x轴和颜色上(图4-3),并将新字段“可再生能源百分比”输入到y轴;然后,由于梅根认为字段名称是不言自明的,她继续制定新数据而不需要额外的自然语言指令。数据公式化器2生成所需的可视化结果(图5-1)。


为了可视化基于可再生能源百分比的国家排名,梅根决定继续使用已计算出可再生能源百分比的上一个图表。为此,梅根复制了可再生能源百分比图表,并将y轴字段更新为另一个新字段“Rank”,然后点击“派生”。如图4-3所示,梅根的交互将概念编码架板定位在之前的结果上下文中,与原始数据相对应,这表明她打算重复使用数据用于新数据。有了上下文信息,AI模型成功地根据梅根简单的输入派生出所需的图表(图2-4)。


2020年排放最多的二氧化碳排放国家的可再生能源比例趋势。接下来,梅根决定展示排名前5的二氧化碳排放国家的可再生能源比例趋势。梅根再次决定在前一图表的基础上进行迭代,否则她需要投入更多的精力来创建。


图5. 与数据格式化器2的迭代: (1) 在可再生能源百分比图表的顶部提供一个新的指令,只筛选出排名前五的CO2排放量最高的国家, (2) 更新图表,添加一个新的字段“全球中位数”,并指示数据格式化器2在排名前五的CO2排放量最高的国家的趋势旁边添加全球中位数, (3) 将“全球中位数”从列移动到不透明度,更新图表设计而不派生新数据。


长的提示来一次性指定任务。Megan首先使用数据线程(图3-5)来定位可再生能源百分比图表。除此之外,Megan在本地数据线程下方提供了一个新指令,“仅显示排名前5位的CO2排放国家趋势”,并点击了“推导”按钮(图5-1)。数据公式化器2更新了先前的代码,包括一个过滤子句以生成新的数据和可视化(图5-2)。


梅根继续进行迭代过程,除了前五个二氧化碳排放国家的趋势之外,还包括全局中位数趋势。由于这个新的图表需要不同的编码方式,并且她希望保留这两个可视化图表,梅根通过复制之前的图表分叉了一个分支。然后,她通过更新概念编码架构来添加一个新的编码"全局中位数?→列",并提供编辑指令“包括全局中位数作为实体”(图5-2)。一旦她点击推导按钮,数据公式化器2会生成新的图表(图5-3)。在检查后,梅根更喜欢将全球平均值呈现在不同的透明度下合并在一个视图中。由于这两个图表需要相同的数据字段,她只需选择一个新的图表类型“自定义线”(比基本线图公开更多的图表属性),并将全局中位数?移到透明度通道。因为它不需要数据转换,数据公式化器2不需要调用AI,直接呈现图表。所有期望的图表创建完成后,梅根结束了分析会话。图3-5显示了梅根创建的三个导致最终设计的线索。


2.3  探索经验的比较


Heather和Megan探索全球可持续性的经验(使用数据1)展示出一个固有的迭代过程。他们两人都从一个高层目标出发,没有具体设计在脑海中,逐渐从各个领域的探索中形成设计。这种迭代的探索过程需要一系列的数据转换和来源管理,因此对于不擅长数据转换和编程的人来说是具有挑战性的。在这里,我们比较他们的探索经验,突出Data Formulator 2如何弥合了Megan的技能差距,使她能够实现Heather作为经验丰富的数据分析师所进行的分析。


2.3.1   数据转换和图表创建


当考虑新设计时,Heather 需要准备新数据以适应设计,即使有些设计看似接近(例如,图表3和5)。这要求她了解图表所期望的数据形状,选择正确的转换惯用语(例如,对于表2使用 unpivot,对于表6使用 join 和 union),并使用适当的运算符实现它们。一旦数据准备就绪,Heather 可以通过将数据列映射到所选图表类型的可视通道来轻松指定图表。她在数据转换方面的熟练程度对于她创建丰富的可视化图形超出初始数据集至关重要。


为了弥合梅根在数据转换方面的技能差距,Data Formulator 2允许梅根在统一的交互中指定她的意图,结合图表编码和自然语言,无论背后需要的数据转换类型如何,数据转换都由人工智能来完成。因为概念编码架类似于架构配置界面,梅根在Power BI 中的经验能流畅过渡到 Data Formulator 2。此外,由于梅根使用概念编码来传达图表设计,她只需要提供一个简短的补充自然语言指令来澄清她的意图;基于这些输入,Data Formulator 2将组装一个详细的提示来与人工智能模型进行交流。如果梅根使用纯文本界面与人工智能交互,她需要提供更详细的提示来解释她的意图以避免歧义,包括解释她从拖放交互中创建的图表编码。


2.3.2  管理分支上下文


在探索过程中,Heather 多次回溯以重复利用之前的结果用于新设计(例如,图表 4 → 数据 3 → 图表 5),途中创建了三个分支。由于 Heather 在笔记本中编程,她可以复制和调整以前的代码片段,或者重复使用在前几次迭代中计算的变量用于新设计。这样,尽管新设计更加复杂,Heather 在规范工作方面却减少了努力。Heather 的编程专长对她在线性编程环境中管理分支上下文至关重要。


对于梅根来说,如果没有数据表达式2,管理具有不同数据版本的分支上下文可能会具有挑战性。如果梅根使用基于聊天的人工智能界面,她将需要准备详细的提示,以在每个轮次中详细解释上下文和数据转换目标,以避免额外的消除歧义的努力,特别是当多个分支混合在聊天历史记录中,并且任务后来变得更加复杂时。数据表达式2的数据线程解决了这一挑战。数据线程不仅为梅根提供了回顾历史记录的可视化,还让她访问以前的状态并将其重新用于新的分支,就像希瑟所做的那样。这样,梅根只需要指定要应用的更新,而不是一次性从头开始描述整个设计,人工智能模型可以更可靠地生成根据梅根提供的上下文信息的结果。如果梅根发现不希望的结果,她还可以使用数据线程(图3-3)重新运行或回溯一步来修订指令,而不是从头开始重新开始。


3  数据表达式生成器2系统设计


如前所述,Data Formulator 2将UI和NL交互结合在多模态UI中,以减少分析人员的可视化创作工作,并为用户提供数据线索,以浏览迭代历史并在之前的设计基础上指定新设计。Data Formulator 2采用以下系统设计来支持这种交互:


l首先,为了让用户能够从不同范例(架构配置UI与NL输入)中指定图表设计和数据转换目标,Data Formulator 2将图表规范和数据转换解耦,并使用不同的技术解决它们(模板实例化与AI代码生成)。


l其次,为了支持重用,Data Formulator 2 将迭代历史记录组织为数据线程,将数据视为第一类对象。Data Formulator 2 使用户能够从不同的分支找到图表并进行跟进,或者快速修改并重新运行导致当前图表的最新指令。


我们接下来详细介绍数据制定器2如何实现这些设计,以及为帮助用户理解人工智能生成的结果而设计的附加功能。


3.1 多模态用户界面:解耦图表规范和数据转换


Data Formulator 2将图表规范和数据转换分离,使用户既能从UI交互的精度中受益,以配置图表设计,又能从自然语言描述的表达性中指定。


图6. Data Formulator 2的工作流程。 (1) 在概念编码架上给定用户规范,Data Formulator 2首先从选定的图表类型生成一个Vega-Lite规范框架。 (2) 当图表需要新字段(例如,Rank)时,Data Formulator 2从概念编码架中编译提示,并要求其AI模型生成数据转换代码,以生成所需的数据。 (3) 完成后,新数据将与Vega-Lite框架实例化,以生成所需的图表。


数据转换的目标。如图6所示,在概念编码架上给定用户规范后,Data Formulator 2通过三个步骤生成所需的图表:(1)从选定的图表类型生成Vega-Lite脚本,(2)编译提示并委托数据转换给人工智能,(3)使用生成的数据实例化Vega-Lite脚本以呈现所需的图表。


图表规范生成。Data Formulator 2采用基于图表类型的方法来表示可视化,支持五类图表:散点图(散点图,范围点图)、折线图(折线图,虚线图)、条形图(条形图,堆叠条形图,分组条形图)、统计图(直方图,热力图,线性回归,箱线图)和自定义图表(自定义散点图,折线图,条形面积图,矩形图,适用于高级用户的所有可用可视通道均暴露出来)。每种图表类型被表示为具有一组预定义可视通道的Vega-Lite模板,包括位置通道(x,y),图例(颜色,大小,形状,透明度)和展示给用户的概念编码货架上的分面通道(列,行)。例如,一条线图被表示为一个Vega-Lite模板 {"mark": "line", "encoding" :{"x": null, "y": null, "color": null, "column": null, "row": null}},当用户选择折线图时,通道 xy、颜色、列和行显示在概念编码面板中。使用基于图表类型的设计,Data Formulator 2支持预定义的分层图表(例如,由线条和散点图组成的范围点图和线性回归图,见图7-右)。通过向库添加具有相应通道的新Vega-Lite模板,可以支持更多的图表类型(例如,指标图)。

当用户将字段拖放到概念编码架中,或者输入他们希望可视化的新字段时,Data Formulator 2将使用提供的字段实例化Vega-Lite模板。例如,如图6-1所示,当用户拖动Year→ x,Entity→ y并在y中键入Rank时,上述线型图模板将使用提供的字段被实例化:如果字段在当前数据表中可用,字段名称和编码类型都会被实例化(例如,Year类型为“时间”),否则编码类型被保留为“占位符”,以便在数据转换完成后再进行实例化。


货架配置设计为用户提供了简单而精确的交互。概念编码的货架节省了用户写提示以解释图表设计的工作。图7进一步说明了规范如何实现。


图7. 概念编码架构将用户的编码实例化为一个Vega-Lite规范。用户创建一个柱状图,显示带有“avg”操作符的国家平均排名在y轴上,并创建一个范围点图来比较每个国家在2000年和2020年的排名(图表模板将用户的x轴编码“实体”路由到x和详细通道)。


在概念编码架( Concept Encoding Shelf 中,Shelf与底层的Vega-Lite脚本相互作用。在图7的左侧,用户可以在y轴上指定一个“avg”操作符以转换轴,该操作符在脚本中实例化为y轴的“aggregate”属性。此外,图7的右侧展示了用户与分层图表(范围点图)进行交互的另一个示例:当用户在界面中填写字段时,数据公式化器2会将对应字段填充到预定义图表模板的不同参数中。


AI进行数据转换。从概念编码架构中,Data Formulator 2组装一则提示并查询LLM生成Python代码来转换数据。数据转换提示包含三个部分:系统提示,数据转换背景和目标(如图6-2所示,完整提示参见附录):


l系统提示描述了LLM的作用和输出格式。除了一般的角色描述(即LLM作为数据科学家帮助数据转换),系统提示指示LLM以两个步骤解决数据转换任务:(1)细化用户目标并输出为json对象,重述原始数据中需要计算的中间字段和最终字段,(2)根据提供的模板生成python代码。系统提示以输入输出示例(遵循少样本提示策略)结束,演示了该过程。 “目标细化”步骤背后的设计原理是允许LLM推理用户提供的字段和他们的指示之间的潜在差异(例如,用户可能询问颜色按能源类型,但却没有在颜色编码中加入“能源类型”),并确定要计算的最终字段列表。


lData Formulator 2然后组装一部分上下文提示,描述要执行的数据转换上下文。当从头开始创建图表时,上下文提示描述要转换的输入数据,包括其数据字段(数据类型和示例值)以及数据的前五行。数据上下文不仅帮助LLM了解用户指定的新字段的语义,还提供与数据格式相关的基本信息(特别是数据类型、字符串格式以及列是否包含空值),以确保生成的转换代码可以在给定的数据上执行。当在先前结果的基础上指定图表时,Data Formulator 2和LLM之间关于该数据的对话历史(包括用户的指令和LLM生成的先前代码)也被添加到上下文中。这样,尽管用户的后续提示可能很短,但通过与现实背景相关的上下文,模型可以理解用户意图并重复使用先前生成的代码。


l最后,Data Formulator 2组装了一个目标提示部分,结合了文本框中提供的NL指令和编码中使用的字段名。当用户跳过NL指令(如图4-3所示)时,指令部分将被简单地留空。在尝试生成数据转换代码之前,这个目标将被LLM作为系统提示的指令进一步完善。


带有完整输入的 Data Formulator 2 促使 LLM 生成一个响应,包括精炼后的目标和代码。下面显示了图 6 中任务的 LLM 精炼后的目标,生成的代码显示在图 6-2 中。


{"detailed_instruction": "计算每个国家从可再生能源中产生的电力百分比"}


每年的可再生能源产量。然后,按照每年各个国家的可再生能源比例对国家进行排名。


"output_fields": ["年份", "实体", "可再生能源百分比", "排名"],


"visualization_fields": ["年份", "排名", "实体"],


"reason": "为了实现按国家可再生能源百分比排名的目标,我们需要计算"


,计算每个国家每年的可再生能源百分比,然后根据这一百分比确定排名。" }



Data Formulator 2然后在输入数据上运行代码。如果代码执行无误,则使用输出数据实例化在前一步生成的 Vega-Lite 脚本,首先推断新生成列的语义类型(以确定它们的编码类型),然后将数据与脚本组装以呈现可视化效果(图 6-3)。偶尔生成的代码可能会由于尝试使用未导入的库、引用无效的列名称或不正确处理未定义或 NaN 值而导致运行时错误。当出现错误时,在要求用户重试之前,Data Formulator 2 尝试通过向 LLM 查询错误消息和后续修复指示来纠正错误 [8, 33]。修复完成后,类似地生成可视化。无论如何,Data Formulator 2 都会更新数据线程并向用户呈现结果。


3.2  数据线程:浏览迭代历史


在迭代式可视化过程中,分析师需要浏览他们的创作历史以定位相关的文物(数据或图表)以采取行动(删除、复制或后续操作)。数据调配器2引入数据线程来表示树形结构的迭代历史,以支持导航任务。在数据线程中,我们将数据视为第一类对象(数据线程中的节点),根据用户提供给AI模型的指令(边缘)连接这些对象,而可视化则附加到从中创建的数据版本上。围绕数据的迭代历史使用户导航受益,因为它直接反映了用户在创建这些新数据时的操作顺序。这种设计也使AI模型受益:当用户发出后续指令时,数据调配器2会自动检索其与AI关于当前数据的对话历史,然后指示AI模型根据检索到的历史重写代码以实现新目标。通过这种方式,AI模型不会因为错误地使用其他分支的对话历史而进行不正确的数据转换。如图8所示,代码和对话历史附加到每个数据节点上。每当用户提供后续指令时,AI模型通过更新先前的代码(可能是删除、添加或两者兼有)生成新的代码以实现用户的目标;这样,代码始终以原始数据作为输入,并且所有信息可访问。与另一种设计相比,在其他设计中,我们仅向AI模型传递当前数据并要求其编写新代码以进一步转换数据(即,重用数据而不是重用导致数据的计算)时,我们的设计更具灵活性,以适应不同风格的后续指令——无论是用户想要进一步更新数据(例如“现在,为每个国家计算平均排名”)还是修订先前的计算(例如“还要考虑核能作为可再生能源”)或创建备选方案(例如“按CO2排名”)——因为AI可以访问完整的对话历史和完整的数据集。相比之下,仅重用数据的方法会将AI模型的访问权限限制在当前数据上,从而限制其支持“回溯”或“备选设计”风格指令的能力。


图8.数据线程和本地数据线程(右)。在数据线程中,用户可以从先前版本的数据创建新的图表,并在主面板中打开先前的图表以创建新的分支;在创建新数据时,AI模型根据用户指令进行修改先前的代码。在本地数据线程中,用户可以轻松地(1)重新运行先前的指令,(2)发出后续指令,或(3)展开先前的卡片以修改和重新运行指令。


在迭代过程中,分析人员需要同时进行两方面工作:(1)定位远离当前数据或图表的数据,以在派生树中创建新分支,和(2)快速跟进/修订最新指令与最新数据。为了满足这些不同需求,数据公式化工具2呈现了全局数据线程和本地数据线程。在导航方面,主要挑战是帮助用户区分所需内容和其他内容,因此数据线程位于单独的面板中,显示数据、指令和图表的预览,以协助导航(见图3)。这种支持用户不同的导航风格,无论是他们想通过来源导航(即使用指令卡来定位所需数据)还是通过工件导航(即使用可视化快照来回忆数据语义)。一旦用户定位所需数据,他们可以单击并打开以显示在主面板中进行进一步更新的先前图表,以及直接从数据创建新图表(见图8-1)。为了支持快速从当前结果进行更新,数据公式化工具2旨在减少用户的交互开销。因此,本地数据线程被设计为主要作者面板的一部分(见图3)。本地数据线程仅可视化从初始数据到当前数据的历史,省略了图表快照以减少干扰(完整历史仍可在全局数据线程中找到)。通过将本地数据线程与概念编码架构集成,在数据公式化工具2中帮助用户理解作者环境,并使他们能够快速进行本地更新。如图8所示,用户可以重新运行先前的指令(例如,在AI生成不正确的结果时,他们想在更新指令之前快速重试),提供跟进指令以优化数据,以及快速打开先前的指令以修改并重新运行命令。


使用数据线程,分析师可以管理和导航历史记录,并从先前结果中执行迭代更新,类似于数据分析师在计算笔记本中重复使用代码和数据。否则,如果分析师需要从头开始,并一次性要求AI实现目标,他们需要努力准备非常详细的提示以减少歧义,特别是在描述后续分析阶段中他们需要的更复杂图表时。


3.3   杂项:检查结果并设置图表样式


作为一种基于AI的工具,Data Formulator 2允许用户验证由AI生成的结果并纠正AI的错误。它在主面板中显示了转换后的数据、可视化、代码以及代码的解释。这种设计考虑了之前研究中确定的各种用户验证风格 [12, 54]:例如,从图表中查看高级正确性,检查数据中的边缘情况,检查转换输出,以及从代码中理解转换过程。Data Formulator 2利用一个代码解释模块来查询AI模型,将代码翻译成逐步解释,帮助用户理解过程。此外,尽管在后续迭代阶段生成的数据转换可能很复杂,用户只需要验证其正确性与之前版本进行对比,因为Data Formulator 2用户是逐步创建可视化的。这显著降低了用户的验证工作量,正如我们在第4节中的研究中发现的那样。如前文所述,如图8所示,


当用户发现错误时,他们可以利用数据线程的迭代机制重新运行、跟踪或修订指令,以纠正结果。


受益于解耦的图表规范和数据转换过程,当用户希望更新可视化样式(例如更改颜色方案、更改轴的排序顺序或交换编码)而不需要额外的数据转换时,他们可以直接在概念编码架上进行编辑,通过展开通道属性并更新参数或交换编码字段。这些更新直接反映在Vega-Lite 脚本中,并在主面板中呈现。与与人工智能交互的方式不同,那种方式具有稍微延迟的响应时间,这种方法允许用户通过即时视觉反馈来精确而迅速地进行编辑,以完善设计。


3.4  实施


Data Formulator 2是作为一个 React Web 应用程序实现的,后端 Python 服务器在 Dv2 系列 CPU 上运行,配备 3.5 GiB RAM。Data Formulator 2 已经通过了对不同版本的 OpenAI 模型的测试,包括 GPT-3.5-turbo、GPT-4、GPT-4o 和 GPT-4o-mini(我们在用户研究中使用了 GPT-3.5-turbo),除了 GPT-4 外,其他模型通常可以在 10 秒内响应。由于 LLM 生成用于操作数据的代码而不是直接消耗数据,数据大小不会影响其响应时间。由于 Vega-Lite 渲染开销(例如,超过 20,000 行的大型数据集、超过 20 个图表的长数据线程),Data Formulator 2 有时可能会变慢,我们期望通过按需重新呈现图表来改善在部署中的性能。


4  评估:迭代式探索性分析


我们进行了一项用户研究,以了解Data Formulator 2 的潜在益处和可用性问题,以及用户在探索性数据分析会话中迭代创建可视化时所开发的策略。


4.1  研究设计


参与者。在与三名志愿者对用户研究和数据制定器2的设计进行试点和完善后,我们从一家大公司招募了八名参与者。参与者在以下方面自评其技能(见图9):(1)图表创建 - 对图表创作工具或库有经验,(2)数据转换 - 对数据转换工具和库专业知识有经验,(3)编程,和(4)AI助手 - 对大型语言模型(如ChatGPT [1])和提示有经验。


设置和程序。每个研究会话在屏幕共享的情况下进行,由四个部分组成,在2小时时间段内完成。在简要介绍研究目标之后,参与者被要求按照幻灯片中呈现的教程逐步指令进行操作(约25分钟)。为了确保他们理解工具和流程,练习任务(约15分钟)在教程期间和之后呈现,参与者在完成任务时可以提问。然后,参与者被要求完成两项研究任务,只有澄清.


图9. 参与者在图表创建、数据转换、编程和AI助手经验方面的自我报告角色和专业知识,以及他们在研究任务中所需的任务完成时间和提示。


参与者允许提出问题- 当他们遇到困难时,我们记录了他们对该工具的提示请求。这两个研究任务总共涉及创建16个可视化,其中12个需要数据转换。我们鼓励参与者在执行任务时大声思考。我们通过与参与者进行总结讨论会议结束本次会议:(1)比较他们使用 Data Formulator 2 的经验与他们用于数据分析的工具,(2)理解他们使用 Data Formulator 2 的策略背后的原因,以及(3)收集对该工具的印象和改进建议。我们鼓励参与者在各个阶段之间休息。


教程和练习任务。我们使用全球能源数据集(在第2节中描述)进行教程和练习任务。在教程中,参与者按照详细说明来重新创建六个可视化图表,除了图2中的一个(图表4)。此外,参与者还学会检查结果并处理人工智能的错误。在练习任务中,参与者被要求进行类似的分析,但侧重于核能产生的电力,并增加了一个任务,即创建一个柱状图来比较2000年和2020年之间核电的差异,这需要进行表格透视和计算。


研究任务。为了专注于人们的迭代过程而不是他们能否创建单个图表或在探索数据过程中获得洞见的能力,我们决定采用探索会话再现方法,要求参与者复制经验丰富的数据科学家进行的两次数据探索会话。我们想看看参与者是否能使用Data Formulator 2进行迭代地创建图表,而不需要他们即兴提出探索目标(否则我们将限制我们的参与者只能是高技能的数据科学家)。我们从David Robinson对Tidy Tuesday数据集的直播分析中取出了两次探索会话。


图10-1展示了第一个数据探索会话:给定一个关于大学专业和收入数据的数据集(173行×7列),要求参与者创建七个可视化图表(2个基础图表 + 5个需要数据转换的图表),逐步探索收入最高的专业和女性比例与专业薪水之间的关系。探索过程要求参与者推导新字段(例如女性比例),过滤数据(按收入最高的20个专业进行过滤),推导新数据(汇总以获得收入最高的专业类别)并执行条件格式化(按照前4个类别和“其他”进行着色)。在我们的任务呈现中,我们为除最后两个可视化之外的所有图表提供了任务描述和参考图表(类似于图表重现研究[39, 41]),我们隐藏了最后两个可视化的参考图表,并要求参与者验证正确性,以便我们能够使用它们来探究参与者的验证策略。我们在任务描述中没有提供迭代方向(即应基于哪些图表来创建新图表),这样参与者只能在高层任务指导下开发各种迭代技术。


图10-2显示了第二次数据探索会话:给定一组电影数据,包括它们的预算和总票房。


(3281行×8列),参与者被要求探索具有最高投资回报价值的电影和类型,将利润和利润比作为指标与沿途创建的9种可视化进行比较。除了两个基本的箱线图来显示预算和全球总票房分布外,其他七个图表需要数据转换,包括计算和聚合(每种类型的平均利润/利润比),字符串处理(提取年份)。


图10.研究任务。数据集1:理解收入最高的专业和薪水与女性比例之间的关系。数据集2:探索电影类型与最佳投资回报价值(利润 vs. 利润比)和热门电影。这里的分支方向仅用于说明,不会提供给参与者;参与者会自行制定不同的迭代策略。


针对趋势进行数据筛选(年份大于2000年),分区和排名(根据每个指标的前20部电影)。我们再次隐藏最后两张图表的参考,以便了解参与者的验证过程。


4.2  结果


任务完成。所有参与者成功完成了所有16个可视化(图9):参与者平均花费不到20分钟完成任务1中的七张图表,约33分钟完成任务2中的九张图表。由于我们允许参与者偏离主要的探索任务(例如,在任务2中,参与者4要求按照利润对电影进行排序,即使这并非必需),记录的完成时间略高于实际任务时间。在研究过程中,有六位参与者在任务中请求提示以解决困境;我们将它们分类如下:


l任务澄清: P1没有意识到热门电影仅限于2000年后的电影; P4和P6在任务2中需要关于利润和利润率之间的区别的提示;P6还询问在制作电影利润趋势图时,x轴应该是年份还是日期。


l数据澄清:P6和P8被提示注意任务1中"Major"和"Major Category"字段之间的差异。


l系统性能:P5遇到了性能问题,因为他们创建了大尺寸的图表:在任务2中,他们创建了多个柱状图,将电影映射到x轴,导致柱状图包含1300个分类值,造成渲染问题。建议他们重置探索会话。


l图表编码:当P7和P8在颜色编码中未放入字段时,需要提示“为什么图表无法渲染颜色图例”;他们预期只在NL输入中指定,而不在概念编码架上指定。


在总结会议中,参与者们评论说,使用他们熟悉的工具完成这些任务要困难得多。P1提到,即使是一个编程专家,在使用Data Formulator 2时“显然要快得多”,因为它有助于数据转换。当被问及他们与基于聊天的AI助手进行比较的经验时,参与者们指出:

(1)迭代支持使得创建更多图表变得更容易;

(2)Data Formulator 2中的UI+NL方法在沟通和约束意图方面更加有效。例如,P2提到,“使用ChatGPT时,我需要付出更多努力来指定获取想要的指令,而在这里使用UI的迭代速度更快”,P4提到,“使用ChatGPT时,需要更多的上下文,我需要详细描述x,y轴应该是什么,但在这里我只需要提供UI。”


迭代风格。数据制表器2让用户可以开发自己的迭代策略。我们观察到有三种主要不同的迭代风格,就是参与者选择从哪些表格或图表中得出新图表。


第一类用户更喜欢通过对现有图表进行小的增量变化来实现特定的图表,这些图表可能共享相似的数据字段或相似的图表配置。例如,P2和P3选择在显示按类别平均利润率的柱状图上创建显示利润率趋势随时间变化的折线图,然后再进一步在顶部可视化具有最高利润率的电影,因为它们共享相同的派生字段利润率。P2提到:“我肯定喜欢能够在那个基础上继续工作,并通过只是给一个新提示来前进,因为它会记住上一个提示之前的上下文,这样最终会生成正确的数据和可视化。” P2进一步提到,他们不喜欢太多的分支:“...感觉每次返回源头并修复会更困难。” P7也更喜欢增量更改,但注重视觉相似性而不是数据相似性。


相反,第二类用户更喜欢返回并重新发出提示,以尽可能简洁地实现从初始数据中的所有更改。例如,P1提到“[我]喜欢保持尽可能简洁,这样可以得到正确的结果。”P4也认为,有时候更有效的方式是从原始数据集重新开始,放弃所有迭代,特别是当它们无法产生预期结果时:“当我们遇到所有这些失败时,我回到原始基本数据集,然后在那里提出我的问题。”


第三类用户主要考虑从数据集中添加(或检索)列的迭代过程。P5更喜欢首先指示数据公式生成器2从现有数据中添加/移除列(例如,根据需要恢复在之前的迭代中可能被删除的字段,或添加所需图表的新字段),然后从正确的数据创建可视化。


迭代历史的组织。当被问及他们选择分支策略背后的理由时,所有参与者都认为数据线程对于管理迭代历史至关重要。关于他们偏爱的组织风格,P1提到“我不喜欢污染我的工作空间”,“我希望保持我的工作空间尽可能干净”,因此他们总是选择回溯并修正先前的指导,以解决不希望出现的结果。P2提到“回溯导致分支过多”,因此更倾向于跟进。P4使用提示来帮助导航迭代,找到他们正在寻找的内容:“我正在将提示作为我的锚点,找出我想要前往的位置。”P8发现在Data Formulator 2中有时在迭代中有困难,因为数据线程是“线性的而不是分层的”:他们更喜欢树状视图的数据线程组织,这样他们可以快速浏览整个分支树,查找数据集、其转换和可视化,然后折叠对当前目标无关的分支。


验证。为了进行迭代探索,或者重复/纠正一个步骤,参与者需要验证图表或变换是否正确执行。一些人使用代码的解释,一些人(甚至不懂Python的程序员)使用实际代码,还有一些人使用结果表来验证变换的影响。P3提到:“作为专家,我喜欢看到模型的提示,然后生成的代码;但作为业务用户,我会想使用更多的数据、图表和解释。” P4提到“[解释]步骤在确定它是否按照我的要求正确执行方面非常有帮助。还有就是下面的数据图表。”有趣的是,P7表示他们更喜欢使用代码而不是代码的解释,但在研究中,他们几乎完全使用了解释。他们表示,他们感觉在研究环境中有一些压力,不要花太多时间理解他们不熟悉的代码,但他们会更信任代码。我们还观察到,当工作流程很简单时,参与者会对其发展出信任(通过检查代码和数据表),然后他们会假设建立在这些步骤之上的更复杂的变换也是有效的。


杂项。有几位用户指出可能改进 Data Formulator 2 在迭代图表创作方面。P1评论说,小的界面变化可能会带来不同的功能。例如,“如果有一个大的数据线索视图,会鼓励我做更多的转换和分支。” P3提到,他们更喜欢人工智能在意图不清楚时要求用户消除歧义,而不是试图解决问题。


使用含糊不清的规范。 P7使用的说明非常详细,有时不正确,这反过来使得迭代变得更加困难,因为增量修改这些说明很困难。我们讨论了使用模板或人工智能反馈来减少指导书制作中的错误。


5  相关工作


Data Formulator 2在数据转换、图表创作和基于人工智能的可视化工具的现有工作基础上进行了拓展。


LLM动态可视化工具。大型语言模型的代码生成能力[1, 5, 24, 50]激发了新的基于人工智能的可视化工具[10, 26, 49, 55]的设计,允许用户使用高级自然语言描述创建可视化。例如,给定一个数据集和一个可视化提示,LIDA [9]自动生成数据摘要并提示LLM生成Python代码以转换数据并生成可视化。由于LLM在理解复杂图表逻辑方面可能存在困难,ChartGPT [49]将可视化任务分解成细粒度的推理流程(例如,数据列选择、过滤逻辑、图表类型、视觉编码),使用思维链提示[56]逐步指导LLM逐步生成代码。Data Formulator [55]利用LLM推导出可以在传统货架配置UI中使用的新数据列。由于这些工具侧重于单轮用户与抽象自然语言描述的互动,它们不适合分析中的迭代,其中分析师可能在整个过程中分支或修改设计。对于多轮互动,用户可以直接在Code Interpreter [1]或Chat2Vis [26]中与LLM对话:Code Interpreter配备了Python解释器,因此模型可以与用户交互地生成和执行代码以转换数据并创建可视化;Chat2Vis进一步包括特定于可视化的提示,帮助模型更可靠地生成可视化。由于这些工具以对话形式组织线性,当上下文包含分支时,用户需要解释任务,以便模型检索正确的上下文,否则模型更有可能产生不良结果[14, 21, 65]。此外,由于这些工具基于自然语言输入,当用户心中有具体设计时,他们需要额外的努力清晰地阐述设计(特别是当设计复杂时),以便模型能够生成他们期望的结果。


Data Formulator 2是一个由LLM技术驱动的工具,与LIDA和Chat2Vis类似的使用提示设计(例如,使用数据摘要来解释编写上下文),并支持自然语言交互。 Data Formulator 2不仅使用自然语言输入,还将用户界面和自然语言输入融合在一起,用于图表规范化,使用户能够精确且灵活地传达其意图。这种设计与Data Formulator不同,后者的用户界面和自然语言输入工作独立:Data Formulator的自然语言界面将数据转换限制为按列计算,用户需要额外的努力才能完成其他转换,如使用不同范例(通过示例编程)单独使用用户界面进行重塑和聚合;在Data Formulator 2中统一了用户界面和自然语言交互,用户可以用更少的输入努力实现更具表现力的数据转换。 Data Formulator 2的数据线程泛化了现有对话系统中使用的线性上下文,允许用户导航分支上下文,并重复使用以更好地支持迭代式可视化创作。


除了上面提到的以LLM为动力的工具外,还开发了其他人工智能和合成技术工具。神经语义解析[6, 29, 31]和基于程序合成的工具[54]也已经被开发出来来解决可视化挑战。例如,NL4DV[31]和NcNet[25]是基于经过训练的循环神经网络的自然语言界面(NLI),从平行的NL和图表规范语料库中训练来生成图表。NL2Vis[62]和Graphy[6]使用语义解析器从用户的NL查询中提取实体,并应用程序综合技术来组成图表规范。与LLM为基础的工具不同,后者可以生成通用的Python程序来支持从抽象指令中进行数据转换和可视化,基于语义解析的NLI less,需要用户提供更具体的描述,并且仅支持有限的数据转换。具体来说,这些工具需要整齐的数据输入[58],不支持像字符串处理、列导出和重塑这样的转换。虽然编程通过示例(PBE)技术被开发来解决图表创作中的数据重塑挑战(例如,Falx [54]和Data Formulator [55]的重塑模块),这些工具需要用户准备低级示例来展示转换意图,对于新用户来说可能比较困难,因为它偏离了高级可视化工作流。与LLM为基础的工具不同,用户可以直接与模型进行对话以消除输入的歧义,语义解析和基于PBE的工具开发了特殊技术来解决模棱两可的用户意图。例如,DataTone [11]引入了消歧辨小部件,允许用户在生成的查询中选择替代提取的实体以解决不明确性,并对生成的NL查询进行释异。Falx [54]从多个数据版本一致地生成图表。


用户示例用于用户检查。


受益于LLMs,Data Formulator 2支持更广泛的数据转换,不限于整洁数据。受先前工作如何展示候选结果以及解释代码来帮助用户理解系统输出的启发,Data Formulator 2显示生成的代码、数据、图表和代码解释,以帮助用户检查。为了解决模糊的输出,用户可以使用数据线索来跟踪或回溯并修改他们的指令。


可视化语法和交互工具。图形语法[60]启发了许多现代可视化语法(例如,ggplot2 [57]、Vega-Lite [45]、Altair [53]),其中可视化是从将数据列映射到视觉通道和较低级别的图表属性构建的。与诸如D3 [3]和Atlas [22]等更灵活和表达力更强的语言相比,高级语法隐藏了将数据项与视觉对象链接的计算过程,以减少可视化工作量。借助这些高级语法,引入了诸如Lyra [44]、Data Illustrator [23]、Charticulator [40]、Tableau [47]等交互工具。通过架构配置界面,这些工具的用户通过直观的拖放交互将数据列映射到视觉编码“shelf”来指定图表设计。尽管这些工具使图表规格容易,但它们需要整洁的输入数据[58]:每个要可视化的变量应组织在输入数据的一列中,每个标记应来自一行。因此,用户需要使用数据转换工具[7, 15–18, 35–37, 59]准备正确格式的数据,并进行技能和额外的努力。


数据公式化器2内部使用Vega-Lite表示图表,并从Vega-Lite的表现力中受益,以支持丰富的可视化设计。数据公式化器2继承了现有交互工具的架构配置设计,并将其与自然语言输入融合,用于图表规范。这样,用户可以通过数据公式化器2中的UI轻松指定图表设计,然而他们不需要担心数据转换,因为数据公式化器2将数据转换委托给人工智能。


探索历史。图形历史[13]和数据溯源[4]在可视化创作中至关重要,特别是在探索任务中,其中分支和迭代是常见的。在计算笔记本中,探索历史是基于代码块[28, 32]进行组织的。像somnus[63]和Tableau Prep这样的数据转换工具根据转换运算符可视化数据溯源。基于视觉相似性的定向图模型[19, 46]也用于可视化组织。Data Formulator 2的数据线程从这些系统中汲取灵感。关键区别在于Data Formulator 2围绕与人工智能的高级用户交互组织历史,并隐藏运算符级别的细节,以增强导航和重复使用。未来,Data Formulator 2可以将数据线程渲染为分层树[19],以支持对多粒度的大型数据线程的导航。


多模态交互。尽管自然语言提供了人类与人工智能之间灵活且表达丰富的交互,但仅依靠自然语言的交互并不总是最佳选择,特别是在传达用户心中构想的设计时。为了解决这一局限,引入了多模态模型,如ChatGPT和Gemini,允许用户在与人工智能的对话中提供音频和图像。还开发了新的交互工具以支持多模态交互。例如,DirectGPT允许用户在画布上直接点按指定上下文或对象,以减少提示的工作量,DynaVis根据用户的自然语言输入动态生成UI小部件,用于编辑图表,使用户可以探索和重复编辑,并从编辑中获得即时的视觉反馈。Data Formulator 2的概念编码架构将GUI交互的精确性和便利性与自然语言输入的灵活性结合起来,为可视化创作提供了多模态UI设计的示例。


其他。Data Formulator 2专注于可视化创作,在这里,人工智能完成用户计划的任务。将Data Formulator 2与探索和推荐系统如Voyager [61]相结合可能会有潜力。


Draco [30]和 Lux [20] 建议了可视化目标,以帮助用户“冷启动”他们的分析。 数据格式化器2 目前侧重于基于图形语法的图表(由 Vega-Lite 提供),并提供有限的支持自定义图表设计(例如,新布局、交互、动画或注释)。 数据格式化器2 的数据转换和历史管理还可以帮助动画设计[68]和交互式可视化创作[67]。 未来,数据格式化器2可以整合用于编辑布局[43,51]和标记[40]的画布,以扩展其设计空间。


6 结论


可视化作者通常以迭代方式创建可视化作品,在数据转换和可视化步骤之间来回进行。为了实现这种迭代分析过程,作者不仅需要精通数据转换和可视化工具,还需要花费大量精力来管理包含许多不同版本数据和图表的分支历史。尽管已经开发了基于人工智能的工具来减少用户的努力,但它们在迭代分析方面表现不佳,因为它们经常期望用户仅通过自然语言输入一次性指定他们的意图。我们提出了Data Formulator 2,这是一个用于迭代创建丰富可视化作品的交互式系统。Data Formulator 2具有一个多模态用户界面,允许用户使用混合的UI和自然语言输入指定可视化。借助UI交互的精度和自然语言描述的表达能力,用户可以更准确地传达复杂的设计,而无需冗长的提示。为了支持迭代历史的管理,Data Formulator 2引入了数据线索,用户可以浏览、分支和重用先前的设计,而不是从头开始创建所有内容。在用户研究中,我们邀请了八名参与者重现两个具有挑战性的数据探索会话,其中包含16个可视化图表。我们观察到,Data Formulator 2使参与者能够制定自己的迭代和验证策略,以信心解决任务,并且只需很少的提示。


53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询