購物籃推薦場景太複雜?沒有商品相關性標籤?對比學習去噪解決

作者 | 對白

出品 | 對白的演算法屋

編者寄語:

世界是二元的,對比學習去噪用於下一個購物籃推薦。

卷友們好,

我是對白。

在我們使用天貓或京東購物時,平臺常常會進行購物籃推薦。而購物欄推薦也是序列化推薦的一個應用場景,今天我們介紹

SIGIR2021

的一篇關於推薦系統的文章,

將對比學習與序列化推薦相結合

,並且在四個真實資料集上取得了

SOTA

的效果,不禁感嘆,對比學習真的厲害!

購物籃推薦場景太複雜?沒有商品相關性標籤?對比學習去噪解決

‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

一、背景介紹

購物籃推薦場景太複雜?沒有商品相關性標籤?對比學習去噪解決

下一個購物籃推薦旨在透過考慮使用者之前購買的一系列購物籃來推斷使用者將在下次訪問時購買的一組商品

。現有的解決方案主要側重於對其歷史互動的順序建模。然而,由於

使用者行為的多樣性和隨機性

,並非所有購物籃都有助於識別使用者的下一步行為。有必要對購物籃去噪並提取可信的相關Item以提高推薦效能。不幸的是,這個維度在當前的文獻中通常被忽視。

購物籃推薦場景太複雜?沒有商品相關性標籤?對比學習去噪解決

為此,在本文中,我們提出了一種對比學習模型(命名為

CLEA

)來自動提取與目標專案相關的專案以進行下一個購物籃推薦。具體來說,在

Gumbel Softmax

的支援下,我們設計了一個去噪生成器來自適應地識別歷史籃子中的每個Item是否與目標Item相關。透過這個過程,

我們可以為每個使用者的每個籃子獲得一個正子籃子和一個負子籃子

。然後,我們透過基於

GRU

的上下文編碼器基於其組成Item匯出每個子籃子的表示,該編碼器表達與目標Item相關的偏好或不相關的噪聲。之後,設計了一個新穎的兩階段引導對比學習過程,以同時指導進行相關性學習,而無需任何Item的相關性監督。據我們所知,這是第一項以端到端的方式對購物籃進行Item級降噪以進行下一個購物籃推薦的工作。在具有不同特徵的四個真實世界資料集上進行了廣泛的實驗。結果表明,我們提出的 CLEA 比現有的最先進的替代方案實現了顯著更好的推薦效能。此外,進一步的分析還表明,CLEA 可以成功地發現與推薦決策相關的真實Item。

二、CLEA

CLEA網路結構框架如圖:

購物籃推薦場景太複雜?沒有商品相關性標籤?對比學習去噪解決

網路框架圖

‍‍‍‍‍‍整個框架分為三個部分:

‍‍‍‍‍‍

1。Denoising Generator 去噪生成器

2。 Context Encoder 上下文編碼器

3。 Contrastive Learning Process (anchor-based marginal loss)

先介紹圖中一些基礎符號:

藍色的是一組籃子;裡面是item1,2,4。。。ic是目標item。

2。1 去噪生成器

把每個籃子顯式分成了兩個正負不相交的子籃子,對應著和item相關的專案和無關的專案。 怎麼實現的也比較簡單,當前item和目標item的one-hot representatioin 【分別對應公示(2)的xj,xc】concat起來,MLP,gumbel softmax預測【這裡用gumbel softmax處理是因為前面用的one-hot離散特徵,可以實現反向傳播】,以0。5為閾值,大於0。5就是與目標item相關的,小於0。5是無關的。 公式如下:

購物籃推薦場景太複雜?沒有商品相關性標籤?對比學習去噪解決

2。2 上下文編碼

上一步每個籃子不是得到了兩個子籃子嗎,然後用GRU對分出來的序列進行編碼,最後一層的隱狀態作為特徵的表達,分別表示與目標項相關的偏好和無關的噪聲。vij是item的embedding【注意跟xj不同,xj是one-hot,這裡是embedding,怎麼獲取的??】

購物籃推薦場景太複雜?沒有商品相關性標籤?對比學習去噪解決

購物籃推薦場景太複雜?沒有商品相關性標籤?對比學習去噪解決

2。3 對比學習

作者用這postive隱狀態進行預測,並且剛開始用這兩個特徵構建了loss,公式如下:

購物籃推薦場景太複雜?沒有商品相關性標籤?對比學習去噪解決

購物籃推薦場景太複雜?沒有商品相關性標籤?對比學習去噪解決

但是這個loss只計算模型基於訓練集估計使用者偏好的準確性,在訓練中表現的效能不穩定,所以採用對比學習來進行,改進後loss如下:

購物籃推薦場景太複雜?沒有商品相關性標籤?對比學習去噪解決

從這個loss來看,希望pos籃子學習到的偏好估計是好於anchor【anchor就是用原始分被拆分的籃子序列進行GRU編碼得到】的,而neg籃子學習到的偏好是低於anchor的。

2。4 訓練過程

最終的訓練步驟是個二階段的,具體就是先訓練anchor表徵,再訓練pos/neg表徵,兩個步驟迭代進行。

購物籃推薦場景太複雜?沒有商品相關性標籤?對比學習去噪解決

在第二階段,我們用已經訓練好的 根據公式9去指導 和 的學習,迭代這兩個步驟直到覆蓋。

三、CLEA演算法流程

購物籃推薦場景太複雜?沒有商品相關性標籤?對比學習去噪解決

四、實驗結果

在四個真實的資料集上進行了實驗。對於每一個使用者,都隨機採用了1000個負樣本,然後在groud-truth基礎上對這些負樣本進行排序。

購物籃推薦場景太複雜?沒有商品相關性標籤?對比學習去噪解決

模型採用四個評估指標:Recall@K、Precision@K、F1@K和NDCG@K

購物籃推薦場景太複雜?沒有商品相關性標籤?對比學習去噪解決

對比結果:表明了這種hard把序列分成正負序列的做法,

比attention那種softmax進行加權求和的方法要更好

。以及,對比學習的兩階段訓練比聯合訓練好。

五、總結

基本的序列推薦方法,是把所有的歷史行為透過RNN、GRU等序列模型融合成固定長度的embedding,然後進行預測;但是使用者行為的隨機和多樣性導致不是所有的行為都有助於下一個物品預測的,所以進一步有基於attention的方法,

這類方法基本思路就是用過softmax加權求和的方式削弱歷史不相關物品的影響,但是仍然保留了一些噪聲

因此本文提出了一種透過用對比學習進行有效的去噪,並且取得了SOTA的效果,是一篇非常值得精度的論文。

購物籃推薦場景太複雜?沒有商品相關性標籤?對比學習去噪解決

你好,我是對白,碩士畢業於清華,現大廠演算法工程師,拿過八家大廠的SSP級以上offer。

高中榮獲全國數學和化學競賽二等獎。

本科時獨立創業五年,成立兩家公司,

並拿過總計三百多萬元融資(已到賬)

,專案入選南京321高層次創業人才引進計劃。創業做過無人機、機器人和網際網路教育,保研後選擇退居為股東。

我每週至少更新三篇原創,分享自己的演算法技術、創業心得和人生感悟。我正在努力實現人生中的第一個小目標,

上方關注後可以加我私信交流。

期待你關注我的公眾號,我們一起前行。

您的“

點贊/在看/分享

”是我堅持的最大動力!

堅持不易,賣萌打滾求鼓勵 (ฅ>ω<*ฅ)