【論文閱讀】Contrastive Clustering Learning for Multi-Behavior Recommendation

論文地址:Contrastive Clustering Learning for Multi-Behavior Recommendation | ACM Transactions on Information Systems


摘要

近年來,多行為推薦模型取得了顯著成功。然而,許多模型未充分考慮不同行為之間的共性與差異性,以及目標行為的數據稀疏性問題。本文提出了一種基于對比聚類學習的全新多行為推薦模型(MBRCC)。

具體而言,采用圖卷積網絡(GCN)分別獲取用戶和物品的嵌入表示。隨后,設計了三種優化用戶和物品嵌入的任務,包括行為級嵌入、實例級嵌入和聚類級嵌入。

在行為級嵌入中,設計了一種自適應參數學習策略,以分析輔助行為對目標行為的影響,并通過對用戶在各行為上的嵌入進行加權,獲得最終的用戶嵌入表示。

在實例級嵌入中,利用對比學習對用戶和物品實例進行分析,以緩解數據稀疏性問題。

在聚類級嵌入中,設計了一種新的聚類對比學習方法,以捕捉用戶和物品群體之間的相似性。

最終,結合這三種任務,以提升用戶和物品嵌入的質量。在三個真實世界數據集上的廣泛實驗表明,MBRCC 顯著優于現有的多種推薦模型。

引言

推薦系統在在線廣告、社交媒體和電子商務等多個領域發揮著至關重要的作用。它通過智能信息過濾和個性化推薦,幫助用戶快速找到符合其興趣和需求的內容。個性化推薦不僅提升了用戶體驗,還促進了商業交易的成功。

目前,大多數推薦模型主要關注用戶與物品之間的單一行為關系。例如,Zheng 等人[57]提出了一種基于單一行為數據挖掘物品屬性信息的推薦方法;Wang 等人[36]在單一行為數據上研究了用戶-物品的高階信息;Li 等人[24]利用元學習方法提升用戶和物品的表示效果;Lan 等人[21]基于歷史交互數據構建了用戶和物品的雙分支圖來捕獲信息。然而,在實際應用中,用戶和物品的交互通常涉及多種行為類型。例如,如圖 1 所示,在電子商務平臺上,用戶的行為通常包括瀏覽、點擊和購買等。此外,與用戶交互的物品數量不斷增長,僅依賴單一行為難以準確推測用戶的偏好,因此需要借助輔助行為進行推薦。

為了充分利用輔助行為信息,近年來涌現出越來越多的多行為推薦模型。例如,Gao 等人[9]提出了一種基于神經網絡的多任務推薦框架,以級聯方式關聯各類行為,利用用戶在購買前通常瀏覽相關感興趣物品的現象來整合不同行為信息;Jin 等人[17]提出了一種多行為推薦模型,通過用戶-物品交互的傳播層捕捉行為強度,并通過物品-物品交互的傳播層捕捉行為語義;Chen 等人[7]提出了一種基于多行為的推薦模型,在可控時間復雜度下高效捕捉不同行為信息,該模型采用基于用戶、基于物品和交替優化的三種方法來挖掘不同行為間的復雜關系。此外,Chen 等人[5]考慮到用戶和物品交互中的高階協同信息,提出了一種基于協同過濾的異構圖推薦模型,該模型采用關系感知傳播層顯式獲取高階信號;Wei 等人[39]提出了一種基于多種行為類型圖的注意力多行為推薦模型,以捕捉用戶-物品交互網絡中的隱藏關系,該模型同時考慮了節點級特定行為的重要性和行為級不同行為的語義強度。此外,一些研究還結合了對比學習與多行為推薦。例如,Gu 等人[11]提出了一種基于自監督圖卷積網絡(GCN)的多行為推薦模型,以緩解監督信號稀疏問題,該模型采用星型對比學習策略來學習不同行為之間的共性;Wu 等人[42]提出了一種基于多視圖的多行為對比學習推薦模型,以有效緩解冷啟動問題,該模型整合了多行為、多視圖和行為區分的對比學習。

