支持数据管理和可用机器学习的统一图模型

支持数据管理和可用机器学习的统一图模型

Towards A Unified Graph Model for Supporting Data Management and Usable Machine Learning
本文载于2017 Bulletin of the IEEE Computer Society Technical Committee on Data Engineering

摘要

数据管理和机器学习是数据科学中的两个重要任务。然而,到目前为止,它们都是独立研究的。我们认为它们应该是相辅相成的。一方面,机器学习需要数据管理技术来提取、整合、清理数据,以支持可伸缩和可用的机器学习,使其用户友好和易于部署。另一方面,数据管理依靠机器学习技术来管理数据,提高数据质量。这就要求数据库系统将机器学习算法作为它们的基本运算符,或者至少是可优化的存储过程。它提出了新的挑战,因为机器学习任务在本质上是迭代和递归的,而且一些模型必须调整和重新训练。这就要求重新检查数据库设计,使之更适合机器学习。

在本文中,我们提出了一个支持数据管理和可用机器学习的图形模型的初步设计。为了使机器学习可用,我们提供了一种声明式查询语言,它扩展了SQL以支持数据管理和机器学习运算符,并提供了可视化工具。为了优化数据管理过程,我们设计了图优化技术来支持比传统的基于树的优化模型更细粒度的优化。我们还提出了一个支持机器学习(ML)的工作流程,以促进模型重用和实现,使其更具可用性,并讨论了在统一数据管理和机器学习方面出现的研究挑战。

引言

数据科学工作流包括数据抽取、数据集成、数据分析、机器学习和交互。例如,考虑医疗分析。大数据的异构性、及时性、复杂性、噪音和不完整性阻碍了电子医疗数据创造价值的进程[10]。我们需要从多个数据源中提取高质量的数据,对数据进行清理以消除不一致性,并对异构数据进行集成。接下来,我们可以使用数据分析技术来发现有用的信息,并分析数据以找到有趣的结果(例如,队列分析[7])。我们还需要利用机器学习技术来学习重要特性并做出决策(例如,再接纳风险[25])。最后,我们需要在医学背景下展示结果,以便用户更好地理解研究结果。

数据科学工作流包含数据管理组件(数据抽取、数据集成、数据分析)和机器学习组件。然而,无论是工业界还是学术界,数据管理和机器学习都是独立研究的,尽管它们实际上是相互补充的。首先,机器学习需要高质量的数据来保证学习结果。因此需要数据管理技术来提取、整合和清理数据。第二,机器学习依赖于数据管理技术来实现可伸缩的机器学习。人们普遍认为,没有机器学习背景的用户很难使用机器学习,而数据库作为底层系统在许多应用中得到了突出的应用。因此,机器学习应该借鉴数据库中的思想,使机器学习算法易于使用和部署。第三,许多数据管理组件依赖机器学习技术来提高数据提取和集成的质量。例如,我们可以使用机器学习来学习在数据集成中起重要作用的特性。这就需要一个新的框架来同时支持数据管理和机器学习,以及它们在大数据分析中的相互作用和依赖性。

为了解决这些问题,我们提出了一个统一的图形模型来建模数据管理和机器学习。我们使用图来建模关系数据,其中节点是数据库元组,边是元组之间的外键关系。通过将关系数据库中的元组、非结构化数据和半结构化数据中的文档或对象链接起来,可以将非结构化数据、半结构化数据和结构化数据组合在一起。更重要的是,大多数机器学习算法都是在图上工作的。我们可以使用一个统一的机器学习模型来支持机器学习和数据管理。因此,我们提出了一个将数据管理和机器学习结合在一起的基于图的框架,它(1)同时支持数据抽取、数据集成、数据分析、SQL查询和机器学习;(2)提供机器学习(ML)服务,使没有机器学习背景的用户能够方便地使用机器学习算法。

综上所述,我们涵盖以下内容。

(1) 我们绘制了一个统一的图模型来对非结构化数据、半结构化数据和结构化数据进行建模,并支持数据管理和机器学习。

(2) 我们提出了一个用户友好的界面,供用户使用数据管理和机器学习。我们提供了一种声明式查询语言,它扩展了SQL以支持数据管理和机器学习操作。我们还提供可视化工具来帮助用户使用机器学习算法。

