跳到主要内容
工程的博客

基于机器学习的零售商和品牌商品匹配

分享这篇文章

商品匹配是在线市场的核心功能。为了确保优化的客户体验,零售商将新的和更新的产品信息与现有列表进行比较,以确保一致性并避免重复。在线零售商也可能将他们的商品与竞争对手的商品进行比较,以确定价格和库存方面的差异。在多个站点提供产品的供应商可能会检查其产品的呈现方式,以确保与自己的标准保持一致。

商品匹配是在线市场的核心功能。

对有效物品匹配的需求当然不仅限于在线商务。几十年来,需求信号存储库(DSRs)承诺消费品制造商能够将补货订单数据与零售商销售点和联合市场数据结合起来,以开发更全面的需求图景。然而,DSR的价值受到制造商在多大程度上能够解决其产品定义与数十个零售合作伙伴之间的产品描述之间的差异的限制。bob体育外网下载

将这些类型的数据组合在一起的挑战在于匹配不同数据集所需的手工工作。幸运的是,我们在某些领域拥有通用键,可以实现数据集之间的直接链接,但在大多数情况下并非如此——我们被迫使用专家知识来确定哪些项可能是成对的,哪些是不同的。正是由于这个原因,在任何复杂的数据项目中,跨不同数据集匹配项通常是最长的步骤,随着新产品的添加,这个步骤必须不断重复。

追溯到20世纪70年代,在标准化产品代码方面进行了大量持续的尝试,突显了这一挑战的普遍性,但也突显了它的顽固性。基于规则和概率(模糊)匹配技术已经证明了软件在不完美数据上执行合理有效的产品匹配的潜力,但通常这些工具在它们支持的数据、自定义能力和扩展能力方面受到限制。随着机器学习、大数据平台和云计算的出现,我们有潜力发展这些技术并克服这些挑战。bob体育客户端下载

计算产品相似度

为了说明这是如何实现的,让我们首先检查如何使用产品信息来匹配两个项目。这里,我们有两个清单,一个来自abt.com另一个来自buy.com,如引用的Abt-Buy数据集所捕获的在这里,因为已确定为同一产品;

abt:电冰箱24白色内置洗碗机- FDB130WH采购:冰箱FDB130RGS 24'内置洗碗机(白色)

作为消费者,我们可以看一下名字,确定网站是在描述类似的产品。代码上的细微差异,即FDB130WH和FBD130RGS,可能会引起一些混淆,但我们可以查看网站上的产品说明,技术规格等,以确定这些是相同的电器。但是,我们如何指导计算机做同样的工作呢?

首先,我们可以将名称拆分为单个单词,标准化单词大小写,删除任何标点符号,并删除任何可以安全忽略的单词(如the、and和for),然后将其余元素视为未排序的单词集合(包)。在这里,我们对匹配的产品做了这样的处理,对单词进行排序是为了更容易进行视觉比较:

关于:[冰箱,fdb130wh, 24,内置,洗碗机,白色]采购:[冰箱,fdb130rgs, 24个,内置,洗碗机,白色]

我们可以看到,大多数单词是相同的。唯一的变化是在产品代码中发现的,即使这样,它也是在最后两三个字符中发生的变化。如果我们把这些单词分解成字符序列,(即。基于字符的字格),我们可以更容易地比较这些词的细节:

Abt: [fri, rig, igi, gid, ida, dai, air, ire, re, fdb, db1, b13, 130, 30w, 0wh, wh,…]]
采购:[fri, rig, igi, gid, ida, dai, air, ire, re, fdb, db1, b13, 130, 30r, rgs, gs,…]]

然后根据每个序列在名称中的出现频率及其在所有产品名称中的总体出现频率对其进行评分,未表示的序列被评分为零:

星期五,rig, igi, gid, ida, dai, air, ire, re, fdb, db1, b13, 130, 30w, 30r, 0wh, wh, rgs, gs,…
abt: 0.17, 0.19, 0.17, 0.13, 0.13, 0.17, 0.18, 0.20, 0.12, 0.14, 0.17, 0.18, 0.19, 0.02, 0.00, 0.13, 0.18, 0.00, 0.00,……
买:0.17,0.19,0.17,0.13,0.13,0.17,0.18,0.20,0.12,0.14,0.17,0.18,0.19,0.00,0.03,0.00,0.00,0.15,0.17,……

