推薦系統(LLM去偏?) | (WSDM24)預訓練推薦系統:因果去偏視角

:::
大家好!今天我分享的文章是來自威斯康星大學麥迪遜分校和亞馬遜AWS AI實驗室的最新工作,文章所屬領域是推薦系統和因果推理,作者針對跨域推薦中的偏差問題提出了一種基于因果去偏的預訓練推薦系統框架PreRec。
:::

原文:Pre-trained Recommender Systems: A Causal Debiasing Perspective
地址:https://arxiv.org/abs/2310.19251
代碼:https://github.com/myhakureimu/PreRec
出版:WSDM '24
機構: 威斯康星大學麥迪遜分校、亞馬遜

1 研究問題

本文研究的核心問題是: 如何設計一個通用的預訓練推薦系統框架,能夠有效處理跨域推薦中的偏差問題。

::: block-1
假設我們有一個電商平臺,想要為不同國家的用戶推薦商品。每個國家的用戶行為和商品特征都有所不同,直接將一個國家的推薦模型應用到另一個國家往往效果不佳。我們希望能夠設計一個通用的推薦框架,可以在多個國家的數據上預訓練,然后快速適應到新的國家市場,同時還能處理不同國家之間的偏差問題。
:::

本文研究問題的特點和現有方法面臨的挑戰主要體現在以下幾個方面:

  • 跨域推薦中存在域內偏差和跨域偏差,這些偏差會影響模型的泛化能力。例如,不同國家的商品流行度分布不同(域內偏差),以及不同國家的用戶行為模式差異(跨域偏差)。
  • 現有的預訓練推薦方法(如ZESRec和UniSRec)沒有考慮這些偏差,可能會導致模型過擬合源域數據。
  • 如何在保留通用知識的同時,有效地消除這些偏差是一個挑戰。

針對這些挑戰,本文提出了一種基于因果去偏的"PreRec"方法:

::: block-1
PreRec的核心思想是將推薦過程建模為一個概率圖模型,并引入因果推理的思想來處理偏差。它就像一個精明的導購,不僅了解每個國家的商品和用戶特點,還能識別出哪些是真正的用戶偏好,哪些只是由于某個國家特定的促銷活動或文化差異造成的偏差。具體來說,PreRec使用一個分層貝葉斯深度學習模型來捕獲用戶興趣、商品特征、域特征和流行度等因素。在預訓練階段,它通過顯式建模域內偏差(如商品流行度)和跨域偏差(如域特征),將這些偏差與通用知識分離。在推斷階段,它使用因果干預的方法來消除這些偏差的影響,只保留真正的用戶-商品匹配信息。這就像PreRec在每個國家都派了一個"特工",這些特工不僅收集各自國家的數據,還能識別出哪些是該國特有的"噪音"。在給新國家的用戶推薦時,PreRec就能拋開這些"噪音",專注于真正通用的推薦知識。
:::

2 研究方法

2.1 PreRec模型結構

PreRec是一種新型的預訓練推薦系統,采用層次化貝葉斯深度學習框架。它的核心目標是解決多域預訓練中的偏差問題,提高模型在新域上的泛化能力。PreRec的整體架構包括以下幾個關鍵組件:

  1. 用戶通用嵌入網絡(User Universal Embedding Network):這個網絡用于生成用戶的通用嵌入表示。它接收用戶的歷史交互序列作為輸入,通過一個序列模型(如Transformer)來聚合這些交互信息,最終輸出用戶的嵌入向量。
  2. 物品通用嵌入網絡(Item Universal Embedding Network):這個網絡用于生成物品的通用嵌入表示。它以物品的文本描述為輸入,通過預訓練的語言模型(如BERT)和一個單層神經網絡來提取物品的語義特征,最終輸出物品的嵌入向量。
  3. 域屬性嵌入(Domain Embedding):這是一個可學習的向量,用于捕捉每個域的特有屬性,如用戶群體特征、促銷活動等。
  4. 流行度嵌入(Popularity Embedding):這個組件用于建模物品在特定域內的流行度偏差。它基于物品的交互次數、流量和時間等因素計算得出。