(3) 我们设计了图优化技术来提高性能,它提供了比传统的基于树的优化模型更细粒度的优化。

(4) 我们讨论了将机器学习作为服务工作流提供的设计原则和重要组成部分。

(5) 我们讨论了在统一数据管理和机器学习方面的研究挑战。

结论

在这篇论文中,我们勾画了一个统一的图形模型,以支持数据管理和机器学习。我们提出提供一个用户友好的界面,方便用户使用数据管理和机器学习。我们概述了基于图的优化技术来提高性能,它提供了比传统的基于树的优化模型更细粒度的优化。我们讨论了机器学习作为一种服务,并提出了一个ML工作流,以实现高度的灵活性。我们讨论了在统一数据管理和机器学习方面出现的研究挑战。

内容

1.统一图模型

图形模型 图G=(V,E)包括顶点集V和边集E,其中顶点可以是数据库元组、文档或用户,而边是两个顶点之间的关系,例如结构化数据元组之间的外键、非结构化数据文档之间的超链接或半结构化数据中用户之间的友谊(例如,社交网络)。

关系数据的图形模型 给定一个具有多个关系表 T 1 , T 2 , … , T n T_1,T_2,…,T_n T1T2Tn的数据库D,我们可以将关系数据建模为一个图,其中每个元组都是一个顶点,如果它们对应的元组有外键关系,则两个顶点之间有一条边[12,14]。给定一个SQL查询q,我们从图中找到与查询对应的compact subtrees作为答案[14],详细信息将在第4节中讨论。

异构数据的图形模型 对于由结构化数据、半结构化数据和非结构化数据组成的异构数据,我们也可以使用统一的图形模型来表示它们。对于非结构化数据,例如html文档,顶点是文档,边是文档之间的超链接。对于半结构化数据,例如Facebook,顶点是用户,边是用户之间的友谊。我们还可以使用数据提取和集成技术将异构数据连接在一起[4,14]。

数据提取 数据抽取的目的是从数据中提取实体,包括文档、列表、表格等。首先,给定一个实体字典和一个文档,它的目标是从文档中提取与字典中预定义的实体完全或近似匹配的实体[13]。其次,给出一个文档和知识库中的实体,目的是将知识库中的实体与文档中的实体联系起来,解决实体歧义问题[19]。第三,它使用规则来识别实体,例如,出生在城市的人,从大学获得博士学位的人[20]。我们可以使用数据抽取技术来提取实体,并在此基础上集成异构数据。

数据集成 我们还可以将结构化数据和非结构化数据链接在一起,并使用统一的图模型来表示数据。有几种方法可以链接数据。首先,我们可以使用基于相似度的方法[8]。如果来自不同来源的两个物体具有很高的相似性,我们可以将它们连接在一起。其次,我们可以使用基于群组的方法来链接数据[3]。考虑到两个来自不同来源的数据,我们要求人群标注他们是否可以联系起来。由于众包不是免费的,所以要求人群检查每一对数据是很昂贵的,我们可以使用一些推理技术来降低群体成本,例如传递性。第三,我们可以使用基于知识的方法来链接数据。我们将来自不同来源的数据映射到知识库中的实体,映射到同一实体的数据可以链接起来[11]。

机器学习的图模型 机器学习算法大多采用图模型,如PageRank、概率图模型、神经网络等。

总之,我们可以利用一个统一的图来建模异构数据,它既支持数据管理(包括SQL查询、数据提取、数据集成)又支持机器学习(任何基于图的学习算法)。

2.通用的图形框架

我们提出了一个多功能的图形框架来支持数据管理和机器学习同时使用一个用户友好的界面。

