LLM2Rec-新國立-KDD2025-微調LLM獲得蘊含協同信息的embedding

文章目錄

  • 1. 背景與問題
    • 任務
    • 背景動機
    • LLM2Rec 兩大步驟
  • 2. 方法
    • 2.1 Collaborative Supervised Fine-tuning(CSFT)
    • 2.2 Item-level Embedding Modeling
      • 2.2.1 從單向注意力 → 雙向注意力(Bidirectional attention)
      • 2.2.2 商品級別的對比學習(Item-level Contrastive Learning)
    • 2.3 喂給序列推薦模型
  • 3. 實驗
    • 3.1 主實驗
    • 3.2 消融實驗
    • 3.3 其他
      • 3.3.1 域分析
      • 3.3.2 LLM Backbones 分析
      • 3.3.3 性能分析
  • 4. 總結

這里來學習一篇文章《LLM2Rec: Large Language Models Are Powerful Embedding Models for Sequential Recommendation》是新國立 蔡達成(Tat-Seng Chua)團隊在 KDD-2025 上的工作。

論文鏈接:https://arxiv.org/abs/2506.21579

代碼鏈接:https://github.com/HappyPointer/LLM2Rec

1. 背景與問題

任務

整體任務也是協同與語義的結合

現有探索有兩種:

  • 一種是純文本法:只用文本(商品介紹等)做 embedding,能泛化但丟了 CF 信號。
  • 另一種是混合法:試圖融合文本和 CF 信號,比如把 ID 向量和文本向量拼接、用文本指導 ID 訓練、或設計融合網絡(比如cross-attention)。【CCFRec 也算這類吧】本質還是主要依賴 ID 向量。

作者認為:最好的 embedding model,應該 “天生” 就能同時捕獲 CF 信號和 語義知識,而不是通過外部拼拼湊湊【OneRec 中的 embedding 方式】本文旨在探索如何讓 LLM 既理解文本,又成為可以泛化的 embedding 生成器,服務于推薦系統。

背景動機

  • 近幾年發現大語言模型(LLM)經過“監督微調”后,其實可以學會推薦相關任務。
  • 作者想讓LLM既能捕捉CF信號(比如哪些商品經常一起被買),又有理解文本內容的能力。
  • 但是LLM原本只會做“token級別預測”(即只會預測下一個詞),并不是專門為生成商品的“整體向量”設計的。

在這里插入圖片描述

LLM2Rec 兩大步驟

協同監督微調(CSFT)

  • 把真實推薦場景下的用戶交互序列(比如:用戶買了A、B、C,接下來可能買D)用來微調 LLM,讓它能夠學習到商品間的 CF 信號
  • 實例:比如任天堂的一堆游戲(馬里奧、動物森友會等),這些游戲經常被同一批用戶一起買,經過訓練后,這些游戲的向量會變得更接近。

商品級嵌入建模(IEM)

  • 在前面基礎上,對 LLM 做進一步的結構和目標優化,讓它更適合生成“商品級的向量”。
  • 主要包括兩個技術:
    • 雙向注意力+掩碼預測(MNTP):讓模型可以更全面地理解每個商品的文本信息。
    • 商品級對比學習:讓同一個商品的不同“視角”聚在一起,不同商品拉得更遠,這樣嵌入更加區分度高。

2. 方法

在這里插入圖片描述

2.1 Collaborative Supervised Fine-tuning(CSFT)

輸入其實就是一串商品標題的列表,之間只用逗號隔開,沒有復雜的模板,以防止模型學到無關的模板信息。

每次只讓模型根據前面的商品序列“自回歸地”生成下一個商品標題:

在這里插入圖片描述

2.2 Item-level Embedding Modeling

大語言模型(LLM,比如GPT)通常都是單向的 decoder 模型,它們被設計用于“自回歸”(即一個詞一個詞地預測下一個詞)。

但是,這種單向預測機制在生成高質量的item embedding時表現一般。因為生成 embedding 通常需要雙向地同時看前面和后面的上下文信息

作者希望能夠綜合兩種模型的優點:

  • 單向decoder(LLM):擁有強大的語義理解能力。
  • 雙向encoder模型(如BERT):更適合生成高質量的上下文感知嵌入。

因此,作者試圖對LLM進行改造,使它同時擁有 encoder 的雙向理解能力,來生成高質量的商品嵌入。

