当你同时比较两个 Salesforce 记录或任何其它 CRM 记录时,你可以很容易地确定它们是否重复。然而,当你有 10 万条这样的记录时,你几乎不可能一个一个地筛选它们,并进行这样的比较。这就是为什么很多公司开发了各种工具来自动化这些过程,为了做好工作,机器需要识别这些记录之间的相似性和差异性。在本文中,我们将更仔细地研究数据科学家用来训练机器学习系统识别重复的一些方法。
研究人员使用的主要工具之一是字符串度量。当你取数据中的两个字符串时,如果字符串相似,返回一个低值;如果字符串不同,则返回一个高值。这在实践中是如何工作的?让我们来看看下面两个记录:
First Name | Last Name | Company Name | |
---|---|---|---|
Ron | Burgundy | ron.burgundy@acme.com | Acme |
Ronald | burgundy | ron.burgundy@acme.com | Acme Corp |
如果一个人看到这两个记录,很明显能看出来这是重复的。而机器依赖字符串度量来复现人类的思考过程,这就是所谓的人工智能。
最著名的字符串度量之一是汉明距离,它度量将一个字符串转换为另一个字符串所需的替换次数。例如,如果我们返回到上面的两条记录,只需要进行一次替换就可以将“burgundy”变成“Burgundy”,因此汉明距离是 1。
还有许多其它的字符串度量可以用来度量两个字符串之间的相似性,它们之间的区别是它们所允许的操作。例如,我们前面提到的汉明距离只允许替换,这意味着这种字符串度量只能应用于长度相等的字符串。而编辑距离(Levenshtein distance)允许删除、插入和替换。
人工智能系统有许多方法可以实现 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 |
ron.burgundy@acme.com | ron.burgundy@acme.com | |
Company | Acme | Acme Corp |
一旦系统将“相似的”记录分块到一起,它将继续逐字段分析每条记录。这是我们前面讨论的所有字符串度量发挥作用的地方。
除此之外,系统会给每个字段制定一个特定的“权重”或重要性。例如,假设对于你的数据集,“Email”字段是最重要的。你可以自己调整算法,或者当你将记录标记为重复(或不重复)时,系统会自动学习正确的权重。这被称为主动学习(Active Learning),这种方法更可取,因为系统可以精确计算一个字段相对于另一个字段的重要性。
机器学习能提供的最大好处是,它能为你做所有的工作。主动学习将自动给每个字段设置必要的权重。这意味着,不需要创建复杂的设置过程或规则。
让我们看看下面的场景。假设其中一个销售代表发现了一个重复记录,并将这个问题通知给 Salesforce 管理员。Salesforce 管理员将创建一个规则,从而防止将来发生此类重复。每次发现一种新的重复使得这一过程不可持续时,需要一遍又一遍地重复这个过程。
另外,我们需要记住,Salesforce 中基于重复数据消除的功能也是基于规则的,只是非常有限。例如,你一次只能合并三条记录,不支持自定义对象,以及其它许多限制。
机器学习是一种更智能的方法,因为规则的创建是自动化的,而人工智能和机器学习则试图重现人类的思维过程。在另一篇文章中,讨论了更多机器学习与自动化之间的区别。选择一个简单地扩展了 Salesforce 的功能的去重产品,而不修复整个过程,是没有意义的。这就是为什么机器学习方法是最好的方法。
Ilya Dudkin 是 Softwarium 的业务开发经理。
领取专属 10元无门槛券
私享最新 技术干货