查询接口 一个自然的挑战是使用相同的查询接口来支持数据管理和机器学习。我们的目标是支持两种类型的查询接口:声明式查询语言和可视化工具。声明式查询语言扩展了传统的SQL,以支持数据分析和机器学习。例如,我们可以使用UDF来支持机器学习。我们还可以将本地关键字添加到声明式查询语言中,以实现核心优化。因此,用户只需要指定他们想要获得什么,而不需要知道如何获得结果。我们的框架支持这两种情况。为了支持第二种情况,我们需要抽象机器学习算子,例如回归、聚类、分类、关联。然后,我们的框架支持所有的数据库操作符,例如selection、join、group、sort、top-k和机器学习操作符,例如聚类、分类、关联、回归等。可视化工具可以帮助用户更好地理解数据,还可以使用可视化图表作为示例(如折线图、条形图、饼图等图表),为用户提供即时反馈,框架可以自动计算类似的趋势或结果。更重要的是,用户可以利用可视化工具,例如添加或删除tableau之类的属性来可视化数据。我们的框架还可以自动分析数据并给出可视化图表。由于数据和特征非常复杂,我们需要利用机器学习技术来学习特征,确定哪些图表有趣,哪些图表优于其他图表。

图查询计划 基于图查询,我们生成一个图查询计划。 我们使用工作流来表示查询计划,该工作流包括多个查询运算符(包括数据管理和机器学习运算符),并且查询运算符具有某些关系(例如优先级顺序,依赖关系,决策关系)。 一种直接的方法直接生成物理计划,根据关系执行每个查询运算符,并且无需优化即可执行物理计划。 请注意,选择一个好的查询计划以提高性能和可伸缩性很重要。

图形优化 传统的数据库系统采用基于树的优化模型。它采用表级粗粒度优化,即选择优化的表级联接顺序来执行查询。其动机是减少基于磁盘的设置中的随机访问。然而,表级联接顺序可能不是最优的,因为不同的元组可能有不同的最佳联接顺序。在基于磁盘的设置中,很难获得不同元组的最佳排序。然而,在内存设置中,我们有机会尝试更有效的优化。为了解决这个问题,我们提出了一个细粒度的元组级优化模型,它可以找到不同元组的最佳顺序(见第4节)。我们也可以为其他操作提供图形优化技术。

图形管理系统 有许多图形系统支持基于图形的查询处理,包括基于磁盘的图形系统、内存中的图形系统和分布式图形系统[6,5,9,18,6,24]。基于磁盘的系统优化模型以减少随机访问。内存图形系统利用事务处理技术来保证高并行性。分布式图形系统包括同步模型和异步模型,其中同步模型存在离散和不平衡问题,而异步模型难以实现。我们的框架应该支持任何一个图形管理系统,我们的重点是自动建议最佳的图形执行路径,以支持不同的应用程序。

3.细粒度图形处理模型

给定一个SQL查询,我们利用图直接找到SQL查询的答案。我们首先考虑一个简单的例子,表是由链结构连接的,即每个表最多与另外两个表连接,并且没有循环。还有一些其他的连接结构,例如星型连接结构和带循环的图连接,稍后将讨论[12]。假设SQL中有x个连接谓词。这种SQL查询的答案是带有x条边的图链。

例如,考虑图3中的四个表R、S、T、V,每个表有五个元组。元组是基于外键连接的。考虑一个带有3个连接谓词的SQL查询来连接四个表,例如“Select * from R,S,T,V where R.a=S.a,S.B=T.B and T.C=V.C”。SQL查询的答案是图中包含3条边和4个元组的链,这些元组来自不同的表。传统的数据库系统采用基于树的优化模型,这可能是由于基于磁盘的优化需求。基于树的优化模型采用粗粒度优化,选择最佳的表级连接顺序。例如,树模型首先检查前两个表之间的联接谓词,然后再与第三个和第四个表联接。基于树的模型的成本是28。显然,我们可以为不同的元组选择不同的最佳顺序。例如,我们只需要检查s4、t4和r5、s5、t5、v4。费用只有6。因此,基于图的优化顺序具有更低的成本,并且可以提供更细粒度的优化。

在这里插入图片描述

基于图的优化技术 我们可以先将图划分为多个不相交的连通分量。不同分量中的顶点不能形成结果。然后我们就可以从每个连通分量计算出答案。我们给图中的每个顶点分配一个剪枝能力,也就是说,如果检查了顶点,将剪枝多少个元组。例如,s4的修剪力是8,t4的修剪力也是8。因此,我们可以先检查s4和t4。然后我们可以修剪r1,r2,r3,r4,t1,t2,t3,t4,s1,s2,s3,s4,v1,v2,v3,v4。那么我们只能得到一个结果(r4,s5,t5,v5)。