盡管上述研究在提升推薦性能方面取得了顯著進展,但仍然存在以下局限性:
(1) 一些多行為推薦的對比學習方法主要基于個體行為,缺乏從群體角度綜合考慮不同行為,這通常導致用戶和物品的嵌入表示無法全面覆蓋行為信息;
(2) 由于相似用戶的行為通常具有共性,而不同用戶的行為往往存在差異,因此用戶和物品的共性與差異可提供更豐富的語義信息。然而,部分模型未充分考慮用戶或物品之間的共性與差異,可能導致群體偏差或信息過濾不足;
(3) 部分方法忽視了目標行為的數據稀疏性問題。例如,相較于點擊、瀏覽和加入購物車等行為,購買行為的數據較為稀疏,這可能導致推薦偏差或冷啟動問題,因為對比學習中難以構造足夠數量和多樣性的正負樣本對。

針對現有多行為推薦模型的這些局限性,本文提出了一種基于對比聚類學習的全新多行為推薦模型(MBRCC)。具體而言,采用 GCN 獲取用戶和物品在不同行為上的嵌入表示,并圍繞這些嵌入設計三類任務,以提升嵌入質量:
(a) 行為級嵌入:采用自適應參數學習策略計算用戶在不同行為上的嵌入權重,并通過加權方法融合所有行為的用戶嵌入;
(b) 實例級嵌入:基于用戶和物品不同行為間的共性,采用對比學習優化用戶和物品的嵌入表示,使正樣本對之間的共性最大化,負樣本對之間的共性最小化;
(c) 聚類級嵌入:多行為數據通常展現出類似的群體模式,因此采用對比聚類學習方法挖掘用戶和物品嵌入的潛在信息,以促進實例級用戶和物品之間的共性。

在三個真實世界數據集上對 MBRCC 進行了實驗評估,結果表明,相較于其他基線模型,本文的方法在所有數據集上至少提升了 7% 的推薦性能。本文的主要貢獻如下:

  • 提出了一種新型多行為推薦模型(MBRCC),包括行為級嵌入、實例級嵌入和聚類級嵌入,并首次在多行為推薦任務中應用對比聚類學習,以捕捉用戶和物品的嵌入信息;
  • 在實例級嵌入中考慮了用戶和物品之間的共性與差異,同時引入群體聚類級嵌入,最大化用戶和物品之間的關聯信息利用率,從而有效緩解數據稀疏性問題;
  • 在三個真實數據集上驗證了 MBRCC 模型的有效性,實驗結果表明,MBRCC 在推薦性能上顯著優于現有模型。

模型

所提出的模型 (MBRCC) 如圖 2 所示,主要包含四個部分。

嵌入表示部分,異構圖 G 根據行為類別劃分為 K?個子圖。此外,為了獲取完整的嵌入信息,設計了三種任務。在行為級別嵌入中,方法側重于獲取用戶在每個子圖上的嵌入權重。這些權重與相應子圖的嵌入進行聚合,以更好地捕獲用戶行為在不同子圖中的重要性。對于物品嵌入,采用簡單的拼接操作,因為它們具有靜態屬性。在實例級別嵌入中,采用對比學習方法,將目標行為(即購買行為)的用戶和物品嵌入與其他輔助行為進行比較,利用對比學習策略提取用戶和物品之間的實例級共性信息,作為局部特征。在聚類級別嵌入中,針對每種輔助行為獲取特征組,并將目標行為加入這些特征組中。然后,使用 softmax 方法在每個特征組中獲取不同的特征簇,并在各特征簇之間進行對比學習。最終,這三種任務相結合,以優化用戶和物品的嵌入。

4.1 嵌入表示

基于子圖 Gk,采用 GCN 獲取用戶和物品的表示。零層的嵌入表示是矩陣 E(0)中行向量的隨機初始化。在模型中,采用多層消息傳播,通過收集連接鄰居的信息來獲取完整的節點信息。為了適應推薦任務,去除了通用 GCN 嵌入聚合中的特征變換矩陣和非線性激活函數,類似于 LightGCN。公式如下:

其中,Nu 和 Ni?分別表示用戶 u和物品 i?的鄰居數量,l表示當前圖卷積層數,(e^k_u)^{(l+1)} 代表 k?類行為的第 l+1 層用戶嵌入。在獲取每層的嵌入信息后,需要聚合所有層的信息,以確保更好的節點嵌入表示:

