臭名昭著的数据清理和准备问题,如何利用AI完美解决?

2020-03-18 17:01:00

全文共3299字,预计学习时长10分钟

臭名昭著的数据清理和准备问题,如何利用AI完美解决?

来源:Pexels

 

人工智能和深度学习在处理非结构化数据方面表现突出,从自然语言理解和自动知识库构建到图像和视频的分类和生成等方面都有着广泛的应用前景。

然而,储存在产品存储库、事务日志、ERP和CRM系统等业务应用程序中的结构化数据却被人们遗忘!表格数据仍然由老一代的数据科学技术处理,如基于规则的系统或决策树。这些方法耗费人力,维护起来也很繁琐,并且需要大量手工标记的数据。

尽管最近人工智能的进步使得从非结构化数据中挖掘巨大价值成为可能,但关注结构化数据在促进业务、收入、健康、安全甚至治理方面的价值也同样不容忽略。

 

与非结构化数据相比,结构化数据的主要挑战之一是应用程序对数据质量的高度敏感性。虽然我们仍然可以观看分辨率不高的视频,或者在轻受损图像中识别物体。

然而,描述大型企业或制药公司产品的大小、价格和数量属性上的小错误可能会造成灾难性的后果,这使得数据质量成为释放结构化数据资产价值的一大障碍。

尽管数据管理社区花了几十年的时间试图解决此问题,但进展甚微。这主要是问题的复杂性、基于规则和逻辑系统处理问题的严重局限性而导致的,以及数据清理和准备周期高额的人力成本。至于现在,显而易见,只有很少甚至没有人工交互的自动解决方案才是解决此问题的唯一可行方案。

 

这就是为什么该问题适合用机器学习来解决,机器学习能够捕获企业数据的不同背景,并从可预测数据质量和建议进行数据修复的大量数据集模型中学习。因此使用机器学习来清理数据将解决结构化数据长期存在的问题:

 

· 它可以组合所有信号和上下文,包括业务规则,约束(如功能依赖项和键)及数据的统计属性;

 

· 它可以避免规则对边缘情况的失控。在许多情况下,与清除干扰数据相比,管理这些规则可能更具挑战性,而且成本更高。

 

· 最后,它可以提供预测以保证流程质量,从而提高信心。或者在疑难情况下巧妙地引入人工参与。

 

臭名昭著的数据清理和准备问题,如何利用AI完美解决?

来源:Pexels

 

然而,受限于数据的本质(稀疏性,异构性,丰富的语义和领域知识),机器学习解决方案的优势并不明显。从积极的方面来说,诸如架构(列名,类型,域和各种完整性约束)之类的工件会编码语义的重要信息以及各种数据之间的潜在交互作用。两个人使用相同的邮政编码,却生活在两个不同的城市,这是不可能存在的。并且项目的总预算不能超过计划的支出,这也是明确的示例约束。这种“结构”使数据的价值超出了机器学习模型可以挖掘和利用的统计属性。

 

但挑战同样存在,结构化数据可能是异构的,组合了来自不同领域的信息,例如文本,分类,数字甚至图像数据。它也可能非常稀疏。试想一个有100列的表格,每列都取自大小介于10到1000(例如制造商的类型,大小,价格等)之间的域值,以及描述企业产品的几百万行文字。不难想象,可能的组合空间非常“空”,只有一小部分组合有效。没有任何结构,领域知识和约束,就很难了解很多有关如何生成数据或数据准确性的知识。因此,构建用于清理和准备结构化数据的可行机器学习解决方案有以下三个挑战:

 

· 如何将背景知识表示为模型输入,以处理数据稀疏性和异构性?在预测某一列中的值时,我们如何将关键约束、功能依赖、拒绝约束和其他复杂的完整性逻辑与要考虑的机器学习模型进行联系?

 

· 如何从有限(或无限)的训练数据和原始数据中学习?以“错误检测”模型为例,该模型应查找各种错误,包括输入错误,缺失值,不正确的值,矛盾事实,数据移位等。使用非常有限的可用错误示例来训练此类模型是个不容小觑的挑战。

· 如何扩展到数百万个随机变量?将问题简单建模为所有交互数据块之间可能的大规模联合分配将完全失灵!

我们构建了Inductiv,这是一个用于结构化数据的AI平台,专门用于构建描述数据如何生成以及如何被“污染”的模型。这些模型可用于各种服务中,例如错误检测,预测缺失值的错误校正,补充额外的列以及融合数据块。