接下来,我们考虑查询的其他连接结构。

树连接结构 这些表由一个树状结构连接在一起,没有环。我们可以把它转换成链式结构,如下所示。我们首先找到树上最长的链子。假设链是 T 1 , T 2 , … , T x T_1,T_2,…,T_x T1T2Tx。然后对于链上的每个顶点Ti,它(间接地)连接了不在链上的其他顶点 T 1 ′ , T 2 ′ , … , T y ′ T'_1,T'_2,…,T'_y T1T2Ty,我们使用递归算法将这些顶点插入到链中。如果这些顶点在链上,即 T 1 ′ , T 2 ′ , … , T y ′ T'_1,T'_2,…,T'_y T1T2Ty,那么我们将它们插入到链中,方法是用 T i , T 1 ′ , T 2 ′ , … , T y − 1 ′ , T y ′ , T y + 1 ′ , … , T i T_i,T'_1,T'_2,…,T'_{y-1},T'_y,T'_{y+1},…,T_i TiT1T2Ty1TyTy+1Ti代替 T i T_i Ti。如果这些顶点不在一个链上,我们找到最长的链,然后用上面的方法将其他不在链上的顶点插入到这个链中。通过这种方式,我们可以将树连接结构转换为链式结构。请注意,生成的链有一些重复的表。因此,连接这些表可能会导致无效的联接元组(例如,在Ti的第一个副本中使用一个元组的联接元组,在Ti的第二个副本中使用另一个元组的联接元组)。我们需要删除那些无效的连接元组。

图连接结构 这些表通过图结构进行连接,即连接结构中存在环。 我们可以将其转换为树结构。 例如,给定一个周期( T 1 , T 2 , … , T x , T 1 T_1,T_2,…,T_x,T_1 T1T2TxT1),我们可以通过插入新的顶点T’1并将其替换为T1来打断该环。 因此,我们可以通过首先使用广度优先搜索找到图的生成树并破坏所有非树边,从而将循环转换为树结构。

总之,给定图查询,SQL查询,机器学习查询,我们可以使用统一的图模型和系统来有效地查询。 但是,在这种基于统一图的查询优化中仍然存在许多未解决的问题。

(1)如何建立有效的索引以支持各种SQL和机器学习查询?

(2)如何同时支持数据管理组件中的事务和机器学习组件中的数据分析?

(3)如何支持并发控制?

(4)如何支持迭代处理?

4.ML作为服务

在20世纪70年代,数据库被提议管理一组数据。数据库由于其用户友好的声明式查询语言,易于使用,在许多应用程序中得到了广泛的接受和部署。20世纪90年代,搜索引擎被提出来帮助互联网用户探索网络数据,也被非专业用户广泛使用。虽然近年来机器学习非常热门(每个垂直领域都声称他们希望使用机器学习来提高性能),并且已经部署了多个机器学习系统[17,22,21,1,16,23],但是它仍然没有被非机器学习的用户广泛使用,因为(1)机器学习需要用户理解底层模型;(2)机器学习需要专家调整模型来学习参数;(3)没有用户友好的查询界面供用户使用机器学习;(4)有些机器学习算法不易解释,用户可能不会欣赏到难以解释的学习结果。斯坦福大学还启动了一个为机器学习提供基础设施的项目DAWN[2]。与DAWN不同的是,我们专注于将机器学习作为一种服务来提供,这使得普通用户能够采用机器学习技术,轻松部署机器学习应用程序。

接下来,我们将概述设计要求。

(1)可扩展性。 框架应该很好地扩展/扩展,并在数量和维度上进行扩展。

(2)效率。 该框架应具有低延迟和高吞吐量,我们还需要平衡工作负载。

(3)可靠性。 该框架可以轻松恢复数据/机器/网络故障。

(4)灵活性。 该框架可以支持各种学习应用程序。

(5)可用性。 该框架应易于任何用户使用。 我们需要具有良好的抽象和编程模型。

基于这五个因素,我们设计了一个新的基于图的框架来支持ML即服务(如图4所示)。

