NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

AI 系统如何识别重复数据?

  • 2021-07-30
  • 本文字数:1587 字

    阅读完需:约 5 分钟

AI系统如何识别重复数据?

当你同时比较两个 Salesforce 记录或任何其它 CRM 记录时,你可以很容易地确定它们是否重复。然而,当你有 10 万条这样的记录时,你几乎不可能一个一个地筛选它们,并进行这样的比较。这就是为什么很多公司开发了各种工具来自动化这些过程,为了做好工作,机器需要识别这些记录之间的相似性和差异性。在本文中,我们将更仔细地研究数据科学家用来训练机器学习系统识别重复的一些方法。

机器学习系统如何对比记录?


研究人员使用的主要工具之一是字符串度量。当你取数据中的两个字符串时,如果字符串相似,返回一个低值;如果字符串不同,则返回一个高值。这在实践中是如何工作的?让我们来看看下面两个记录:


First Name

Last Name

Email

Company Name

Ron 

Burgundy

ron.burgundy@acme.com

Acme

Ronald

burgundy

ron.burgundy@acme.com

Acme Corp


如果一个人看到这两个记录,很明显能看出来这是重复的。而机器依赖字符串度量来复现人类的思考过程,这就是所谓的人工智能。


最著名的字符串度量之一是汉明距离,它度量将一个字符串转换为另一个字符串所需的替换次数。例如,如果我们返回到上面的两条记录,只需要进行一次替换就可以将“burgundy”变成“Burgundy”,因此汉明距离是 1。

 

还有许多其它的字符串度量可以用来度量两个字符串之间的相似性,它们之间的区别是它们所允许的操作。例如,我们前面提到的汉明距离只允许替换,这意味着这种字符串度量只能应用于长度相等的字符串。而编辑距离(Levenshtein distance)允许删除、插入和替换。

如何消除 Salesforce 重复数据?


人工智能系统有许多方法可以实现 Salesforce 重复数据消除。其中一种方法是分区块,如下所示:


Record 1

Record 2

Ron Burgundy, ron.burgundy@acme.com, Acme

Ronald burgundy,ron.burgundy@acme.com Acme Corp


这种分区块方法具有可扩展性。它的工作方式是,每当你上传新的记录到你的 Salesforce,系统会自动将看起来“相似”的记录分块到一起,比如可以是名字的前三个字母或者任何其它条件。

 

这减少了需要进行比较的次数。例如,假设你的 Salesforce 中有 10 万条记录,而你想要上传一个包含 5 万条记录的 Excel 表。传统的基于规则的重复消除应用程序,需要将每个新记录与已有记录进行比较,那需要做 50 亿(100,000 x 50,000)次比较。想象一下这需要多少时间,并且会增加多少出错的概率。


此外,我们要知道,10 万条记录只是 Salesforce 记录中相当有限的一部分。有很多组织拥有数十万甚至上百万的记录。因此,在尝试适应此类模型时,传统方案的可伸缩性很差。

 

另一种选择是单独比较每个字段:


 

Record 1

Record 2

First Name

Ron

Ronald

Last Name

Burgundy

burgundy

Email

ron.burgundy@acme.com

ron.burgundy@acme.com

Company

Acme

Acme Corp


一旦系统将“相似的”记录分块到一起,它将继续逐字段分析每条记录。这是我们前面讨论的所有字符串度量发挥作用的地方。


除此之外,系统会给每个字段制定一个特定的“权重”或重要性。例如,假设对于你的数据集,“Email”字段是最重要的。你可以自己调整算法,或者当你将记录标记为重复(或不重复)时,系统会自动学习正确的权重。这被称为主动学习(Active Learning),这种方法更可取,因为系统可以精确计算一个字段相对于另一个字段的重要性。

机器学习方法的优点是什么?


机器学习能提供的最大好处是,它能为你做所有的工作。主动学习将自动给每个字段设置必要的权重。这意味着,不需要创建复杂的设置过程或规则。