Inductiv建立在学术开源项目HoloClean(www.holocl ean.io)的基础上,该项目由滑铁卢大学,威斯康星大学麦迪逊分校和斯坦福大学于2017年联合启动。

臭名昭著的数据清理和准备问题,如何利用AI完美解决?

 

运用AI清理数据

 

HoloClean采用著名的噪声通道模型来解释数据是如何生成以及如何被“污染”的。HoloClean利用已知的领域知识(例如规则),数据中的统计信息以及可用信源来构建复杂的数据生成和错误模型。这些模型将用于发现错误并建议最可能的值作为修复替换。

 

臭名昭著的数据清理和准备问题,如何利用AI完美解决?

 

图1:数据的生成过程是干净的,我们观察到了“被污染“”的版本。通过对这些过程进行建模和参数化,格式化清理数据可以表示为推理问题。

 

尽管此模型在数据整理和检测的帮助下可预测问题,但是为可扩展解决方案提供足够优秀的模型才是真正的难点。

 

臭名昭著的数据清理和准备问题,如何利用AI完美解决?

 

构建错误检测解决方案

 

在关于如何使用很少的示例来检测错误的论文中,我们解决了一些前面提到的挑战:

 

· 模型。错误的异质性及其副作用使得确定模型应捕获的统计和完整性属性,以便区分正确和错误的单元格,变得非常困难。这些属性与描述管理数据集分布的属性级,元组级和数据集级功能相对应。图2中描述的模型学习了一个表示层,该表示层捕获了这些多级特征,用以学习二进制错误检测分类器。

· 数据不平衡。由于错误很少见并且以不同的类型出现,因此机器学习算法在面对不平衡的数据集时往往会产生效果不佳的分类器。少数群体的特征被视为噪音,通常被忽略。因此,与多数类别相比,少数类别的错误分类可能性很高。本文推荐的模型的一部分是“数据扩充”过程(图3),该过程根据学习到的错误生成策略来制造许多“伪”错误。同时使用一些错误示例来学习策略参数。尽管数量有限,不足以训练错误检测分类器,但足以帮助了解可能的错误分布。

 

臭名昭著的数据清理和准备问题,如何利用AI完美解决?

图 2: 多级结构的错误检测模型

 

臭名昭著的数据清理和准备问题,如何利用AI完美解决?

图3:生成错误的策略示例用于解决训练数据类不平衡的问题

 

臭名昭著的数据清理和准备问题,如何利用AI完美解决?

 

归纳引擎:结构化数据的现代化AI

 

人们会很快意识到,诸如准备,清理,错误检测和缺失值归因之类的数据问题都是可扩展的统一推理引擎应用程序,该引擎能够对“结构化”数据的生成方式以及错误的引入方式进行建模。更重要的是,参考本文和随附的演讲中提到的各种原因,该引擎需要综合现代机器学习原理,例如:

 

· 用于训练数据生成的数据扩充和数据编程

· 学习对目标列/值进行建模的各种语境表示,例如学习异构数据类型的嵌入空间

· 利用诸如其他值重建一些观察到的数据值之类的技术进行自我监督以尽可能利用所有数据

· 用于合并领域知识和规则以延伸到表达模型的扩展形式

· 用于数据分区和学习本地模型的系统样式优化,以允许可扩展部署和容纳具有多个数据分布的数据集

归纳引擎将之前的所有结果集成在一个统一的AI内核中。引擎产生的预测可为各种数据准备服务。图4描绘了涵盖上述原理核心的主要组成部分,包括基于注意力的环境表示机制,分布式学习,数据切片以及具有多任务学习的自我监督,用来处理不同的数据类型(例如,回归分析数字型数据和分类类型数据)。在MLSys 2020论文中,我们提出了一种基于注意力的学习架构,用于混合类型的结构化数据中缺失值的估算(图5)。

 

臭名昭著的数据清理和准备问题,如何利用AI完美解决?

图4:归纳统一推理引擎中的核心组件

 

臭名昭著的数据清理和准备问题,如何利用AI完美解决?

图5:具有基于注意力的语境表示和多任务学习的示例架构

 

臭名昭著的数据清理和准备问题,如何利用AI完美解决?

来源:Pexels

当今,绝大多数重要数据都是结构化的,但是质量却不尽如人意,从而影响了其价值。

现代AI原理将这个臭名昭著的质量问题视为一个统一的预测任务,并围绕规模,异构性,稀疏性以及结合已知语义和领域知识提出了一系列新的挑战。而我们通过构建归纳引擎(第一个用于结构化数据的可扩展AI)成功应对了这些挑战。