热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

在处理非结构化数据的问题上,人工智能和深度学习方法一直都表现出众且广为人知,无论是在自然语言处理、知识库自动构建,还是图像视频的识别和生成应用中,都有很多成熟案例。然而对于结构化数据的研究,似乎已经被人工智能和深度学习忘之脑后。结构化数据普遍存在于各类商业应用软件和系统中,例如产品数据存储,交易日志,ERP和CRM系统中都存在大量结构化数据,这些结构化数据仍应用着陈旧的数据技术处理,如基于规则的系

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

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

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

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

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

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

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

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

  • 可以将业务规则在内的所有信号和上下文,函数依赖和键等约束条件以及数据的统计属性进行组合。

  • 能够避免构建大量的规则,同时可以兼容极端情况。在许多情况下,结构化数据中的规则管理比清洗噪音数据更具挑战性,成本更高。

  • 最终,模型所提供的预测应用于标准的数据质量测试中,能够传达一种「信心」:模型的预测能够解决大多数情况,而人工,只需要专注去处理特殊的案例。

虽然结构化数据在 AI 应用的研究中困难重重,我们还是找到了一些方法并有所进展。处理结构化数据并不仅仅依赖于数据本身的特征 (稀疏,异构,丰富的语义和领域知识),数据表集合 (列名,字段类型,域和各种完整性约束等)可以解码各数据块之间的语义和可能存在的交互的重要信息。

举个例子,两个不同的城市不可能都对应相同的邮政编码,一个项目的总预算不可能超过其计划的开支。这都是可以明确提供的条件约束,这些条件约束增强了机器学习模型在结构化数据处理上的能力,而不仅仅是做统计分析。

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

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

  • 如何将背景知识转化为模型输入,以解决数据稀疏性和异构性带来的挑战?在预测某个列中的值时,我们如何在机器学习模型中传递关键约束、函数依赖关系、否定约束和其他复杂的完整性逻辑作为模型输入?

  • 在训练数据有限且存在脏数据,甚至有时都没有训练数据的情况下如何学习模型呢?以识别结构化数据错误的模型为例,该模型查找各种数据错误,包括错别字、缺失值、错误值、矛盾事实、数据错位等问题。使用非常有限的可用错误样本和可用数据中存在的这些错误来训练这样的模型,就是需要克服的挑战。

  • 模型如何拓展到大规模应用?如何能支撑上百万个的随机变量?如果把实验条件下训练出来的模型,直接应用到复杂商业环境中的结构化数据,毫无疑问,结果肯定是失败的。

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

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

HoloClean 采用经典的噪声通道模型来学习数据的生成和「污染」过程。完整的研究论文: https://cs.uwaterloo.ca/~ilyas/papers/DeSaICDT2019.pdf。

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

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

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

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

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

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

  • 模型。数据错误的异构性和异构性带来的其他影响,导致很难找到适合的统计特征和完整性约束作为属性,来帮助区分错误值和正确值。这些属性对应着数据库的属性级、元组级和数据集级的特征,而这些特征都是用来表示数据分布的。图 2 中描述的模型学习了一个表示层,该层通过捕获这些多级特征,来学习应用于错误检测的二分类器。

  • 数据不平衡。数据错误的种类非常多,但通常样本数据中出现的错误数据是很少的,因此机器学习算法在面对不平衡的数据集时,训练出来的结果通常不太乐观。因此,不常见的数据错误,其特征经常被识别为噪音,因此被忽略。与常见数据错误相比,不常见的数据错误其识别的错误率很高。如图 3,我们提出了应用「数据扩增强」方法,按照学习到的错误生成策略来制造许多「伪」错误,使用少量的真实数据错误来学习策略参数。当样本的错误数据有限时,这一方法可以用于增加错误数据在样本数据中的分布。

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

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

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

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

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

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

  • 用于生成训练数据的Ÿ数据增强和数据编程

  • 目标列/值建模所需要的各种上下文的表示,例如学习异构数据的嵌入空间

  • 自我监督学习,尽可能利用所有数据。比如使用其他值来重建某些观察到的数据值

  • 将领域知识和规则输入到模型中,扩展模型的表达能力

  • 进行一些系统级别的优化,例如学习数据分区和本地索引,以完善模型的可拓展性,提高模型适应多种数据分布的能力。

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

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

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

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

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

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

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

四、结语

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

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

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

via https://towardsdatascience.com/ai-should-not-leave-structured-data-behind-33474f9cd07a

雷锋网原创文章,未经授权禁止转载。详情见 转载须知 。

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


以上所述就是小编给大家介绍的《结构化数据不应该被人工智能遗忘!》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 我们 的支持!


推荐阅读
  • 鄂维南:从数学角度,理解机器学习的「黑魔法」,并应用于更广泛的科学问题...
    作者|Hertz来源|科学智能AISI北京时间2022年7月8日晚上22:30,鄂维南院士在2022年的国际数学家大会上作一小时大会报告(plenarytalk)。今 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 「爆干7天7夜」入门AI人工智能学习路线一条龙,真的不能再透彻了
    前言应广大粉丝要求,今天迪迦来和大家讲解一下如何去入门人工智能,也算是迪迦对自己学习人工智能这么多年的一个总结吧,本条学习路线并不会那么 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 李逍遥寻找仙药的迷阵之旅
    本文讲述了少年李逍遥为了救治婶婶的病情,前往仙灵岛寻找仙药的故事。他需要穿越一个由M×N个方格组成的迷阵,有些方格内有怪物,有些方格是安全的。李逍遥需要避开有怪物的方格,并经过最少的方格,找到仙药。在寻找的过程中,他还会遇到神秘人物。本文提供了一个迷阵样例及李逍遥找到仙药的路线。 ... [详细]
  • 本文介绍了在Python张量流中使用make_merged_spec()方法合并设备规格对象的方法和语法,以及参数和返回值的说明,并提供了一个示例代码。 ... [详细]
  • 本文介绍了Codeforces Round #321 (Div. 2)比赛中的问题Kefa and Dishes,通过状压和spfa算法解决了这个问题。给定一个有向图,求在不超过m步的情况下,能获得的最大权值和。点不能重复走。文章详细介绍了问题的题意、解题思路和代码实现。 ... [详细]
  • 本文介绍了贝叶斯垃圾邮件分类的机器学习代码,代码来源于https://www.cnblogs.com/huangyc/p/10327209.html,并对代码进行了简介。朴素贝叶斯分类器训练函数包括求p(Ci)和基于词汇表的p(w|Ci)。 ... [详细]
  • 本文介绍了在go语言中利用(*interface{})(nil)传递参数类型的原理及应用。通过分析Martini框架中的injector类型的声明,解释了values映射表的作用以及parent Injector的含义。同时,讨论了该技术在实际开发中的应用场景。 ... [详细]
  • 【论文】ICLR 2020 九篇满分论文!!!
    点击上方,选择星标或置顶,每天给你送干货!阅读大概需要11分钟跟随小博主,每天进步一丢丢来自:深度学习技术前沿 ... [详细]
  • 本人学习笔记,知识点均摘自于网络,用于学习和交流(如未注明出处,请提醒,将及时更正,谢谢)OS:我学习是为了上 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
author-avatar
孙亦然5277
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有