其中,αl 代表第 l?層嵌入的權重,與 LightGCN 一致,其中 L為 GCN 的層數。物品嵌入的學習過程與用戶嵌入類似。

4.2 行為級別嵌入

多行為數據可以提供更詳細的信息,使用戶和物品的嵌入表示更加完整。在行為級別嵌入中,設計了一種自適應參數學習方法,根據不同行為數據的分布,捕獲每種行為的權重:

其中,αuk代表用戶 u?在 k?類行為上的權重,wk 表示 kk 類行為的重要性。為了簡化模型,假設 wk 對所有用戶均具有相同影響。xuk 代表用戶 u 在 k 類行為下的交互物品數量。最終的用戶嵌入通過所有行為的加權求和得到:

其中,W?和 b?分別為權重和偏差,σ 代表非線性激活函數。最終的物品嵌入通過拼接所有行為的嵌入獲得:

其中,Cat表示拼接操作,MLP 代表多層感知機(Multi-Layer Perceptron)。通過融合操作,得到最終的用戶嵌入 eu 和物品嵌入 ei。為了確保相似節點具有更高的相似度,采用 BPR 損失進行優化:

其中,D?為訓練數據集,(u,i+)和 (u,i?) 分別代表已觀測的交互和未知交互。

4.3 實例級別嵌入

在實例級別嵌入中,采用對比學習方法來優化用戶和物品的嵌入,目標是最大化正樣本(用戶或物品的同一行為嵌入)之間的相似性,同時最小化負樣本(不同用戶或物品的嵌入)之間的相似性。
對于第 k類輔助行為,計算其嵌入與目標行為嵌入之間的余弦相似度:

具體來說,將同一用戶在不同行為上的嵌入視為正樣本對,而來自不同用戶的嵌入視為負樣本對。假設有 N?個用戶和 M?個物品,對于用戶 u,其目標行為嵌入為 e^p_u,輔助行為嵌入為 e^k_u,則:

  • (e^p_u, e^k_u) 設為正樣本對
  • 其余2N - 2 對設為負樣本對

對于物品 i,目標行為嵌入為e^p_i,輔助行為嵌入為e^k_i,則:

  • (e^p_i, e^k_i) 設為正樣本對
  • 其余2M - 2 對設為負樣本對

為了優化對比學習中的樣本相似度,目標行為 p 和輔助行為 k 需考慮用戶損失:

其中,τ是溫度參數。

與 Lpu和 Lpi 類似,用戶和物品在第 k 個輔助行為下的損失函數定義如下:

目標是識別數據集中所有的正樣本對。對于每個用戶和物品,計算實例級損失,定義如下:

對于物品嵌入的實例級損失,采用與用戶嵌入類似的方法。最終,通過匯總所有用戶和物品的對比損失,得到實例級嵌入損失:

4.4 聚類級嵌入

聚類級嵌入遵循“物以類聚”的概念。用戶嵌入和物品嵌入被映射到一個維度等于聚類數的空間,使用戶和物品嵌入可以被解釋為屬于特定聚類的概率。然后,采用對比聚類學習方法來捕捉聚類特征。

對于目標行為及每個輔助行為,分別劃分為 C 個聚類。其中,e^p_c 表示目標行為的第 c 個聚類,而 e^k_c 表示第 k 個輔助行為的第 c 個聚類。對于用戶 u,使用 softmax 方法計算其在目標行為下被分配到第 c 個聚類的概率Y^p_{u,c}。

與實例級嵌入類似,通過選擇目標行為和第 k?個輔助行為中相似的聚類得到正樣本對 (e^p_c, e^k_c),而其余的 2C-2 個對則被視為負樣本對。然后,采用余弦相似度計算這些聚類之間的相似性,定義如下:

其中 c,c′∈{1,2,...,C},k1,k2∈{p,k}。目標行為的損失函數 Lcp用于區分目標行為下的e^p_c 和所有不屬于 e^k_c 的聚類,定義如下:

其中 τ0?是聚類級溫度系數,控制損失的平滑度。同樣,對于第 k?個輔助行為,聚類損失定義如下:

用戶嵌入的聚類級損失通過遍歷所有聚類得到,定義如下:

熵項 H(Y) 用于防止大多數樣本被劃分到同一聚類中。

