结构化数据不应该被人工智能遗忘!

在处理非结构化数据的问题上,人工智能和深度学习方法一直都表现出众且广为人知,无论是在自然语言处理、知识库自动构建,还是图像视频的识别和生成应用中,都有很多成熟案例。

然而对于结构化数据的研究,似乎已经被人工智能和深度学习忘之脑后。结构化数据普遍存在于各类商业应用软件和系统中,例如产品数据存储,交易日志,ERP 和 CRM 系统中都存在大量结构化数据,这些结构化数据仍应用着陈旧的数据技术处理,如基于规则的系统,决策树等。这样的方法需要人工进行特征提取,操作繁琐且需要耗费大量人力进行数据标签。

如果没有任何结构、领域知识和条件约束,就很难了解数据如何生成及其准确性。因此,在构建结构化数据准备和清洗的解决方案过程中,我们总结了存在的三个主要挑战:

图 3: 使用错误生成策略以解决训练数据不平衡问题

在 MLSys 2020 论文中,我们提出了一种基于注意力的学习架构,用于混合类型结构化数据的缺失值填补(图 5)。

可以将业务规则在内的所有信号和上下文,函数依赖和键等约束条件以及数据的统计属性进行组合。 能够避免构建大量的规则,同时可以兼容极端情况。在许多情况下,结构化数据中的规则管理比清洗噪音数据更具挑战性,成本更高。 最终,模型所提供的预测应用于标准的数据质量测试中,能够传达一种「信心」:模型的预测能够解决大多数情况,而人工,只需要专注去处理特殊的案例。

通过采用机器学习的方法,我们可以将结构化数据的数据准备和清洗问题都视为一个统一的预测任务,不过这种方式存在着规模化,异构性,稀疏性以及复杂语义和专业领域知识的挑战。  雷锋网(公众号:雷锋网)雷锋网雷锋网

图5:基于注意力的上下文表示和多任务学习的示例架构

将这样的模型应用于数据准备和清洗中,可以解决结构化数据长期以来存在的问题——需要大量人工介入的数据准备和清洗工作。这样的解决方案有以下的要求:

二、构建数据错误检测的解决方案

虽然结构化数据在 AI 应用的研究中困难重重,我们还是找到了一些方法并有所进展。处理结构化数据并不仅仅依赖于数据本身的特征 (稀疏,异构,丰富的语义和领域知识),数据表集合 (列名,字段类型,域和各种完整性约束等)可以解码各数据块之间的语义和可能存在的交互的重要信息。举个例子,两个不同的城市不可能都对应相同的邮政编码,一个项目的总预算不可能超过其计划的开支。这都是可以明确提供的条件约束,这些条件约束增强了机器学习模型在结构化数据处理上的能力,而不仅仅是做统计分析。

各地要推动各类防控力量下沉,防控任务重、社区人手不足的地方,要组织机关事业单位工作人员到社区帮助工作;优化社区防控人力配置,合理安排参与社区防控工作人员轮休。争取各地党委和政府重视支持,为参与社区防控工作的专职城乡社区工作者适当发放临时性工作补助,并为参与疫情防控工作的社区志愿者适当发放补贴。

雷锋网原创文章,。详情见转载须知。

虽然这样的模型已经帮助我们将数据清理和数据错误检测问题转变为机器学习中的推理问题,但要训练出表达力足够强,能够将应用规模化的模型,还是极有难度的。

处理结构化数据的其中一大挑战在于,结构化数据可能是异构的,同时组合了不同类型的数据结构,例如文本数据、定类数据、数字甚至图像数据。其次,数据表有可能非常稀疏。想象一个 100 列的表格,每列都有 10 到 1000 个可能值(例如制造商的类型,大小,价格等),行则有几百万行。由于只有一小部分列值的组合有意义,可以想象,这个表格可能的组合空间有多么「空」。

如今的商业化数据中,绝大部分重要数据都是结构化的,然而由于对数据质量的高要求,使得很多有价值的研究都望而却步。

Inductiv 将我们之前提到的所有研究,融合于一个统一的 AI 内核中,它可以支持多种数据准备和清洗的应用。

HoloClean 利用所有已知的领域知识(例如规则)、数据中的统计信息以及其他可信任来源作为属性,来构建复杂的数据生成和错误检测模型,此模型可用于发现错误并能够提供修复建议,给出最有可能的替换值。

这也是为什么机器学习方法能适用于结构化数据准备和清洗的原因,最终的解决方案需要能够提取企业数据特征并且理解毫不相干的数据上下文,能够从大量数据集中训练出模型,预测数据质量,甚至能提出数据质量的修复建议。

而 Inductiv 引擎作为首个用于结构化数据处理的可扩展 AI 平台,则成功解决了这些挑战!

诸如数据准备、数据清洗、错误检测和缺失值填补之类的数据问题,都可以应用一个统一的、可规模化的推理引擎进行建模。这样的引擎要求能够对「结构化」数据的生成以及错误的产生进行建模。更重要的是,结合我们上文提到的各种挑战,这一模型还需要纳入一些现代机器学习原理:

通知要求,各地要统筹防控疫情和服务群众工作,避免在社区防控工作中“简单化”、“一刀切”,在加强疫情防控的同时尽可能方便社区居民生产生活。加大对社区各类民政服务对象的照护力度,重点做好对分散供养特困人员,生活不能自理且子女亲属已接受隔离治疗,或者子女亲属参加疫情防控一线工作无暇照顾的空巢(独居)老年人的生活照料,对因新冠肺炎疫情影响造成监护缺失的儿童的救助保护,对生活无着流浪人员的劝导救助。