被称为TF-IDF得分,这种自然语言处理(NLP)技术允许我们将字符串比较问题转换为数学问题。这两个字符串之间的相似性现在可以计算为对齐值之间的平方差的总和,这两个字符串大约为0.359。当与这些产品的其他潜在匹配进行比较时,该值应该是最低的,表明实际匹配的可能性。

为产品名称提供的一系列步骤绝不是详尽的。对特定领域中特定模式的了解可能会鼓励使用其他更复杂的数据准备方法,但是最简单的技术通常是非常有效的。

对于较长的文本序列,如产品描述,基于单词的n-图和TF-IDF评分文本嵌入分析文本块中的单词关联可能会提供更好的评分方法。对于图像数据,采用类似的方法嵌入也可以应用,允许考虑更多的信息。作为零售商,比如沃尔玛证明,任何对确定产品相似度有用的信息都可以使用。这只是一个将信息转换成数字表示的问题,从数字表示中可以推导出距离或相关的相似性度量。

处理数据爆炸

在确定相似性的基础上,我们的下一个挑战是有效地将单个产品相互比较。为了理解这一挑战的规模,考虑将一个相对较小的10,000个产品数据集t与不同的10,000个产品数据集进行比较。一个详尽的比较需要评估1亿对产品。虽然不是不可能的挑战(特别是考虑到云资源的可用性),但更有效的快捷方式使我们能够将注意力集中在彼此更相似的对上。

Locality-Sensitive哈希(LSH)提供了一种快速有效的方法。LSH过程的工作原理是随机细分产品,这样具有相似数值得分的产品可能位于同一组中。细分的随机性意味着两个非常相似的产品可能会出现在不同的组中,但是通过多次重复这个过程,我们增加了两个非常相似的产品出现在同一组中至少一次的几率。这就是我们需要考虑的,作为进一步评估的候选人。

识别匹配

随着我们的焦点集中在最有可能匹配的产品上,我们转向实际匹配的确定。利用为所考虑的每个产品属性派生的相似性分数,我们现在寻求将这些分数转换为匹配概率。

这不是一个应用已知公式并权衡每个属性以得出单一预测的简单过程。相反,我们必须依靠ML算法从专家匹配的配对中学习,并确定这些分数应该如何组合以得出一个概率。一个典型的模型开发练习从一组有限的产品开始,这些产品是手动评估匹配的,为这个练习中使用的产品生成候选对,然后是任意数量的迭代训练二值分类算法直到得到一个合理的结果。

匹配ML工作流的样例产品。
图1所示。样例产品匹配工作流

然后将该模型用作更大管道的一部分,以对更多产品进行评分。匹配概率最高和最低的预测在很大程度上被接受,而专家们继续评估那些得分在中间的预测。这些专家识别的匹配被记录下来,并添加到下一个模型训练周期中,以减少需要持续进行人工评估的潜在匹配的数量。

利用Databricks进行产品匹配

Databricks是开发可扩展产品匹配功能的bob体育客户端下载理想平台。支持广泛数据格式和a丰富和可扩展Databricks提供了一个环境,数据科学家和数据工程师可以在这里探索许多不同的技术,如计算机视觉、自然语言处理和其他深度学习策略,以提取产品特征。

MLflow,一个与Databricks集成的机器学习模型管理平台,工程师可以操作与此过bob体育客户端下载程相关的多阶段特征生成、产品对生成和匹配预测工作流程。

随着云资源的快速供应和解除供应,这些工作流可以成本效益resources-as-needed分配。并融入更广泛的领域云服务生态系统,组织可以建立一个完整的产品匹配系统,在其环境中使用。

要了解如何使用Databricks来提供产品匹配功能,请查看我们的机器学习产品匹配解决方案加速器

免费试用Databricks

相关的帖子

看到所有工程的博客的帖子