舉個例子,假設我們在構建一個跨國的電商推薦系統。對于一個來自美國的用戶,用戶通用嵌入網絡會分析他過去購買的商品序列(如手機、耳機、充電器等),生成一個能夠反映他整體興趣的嵌入向量。對于一個新上架的手機,物品通用嵌入網絡會分析其產品描述,生成一個反映手機特征的嵌入向量。同時,我們還會有一個代表"美國市場"的域屬性嵌入,以及反映這款手機在美國市場受歡迎程度的流行度嵌入。

PreRec的創新之處在于,它明確地將這些不同來源的信息(用戶興趣、物品特征、域屬性、流行度)分開建模,這為后續的去偏和遷移學習奠定了基礎。

2.2 多域預訓練

在多域預訓練階段,PreRec的目標是從多個源域中提取通用知識,同時顯式建模和處理不同類型的偏差。這個過程主要包括以下幾個步驟:

  1. 數據收集:從多個源域(例如不同國家的電商平臺)收集用戶-物品交互數據、物品描述文本以及相關的元數據。
  2. 通用表示學習:使用物品通用嵌入網絡和用戶通用嵌入網絡,分別學習物品和用戶的通用表示。這些表示應該能夠捕捉到跨域的共性特征。
  3. 域內偏差建模:PreRec顯式地建模了域內的流行度偏差。具體來說,它引入了一個流行度嵌入 Z j Z_j Zj?,用于捕捉物品 j j j 在特定域內的流行度效應。這個流行度嵌入是基于物品的交互次數、總流量和時間等因素計算得出的。
  4. 跨域偏差建模:PreRec引入了一個域屬性嵌入 D k D_k Dk?,用于捕捉每個域 k k k 的特有屬性。這個嵌入可以理解為域的隱藏表示,它影響著該域內的用戶興趣、物品屬性和用戶行為模式。
  5. 聯合優化:PreRec通過最小化負對數似然來聯合優化所有這些組件。優化目標函數如下:

L = ∑ ? l o g ( f s o f t m a x ( U i T V j + D k W d + Z j W z ) ) + λ z / 2 ∑ ∣ ∣ Z j ? f p o p ( F j ) ∣ ∣ 2 + λ v / 2 ∑ ∣ ∣ V j ? f e ( D k , Z j ) ∣ ∣ 2 + λ u / 2 ∑ ∣ ∣ U i ? f s e q ( D k , H i ) ∣ ∣ 2 + λ d / 2 ∑ ∣ ∣ D k ∣ ∣ 2 L = ∑ -log(f_softmax(U_i^T V_j + D_k W_d + Z_j W_z)) + λ_z/2 ∑ ||Z_j - f_pop(F_j)||^2 + λ_v/2 ∑ ||V_j - f_e(D_k, Z_j)||^2 + λ_u/2 ∑ ||U_i - f_seq(D_k, H_i)||^2 + λ_d/2 ∑ ||D_k||^2 L=?log(fs?oftmax(UiT?Vj?+Dk?Wd?+Zj?Wz?))+λz?/2∣∣Zj??fp?op(Fj?)2+λv?/2∣∣Vj??fe?(Dk?,Zj?)2+λu?/2∣∣Ui??fs?eq(Dk?,Hi?)2+λd?/2∣∣Dk?2

這里, U i U_i Ui? 是用戶嵌入, V j V_j Vj? 是物品嵌入, D k D_k Dk? 是域屬性嵌入, Z j Z_j Zj? 是流行度嵌入, H i H_i Hi? 是用戶歷史, F j F_j Fj? 是流行度因子。

舉個具體的例子,假設我們在美國、英國和加拿大的電商平臺上預訓練PreRec。對于一個在美國平臺上很受歡迎的iPhone手機,它的表示會包含幾個部分:

  • 通用物品嵌入:反映iPhone的基本特征,如智能手機、iOS系統等。
  • 流行度嵌入:反映這款iPhone在美國市場的高人氣。
  • 域屬性嵌入:可能捕捉到美國用戶偏好高端科技產品的特點。

通過這種方式,PreRec能夠區分出哪些特征是iPhone的固有屬性,哪些是由于美國市場的特殊性造成的,從而為后續的跨域推薦打下基礎。