图 4:Inductiv 统一推理引擎的核心组成部分

三、inductiv 引擎:现代 AI 在结构化数据中的应用

我们开发了 inductiv,这是一个用于结构化数据的 AI 平台,训练模型理解数据的生成和「污染」过程。inductiv 可用于结构化数据的准备和清洗,例如错误检测、预测缺失值、错误校正、空值补齐、数据融合等。Inductiv 归属于学术开源项目 HoloClean(www.holoclean.io),该项目是我们在 2017 年与滑铁卢大学、威斯康星大学麦迪逊分校和斯坦福大学合作启动的。

用于生成训练数据的Ÿ数据增强和数据编程 目标列/值建模所需要的各种上下文的表示,例如学习异构数据的嵌入空间 自我监督学习,尽可能利用所有数据。比如使用其他值来重建某些观察到的数据值 将领域知识和规则输入到模型中,扩展模型的表达能力 进行一些系统级别的优化,例如学习数据分区和本地索引,以完善模型的可拓展性,提高模型适应多种数据分布的能力。

虽然人工智能的最新发展已经从非结构化数据中挖掘出了巨大价值,但对结构化数据而言,其研究和应用也是不可忽视的,因为结构化数据对于驱动企业的业务发展、营收、数据安全以及数据治理方面都有着重大意义。

如何将背景知识转化为模型输入,以解决数据稀疏性和异构性带来的挑战?在预测某个列中的值时,我们如何在机器学习模型中传递关键约束、函数依赖关系、否定约束和其他复杂的完整性逻辑作为模型输入? 在训练数据有限且存在脏数据,甚至有时都没有训练数据的情况下如何学习模型呢?以识别结构化数据错误的模型为例,该模型查找各种数据错误,包括错别字、缺失值、错误值、矛盾事实、数据错位等问题。使用非常有限的可用错误样本和可用数据中存在的这些错误来训练这样的模型,就是需要克服的挑战。  模型如何拓展到大规模应用?如何能支撑上百万个的随机变量?如果把实验条件下训练出来的模型,直接应用到复杂商业环境中的结构化数据,毫无疑问,结果肯定是失败的。

一、将数据清洗视为一个 AI 任务

模型。数据错误的异构性和异构性带来的其他影响,导致很难找到适合的统计特征和完整性约束作为属性,来帮助区分错误值和正确值。这些属性对应着数据库的属性级、元组级和数据集级的特征,而这些特征都是用来表示数据分布的。图 2 中描述的模型学习了一个表示层,该层通过捕获这些多级特征,来学习应用于错误检测的二分类器。 数据不平衡。数据错误的种类非常多,但通常样本数据中出现的错误数据是很少的,因此机器学习算法在面对不平衡的数据集时,训练出来的结果通常不太乐观。因此,不常见的数据错误,其特征经常被识别为噪音,因此被忽略。与常见数据错误相比,不常见的数据错误其识别的错误率很高。如图 3,我们提出了应用「数据扩增强」方法,按照学习到的错误生成策略来制造许多「伪」错误,使用少量的真实数据错误来学习策略参数。当样本的错误数据有限时,这一方法可以用于增加错误数据在样本数据中的分布。

针对上文提到的挑战,如何使用很少的样本数据进行训练的问题,我们在论文中提出了解决方案。

各地特别是人口流入大省、大市要重点做好针对返程人员的疫情监测工作,实现入户排查和重点群体监控“两个全覆盖”;重点做好封闭式管理社区的人员疏导、医疗救治、生活保障、心理慰藉,引导救护、救助、消防等应急车辆按需进出,将各项防控措施抓早抓小、落细落实。

数据背后的业务复杂性,基于特定规则和逻辑的系统复杂性,需要人工介入的数据清洗和准备工作的高成本,都阻碍着这一研究的发展。要在结构化数据 AI 应用上有所成果,首先需要解决人工数据清洗和准备的问题,找到极少或者没有人为干预的自动化方法,才能使得这一应用可落地可拓展。

图 4 描绘了前文提到的多种方法的核心组成部分,以处理不同的数据类型(例如量化数据的回归分析,定类数据的分类)。这些方法包括了基于注意力的上下文表示机制、分布式学习、数据切片以及多任务学习的自我监督。

有条件的地方,可为参与社区防控工作的社区工作者、基层医务人员办理专属保险。帮助解决社区工作者、基层医务人员家庭实际困难,探索开展社区工作者心理健康评估。加大对表现突出的城乡社区组织、基层医疗卫生机构和社区工作者、基层医务人员表扬力度。做好因社区防控工作牺牲的社区工作者、基层医务人员家属慰问关怀工作,相关情况要第一时间报当地党委、政府,并报上级民政、卫生健康部门。

图 1 :「干净」的数据是按照一定的生成过程生成的。我们也观察到了脏数据的生成过程。通过建模和参数化,我们将数据清理转变为了一个推断问题

不同于非结构化数据,结构化数据的 AI 研究一直存在着一个巨大的挑战,那就是其对于数据质量的高度敏感性。对于非结构化数据而言,人们或许可以接受分辨率不高的视频,略带瑕疵的图像识别。但对于拥有大量结构化数据的大型企业来说,其核心业务数据是不容许有丝毫差错的。比如对于制药公司来说,药品的剂量、价格和数量即使出现细微的数据错误,都有可能带来巨大的灾难。

图 2: 具有多级特征的错误检测模型

研究这些核心业务数据(结构化数据)在人工智能上的应用,是具有极大价值的,但受限于数据质量的高要求,大型企业在这类研究上举步维艰。尽管人工智能在结构化数据上的应用研究已经有数十年的时间,但目前仍进展甚微。