让我们看看下面的场景。假设其中一个销售代表发现了一个重复记录,并将这个问题通知给 Salesforce 管理员。Salesforce 管理员将创建一个规则,从而防止将来发生此类重复。每次发现一种新的重复使得这一过程不可持续时,需要一遍又一遍地重复这个过程。

 

另外,我们需要记住,Salesforce 中基于重复数据消除的功能也是基于规则的,只是非常有限。例如,你一次只能合并三条记录,不支持自定义对象,以及其它许多限制。


机器学习是一种更智能的方法,因为规则的创建是自动化的,而人工智能和机器学习则试图重现人类的思维过程。在另一篇文章中,讨论了更多机器学习与自动化之间的区别。选择一个简单地扩展了 Salesforce 的功能的去重产品,而不修复整个过程,是没有意义的。这就是为什么机器学习方法是最好的方法。

作者介绍


Ilya Dudkin 是 Softwarium 的业务开发经理。

原文链接


How Do AI Systems Identify Duplicate Data?

公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2021-07-30 14:461535

评论

发布
暂无评论
发现更多内容

剖根问底:Java 不能实现真正泛型的原因是什么?

Java 程序员 后端

分布式架构——Gossip 协议详解

Java 程序员 后端

初探DispatcherServlet#doDispatch

Java 程序员 后端

互联网通信云盛会WICC广州站绿色报名通道开启

融云 RongCloud

力扣前400题解答笔记,全被字节大神整理到了这份文档里

Java 程序员 后端

十面阿里Java岗,看我怎么吊打面试官!

Java 程序员 后端

华为初面+综合面试(Java技术面)附上面试题

Java 程序员 后端

博客之星:我去,你竟然还不会用 synchronized

Java 程序员 后端

别再找了,这就是全网最全的SpringBean的作用域管理!

Java 程序员 后端

前华为18A架构师,总结“RabbitMQ”开发手册,已开源

Java 程序员 后端

别再说你不会-JVM-性能监控和调优了,看完这篇再发言!

Java 程序员 后端

凭借着这份Spring面试题,我拿到了阿里,字节跳动美团的offer!

Java 程序员 后端

初识Java语言(六)- 多态、抽象类以及接口

Java 程序员 后端

动手造轮子:实现一个简单的-AOP-框架

Java 程序员 后端

区块链编程七大语言,使用最多的竟是Java

Java 程序员 后端

分布式服务下,消息中间件改造

Java 程序员 后端

制作Docker镜像,用来编译OpenJDK11源码

Java 程序员 后端

南邮《网络技术与应用》4次作业

Java 程序员 后端

初识Servlet

Java 程序员 后端

十个超酷的java谋生方式,你喜欢吗?

Java 程序员 后端

华为安全技术专家与Linux内核到底发生了什么?这本小册子是怎么回事?

Java 程序员 后端

华山论剑!滴滴CTO五轮面试真是太刺激了,已拿到offer

Java 程序员 后端

怎样选择最合适的Linux发行版?23个版本横向对比,总有适合你的?

奔着腾讯去

Linux

厉害!腾讯T3-2都还在学的微服务+MySQL+Kafka+boot2

Java 程序员 后端

工作10年,面试超过500人想进阿里的同学,总结出的108道面试题

Java MySQL redis spring JVM

前后端项目练习(整合Spring)

Java 程序员 后端

华为java工程师的提升程序员实力的几点建议

Java 程序员 后端

初次远程面试蚂蚁金服,三面过后本以为凉凉,没想到直接被录取了

Java 程序员 后端

北上广深,2020,多少K的Java程序员应该懂高并发多线程和JVM优化

Java 程序员 后端

刚拿的字节跳动offer“打水漂”,TikTok不去了,我该何去何从

Java 程序员 后端

创建型模式之建造者模式——链式调用

Java 程序员 后端

AI系统如何识别重复数据?_AI&大模型_Ilya Dudkin_InfoQ精选文章