2.3 零樣本推薦

零樣本推薦是PreRec的一個關鍵能力,它允許模型在沒有見過任何目標域數據的情況下,直接在新域上進行推薦。PreRec通過巧妙的因果干預機制來實現這一點。具體步驟如下:

  1. 消除跨域偏差:在進行零樣本推薦時,PreRec首先將域屬性嵌入 D k D_k Dk? 設置為0。這相當于執行了一個do-操作: d o ( D k = 0 ) do(D_k = 0) do(Dk?=0)。直覺上,這就好比我們在問:“如果沒有任何特定域的影響,用戶會如何與物品交互?”
  2. 保留域內偏差:雖然消除了跨域偏差,但PreRec保留了流行度嵌入 Z j Z_j Zj?。這是因為流行度信息通常在不同域之間具有一定的可遷移性。
  3. 計算推薦分數:PreRec使用因果干預后的用戶嵌入和物品嵌入來計算最終的推薦分數:

P ( R i j k ∣ d o ( U i , V j , Z j ) ) = f s o f t m a x ( U i T V j + Z j W z ) P(R_ijk|do(U_i, V_j, Z_j)) = f_softmax(U_i^T V_j + Z_j W_z) P(Ri?jkdo(Ui?,Vj?,Zj?))=fs?oftmax(UiT?Vj?+Zj?Wz?)

這里, R i j k R_ijk Ri?jk 表示用戶 i i i 與物品 j j j 在域 k k k 中的交互。

舉個例子,假設我們要將預訓練好的PreRec應用到澳大利亞的電商平臺上。對于一個從未在澳大利亞市場出現過的新用戶,PreRec會這樣工作:

  1. 基于用戶的歷史行為(可能來自其他國家的平臺)生成用戶嵌入。
  2. 對于澳大利亞市場的每個商品,生成其通用物品嵌入。
  3. 計算每個商品在澳大利亞市場的流行度嵌入。
  4. 將域屬性嵌入設為0,相當于"假設沒有澳大利亞市場的特殊影響"。
  5. 基于以上信息計算推薦分數,并向用戶推薦得分最高的商品。

這種方法的優勢在于,它能夠利用從其他市場學到的通用知識,同時考慮商品在新市場的受歡迎程度,但不會被源域的特殊偏好所影響。

2.4 目標域微調

隨著在新域(如澳大利亞市場)積累了一定量的交互數據,PreRec可以通過微調來進一步提升推薦性能。微調過程包括以下步驟:

  1. 重新估計隱變量:PreRec會重新估計目標域的所有隱變量,包括用戶嵌入 U i U_i Ui?,物品嵌入 V j V_j Vj?,域屬性嵌入 D k D_k Dk?,和流行度嵌入 Z j Z_j Zj?
  2. 端到端優化:PreRec在目標域數據上優化與預訓練階段相同的目標函數:
    $$
    L = ∑ -log(f_softmax(U_i^T V_j + D_k W_d + Z_j W_z))
    • λ_z/2 ∑ ||Z_j - f_pop(F_j)||^2
    • λ_v/2 ∑ ||V_j - f_e(D_k, Z_j)||^2
    • λ_u/2 ∑ ||U_i - f_seq(D_k, H_i)||^2
    • λ_d/2 ∑ ||D_k||^2
      $$
  3. 適應性推斷:微調后的推斷過程會考慮目標域的特性:
    P ( R i j k ∣ d o ( U i , V j , D k , Z j ) ) = f s o f t m a x ( U i T V j + D k W d + Z j W z ) P(R_ijk|do(U_i, V_j, D_k, Z_j)) = f_softmax(U_i^T V_j + D_k W_d + Z_j W_z) P(Ri?jkdo(Ui?,Vj?,Dk?,Zj?))=fs?oftmax(UiT?Vj?+Dk?Wd?+Zj?Wz?)

這里,我們不再將 D k D_k Dk? 設為0,而是使用學習到的目標域屬性嵌入。

具體來說,假設PreRec在澳大利亞市場運行了一段時間,收集到了一些用戶交互數據。微調過程會:

  1. 更新用戶嵌入,以更好地反映澳大利亞用戶的偏好。比如,可能會發現澳大利亞用戶特別喜歡戶外運動產品。
  2. 調整物品嵌入,以適應澳大利亞市