對于物品嵌入的聚類級損失 ,采用與用戶嵌入類似的方法。最終,將每組用戶嵌入和物品嵌入的損失合并,得到聚類級嵌入損失:

4.5 聯合優化

聯合優化用于結合三種任務,定義如下:

其中,λ 控制實例級嵌入的權重,μ控制聚類級嵌入的權重,Θ 表示所有可訓練參數,γ為正則化超參數。

4.6 算法描述

模型描述在算法 1 中。給定異構圖 G、子圖 Gk、聚類數 C、溫度系數 τ 和 τ0,MBRCC 的目標是為每個用戶生成一個 Top-N 推薦列表。算法 1 描述了 MBRCC 的訓練過程,主要分為三個任務,每個任務分別包含一個損失函數。

實驗


想看一下對比聚類怎么用到推薦算法中。。。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/898531.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/898531.shtml
英文地址,請注明出處:http://en.pswp.cn/news/898531.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

藍橋杯2023年第十四屆省賽真題-子矩陣

題目來自DOTCPP: 暴力思路(兩個測試點超時): 題目要求我們求出子矩陣的最大值和最小值的乘積,我們可以枚舉矩陣中的所有點,以這個點為其子矩陣的左上頂點,然后判斷一下能不能構成子矩陣。如果可…

centos 磁盤重新分割,將原來/home 下部分空間轉移到 / 根目錄下

上次重裝系統時,不小心將一半磁盤放在了 /home 下面,運行一段時間后,發現/home 空間沒有怎么用,反而是/ 目錄報警說磁盤用完了,準備將 /home下的空間分一部分給主目錄 / 先查看下 空間分布情況 df -lh 可以看到&…

【C#語言】C#同步與異步編程深度解析:讓程序學會“一心多用“

文章目錄 ?前言?一、同步編程:單線程的線性世界🌟1、尋找合適的對象?1) 🌟7、設計應支持變化 ?二、異步編程:多任務的協奏曲?三、async/await工作原理揭秘?四、最佳實踐與性能陷阱?五、異步編程適用場景?六、性能對比實測…

Redis命令詳解--集合

Redis set 是string類型的無序集合。集合成員是唯一的,這就意味著集合中不能出現重復的數據,常用命令: SADD key member1 [member2...] 向集合添加一個或多個成員 SREM key member1 [member2...] 移除集合中一個或多個成員 SMEMBERS key 獲…

學習筆記 ASP.NET Core Web API 8.0部署到iis

一.修改配置文件 修改Program.cs配置文件將 if (app.Environment.IsDevelopment()) {app.UseSwagger();app.UseSwaggerUI(); }修改為 app.UseSwagger(); app.UseSwaggerUI(); 二.安裝ASP.NET Core Runtime 8.0.14 文件位置https://dotnet.microsoft.com/en-us/download/do…

配置 VSCode 的 C# 開發環境

1. 安裝必要的依賴 1.1 VSCode 擴展 安裝 C# 相關插件(如 C#、C# Extensions 等)。 1.2 .NET SDK 下載地址:.NET SDK 下載頁面 1.3 安裝檢測 在命令行輸入以下命令,如果正確返回了版本號,則表示 .NET SDK 安裝成…

從零搭建微服務項目Pro(第6-1章——Spring Security+JWT實現用戶鑒權訪問與token刷新)

前言: 在現代的微服務架構中,用戶鑒權和訪問控制是非常重要的一部分。Spring Security 是 Spring 生態中用于處理安全性的強大框架,而 JWT(JSON Web Token)則是一種輕量級的、自包含的令牌機制,廣泛用于分…

使用HAI來打通DeepSeek的任督二脈

一、什么是HAI HAI是一款專注于AI與科學計算領域的云服務產品,旨在為開發者、企業及科研人員提供高效、易用的算力支持與全棧解決方案。主要使用場景為: AI作畫,AI對話/寫作、AI開發/測試。 二、開通HAI 選擇CPU算力 16核32GB,這…

【保姆級】阿里云codeup配置Git的CI/CD步驟

以下是通過阿里云CodeUp的Git倉庫進行CI/CD配置的詳細步驟,涵蓋前端(Vue 3)和后端(Spring Boot)項目的自動化打包,并將前端打包結果嵌入到Nginx的Docker鏡像中,以及將后端打包的JAR文件拷貝至Do…