封装的运算符 我们需要封装机器学习运算符,以便普通用户可以轻松地使用运算符来完成机器学习任务。 对于每个运算符,我们还封装了多种算法来支持运算符。 请注意,算法对最终用户是透明的。 例如,我们封装了聚类,分类和回归运算符。 对于聚类,我们封装了多种聚类算法,例如K-means,基于密度的聚类,分层聚类等。用户可以利用单个运算符或多个运算符来支持各种应用程序。

ML工作流 每个ML操作符都可以支持一些简单的应用程序(例如聚类),有些复杂的应用程序需要多个操作符(例如,医疗保健)。因此,我们需要设计一个模型来支持具有多个运算符的应用程序。我们可以使用机器学习的工作流程来描述模型,其中每个节点是一个算子,每个有向边是两个算子之间的关系。在此基础上,对基于工作流的机器学习查询进行优化。(1) 我们可以针对不同的应用为每个运算符选择合适的算法。(2) 我们可以改变两个操作符的顺序来优化工作流。(3) 我们可以优化工作流的结构。我们还可以设计基于成本的模型和基于规则的模型来优化ML工作流。

参数学习 机器学习算法包含许多对性能有显著影响的参数。因此,在不同的应用场合,获得好的参数值是非常重要的。然而,参数整定是一项繁琐而复杂的工作,因此需要专家参与。这是没有机器学习背景的用户很难使用ML的一个重要原因算法。因此自动学习参数值很重要。此外,自动发现数据转换和自动发现数据偏差非常重要。

Human-in-the-loop机器学习 机器学习需要使用高质量的标记数据来学习结果。 但是,很难使用纯粹的机器学习算法。 因此,我们提出了Human-in-the-loop机器学习,它利用众包和专家来改善机器学习[15]。 我们使用人群工作者来提供高质量的标签数据。 我们可以请专家来指导特征选择和参数学习。 最重要的是,我们可以使用主动学习技术来决定何时/何地使用人群以及何时/何地使用专家。

5.研究挑战

可解释的机器学习 现有的大多数机器学习算法都具有像黑盒这样的功能,并且学习结果不容易解释,例如SVM。 由于许多应用程序和用户需要了解结果才能做出决定,因此他们要求算法具有可解释性。 例如,在医疗保健分析中,应让医生确信机器学习结果为何有意义且适用。 因此,我们需要设计可解释的技术来帮助用户更好地理解机器学习算法。 我们可以利用可视化技术来可视化学习过程和结果。 我们还可以设计新的可解释的机器学习模型。

端到端的学习和部署 学习机器学习模型和调整参数非常昂贵。 没有机器学习背景的用户很难部署机器学习系统。 因此,它需要构建能够自动学习模型,调整参数并为各种应用程序部署系统的端到端系统。 该系统还可以适应各种领域,并尽可能减少人工干预。

增量机器学习 在许多应用程序中,机器学习使用一个独立的模型,它将数据加载到存储库之外,并在核心之外运行模型。但是,如果数据被更新,该方法需要重新加载数据并从头开始运行模型。显然,这种方法是无效的。因此,它需要增量学习模型,即利用原始模型和更新的数据来学习新的模型,而不需要重新学习模型。

新硬件上的机器学习 随着新硬件如NVM、GPU、FPGA、RDMA等的发展,这些新的硬件对数据管理和机器学习提出了新的挑战。因此,为了提高机器学习算法的性能和可扩展性,我们需要设计新的技术和固有的硬件特性。我们需要扩展图形模型、图形算法和图形系统以支持新的硬件,并设计设备感知优化技术。

图形处理 分布式图形处理存在离散性和不平衡性问题,需要设计更高效的图形管理系统和优化技术。此外,现有的系统主要集中在迭代图形处理应用上,对于一些非迭代的图形应用,例如计算最短路径,它们的成本很高。因此,我们需要设计新的高效的图形系统和框架来支持一般的图形查询。

数据集成的机器学习 我们可以使用机器学习技术来促进数据集成。 例如,我们可以使用深度学习和嵌入技术在数据集成中查找候选匹配实体/列对。 我们还可以使用主动学习技术来降低金钱成本。 使用机器学习技术面临两个重大挑战。 首先是找到大量的训练数据来提供机器学习算法。 第二个是设计用于数据集成的新机器学习模型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值