3 實驗

3.1 實驗場景介紹

本論文提出了一個可以跨領域預訓練的推薦系統模型PreRec。實驗主要驗證PreRec在新的目標領域上的推薦性能,包括零樣本場景和微調場景。實驗涉及跨市場(不同國家的Amazon市場)和跨平臺(Amazon與Online Retail)兩種跨域場景。

3.2 實驗設置

  • Datasets:
    • XMarket數據集:覆蓋18個本地市場(國家)的16個不同產品類別
    • Online Retail數據集:來自英國在線零售平臺的數據
    • 預訓練數據集:印度、西班牙、加拿大
    • 跨市場目標數據集:澳大利亞、墨西哥、德國、日本
    • 跨平臺目標數據集:Online Retail
  • Baselines:Random, POP, SBERT, GRU4Rec, SASRec, ZESRec, UniSRec, PreRec_n
  • Implementation details:
    • 所有方法使用256維的物品和用戶嵌入
    • 基于GRU的序列模型使用2層GRU
    • 基于自注意力的序列模型使用2層多頭注意力
    • 使用Adam優化器,學習率為0.0003
    • 在驗證集上使用平均r-NDCG@K%進行早停
  • Metrics:Recall@K% 和 r-NDCG@K%
  • 環境:使用一塊Tesla V100 GPU進行訓練

3.3 實驗結果

實驗1、零樣本推薦實驗

目的:評估PreRec在新的目標域上的零樣本推薦性能
涉及圖表:表1
實驗細節概述:在三個源域(印度、西班牙、加拿大)上預訓練PreRec,然后在五個目標域(澳大利亞、墨西哥、德國、日本、Online Retail)上進行零樣本評估
結果:

  • PreRec在幾乎所有情況下都顯著優于所有基線方法
  • 在跨市場場景中,PreRec在澳大利亞數據集上獲得最大改進,在日本數據集上改進最小
  • 在跨平臺場景(Online Retail)中,PreRec同樣表現出色

實驗2、消融實驗

目的:驗證因果去偏機制的有效性
涉及圖表:表1
實驗細節概述:比較PreRec與其簡化版本PreRec_n(忽略了跨域和域內偏差項)的性能
結果:在幾乎所有情況下,PreRec都優于PreRec_n,證明了因果去偏機制的有效性

實驗3、全量微調實驗

目的:評估在目標域上全量微調后PreRec的性能
涉及圖表:表2
實驗細節概述:在目標域的所有可用訓練數據上微調模型,并與基線方法比較
結果:

  • PreRec在微調后仍然在幾乎所有情況下顯著優于所有基線方法
  • 這表明PreRec在預訓練階段提取了通用知識,即使在目標域有充足數據的情況下仍具有互補價值
  • PreRec能夠快速適應新域,同時不會遺忘預訓練階段學到的知識

實驗4、增量微調實驗

目的:研究目標域微調樣本數量對模型性能的影響
涉及圖表:圖3
實驗細節概述:使用逐漸增加的目標域訓練數據對模型進行微調,觀察性能變化
結果:

  • PreRec在所有目標域中都優于基線方法
  • 隨著微調樣本數量增加,PreRec的性能穩步提升,表明它在逐步適應目標域
  • 即使在有10^4個目標域訓練樣本時,PreRec與基線方法的性能差距仍然顯著
  • 這表明PreRec在預訓練階段提取的知識在目標域數據有限的情況下具有重要價值
    非常感謝您提供的論文和問題。下面是我根據您的要求對論文進行的總結和分析:

4 總結后記

本論文針對預訓練推薦系統中的域內偏差和跨域偏差問題,提出了一種名為PreRec的因果去偏視角方法。PreRec通過引入顯式和隱式的混雜因子來建模不同類型的偏差,并使用因果干預機制來消除這些偏差的影響。實驗結果表明,PreRec在跨市場和跨平臺的零樣本和微調場景下都顯著優于現有方法,為構建通用的預訓練推薦系統提供了新的思路。

