推薦系統中信息增強的小技巧

2020-01-06   AI公園

作者:Dimitris Apostolopoulos

編譯:ronghuaiyang

導讀

實用的推薦系統的構建經驗,如何進行信息增強。

大家好,歡迎來到我的另一篇文章,我試圖馴服推薦系統的海洋,並與挪威海怪戰鬥(或產品—隨你怎麼叫)

在我之前的兩篇文章中,推薦系統中的產品聚類:一種文本聚類的方法,推薦系統中的命名實體識別:把產品匹配到不同的性別,你看到了我是如何處理產品的,如何搞定讓事情變得非常困難的問題。

你可以看到,數據(在我們的資料庫中,是商店的產品和客戶)越多,計算就越大,也越複雜。大而複雜的計算占用了大量的時間。我要對付的是一隻真正的怪獸!

我需要花很多時間來解決這個問題,但我手頭還有另一個任務:就像每一個優秀的英雄都會做的那樣,我需要用交互數據來幫助較小的商店,因為他們的交互數據是不夠的。

在這篇文章中,我將調查一下我的任務對我們模型的影響。

但讓我先提醒你推薦系統是什麼:

推薦系統是一個系統,旨在預測用戶對某項商品的偏好。

它使用的數據是用戶過去的交互(瀏覽、購買評級等等),然後推薦類似的產品給用戶,或者推薦物品與用戶之間交互的關鍵因素,這樣的話,會使得推薦的物品具有類似的特性。

但我知道你不喜歡長篇大論,這是行動,我們需要直奔主題。那麼,言歸正傳:

產品聚類和實體識別讓我駛向了不同的方向

為了避免更多的陷阱,我使用了和第一次相同的模型,但有一點不一樣:我在其中使用了產品聚類和命名實體識別。

讓我告訴你,這確實讓事情變得更安全了。

產品聚類是我將不同品牌的所有相同或相似的產品放在同一個類別下的過程。

命名實體識別是我們在非結構化文本中尋找和識別信息單元並將其歸類到預定義類別中的過程。

現在,在合併客戶與產品的交互之前,我完成了產品聚類。

這樣就創建了產品的組(聚類)

下一步是將客戶的交互分配給與之交互的產品所屬的聚類。

這樣的結果是,每個產品的信息都被增強了。我使用了交互數據,並在聚類中的所有產品之間共享它。

讓我為你解釋一下:

John 買了一件耐克的 t 恤衫,簡買了一件阿迪達斯的 t 恤衫,Peter 買了一雙阿迪達斯的鞋子。

T恤在同一組中,但是鞋子沒有在同一組裡面。

這些交互是這樣分配的:

但還有一件事需要注意:單個聚類中只包含來自一種性別的產品。

因此,除了中性(男女通用或其他未指定的)產品外,不可能有人選擇屬於另一種性別的產品。

模型的工作流

選擇產品的煩惱(以及我是如何解決這個問題的)

從聚類中選擇要推薦的產品並不都是有趣的遊戲。這些小蟲子有時候會有點狡猾。

所以,我手上還有另一個問題,我必須解決它,為了讓我的努力真正有意義。

我試圖找到一種方法來對聚類中的每個產品根據流行度來評分。但是有一個參數我沒有注意到:這使我最終一次又一次地從聚類中選擇完全相同的產品。

這個問題是,最高的分數每次只分配給同一個產品,沒有其他類型的數據來挽救其餘的產品。

現在,似乎這還不夠,這個評分方法使另一個怪物出現了:

一款針對男性的產品與一款針對女性的產品混在了一起

我不知道如何擺脫這個問題,當時唯一的邏輯解決方案是從聚類中隨機選擇每個產品。

最後變成了一場數字遊戲

顯然,當時我有點不知所措。然而,沒有解決辦法,只能堅持下去 — 即使這意味著我將在這個過程中崩潰和燃燒。

我使用了與我構建的第一個模型相同的度量標準,但是有一個小問題阻礙了整個過程:聚類。

在那個階段,我有了產品聚類而不是單個產品。聚類由相同或非常相似的產品組成。

這讓我別無選擇,只能在兩個不同的級別上度量我的船的性能:聚類和產品級別

結果很明顯。我的第一個模型是不完整的,但是通過添加產品聚類和命名實體識別,我設法改進了我的原始模型的各個組件並使其通過。

  • 準確性增加,從 2,3%到 7,58%
  • 精度增加,從 0,51%到 1,45%
  • 召回率增加,從 1,8%到 2,06%

到目前為止,一切都很好,這次旅行被認為是一次成功的旅行!

至少我是這麼想的。但我很快就做出了判斷……

數字會說謊(如果你數錯了)

是的,當我使用產品聚類時,矩陣的大小減小了。計算時間也減少了(萬歲!)。但這並不意味著我設法把它縮小到一個可工作的規模,它仍然太大,難以管理。

我面臨的另一個問題是,計算太複雜了,我的計劃無法正常工作。

我的計算在一兩件事上出了問題(請繼續關注我是如何解決這些問題的!)

當我觀察模型推薦的產品並將它們與我提供給模型的產品交互信息進行比較時,我意識到有些東西有點不對勁。

與產品的交互(瀏覽、添加到購物車、購買,等等)和客戶是不同的個體之間沒有區別。

這根本不是等式的一部分。

對我來說,這聽起來像是雷雨即將來臨。我別無選擇,只能找到解決辦法。

我找到了。但我現在還不會告訴你。歡迎收看我的下一次冒險。更多的怪物,複雜的機制和英雄任務等待著你!

英文原文:https://medium.com/moosend-engineering-data-science/recommender-system-the-information-enhancement-trick-79dd12ea88e3