在這里插入圖片描述

2.2.1 從單向注意力 → 雙向注意力(Bidirectional attention)

單向注意力(Causal Attention):

  • 傳統的decoder LLM在生成一個詞的嵌入時,只能看到它前面的詞,無法看到后面的詞,這叫做“因果注意力(Causal attention)”。

為什么要轉為雙向注意力?

  • 在生成嵌入時,我們希望模型能看到整個商品描述的全部內容(即:商品標題或描述中的所有詞)。
  • 因此,作者去掉了單向的限制,改造成“雙向注意力”:生成一個詞的嵌入時,可以同時參考它前后所有詞的信息。

怎么訓練這種雙向的LLM?(Masked Next Token Prediction,簡稱MNTP)

  • 在商品的文本序列中,隨機遮蓋掉一些詞(隨機mask),然后讓LLM根據前后詞的信息預測出這些被mask的詞。
  • 這樣LLM逐漸就能習慣于雙向地理解商品的文本,從而生成更有效的嵌入。
  • MNTP的損失函數:

LMNTP=?∑i∈I∑s=0?ip(ti,s∣ti,<s)\mathcal{L}_{MNTP}=-\sum_{i\in I}\sum_{s=0}^{\ell_i}p(t_{i,s}|t_{i,<s}) LMNTP?=?iI?s=0?i??p(ti,s?ti,<s?)

2.2.2 商品級別的對比學習(Item-level Contrastive Learning)

為什么需要對比學習?

  • 上一步的方法(MNTP)還是以詞(token)為單位,而作者希望獲得的是商品級(整個句子或描述)的整體嵌入。
  • 單純把詞級嵌入平均(average-pooling)是一種簡單方法,但不一定足夠好。

對比學習怎么做?

  • 每個商品文本會隨機生成兩個略有差異的版本(比如隨機遮蓋不同的詞),讓模型去分別生成兩個版本的商品嵌入。
  • 模型的目標:
    • 同一個商品的兩個版本嵌入盡可能接近
    • 不同商品的嵌入盡可能遠離
  • 這樣生成的嵌入就更容易區分不同的商品,也能更好地表示商品本身。
  • 對比學習的損失函數:

LIC=?∑i∈Ilog?exp?(E(t~i1)E(t~i2)?/τ)∑j∈Iexp?(E(t~j1)E(t~j2)?/τ)\mathcal{L}_{IC}=-\sum_{i\in I}\log\frac{\exp\left(\mathcal{E}(\tilde{t}_i^1)\mathcal{E}(\tilde{t}_i^2)^\top/\tau\right)}{\sum_{j\in I}\exp\left(\mathcal{E}(\tilde{t}_j^1)\mathcal{E}(\tilde{t}_j^2)^\top/\tau\right)} LIC?=?iI?logjI?exp(E(t~j1?)E(t~j2?)?/τ)exp(E(t~i1?)E(t~i2?)?/τ)?

我疑惑這里沒有用 logit shift 僅僅通過這個階段的訓練改變的目標是不是太大了?原本 自回歸的 causal mask 模型的 hidden state 本質上更關注下一個位置的 token 預測。每個位置輸出的 hidden state 與下一個 token 緊密相關,而非自己當前 token 本身。BERT是在預測當前位置token,而不是下一個位置token

2.3 喂給序列推薦模型