::: block-2
疑惑和想法:

  1. 論文中提到的顯式和隱式混雜因子是如何具體定義和識別的?是否存在其他類型的混雜因子需要考慮?
  2. PreRec如何處理動態變化的用戶興趣和項目特征?是否可以引入時間序列建模來捕捉這些變化?
  3. 在跨語言場景下,PreRec的性能如何?是否需要額外的跨語言對齊機制?
  4. PreRec能否擴展到處理多模態數據(如圖像、視頻)的推薦任務?這將帶來哪些新的挑戰?

:::

::: block-2
可借鑒的方法點:

  1. 將因果推斷與深度學習相結合的思路可以推廣到其他存在偏差問題的機器學習任務中,如計算機視覺、自然語言處理等。
  2. 使用分層貝葉斯模型來捕捉不同層次的特征和偏差的方法值得借鑒,可以應用于其他需要建模復雜層次結構的問題。
  3. 通過預訓練和微調相結合的方式來提高模型的泛化能力和適應性的思路可以廣泛應用于遷移學習和領域適應等場景。
  4. 設計新的評估指標(如r-NDCG@K%)來更公平地比較不同域間的性能的做法值得借鑒,可以應用于其他需要跨域評估的任務中。
    :::

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

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

相關文章

【MySQL進階之路 | 小結篇】MySQL鍵約束KEY與索引INDEX

1. 鍵約束 關鍵字key 比如UNIQUE KEY就是一個唯一性約束,用于確保表中的某一列或多列的組合具有唯一性,不允許有重復值.當定義一個唯一性約束的時候,會自動創建一個唯一性索引來支持這一約束,這意味著它同時也起到了索引的作用.…

mobaXterm上傳文件進度一直為0%

在這里修改了senssion、重啟都沒有用 最后發現是文件存放的路徑中不能有中文,改了之后就成功上傳了

開展FMEA培訓時需要做好哪些準備?

FMEA(失效模式與影響分析)作為一種預防性的質量工具,正逐漸成為當代企業提升產品競爭力的關鍵。然而,很多企業在開展FMEA時,卻常常因為準備工作不足而事倍功半。那么,開展FMEA培訓時需要做好哪些準備呢&…

Jenkins流水線發布,一篇就解決你的所有疑惑

這次搭建的項目比較常規,前端是react寫的,后端是springboot,并且由于是全棧開發,所以是在同一個項目中。接下來我演示下怎么用jenkins進行自動化發布。 1.jenkins必裝插件 這里用到的是jenkinsFile主要是基于Groovy這個沙盒,有些前置插件。這里使用maven進行打包,所以需…

springboot實現json文件生成,壓縮為zip文件并在瀏覽器下載

