我们的项目目标是创建可视化系统,使领域专家(SME)能够构建、策划、评估和评价以数据为中心的机器学习模型。我们的系统允许领域专家直观地探索数据,通过界面构建目标函数,并将其提交给AutoML系统以生成机器学习模型。通过整合输入数据、模型输出和结果的可视化探索,系统支持模型的开发、调整,并以一种与底层建模技术相分离的直观方式进行验证。
关键词:自动机器学习;可视化;模型学习;模型比较;数据增强
我们的项目是DARPA数据驱动模型开发(D3M)项目的一部分。我们项目的目标是创建可视化系统,使领域专家(SME)能够构建、策划、评估和评价以数据为中心的机器学习模型。领域专家拥有特定领域的专业知识,通常是通过多年的经验获得的。然而,他们往往不是计算和数据科学方面的专家,因此无法利用现代机器学习技术的力量。我们将构建一些系统,使领域专家能够直观地探索数据,通过直观的界面构建目标函数并提交给AutoML系统,检查和比较AutoML返回的模型,并为分析目标选择最佳模型。通过整合输入数据、模型输出和验证结果的可视化探索,我们的系统将允许以一种与底层建模技术脱钩的方式进行模型开发、调整、形式化、验证和记录。
考虑了一个情报分析员的任务:使用我们的可视化系统,根据最近的新闻报道分析一个国家的政治风向。由于他可以通过可视化系统直接访问一套机器学习模型,他能够在可视化系统中打开一个预定义的高级分析任务列表,并选择一个适合她的目标(例如,"发现不寻常的事件"),而不必直接选择合适的机器学习算法或手动选择其参数。通过AutoML,可以构建多个不同的模型和具有不同参数的模型,并将输出结果可视化,从而可以对其进行评估、比较,并与原始数据连接起来。这有助于情报分析员专注于他们的任务和数据,而无需花费精力去了解机器学习建模和参数调整的细微差别。
此外,我们考虑通过用知识库中的信息来增强领域专家的数据分析能力。知识库能够存储大量的信息和数据。例如,WikiData是一个知识库,它对维基百科的关系信息进行编码。与供人类阅读的维基百科不同,WikiData以结构化的格式存储信息,从而可以通过SPARQL等正式的查询语言来检索数据。将丰富的知识库整合到领域专家的分析过程中可以帮助领域专家探索新的假设,否则是不可能的做到的。
我们提出的可视化系统有四个组成部分,将使领域专家(SME)通过使用AutoML来利用复杂的数据分析算法(见图1)。我们系统的四个组成部分是 (1) 数据增强,(2) 数据和问题探索,(3) 模型生成,(4) 模型探索和选择。
图1:CAVA和Snowcat系统的工作流程
(1) 数据增强。机器学习模型只有在用数据去创建时才是准确和有用的。为此,建模过程的第一步是帮助领域专家搜索、识别并为他们的建模任务策划必要的数据。需要一个交互式工具来帮助领域专家用从知识库中获得的额外特征来增加他们的初始数据集。 (2) 数据和问题探索。领域专家拥有领域专业知识,但缺乏数据科学技能。当他们不了解应该使用哪种算法时,系统如何支持他们创建查询?我们的解决方案包括两个步骤。(a) 提供一个探索性的可视化界面,允许领域专家检查输入的数据,以及(b) 在数据的基础上自动生成一些合理的机器学习问题。在向AutoML系统发布任务之前,领域专家可以完善和更新相关的问题。 (3) 模型生成。我们将可视化界面与AutoML系统相结合。给出一个问题定义(由领域专家在上一步通过使用可视化界面生成),我们的系统要求AutoML系统执行该问题并生成一些可信的机器学习模型。 (4) 模型探索和选择。由AutoML系统生成的模型会有类似的定量指标(如准确率、F1分数等)。然而,它们往往在与领域问题相关的定性指标上有所不同。例如,疾病传播的增加是以片状线性方式进行的,还是更有可能是二次性的增加?为了帮助领域专家做出这样的判断,我们的关键见解是,模型性能的标准评价所提供的丰富数据提供了一个丰富的数据集,对它的探索将使领域专家获得对模型集合的洞察力,以执行诸如性能预测、模型选择和信任特征等任务。由AutoML系统生成的模型对领域专家来说(在大多数情况下)是 "黑盒"。因此,我们专注于开发工具,让领域专家只用这些黑盒产生的输入/输出对就能完成他们的任务。
目前的模型构建和整理系统是为那些了解如何与模型直接互动的数据科学家设计的。数据专家必须将问题形式化,以确定一个合适的方法。他们选择算法和处理通道,并手动调整参数。然后对结果进行评估,可能会导致进一步的调整。这种方法对领域专家来说是不合适的:
虽然这些界面对数据科学家来说可能是可用的,但我们需要为领域专家提供新的用户体验。
在项目实施过程中,我们重点研究了两个领域:(1)设计和开发一个交互式可视化系统,帮助领域专家(SME)利用AutoML系统生成复杂的机器学习模型,而不需要编程或统计方面的专业知识;(2)开发一个数据增强工具,帮助SME用存储在知识库(如WikiData)中的额外信息丰富其数据。
我们在这两方面都取得了成功。我们开发了Snowcat,作为一个完整的集成视觉分析系统与AutoML。在NIST进行的评估中,发现Snowcat帮助领域专家创建的机器学习模型比单独由AutoML生成的模型和由领域专家策划的模型(手动)更准确。对于数据增强,我们开发了CAVA1来帮助领域专家丰富他们的数据。该工具是在线部署的,MITRE的领域科学家发现它有能力帮助领域专家识别和整合来自知识库的新数据,以回答新的分析问题。
领域专家(SMEs)将从使用复杂的数据分析通道中受益,这些是实践中的数据科学家的职权范围。这个项目的首要目标是为领域专家提供数据驱动的自动协助,使他们能够产生与数据科学家产生的模型一样的性能。我们在这项研究中的作用是在人类用户(领域专家)和产生数据分析通道的机器学习算法之间提供一个接口。在这个任务中,我们的目标是帮助领域专家定义他们的数据分析问题,而不需要描述正在使用的数据分析源语言。我们设计了交互式可视化系统,以沟通模型之间的差异,并帮助用户为其任务选择最佳模型。最后,我们提供互动的方法,允许领域专家使用他们的领域知识来更新和改进通过数据增强和模型完善产生的模型。
现有的商业可视化分析系统,如Tableau和Spotfire,允许领域专家(SMEs)将其数据可视化。然而,这些系统并不支持领域专家利用最新的机器学习和分析技术来进行数据分析。虽然原始数据的可视化是有帮助的,但如果没有半自动化的分析,领域专家就不得不手动检查他们的数据,随着数据集变得更大、更复杂,这可能是乏味和容易出错的。相反,诸如R、Python和Julia等编程语言为程序员提供了表达数据分析查询的能力。然而,这些语言的学习曲线很高,可能需要多年的经验才能使一个程序员熟练掌握。因此,对于不熟悉编程或数据科学的领域专家来说,它们很难被采用。
我们项目的目标是弥合领域专家的分析需求和目前可用的工具之间的这种差距。特别是,这个项目解决了数据分析通道自动化的任务,通过数据驱动的自动化过程,帮助用户选择复杂的模型通道。有了我们提出的系统,一个几乎没有数据科学背景的领域专家(SME)仍然能够进行复杂的数据分析,而无需了解分析背后的数学。
我们的工具将为领域专家提供接口,以表达他们的分析意图,增加他们的数据,探索解决方案模型(由AutoML系统提供),并以互动方式调整和完善模型,所有这些都不要求领域专家有编程技能或深厚的数据分析知识。结合AutoML的进展,所产生的系统将使领域专家能够利用最先进的机器学习技术,开发出能够准确分析大量复杂数据的模型。
我们设想模型开发是一个持续的、反复的过程,包括数据探索和增强、用户互动、模型选择和完善、模型验证以及回到数据探索。在这个过程中,我们没有明确区分原始数据和模型输出,而是把它们当作领域专家检查、探索和理解的互补元素。
通过这种概念性的表述,领域专家以一种流畅和直观的方式参与到模型的结果中来--当领域专家看到模型如何影响原始数据时,他们可以通过可视化向系统提供直接反馈,以指导下一步的计算。由于预期的领域专家并不是数据科学和机器学习方面的专家,我们并不期望领域专家知道,例如,什么是 "必须链接 "的约束,或者如何选择最好的内核,甚至是聚类是适合他们需求的模型。相反,我们的主要贡献是利用交互式可视化为这些复杂的计算模型提供直观的抽象的呈现和交互方式,通过它用户可以有效地利用各种模型,而不必直接与数据模型互动。
在本报告的其余部分,我们描述了为实现这一目标而设计和开发的两个系统:Snowcat和CAVA。Snowcat是一个端到端的可视化分析系统,帮助领域专家开发机器学习模型,而不需要领域专家直接与AutoML系统的不透明参数和编程互动(见图1)。CAVA是一个辅助性的数据增强工具,可以为Snowcat产生丰富的数据集。CAVA允许领域专家用存储在知识库中的知识和信息来增强他们的数据,如WikiData--维基百科中的信息库,可使用SPARQL等正式语言查询。领域专家使用CAVA用额外的领域知识来充实他们的数据。由此产生的增量数据允许在机器学习模型中提出新的假设和更准确的预测。
这个项目的目标是开发可视化界面,使领域专家(SME)能够在不同的数据类型和任务中生成机器学习模型。在根本上,该可视化界面与AutoML系统连接,用于生成模型。通过使用可视化,领域专家可以避免直接写代码来利用AutoML,或者费力地调整不透明的参数来优化AutoML系统。
在本节中,我们描述了我们在开发这两个可视化系统时的假设,以帮助领域专家生成机器学习模型:Snowcat和CAVA
AutoML是一个广泛的术语,用来描述一些机器学习技术,这些技术可以在用户指定的目标下自动生成或调整机器学习模型。例如,对于图像的聚类,机器学习的传统方法是由用户来进行。(1)选择一个聚类算法,(2)选择一些参数值,(3)在训练数据集上运行聚类算法,(4)检查应用在测试数据集上的结果指标(准确性、精确性等),以及(5)重复这个过程直到产生的聚类令人满意。在AutoML的情况下,用户可以先给出不同的所需类别的图像例子(即训练数据),然后要求AutoML寻找合适的算法和相应的参数,以产生结果模型。
尽管AutoML系统有相同的目标,但它们的实现方式可能不同。除了使用不同的搜索算法外,一些AutoML系统可能会返回一个最优化的模型,而另一些则返回一些算法和参数各异的模型。在DARPA的D3M项目中,还有一个要求,即AutoML系统需要返回数据通道(即操作序列--被称为原语--所产生的模型由其组成)。
为了支持领域专家探索数据、模型、参数,我们的可视化系统必须与AutoML系统密切沟通,并能进入其内部操作。这些AutoML系统应该产生多个不同的模型,这些模型有类似的定量指标供领域专家考虑。此外,AutoML系统应该能够提供有关所生成模型的定量和定性信息。也就是说,除了关于模型性能的数字指标外,AutoML系统应该能够描述模型是什么(例如,模型使用什么算法)以及用来构建模型的参数。
与AutoML系统进行通信的API是由D3M计划指定的。值得注意的是,这个API只由D3M计划的团队开发的AutoML系统实现。据我们所知,它与其他开源的AutoML系统(如auto-sklearn、TPOT、hyperopt等)不兼容。
Snowcat是以模块化的方式设计的,分为任务和子任务。每个模块的具体细节将在第4节描述。在高层次上,Snowcat由五个工作部分组成。(1)任务分析:了解领域专家的需求,(2)问题发现和构建:给定一个数据集,生成合理的机器学习任务,(3)可视化和界面设计:设计和实现基于网络的可视化界面,(4)模型评估、验证和比较:设计和实现工具,帮助领域专家检查和评估模型,最终选择最佳模型,(5)系统架构和可扩展性:设计架构和开发服务器端系统,考虑到处理大型和复杂数据集的扩展性。
CAVA是Snowcat的一个补充系统,帮助领域专家用从知识库中提取的额外信息增强他们的数据。通过CAVA,我们的目标是为D3M生态系统开发一个交互式可视化工具,使领域专家能够通过数据完善和增强来建立更好的模型。我们的前提是利用领域专家的领域知识,帮助他们从数据集的集合中策划新的数据特征(如表格数据中的列),以解决建模或分析任务。
CAVA可以作为一个独立的工具独立使用,用于数据增强,也可以在最初的数据探索阶段作为Snowcat的集成组件使用(见图1)。CAVA的初始原型使用WikiData作为其知识库,但WikiData可以被其他符合必要假设和标准的知识库所取代(见下文第3.4节)。
CAVA的设计由四个部分组成,其细节将在第4.2节描述。这四个部分是 (1)知识库集成:向知识库发送查询和解析结果的机制,(2)特征工程:将从知识库检索的数据转换为表格形式,并将结果附加到领域专家的原始数据上,(3)可视化和界面设计:设计一个可视化,使领域专家无需编程即可生成SPARQL查询,以及(4)与Snowcat的集成:与Snowcat系统以及DARPA的D3M基础设施和生态系统的其他部分进行系统级集成。
使用CAVA的前提是有一个现有的知识库,其中包含与特定任务有关的信息。例如,预测埃塞俄比亚粮食短缺的任务应该有一个知识库,其中可能包括关于埃塞俄比亚的地理、天气、耕作、人口等。在没有特定领域信息的情况下,我们发现WikiData可以作为一些任务的合理代理。虽然WikiData可能没有所有任务的详细特定领域信息,但它包含了许多主题的大量信息。WikiData所包含的信息范围与维基百科相似。然而,与维基百科不同的是,WikiData被存储在一个可查询的知识库中。
在CAVA中使用的WikiData的一个特殊功能是其 "实体匹配 "算法。WikiData的这一功能可以返回知识库中最相似的节点,并给出一个字符串。例如,如果实体匹配算法的输入是 "教父 "这个字符串,WikiData将返回一些可信的节点,包括电影 "教父",或指孩子监护人的世俗术语。并非所有的知识库都有实体匹配功能,但CAVA系统假定它是可用的。
CAVA对知识库的另一个假设是元数据的可用性。例如,当查询马萨诸塞州的面积时,查询结果是27,336。这个数字的单位(平方公里)通常只作为元数据提供。CAVA利用这种元数据来帮助用户更好地理解可视化中呈现的数据。
在这一节中,我们描述了我们在Snowcat和CAVA这两个系统上的工作。在Snowcat中,我们为非专业的领域专家(SME)开发了一个数据探索和分析的可视化系统。Snowcat与AutoML系统集成在一起,这两个系统使数据科学技能有限的领域专家能够利用机器学习技术来生成模型。因此,领域专家能够做出更明智的决定,分析更大量的数据,并最终使人在环形数据分析以数据感应和存储的速度扩展。在NIST独立进行的一项评估中,使用Snowcat的领域专家被发现在未披露的预测任务中表现优于AutoML和人类专家。
在CAVA中,我们为D3M生态系统开发了一个交互式可视化分析工具,使领域专家能够通过增强他们的数据建立更好的模型。我们的前提是,与其合并数据集进行数据增强,不如帮助领域专家从知识库中提取和策划一个新的数据集来解决建模或分析任务,这样可以更好地利用领域专家的领域知识。我们对CAVA的评估发现,参与者和领域专家能够使用CAVA从大型知识库(WikiData)中找到相关的数据,而由此产生的增强数据在与Snowcat结合使用时产生的模型具有更高的准确性
Snowcat系统由5个工作模块组成(任务分析,问题发现和构建,可视化和界面设计,模型评估、验证和比较,以及系统结构和可扩展性)。我们介绍了每项工作的结果。请注意,每个工作模块的研究和开发并不总是集成到Snowcat系统中。通常情况下,研究结果是作为一个独立的原型发表的。只有当研究结果适合DARPA的目标时,研究原型才会被转换成生产代码,然后被整合到Snowcat中。
这项工作涉及到一项人类主体研究,以更好地了解领域专家通常执行的数据分析任务的范围。这个工作模块的目标是正式记录领域专家在使用机器学习工具时的需求。其结果被用来指导Snowcat系统的设计和开发。为了完成这个工作模块,我们进行了文献调查、用户研究和访谈,以制定一个与数据分析任务相对应的操作清单。
开展的工作
为了更好地了解数据科学家所采用的流程,以及他们在确定客户需要什么分析时遇到的痛点,我们进行了结构化的文献回顾,并对来自各种数据密集型领域的14名数据科学家进行了半结构化的访谈:市场研究、生物医学研究、政策研究以及流行病学和健康研究。在每个领域,我们都寻找了直接与客户对接的专业人士,他们或者自己进行数据分析,或者管理其他数据科学家的团队。
成果
在对数据科学家的访谈进行分析后,我们发现了数据科学家为更好地理解客户的需求而采用的三种常见方法,我们称之为工作--倒退、探究和推荐。这些方法中的每一种都对应着客户需求的不同清晰度。例如,逆向工作为具有高清晰度需求的客户提供服务,他们可以准确地说明他们所期望的分析结果。从一个明确的预期结果出发,数据科学家可以 "倒退 "到适当的分析。另一方面,推荐服务于低清晰度需求的客户,他们可能不知道自己在寻找什么。它包括数据科学家运行一些不同的分析,以了解哪些结果是客户最感兴趣的。
文献综述和访谈研究的综合结果已被编入一篇论文,并在2019年的EuroVis上发表。这篇论文作为开发Snowcat系统的设计要求文件。
我们开发了自动发现明确定义的 "问题 "的方法,这些问题被格式化,并由AutoML系统执行以生成机器学习模型。例如,一个 "问题 "可以是对一些数据点进行分类,目的是利用数据集中的一些用户指定的属性使F1分数最大化。
在Snowcat中,系统最初会研究给定的数据集,并发现所有可能的明确定义的问题。用户互动有两种方式:领域专家可以通过编辑由Snowcat自动发现的问题来完善一个问题。或者,领域专家可以在探索数据集后创建自己的问题集。创建问题的过程可以通过与可视化界面的互动来完成,而不需要领域专家的编程努力。
开展的工作
我们设计和开发了两个软件组件来完成这个工作模块。首先,我们设计了一个算法来检查一个领域专家的数据集,并列举出所有可能的问题,这些问题可以在给定的数据属性和数据特性下应用于该数据集。使用一个简单的启发式方法将这些问题从最相关到最不相关进行排序。
另外,我们还开发了一个交互式界面,以使领域专家能够。(1) 检查自动生成的问题,(2) 完善和编辑该问题,或(3) 从头开始手动创建一个新的问题。在一个问题被策划好之后,领域专家可以点击界面上的一个按钮来启动由AutoML系统处理的模型学习过程。
成果
这两个软件组件已被整合到Snowcat中。参见图1,了解这些组件如何在Snowcat工作流程中发挥作用。图1中的面板2是可视化界面的图示。
另外,我们研究了领域专家为给定任务生成 "目标函数 "的其他方法。例如,虽然最大化F1分数是一项合理的任务目标,但它可能没有反映领域专家的其他考虑,如排除某些数据点,注释数据点之间的相似性关系等。我们在生成目标函数方面的研究结果发表在EuroVis 2020上。这项工作没有被整合到Snowcat系统中,因为该技术的使用需要一个特殊类型的AutoML系统,而D3M计划中并不支持。
在设计和开发Snowcat的可视化过程中,我们遵循了一个迭代的设计过程。其结果是根据领域专家的反馈进行了两次重大的重新设计。最终的可视化界面由三个部分组成。(1)任务工作流程,(2)数据探索和可视化,以及(3)会话管理。
任务工作流程:修订期间最重要的设计变化是加入了一个指导性的工作流程,以帮助领域专家在其建模任务中取得进展。使用 “卡片”设计,领域专家可以严格遵循 “数据探索、任务选择、模型生成、模型评估和模型比较”的工作流程(如图1所示),或者他们可以使用 “卡片”从默认的流程中进行分支。例如,在“任务选择”阶段,领域专家可以打开数据探索的卡片,用可视化的方式重新检查数据。卡片的模块化性质平衡了领域专家对指导的需求和对开放式探索的灵活性。
图2:Snowcat支持的任务和数据类型。
数据探索和可视化:根据D3M指定的数据类型列表,我们设计和开发了一系列的可视化工具,以支持领域专家探索各种数据类型。我们开发的新的可视化工具包括:(1)文本数据,(2)表格数据,(3)时间序列数据,(4)图形数据,(5)图像,(6)视频,(7)音频,以及(8)语音的可视化。对于文本数据,我们显示一个文件列表,可按内容搜索,包括高亮和过滤。对于表格数据,我们显示一组协调的Barcharts,可以进行交叉过滤以进行数据探索。对于时间序列数据,我们为每个随时间变化的属性显示小倍数的线形图。对于图形数据,我们显示节点链接图,并突出显示预测的边和节点。对于表格数据,我们使用特征直方图。对于图像,我们显示按其属性分组的图像。用户可以选择任何一张图片,将其放大以便进一步检查。对于视频、音频和语音数据,我们使用时间序列可视化和用于观看或收听原始数据的播放器来显示数据的并排面板。图2显示了Snowcat支持的数据类型列表。图3显示了这些可视化设计的例子。
会话管理:我们在Snowcat系统中增加了对会话的支持。在增加会话管理功能之前,Snowcat是 "无记忆 "的,即领域专家无法 "回去 "查看AutoML系统在同一数据集的不同变化下(例如,在数据增强后)或在不同的问题描述下(例如,将目标从最大化准确度改为最大化F1分数)生成的模型。目前,Snowcat提供两种类型的会话:(1)跨越不同问题描述的会话(使用相同的数据),以及(2)跨越不同数据集的会话(例如,作为执行数据增强的结果)。我们在可视化中实施了一个工作流程,以支持这两种类型的会议,使领域专家能够比较不同会议产生的模型。
图3:Snowcat中支持的可视化实例。
其他特点:Snowcat的其他功能包括。(1)模型通道可视化,(2) "数据事实 "可视化,以及(3)与D3M Datamarts和其他数据增强系统的集成。模型通道可视化指的是将D3M AutoML系统生成的机器学习模型的程序、超参数和参数可视化。"数据事实 "可视化是指将高层次的数据特征与自然语言中的特征描述一起可视化的组件(见图4)。这项工作是基于开发团队成员之前的出版物。它被用作领域专家的探索性工具,在进行数据分析和探索之前,他们更喜欢对一个不熟悉的数据集进行总结。最后,Snowcat被集成以支持数据的增强。这种整合可以是与D3M生态系统内开发的Datamarts系统或我们在第4.2节中描述的CAVA系统。
开展的工作
该可视化系统是使用VUE.js库在Javascript中开发的,这样它就可以在现代浏览器中运行。上面提到的四个组件被实现并集成到一个有凝聚力的可视化系统中,允许领域专家对使用AutoML生成机器学习模型的过程有充分的看法和控制。每个组件的设计都考虑到了可扩展性(例如,通过使用采样技术),以确保领域专家在分析过程中的流畅性和互动性。
成果
基于网络的可视化已经完成,并与Snowcat后台服务器和D3M的AutoML系统集成。开发的可视化的某些方面是基于正在进行的研究。关于多类散点图可视化设计的工作已经发表在arXiv。我们关于递归神经网络可视化的工作,特别是消失的梯度,于2018年发表在IEEE CG&A杂志上。最后,团队为评估Snowcat而开发的一种基于推理学习的技术于2019年发表在IEEE VIS研讨会上。
图4:"数据事实"的可视化设计
我们采用 "引导式 "方法来设计模型评估、验证和比较的过程,将任务分解成多个阶段。系统引导领域专家用户完成每个阶段的任务。Snowcat系统支持一些机器学习建模问题的模型输出,包括(1)分类,(2)回归,(3)聚类,(4)链接预测,(5)顶点提名,(5)社区发现,(5)图聚类,(6)图匹配,(7)时间序列预测,以及(8)协同过滤。这些不同的可视化被整合到我们的网络可视化框架中,该框架采用AutoML系统产生的预测并将其显示给用户。该可视化系统通过为领域专家的任务选择一个最佳模型的过程来引导他们。与不同数据类型的可视化相似,我们投资了一个模块化的、基于卡片的界面,帮助领域专家遵循一个默认的工作流程,同时提供灵活性以允许开放探索。所有的可视化都支持交叉过滤,例如,在表格数据和原始数据之间,以及在输入数据和模型输出之间,这样,用户可以检查数据和机器学习模型之间的联系。图2显示了Snowcat支持的机器学习任务(以及由此产生的模型)的清单。
开展的工作
已完成的工作 Snowcat的模型评估、验证和比较组件是在Vue.js中实现的,使用的是与可视化组件类似的 "卡片 "隐喻。卡片的使用使得这两个组件可以完全整合,当领域专家在检查模型的时候,他们可以调出可视化卡片来检查原始数据。此外,由于交叉过滤机制,领域专家可以选择模型的一部分(例如,混淆矩阵中的一个数字)并观察可视化卡片中突出显示的相应数据点。
成果
模型评估、验证和比较部分已经完成,并完全整合到Snowcat中。在这一过程中,我们进行了一系列的研究,导致了最终的设计。首先,我们完成了一个研究项目,使用交互式可视化界面帮助用户理解和比较对象嵌入,这是一种重要的数据结构,经常在处理通道的中间步骤中被用作数据的模型。这种模型比较方法是允许用户比较整个通道的一个步骤,这些通道导致了用于决策的最终模型。这项工作的成果发表在EuroVis 2018上,2020年在IEEE TVCG杂志上发表了一个扩展。
第二,我们研究了在神经架构搜索中发现的神经网络。该团队与卡内基梅隆大学和剑桥的IBM研究院的外部合作者合作,为卷积神经网络(CNN)架构开发视觉编码,以允许数百个架构同时被比较。我们使用这些新的视觉编码,将神经结构搜索期间产生的大量数据可视化。这些可视化数据被用来比较多种元学习算法的发现过程。这项工作的成果发表在2019年的ICLR研讨会和IEEE TVCG杂志上。
最后,我们开发了用于分析不同机器学习模型的方法。为了分析离散选择分类器的结果,我们开发了一种方法,使用户能够互动地探索为测试不同分类器而进行的实验。这些想法已经被建立在一个叫做 "Boxer "的原型系统中。这项工作的结果发表在EuroVis 2020。对于回归模型,我们开发了一种用于交互式引导和检查多元回归模型的技术。这项工作发表在2019年的IEEE CG&A杂志上。
为了实现可扩展性和模块化的目标,在设计和开发Snowcat系统方面投入了大量的时间和精力。Snowcat架构的三个独特方面是 (1) 它支持不同数据类型和任务类型的基于网络的客户端可视化,(2) 它通过中间件服务器与AutoML系统连接,以请求或获得训练和测试数据的结果,(3) 它允许来自不同领域专家用户在不同数据集上的多个同步连接,(4) 它与数据增强模块互操作,允许动态更新数据集。
开展的工作
Snowcat系统是采用客户-服务器架构开发的。客户端可视化是用Javascript开发的,在现代网络浏览器中运行。服务器由多个相互连接的组件组成。与客户端的主要接口是作为一个Node.js服务器实现的。用户上传的数据存储在一个Redis数据库中。AutoML被视为一个独立的组件。这些不同组件之间的通信是通过谷歌的Protobuf消息传递协议完成的。
为了支持领域专家对不同类型的数据和任务类型的探索和分析,我们开发了一种方法,前端可视化中的每个 "卡片 "都由服务器中的相应进程支持。例如,用于可视化表格数据的卡片使用一些协调的Barcharts。将原始数据离散成bin(每个bin对应于barchart中的一个bar)的操作在服务器上由一个专门的进程执行。有了这种架构设计,大量的原始数据就不需要从服务器上不必要地发送到客户端。这些卡的特定进程的实现是由Javascript和Python混合完成的。特别选择Python是因为它有用于执行机器学习任务的废弃库(最明显的是scikit-learn库)。
最后,为了支持多个同时的客户端连接,Snowcat使用Node.js线程。每个与Snowcat服务器的连接都由线程池中的一个空闲线程处理。每个连接的会话信息都存储在Redis数据库中(与用户上传的数据一起)。这些信息在需要时由线程检索。
成果
最终的Snowcat系统满足了所有D3M的要求。它可以与所有实现指定D3M API的AutoML系统集成。该系统已经被做成了Docker容器,因此它可以被部署在大多数系统上。Snowcat系统的描述,包括设计过程和评估,可以在我们发表于EuroVis 2019的论文中找到。
我们对CAVA的目标是为D3M生态系统开发一个交互式可视化分析工具,使领域专家(SME)能够通过增强他们的数据建立更好的模型。图5说明了我们使用知识库进行数据增强的概念框架。作为数据增强过程的结果,额外的数据列被添加到领域专家的原始数据集(在图中被称为 "种子数据"),并从知识库中提取信息。
为了实现这一目标,我们利用其他D3M工作者的努力,他们已经开发了一个知识库,由D3M项目的相关数据集组成。鉴于这样一个知识库,CAVA支持领域专家探索、搜索和组合知识库中的信息,并将其转化为新的数据特征,可以添加到领域专家的原始数据中,从而形成一个新的、增强的数据集。然后这个数据集可以被Snowcat摄取,用于生成机器学习模型,从而完成一个完整的数据工作流程。
图5:使用知识库进行数据增强的概念性框架
CAVA系统有四个要素:(1)知识库整合,(2)将知识库的功能工程转化为表格形式,(3)设计交互式视觉界面,以及(4)与D3M生态系统整合。
我们认为知识库代表了一个数据的集合。知识库的图结构是至关重要的,因为它以结构化的形式捕获数据,因此允许图包括来自公共资源的数据以及D3M的特定数据集。知识库中的图可以通过关系进行探索和连接。它可以按照图中的关系(即边)进行探索、发现和提取。该结构强制执行实体间关系的语义和句法兼容性。挑战在于,它需要将标准的数据操作,如查询、总结和提取,转换为图的操作。
我们通过定义一套支持所需场景范围的操作基元来克服这一挑战。例如,我们创建了一些接口来列举可能的查询答案,建议可能导致成功提取的查询,并评估从查询中提取的数据。
开展的工作
我们将WikiData知识库纳入了CAVA系统。CAVA通过SPARQL查询与WikiData进行交流。因此,CAVA并不拘泥于使用WikiData,而是可以与其他支持SPARQL查询的知识库相连接。正如第3.4节所述,CAVA对知识库的能力做了一些假设。为了使CAVA能够通用于各种知识库,我们重新实现了CAVA广泛使用的 "实体解析 "功能。
实体解析是将用户上传的数据文件中的元素映射到知识库中的对象的过程(例如,将数据中的字符串 "Massachusetts "与WikiData中的对象Q771相匹配)。在CAVA中,我们最初利用WikiData的labelservice功能(通过WikiData的API)来执行这种匹配操作。当我们转而使用其他知识库时,我们实施了新的实体解析方法,利用了知识图谱的拓扑结构。首先,我们在上传的数据中找到条目中 "最常共享 "的节点。例如,我们发现MA、PA、NM等字符串都有相同的共同节点(如 "State"、"USA "等)。因此,当出现歧义时(如GA指的是格鲁吉亚还是加蓬),我们会检查这两种可能性中哪一种最符合其他条目的拓扑结构。
成果
我们已经完成了CAVA与WikiData以及其他D3M团队创建的知识库的整合。我们的新实体匹配方案在大多数测试案例中都运行良好,但当上传的数据本身比较混乱,或者WikiData中用于建立 "基线 "拓扑结构的数据有限(比如埃塞俄比亚的地区)时,就会失败。
一旦在知识库中找到相关信息,CAVA就会进行必要的转换,将信息转换为与领域专家的输入数据相匹配的表格形式。特别是,由于知识库通常表示为语义图,这一目标类似于将图信息转换为表格数据。
图6:使用CAVA进行数据扩增的一个例子
考虑到图6所示的情况,一个领域专家想用以下内容来增加他们的国家数据集。面积、人口和平均邻国的国内生产总值(GDP)。首先,数据集的每一行(例如,"德国")被映射到知识图谱中的一个实体。领域专家可以使用知识图谱来识别与 "德国 "节点相连的地区和人口信息。为了选择平均邻居GPD,领域专家需要执行一个嵌套操作,首先确定德国的所有邻国("丹麦"、"法国"、"奥地利 "等),递归检索它们的每个GDP信息,然后计算这些GDP的平均值。
上面的例子说明了使用知识库进行数据增强的力量。对图的递归探索,结合代数运算符的使用,可以帮助领域专家产生复杂和细微的数据,并将其添加到领域专家的原始数据集中。如果没有一个知识结构,这些操作对于一个领域专家来说将是乏味的,难以执行的。
开展的工作 我们成功地使用SPARQL在CAVA中生成递归的复杂查询。通过使用可视化(详见第4.2.3节),领域专家无需编程即可构建任意复杂的递归查询。除了递归查询外,CAVA还支持特征工程的两种操作:代数操作和带时间数据的操作。
首先,CAVA支持对一个元组的数值进行代数运算。这些操作包括最小、最大、计数、平均等,具体取决于数据类型。如图6中的例子所示,这些操作可以与查询一起使用,用于面向数据的任务。
第二, CAVA支持领域专家用时间性数据进行数据增强。当同一数据属性有多个条目,但记录的时间不同时,就需要策划时间性查询。例如,实体 "德国"的 "人口 "属性有许多条目,因为德国的人口每年都在变化。为了帮助领域专家用最相关的条目来增加他们的数据,我们的系统支持领域专家从以下选项中进行选择:(1)在所有的条目中选择一个操作(如最大、最小、平均等),(2)选择最近的条目,(3)匹配与给定日期(由用户输入)最接近的条目,以及(4)让系统根据数据中的一栏自动推断出适当的条目。选项(4)特别有意思,因为如果输入的数据包含时间戳信息,我们的系统可以检索出与给定时间戳最接近的条目。
成果
我们成功地实现了查询引擎,包括生成包含代数运算和时间函数的SPARQL查询,并对知识库的结果进行解析。在我们的测试中,我们发现查询的生成对各种复杂的、嵌套的和递归的查询都很稳健。
我们把CAVA的界面设计成一个轻量级的基于网络的互动可视化。可视化的目标是帮助领域专家表达和阐述上文所述的复杂查询,但不要求领域专家明确地编写SPARQL查询。此外,可视化需要帮助领域专家在他们的数据增强过程中建立信心,例如通过显示要增强的数据的质量和提供所产生的增强数据的预览。
开展的工作
我们为领域专家开发了一个交互式视觉界面,以探索原始数据集及其关系数据集中的所有数据属性。图7显示了CAVA界面的概况。该视图首先在一列中列出原始数据集的所有属性。对于每个数据属性,该视图提供了四个功能。"相关属性"、"分布"、"添加 "和 "删除"。领域专家可以点击 "相关属性 "按钮来展开下一层次的数据集,并在新的一列中列出所有相关属性。通过点击 "分布 "按钮,领域专家将能够看到所选数据属性的分布图。如果领域专家对选定的属性感到满意,他们可以点击 "添加 "按钮,将该属性添加到输出数据集中,该数据集将被传递到下一个问题阶段。另一方面,如果领域专家不想要以前选择的属性,他们可以使用 "删除"按钮将其从输出数据集中删除。
图7:CAVA的界面
此外,我们还开发了三个可视化界面,以帮助领域专家进行数据增强: a) 基于抽样的数据预览。为了解决提高处理大型数据集的可扩展性,同时尽量减少用户的等待时间的挑战,我们开发了一种基于抽样的方法,为用户提供了用户数据增强操作的近似预览(见图7的D面板)。这种 "基于抽样的预览"延伸到可视化中的许多地方,包括但不限于。(1)对将包括在增强中的数据属性的质量的估计,(2)数据属性的预期分布的可视化,(3)增强后数据中产生的行的例子。如果没有基于抽样的方法,完整的数据集(可能有数百万行)的完整 "join"可能需要几分钟甚至几个小时才能完成。基于抽样的方法将等待时间减少到几秒钟,同时为用户提供了对增强操作和过程进行决策所需的直觉。 b) 一个 "贯穿式连接 "的可视化解释。由于数据增强可能很复杂,特别是当需要连接的数据在知识图谱中存在3个或更多的 "hops"时,我们观察到这些复杂的增强程序会让那些可能不熟悉知识图谱和数据增强过程的用户不知所措。为了帮助缓解使用我们的数据增强工具的困难,我们开发了一个可视化的工具来解释这些复杂的增强过程。通过使用这种可视化的方式,用户可以预览扩增操作,并在投入操作之前进行调整。 c) 对实时迭代建模的支持。由于D3M中数据增强的目的是为了提高所产生的机器学习模型的质量,我们在系统中增加了对建模工具直接整合的支持。具体来说,在我们的系统中,用户可以快速检查新增加的数据特征是否改善了模型(如果没有,可以删除该特征)。系统对模型的迭代(以及用于生成模型的数据特征)进行跟踪,允许用户看到进展情况,并跳回到之前的模型,尝试不同的数据增强想法。
成果
我们成功地实现了基于网络的可视化界面。在对佐治亚理工学院招募的参与者进行的评估中,参与者认为该可视化界面使用起来很直观,尤其是在寻找相关数据进行扩增时。此外,与使用原始(未增强的)数据相比,所产生的增强数据被证明可以提高由AutoML系统生成的模型的准确性(见下一节,第4.2.4节)。
CAVA被设计为与现有的D3M生态系统(包括Snowcat)集成。CAVA的使用代表了图1所示的数据工作流程中最左边的一个面板。有了这个工作流程中的额外步骤,领域专家将首先增强数据,指定问题,并使用AutoML系统建立模型。如果领域专家对结果不满意,领域专家将通过返回数据增强来迭代这个过程。
为了支持CAVA在D3M生态系统中的使用,我们对CAVA进行了设计,使其可以作为一个独立的服务,支持同时连接多个系统,或者通过与Snowcat等系统完全集成,以专用方式使用。
开展的工作 CAVA最初开发时的假设是,它将被集成到类似于Snowcat的建模系统中。然而,在D3M项目的过程中,我们逐渐意识到这种整合是困难的,并且较难实现,原因是其他D3M建模系统对编程语言、数据工作流程等的假设不同。因此,CAVA的最终实现是作为一个独立的系统,即CAVA输出一个数据集,其他D3M建模系统会摄入该数据集。特别地是,为了使CAVA与D3M生态系统的其他部分相结合,我们开发了以下功能。
a) CSV文件的上传和下载:CAVA的一个关键特征是领域专家能够以CSV文件的形式上传(和下载)自己的数据。尽管这一功能看起来微不足道,但我们为支持这一目标实施了一些重要的创新。首先,当用户上传他们自己的CSV文件时,我们的系统为用户提供了 "纠正 "数据的机会。例如,如果数据中代表邮编的一列被错误地归类为数字,用户可以手动选择将邮编作为一个独特的标识符(或一个字符串)来处理。作为一个字符串,系统就可以在WikiData中找到该条目。相反,如果不加以纠正,像00155这样的邮编将被视为数字155,这对于执行数据增强是没有意义的。
第二,为了支持增强后的数据下载,CAVA包括一些系统优化,以提高速度和性能。如前所述,CAVA使用了一种基于 "抽样 "的方法,以确保服务器的响应速度(尤其是当数据的规模可能很大,有数百万条记录时)。对于下载过程,CAVA只在领域专家要求下载完整数据集时,通过对数据中的所有行执行增强查询来实现完整数据集。
b) 部署在D3M服务器上:目前,CAVA被部署在D3M服务器上。在没有指定特定领域的知识库的情况下,CAVA连接到公共WikiData.org网站来进行数据增强。使用公共WikiData.org知识库的一个好处是,WikiData.org的规模持续增长(并且不断维护和更新以纠正错误和误差)。因此,领域专家可以利用 "更新到最新 "的信息。
c) 支持多个同时使用的用户。CAVA的设计是为了支持多个领域专家用户同时使用CAVA来增加他们自己的数据集。为了允许多个用户同时使用,CAVA服务器采用Node.js构建,以提高效率,并使用多线程架构。此外,为了支持领域专家上传他们自己的CSV文件,这些文件可能有数千兆字节大小,CAVA使用Redis作为数据管理引擎。
成果
完整的CAVA系统既部署在D3M的集群上,也部署在塔夫茨大学的服务器上。该系统在大学招募的参与者和MITRE的领域专家中都得到了评估。在这两种情况下,CAVA都被认为是有用的,特别是当特定问题的知识库可用于某项任务时。WikiData可以满足领域专家的一些需求。然而,对于特定领域的数据集和任务,WikiData可能并不总是拥有领域专家所需的数据来进行所需的增强。CAVA的设计、实现和评估已于2020年发表在IEEE TVCG杂志上。
作为D3M计划的一部分,我们成功开发了两个系统。首先,我们开发了Snowcat系统,允许领域专家(SME)利用自动机器学习(AutoML)系统来生成机器学习模型。Snowcat被设计成易于使用,不需要领域专家拥有机器学习、统计或编程方面的知识或技能。在NIST进行的一项独立评估中,使用Snowcat的领域专家能够创建机器学习模型,这些模型比AutoML自动生成的模型(没有领域专家的干预)和由领域专家手动策划的模型更准确。
第二,我们开发了CAVA系统来帮助领域专家增加他们的输入数据。由于机器学习模型的准确度只能与用于训练模型的数据一样,适当的数据增强可以显著提高机器学习模型的结果。CAVA使用知识库作为增强的来源。通过与基于网络的可视化界面的互动,领域专家可以执行复杂的数据增强操作,而无需编程或编写明确的数据库查询。在对一所大学招募的参与者和来自MITRE的领域专家进行的评估中,发现CAVA在帮助领域专家识别相关数据进行扩增方面非常有用。此外,使用CAVA从增强的数据集生成的机器模型比从原始(未增强的)数据生成的模型更准确。
两个系统的源代码都可以在Github上作为开源项目使用。这两个系统也可以作为Docker容器使用,以方便部署。