跳到主要内容
工程的博客

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

分享这篇文章

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

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

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

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

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

计算产品相似性

为了说明如何做到这一点,让我们首先研究如何使用产品信息来匹配两个项目。这里,我们有两个列表,一个来自abt.com另一个来自buy.com,所引用的Abt-Buy数据集中捕获的数据在这里,因为已确定为同一产品:

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

作为消费者,我们可以看一下名称,确定网站描述的是类似的产品。代码上的细微差异,例如FDB130WH和FBD130RGS,可能会造成一些混淆,但我们可以查看网站上的产品描述、技术规格等,以确定它们是相同的电器。但是我们如何让计算机做同样的工作呢?

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

关于:[冷水机,fdb130wh, 24,内置,洗碗机,白色]购买:[frigidaire, fdb130rgs, 24,内置,洗碗机,白色]

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

关于:[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,…]]

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

Fri, 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。与这些产品的其他潜在匹配相比,这个值应该是最低的,表示实际匹配的可能性。

为产品名称介绍的一系列步骤绝不是详尽的。对特定领域的特定模式的了解可能会鼓励使用其他更复杂的数据准备方法,但最简单的技术往往出人意料地有效。

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

处理数据爆炸

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

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

识别匹配

我们将注意力集中在最有可能匹配的产品上,然后转向实际匹配确定。利用所考虑的每个产品属性的相似性得分,我们现在试图将这些得分转化为匹配概率。

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

一个匹配ML工作流程的样品产品。
图1所示。一个样品产品匹配工作流

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

利用数据库进行产品匹配

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

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

随着云资源的快速配置和取消配置,这些工作流可以被简化成本效益resources-as-needed分配。并与更广泛的整合云服务生态系统,组织可以建立一个完整的产品匹配系统,以在其环境中使用。

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

免费试用Databricks

相关的帖子

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