示例 RestController public class FileController {private static final Logger logger LoggerFactory.getLogger(FileController.class);private static final String filePath "/fileTemp";Autowiredprivate ObjectMapper objectMapper;GetMapping("/v1/…

測試基礎16:測試用例設計方法-測試大綱法

課程大綱 1、應用場景 驗證頁面跳轉:有多個窗口/頁面,每個窗口/頁面有多個動作,每個動作之間有相互的聯系的場景。看點擊后,頁面跳轉正確與否。 2、設計步驟 step1.列出大綱:列出涉及的頁面和頁面可執行的動作。 s…

生命在于學習——Python人工智能原理(4.7)

四、Python的程序結構與函數 4.4 函數 函數能將代碼劃分為若干模塊,每一個模塊可以相對獨立的實現某一個功能,函數有兩個主要功能,分別是降低編程難度和實現代碼復用,函數是一種功能抽象,復用它可以將一個復雜的大問…

深拷貝與淺拷貝的理解

深拷貝和淺拷貝是復制對象時的兩種不同方式,它們之間的區別在于它們如何處理對象的引用類型成員。 淺拷貝(Shallow Copy) 淺拷貝是指創建一個新對象,這個新對象是對原對象的字段的一個精確副本。對于字段中的基本數據類型&#…

【C#】找不到屬性集方法。get只讀屬性用了反射設置setValue肯定報錯

歡迎來到《小5講堂》 這是《C#》系列文章,每篇文章將以博主理解的角度展開講解。 溫馨提示:博主能力有限,理解水平有限,若有不對之處望指正! 背景 找不到屬性集方法。get只讀屬性用了反射設置setValue肯定報錯 報錯…

IPFoxy Tips:匿名海外代理IP的使用方法及注意事項

在互聯網上,隱私和安全問題一直備受關注。為了保護個人隱私和數據安全,使用匿名代理IP是一種常用的方法。匿名代理IP可以隱藏用戶的真實IP地址,使用戶在訪問網站時更加隱秘和安全。 本文將介紹匿名代理IP的基本原理和核心功能。 基本原則 匿…

2024期權交易傭金手續費最低是多少?期權交易有哪些成本?

顯性成本 期權交易的顯性成本包含期權交易的傭金和交易所費用,分別支付給券商和交易所,統一由券商代收。 傭金 期權傭金是期權交易時支付給券商的費用,傭金通常以交易金額的一定比例計算,可以是固定費用,也可以是滑…

用兩個鐘,我又在VMWARE上搞了一套內部網配置

最近要學es,所以打算自己用虛擬機搞個NAT,又搞了兩個鐘。為了不再費勁嘗試,也為了造福大眾,所以選擇搞一份NAT筆記!!!! 1.初始化網關和DNS 我們給網關配置一個地址192.168.96.1&…

【多模態】BEiT v2

鏈接:https://arxiv.org/pdf/2208.06366 論文:BEIT V2: Masked Image Modeling with Vector-Quantized Visual Tokenizers Introduction Motivation:Masked image modeling (MIM) 任務在自監督表征學習上取得了不錯的成績,但是現…

教師資格證考試面試報名流程

文章目錄 前言面試報名流程一、登錄官網二、選擇報考省份三、注冊報名賬號四、確認考試承諾五、填報個人信息六、上傳個人照片七、查看個人信息八、面試報名九、等待審核十、考試繳費最后(必看)附錄1. 中小學教師資格考試網2. 廣東省教資考試報名通知&am…

Linux加固-權限管理_chattr之i和a參數

一、參數i i:如果對文件設置了i屬性,不允許對文件進行刪除、改名,也不能添加和修改數據;如果對目錄設置了i屬性,那么只能修改目錄下文件的數據,但不允許建立和刪除文件。(相當于把文件給鎖住了,…

【Mysql】多表、外鍵約束

多表 1.1 多表簡述 實際開發中,一個項目通常需要很多張表才能完成。 例如一個商城項目的數據庫,需要有很多張表:用戶表、分類表、商品表、訂單表… 1.2 單表的缺點 1.2.1 數據準備 創建一個數據庫 db3 CREATE DATABASE db3 CHARACTER SET utf8;數據庫…

Segment any Text:優質文本分割是高質量RAG的必由之路

AI應用開發相關目錄 本專欄包括AI應用開發相關內容分享,包括不限于AI算法部署實施細節、AI應用后端分析服務相關概念及開發技巧、AI應用后端應用服務相關概念及開發技巧、AI應用前端實現路徑及開發技巧 適用于具備一定算法及Python使用基礎的人群 AI應用開發流程概…

基于qemu_v8 + optee400構建自定義app

構建基于libckteec的tls安全通信應用程序,應用目錄結構 $ tree -L 2 . ├── libp11 │ ├── libp11-libp11-0.4.12 │ ├── mk_optee_three_part.sh │ └── out ├── openssl │ ├── mk_optee_three_part.sh │ ├── openssl-1.1.1w │ …

vue項目中封裝element分頁組件

我們都知道封裝組件是為了方便在項目中使用,全局封裝之后哪個模塊使用直接復制就行了,分頁在后臺項目中用到的地方也是很多的,所以我們就全局封裝一下分頁組件,以后也方便在項目中使用,接下來封裝的這個分頁也是elemen…

clean code-代碼整潔之道 閱讀筆記(第十四章)

第十四章 逐步改進——對一個命令行參數解析程序的案例研究 ps:本章設計代碼示例所以篇幅會較長,推薦直接看原文,思路、代碼講解的很清楚 本章示例:解析命令行參數的工具 —— Args Args的簡單用法 public static void main(Stri…