跳到主要內容
工程的博客

基於機器學習的零售商和品牌商品匹配

分享這篇文章

商品匹配是在線市場的核心功能。為了確保優化的客戶體驗,零售商將新的和更新的產品信息與現有列表進行比較,以確保一致性並避免重複。在線零售商還可能將自己的商品與競爭對手的商品進行比較,以確定價格和庫存的差異。在多個站點提供產品的供應商可能會檢查他們的商品如何呈現,以確保與他們自己的標準保持一致。

商品匹配是在線市場的核心功能。

對有效商品匹配的需求當然不限於在線商務。幾十年來,需求信號存儲庫(DSRs)向消費品製造商承諾,能夠將補充訂單數據與零售商銷售點和聯合市場數據結合起來,以開發更全麵的需求圖。然而,DSR的價值受到製造商能夠解決其產品定義與數十個零售合作夥伴之間產品描述差異的程度的限製。

將這些類型的數據組合在一起的挑戰在於需要手動匹配不同的數據集。幸運的是,我們在某些領域擁有通用鍵,可以實現數據集之間的直接鏈接,但在大多數情況下,情況並非如此——我們被迫使用專家知識來確定哪些項可能是對的,哪些項是不同的。正是由於這個原因,在任何複雜的數據項目中,跨不同的數據集匹配項通常是最長的步驟,隨著新產品的添加,這個步驟必須不斷重複。

自20世紀70年代以來,許多正在進行的標準化產品代碼的嚐試突出了這一挑戰的普遍性,但也突出了它的頑固性。基於規則和概率(模糊)匹配技術已經證明了軟件在不完美數據上執行合理有效的產品匹配的潛力,但通常這些工具在支持的數據、自定義能力和擴展能力方麵受到限製。隨著機器學習、大數據平台和雲的出現,我們有潛力發展這些技術並克服這些挑戰。Beplay体育安卓版本

計算產品相似性

為了說明如何做到這一點,讓我們首先研究如何使用產品信息來匹配兩個項目。這裏,我們有兩個列表,一個來自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是開發可擴展產品匹配功能的Beplay体育安卓版本理想平台。支持廣泛的數據格式和豐富且可擴展Databricks提供了一個環境,數據科學家和數據工程師可以在其中探索許多不同的技術,如計算機視覺、NLP和其他深度學習策略,以提取產品特征。

MLflow,一個集成了Databricks的機器學習模型管理平台,工程師可以操作與此過Beplay体育安卓版本程相關的多階段特征生成、產品對生成和匹配預測工作流。

隨著雲資源的快速配置和取消配置,這些工作流可以被簡化成本效益resources-as-needed分配。並與更廣泛的整合雲服務生態係統,組織可以建立一個完整的產品匹配係統,以在其環境中使用。

要了解如何使用Databricks提供產品匹配功能,請參閱我們的機器學習產品匹配解決方案加速器

免費試用Databricks

相關的帖子

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