LINUX網絡編程API原型詳細解析

1. 網絡體系 1.1. 簡介 網絡采用分而治之的方法設計,將網絡的功能劃分為不同的模塊,以分層的形式有機組合在一起。 每層實現不同的功能,其內部實現方法對外部其他層次來說是透明的。每層向上層提供服務,同時使用下層提供…

藍橋杯 之 暴力回溯

文章目錄 數字接龍小u的最大連續移動次數問題迷宮 在藍橋杯中,十分喜歡考察對于網格的回溯的問題,對于這類的問題,常常會使用到這個DFS和BFS進行考察,不過無論怎么考察,都只是會在最基礎的模本的基礎上,根據…

微信小程序的業務域名配置(通過ingress網關的注解)

一、背景 微信小程序的業務域名配置(通過kong網關的pre-function配置)是依靠kong實現,本文將通過ingress網關實現。 而我們的服務是部署于阿里云K8S容器,當然內核與ingress無異。 找到k8s–>網絡–>路由 二、ingress注解 …

Python數據可視化工具:六西格瑪及其基礎工具概覽

在當今數據驅動的時代,數據分析和可視化工具成為了各行業優化流程、提升質量的關鍵手段。六西格瑪(Six Sigma)作為一種以數據為基礎、追求完美質量的管理理念,其實施依賴于一系列基礎工具的靈活運用。而Python,憑借其強…

集群環境下Redis 商品庫存系統設計

目錄 環境實現基本結構代碼業務代碼主體庫存管理模塊 后續問題高并發臨界值與樂觀鎖問題 完整代碼總結后話 環境 我們現在要做商品秒殺系統。功能很簡單,就是庫存刪減。用戶先下單減庫存,之后再進行扣款。 實現 基本結構代碼 那么我們先看下如何搭建…

Spring MVC響應數據

handler方法分析 /*** TODO: 一個controller的方法是控制層的一個處理器,我們稱為handler* TODO: handler需要使用RequestMapping/GetMapping系列,聲明路徑,在HandlerMapping中注冊,供DS查找!* TODO: handler作用總結:* 1.接收請求參數(param,json,pathVariable,共享域等…

基于圖像識別的醫學影像大數據診斷系統的設計與實現

標題:基于圖像識別的醫學影像大數據診斷系統的設計與實現 內容:1.摘要 隨著醫學影像技術的快速發展,醫學影像數據量呈爆炸式增長,傳統的人工診斷方式在處理海量數據時效率低下且容易出現誤差。本研究的目的是設計并實現一個基于圖像識別的醫學影像大數據…

Python散點圖(Scatter Plot):數據探索的“第一張圖表”

在數據可視化領域,散點圖是一種強大而靈活的工具,它能夠幫助我們直觀地理解和探索數據集中變量之間的關系。本文將深入探討散點圖的核心原理、應用場景以及如何使用Python進行高效繪制。 后續幾篇將介紹高級技巧、復雜應用場景。 Python散點圖(Scatter Plot):高階分析、散點…

【redis】在 Spring中操作 Redis

文章目錄 基礎設置依賴StringRedisTemplate庫的封裝 運行StringList刪庫 SetHashZset 基礎設置 依賴 需要選擇這個依賴 StringRedisTemplate // 后續 redis 測試的各種方法,都通過這個 Controller 提供的 http 接口來觸發 RestController public class MyC…

微服務》》Kubernetes (K8S) 集群 安裝

關閉交換空間 # 切換 超級管理員身份 # 查看交換空間 free -h # 關閉交換空間 swapoff -a避免開啟啟動交換空間 # 注釋swap開頭的行 vim /etc/fstab關閉防火墻 # 關閉防火墻 # 因為K8S 是集群形式存在的 至少三臺 一主二從 (一個master 兩個node&#xff09…

HTTP和RPC的區別

RPC和 HTTP是兩種常見的通信方式,它們在設計目標、使用場景和技術實現上有顯著區別。以下是它們的詳細對比: 1. 定義與核心思想 特性RPCHTTPRemote Procedure Call遠程過程調用HyperText Transfer Protocol超文本傳輸協議定義一種協議或框架&#xff0…