把 LLM2Rec 生成的每個 item 的 embedding ziz_izi?,用一個簡單的線性變換(就是加個“門檻”,w乘上再加b,公式:zi′=Wzi+bz'_i = Wz_i + bzi?=Wzi?+b)。

這個線性層參數(W和b)可以在下游推薦系統訓練時一起優化,適配到下游的場景。

3. 實驗

3.1 主實驗

在這里插入圖片描述

3.2 消融實驗

在這里插入圖片描述

3.3 其他

3.3.1 域分析

在這里插入圖片描述

3.3.2 LLM Backbones 分析

在這里插入圖片描述

3.3.3 性能分析

在這里插入圖片描述

4. 總結

感覺直接從 next-token-prediction 轉變為 mask-token-prediction 的地方,是不是可能導致模型變化很大,因為也在看 Diffusion LLM 的文章,他們一般在基于自回歸 next-token-prediction 上預訓練,然后使用 mask-token-prediciton 的時候由于當前位置預測的任務變了,所有做了一個 logit shift ,這樣輸出的 hidden state 不會有太大變化,能夠繼續訓練,這里卻不是。是否是因為沒這樣做才導致 IEM1(MNTP) 在消融實驗里提升很小。

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

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

相關文章

前端學習9:JavaScript--對象與原型

前言&#xff1a;適合有基礎的同學入門嘗試 / 復習回憶。對象基礎&#xff1a;1.創建用戶對象const user {// 屬性&#xff08;鍵值對&#xff09;name: "小島",age: 20,isAdmin: false, }2.方法&#xff08;函數屬性&#xff09;sayHello() {console.log(你好&…

網絡:應用層

網絡&#xff1a;應用層 我們要知道&#xff0c;所有的問題解決都是在應用層。:happy: 協議是一種約定&#xff0c;也就是雙方約定好的結構化的數據。但是在讀寫數據時我們都是按字符串的方式來發送接受的&#xff0c;那么我們應該如和傳輸結構化的數據呢&#xff1f;應用層協…

rust-包和箱子

&#x1f4e6; 圖解 Rust 代碼組織層級 #mermaid-svg-fBDy1PDZZ6bi000z {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-fBDy1PDZZ6bi000z .error-icon{fill:#552222;}#mermaid-svg-fBDy1PDZZ6bi000z .error-text{fi…

C++算法競賽篇(五)循環嵌套題型講解

C算法競賽篇&#xff08;五&#xff09;循環嵌套題型講解前言C循環嵌套題型講解第一題 包含數字的9第二題 求出 e 的值第三題 斐波那契數列第四題 第 n 小的質數第五題 水仙花數前言 前面的題型里我們認識了C里面的三大循環本篇博客我們開始講解C循環嵌套題型 我的個人主頁&am…

Gradio全解8——ChatInterfaceChatbot:聊天界面類與聊天機器人(3)——ChatInterface的多模態功能與附加輸入輸出

Gradio全解8——ChatInterface&Chatbot&#xff1a;聊天界面類與聊天機器人&#xff08;3&#xff09;——ChatInterface的多模態功能與附加輸入輸出8.3 ChatInterface的多模態功能與附加輸入輸出8.3.1 多模態功能1. 設置multimodal和fn參數2. 傳入MultimodalTextbox組件及…

php算法-- 關聯數組使用,優化sip賬號去重

文章目錄1 變量定義2. 核心特性code1 變量定義 類型&#xff1a;嵌套的關聯數組&#xff08;Nested Associative Array&#xff09;外層結構&#xff1a;[中繼ID > 賬號列表]鍵 (Key)&#xff1a;中繼ID&#xff08;字符串或整型&#xff09;值 (Value)&#xff1a;索引數組…

LLM 多語言數據集

多語言數據感覺主要還是fineweb和fineweb2, 其他數據都是主要針對特定語種比較多 101 Billion Arabic Words Dataset ClusterlabAi/101_billion_arabic_words_dataset 數據主要從e Common Crawl WET 中提取&#xff0c;并采用了創新的技術來進行去重和篩選&#xff0c;主要解決…

【HarmonyOS Next之旅】DevEco Studio使用指南(三十六) -> 配置構建(三)

目錄 1 -> 定制HAR多目標構建產物 1.1 -> 定義產物的deviceType 1.2 -> 定義C工程依賴的.so文件 1.3 -> 定義產物的資源 2 -> 配置APP多目標構建產物 2.1 -> 定義產物的APP包名和供應商名稱 2.2 -> 定義product的bundleName 2.3 -> 定義produc…

數據賦能(340)——技術平臺——共享平臺

概述重要性如下&#xff1a;提高數據利用效率&#xff1a;數據共享平臺能夠將分散在各部門的數據進行集中管理&#xff0c;促進數據流通和共享&#xff0c;避免數據孤島現象&#xff0c;從而提高數據利用效率。促進決策科學化&#xff1a;通過共享平臺&#xff0c;各部門可以獲…

開閉原則在C++中的實現

開閉原則&#xff08;Open/Closed Principle&#xff0c;簡稱 OCP&#xff09;是面向對象設計中的一個重要原則&#xff0c;屬于“SOLID”原則之一。它的核心思想是&#xff1a;“軟件實體&#xff08;如類、模塊、函數等&#xff09;應該對擴展開放&#xff0c;對修改關閉。”…

C語言:*p++與p++有何區別

1. 指針基礎練習&#xff1a;演示p、p和(*p)的區別核心目的&#xff1a;區分指針自增與指針指向值自增的不同邏輯&#xff0c;理解運算符優先級對指針操作的影響。#include <stdio.h>void arr1() {int arr[] {11,13,15,17,19};int *p arr;printf("結果1&#xff1…

【設計】設計一個web版的數據庫管理平臺后端(之二)

在之前&#xff0c;我寫過一篇【設計】設計一個web版的數據庫管理平臺后端精要 的文章&#xff0c;文章講了一個web版數據庫管理平臺的實現思路及主要代碼。 最近&#xff0c;我看了下Mybatis的源碼&#xff0c;覺得Mybatis的分層架構挺好&#xff0c;所以想到了完善下web版數據…

Visual tudio 各版本下 C++ 開發的核心區別與實踐指南

C語言的發展經歷了數十年的演進&#xff0c;從 C98 到現代的 C20/23&#xff0c;語言本身發生了巨大的變革。與此同時&#xff0c;Visual Studio 作為主流的 C 開發環境之一&#xff0c;其編譯器對各個 C 標準的支持程度也隨版本不斷演進&#xff0c;直接影響著開發者的編程方式…

怎樣讓阿里云服務器(centos)有界面

要讓阿里云服務器 CentOS 有圖形界面&#xff0c;可以按照以下步驟進行操作&#xff1a;登錄服務器&#xff1a;使用 SSH 客戶端工具&#xff0c;通過 IP 地址和賬號登錄到阿里云服務器。更新系統軟件源&#xff1a;輸入命令sudo yum update&#xff0c;更新系統軟件源&#xf…

Qt 異步編程模式與應用

在現代軟件開發中&#xff0c;異步編程已成為提升應用性能和響應性的關鍵技術。Qt 作為一個強大的跨平臺框架&#xff0c;提供了多種異步編程模式&#xff0c;包括信號槽機制、事件循環、線程池、異步 I/O 等。本文將深入探討 Qt 異步編程的各種模式及其應用場景&#xff0c;幫…

面試150 數字范圍按位與

思路 只要 left < right&#xff0c;說明兩者在某些低位上存在不同&#xff0c;為了找到它們的公共前綴&#xff08;高位相同部分&#xff09;&#xff0c;不斷將 left 和 right 同時右移&#xff08;即除以2&#xff09;&#xff0c;直到它們相等&#xff0c;記錄右移的次數…

數據庫HB OB mysql ck startrocks, ES存儲特點,以及應用場景

這些數據庫和存儲引擎主要有:HB(HBase)、OB(OceanBase)、MySQL、ClickHouse(CK)、StarRocks、Elasticsearch(ES),下面分別介紹它們的存儲特點以及典型應用場景。 1. HBase (HB) 存儲特點 分布式、面向列的NoSQL數據庫 采用HDFS存儲,數據以表、row key、列族、時間戳…

Java技術棧/面試題合集(17)-Git篇

場景 Java入門、進階、強化、擴展、知識體系完善等知識點學習、性能優化、源碼分析專欄分享: Java入門、進階、強化、擴展、知識體系完善等知識點學習、性能優化、源碼分析專欄分享_java高級進階-CSDN博客 通過對面試題進行系統的復習可以對Java體系的知識點進行查漏補缺。…

破局與重構:King’s LIMS 引領電子行業實驗室智能化轉型

在全球化高新技術競爭白熱化背景下&#xff0c;電子行業正經歷從規模導向擴張向質量效益躍升的戰略轉型。終端用戶對產品性能的極致化追求、行業質量合規標準的持續迭代升級&#xff0c;以及檢測數據的指數級增長&#xff0c;共同形成"需求牽引供給、供給創造需求"的…

暑期算法訓練.9

目錄 43 .力扣75 顏色分類 43.1 題目解析&#xff1a; 43.2 算法思路&#xff1a; 43.3 代碼演示&#xff1a; 43.4 總結反思&#xff1a; 44. 力扣 912 排序數組 44.1 題目解析&#xff1a; 44.2 算法思路&#xff1a; 44.3 代碼演示&#xff1a; ?編輯 44.4 總結反…