← 论文沉淀 / 🎯 生成式推荐 · ·RecSys 2026

Structuring and Tokenizing Distributed User Interest Context for Generative Recommendation

Ruizhong Qiu, Yinglong Xia, Dongqi Fu, Hanqing Zeng, Ren Chen et al. (10 人)

University of Illinois Urbana-Champaign × Meta

把「物品的兴趣归属」从单一硬类目改成「分布式兴趣画像」:在稀疏化的 item-item 共同交互图上做可微软聚类,每个物品得到一个对 C 个兴趣原型的稀疏概率分布 p_i,并据此算出一个连续的兴趣画像 token y_i。用户序列改写成 [x_i1, y_i1, x_i2, y_i2, ...] 交替格式,LLM 同时预测下一物品和以 p_i 为软标签的兴趣原型;公开集在 1+99 采样评测下全面领先,Meta 线上多指标 +0.06%~0.19%。

Co-Engagement Graph SparsificationSoft Modularity ClusteringContinuous Interest Profile TokenInterleaved Item-Profile SequenceSoft-Label Interest Prediction
📝 我的备注
加载中…

核心思路

G2Rec(Sparse Co-Engagement Graph Schema for Generative Recommendation)想解决的是:生成式推荐的 item tokenization 只编码内容语义,缺少「用户会把哪些东西放在一起交互」的协同兴趣结构;而直接用图(序列化或 GNN)要么太贵,要么只看局部。

它的做法分三步:

  1. 用 item-item 共同交互图 承载用户行为,并按用户采样把边数从 O(M^2) 压到 O(M log M),同时证明图 Laplacian 近似保持;
  2. 在这张图上用 可微的期望模块度 做软聚类,每个簇是一个「兴趣原型」,每个物品得到一个稀疏的兴趣隶属分布 p_i(物品兴趣画像);
  3. 把 p_i 变成连续的 画像 token y_i,用户序列改为物品与画像交替,LLM 同时学「下一物品」和「当前物品属于哪些兴趣原型」。

关键概念转变:物品的兴趣归属不是一个硬类目,而是一个分布;这个分布来自全局共现结构,不需要人工兴趣标签。

整体实现思路

  • 离线:交互日志 → 每用户采样 m 对共现 → 稀疏共现图 G → Leiden 初始化 → 梯度最大化 Q_soft 得到稀疏 P → 计算原型嵌入 V 和画像 token Y。
  • 训练:序列 [BOS, x_i1, y_i1, …, x_iN, y_iN] 输入 LLM(公开集为 Llama 2 13B + LoRA),在 y 位置之后预测下一物品、在 x 位置之后预测兴趣原型分布。
  • 在线:画像 token 离线周期更新,在线只是查表拼接;论文报告的额外开销为训练 +0.043s/batch、推理 +0.0027s/batch。

子模块实现(可复现细节)

1. 稀疏共现图

  • 全量共现边:E* = ∪_u (I_u × I_u)。Observation 1 指出用户序列在 G* 上是一条路径,所以边编码了兴趣转移。
  • 稀疏化:E = ∪_u sample(I_u × I_u, m),有放回均匀采样 m 对,构成无向图,边权 N(N−1)/(2m),使每个用户贡献的总权重仍为 C(N,2),L_E 是 L_E* 的无偏估计。
  • Theorem 2:每用户 N 次交互时,取 m = ⌈2N(1/(3ε) + 1/ε^2)·log(2|I|/δ)⌉,则以概率 ≥ 1−δ 有 (1−ε)L_E* ⪯ L_E ⪯ (1+ε)L_E*,总边数 |E| = |U|m = O(M log M)。
  • 证明要点:同一用户团 K_N 内任意两点的有效电阻 = 2/N,加边只会让电阻变小(Rayleigh 单调性),于是每个采样项的范数 ≤ N/m,再用矩阵 Bernstein 不等式。

2. 软模块度聚类

  • 参数化:p_i = softmax(z_i) ∈ R^C,用 Leiden 结果初始化并稀疏化,每行最多 ρ 个非零。
  • 硬模块度:Q_hard(h) = (1/|E|) Σ_{i,j} (A_ij − γ k_i k_j / |E|) · 1[h_i = h_j]。
  • 软模块度(Proposition 3,对 h ~ P 取期望的闭式):
Q_soft(P) = (1/|E|) * [ Σ_{(i,j)∈E} p_i^T p_j  −  γ * ||P^T k||_2^2 / |E| ]
  • p_i^T p_j 是两物品落在同一原型的概率;第二项是 Newman–Girvan 零模型惩罚,防止所有物品都挤进一个簇。
  • 复杂度(Proposition 4):O(ρ|E|) = O(ρM log M),可 GPU 加速。
  • 分辨率 γ:Beauty/Toys 取 0.8,Sports/Yelp 取 1。C、ρ、优化器、迭代次数论文均未给出。

3. 兴趣画像 token

  • 原型嵌入:v_a = Σ_i p_{i,a} x_i / Σ_i p_{i,a},即按隶属度加权的物品嵌入均值。
  • 画像 token:y_i = Σ_a p_{i,a} v_a,矩阵形式 Y = P V。
  • x_i 在公开集上是 d=64 的 SASRec 嵌入。因此 y_i 是一个连续向量,是 x_i 在「兴趣子空间」里的平滑版本(推断:相当于在共现簇内做了一次加权平均的图平滑)。

4. 序列格式与训练目标

R_u = [BOS, x_i1, y_i1, x_i2, y_i2, ..., x_iN, y_iN]
L_item^t    = −log F(i_{t+1} | R_u[≤2t+1])          # 看到 y_it 之后预测下一物品
L_profile^t = −Σ_a p_{i_t,a} · log F(a | R_u[≤2t])   # 看到 x_it 之后预测其兴趣原型(软标签)
L = L_item + λ · L_profile
  • 训练配置(公开集):Llama 2 13B,LoRA rank 16、dropout 0.05,3 epoch,Adam lr 3e-4,cosine 调度 + 100 步 warmup,Xavier 初始化,最大序列长度 50。
  • 最终 λ 未给出;消融在 λ ∈ [0, 1] 上扫。

5. 工业部署

  • 在 Meta 多个产品面上线(文中举例 Instagram Reels 的规模)。
  • 自研分布式高性能图处理引擎离线周期性运行图聚类,文中引用的是 Louvain(Blondel et al. 2008),在线响应不受影响。各产品面有内部改动,细节因公司政策未披露。

实验设置与结果

数据集(5-core,leave-one-out,测试为 1 正例 + 99 随机负例):

数据集用户物品交互稀疏度
Beauty22,36312,101198,50299.93%
Sports25,59818,357296,33799.95%
Toys19,41211,924167,59799.93%
Yelp30,43120,033316,35499.95%

主结果(摘录 Table 2,含最强的几个基线):

数据集指标GRU4RecSASRecLightGCNHeLLMEAGERG2Rec
BeautyRecall@100.46960.47390.40420.34130.36630.4892
BeautyNDCG@100.31560.29750.25960.24740.22780.3334
BeautyMRR0.28520.26140.23400.23590.20600.3034
SportsRecall@100.46220.47220.38550.29460.22320.5093
SportsNDCG@50.24970.23410.20560.16410.09060.2869
SportsMRR0.25200.23780.21330.17500.10780.2867
ToysRecall@100.46630.44930.37210.33750.37770.4691
ToysNDCG@100.31360.26980.23740.23590.23190.3225
ToysMRR0.28420.23380.21540.22280.20750.2942
YelpRecall@10.23750.24050.26960.21480.09760.2558
YelpRecall@100.73730.75970.67560.49090.40880.7736
YelpNDCG@100.46420.47780.45660.34360.23430.4927

平均排名:G2Rec 1.04、GRU4Rec 2.46、SASRec 2.83、LightGCN 4.50、Caser 5.23。注意 Yelp Recall@1 上 G2Rec 输给 LightGCN,与正文「全面领先」的说法不一致。

效率(Beauty,每 batch 秒数):

方法训练推理
Item-Only0.7630.0534
G2Rec0.8060.0561
增量+0.043+0.0027

软聚类消融(模块度,越高越好):

方法BeautySportsToysYelp
Hard (Leiden)0.4190.3650.4370.691
Soft (Ours)0.4990.4520.5500.757

λ 消融(Beauty):λ 从 0 增到 1,MRR 大约从 0.287 升到 0.293(读图,纵轴范围 0.287–0.293)。

线上 A/B(7 天 + 长期):in-session 指标 > +0.03%,总时长、点赞、分享等多项互动指标 +0.06%~+0.19%;同时称内容多样性和 serving 效率有提升,具体设置未披露。

思考与可参考价值

值得拿走的部分

  • 软模块度 Q_soft 是一个干净、可微、近线性复杂度的软社区发现目标,适合给 SID 加一层「协同兴趣」语义:例如用 argmax 簇作为第一层粗码,用 p_i 作为第一层 code 的软标签,补足 RQ-VAE 只看内容、看不到互补关系(手机和手机壳)的短板。
  • 「先预测兴趣、再预测物品」的辅助损失不需要人工标签,可直接迁移到意图层或粗粒度 SID 的监督上。
  • 每用户采样 m 对共现、带权重修正的构图方式在亿级商品上可行,且有 Laplacian 保持的理论保证。

需要警惕的部分

  • 评测用 1+99 随机负采样,与全库检索指标不可比;基线多是小模型,而 G2Rec 用 Llama 2 13B,缺少同主干只用 x_i 的效果对照,增益有多少来自主干本身不清楚。
  • 软聚类的价值只用模块度证明,没有给出软 vs 硬在推荐指标上的对比;λ 消融幅度很小、只在一个数据集上做。
  • 部署段写的是 Louvain(硬聚类),线上是否真用了软聚类存疑;C、ρ、λ 等关键超参缺失,复现成本高;没有开源代码。
  • 这里的 tokenization 是连续向量注入,不是可解码的离散 SID;序列长度翻倍在长序列(如 last100)场景下的开销会明显高于论文的 5%(推断)。

落地前建议验证:在全库指标(order@50/@512、qAUC)上对比「同主干 + 是否加画像 token / 兴趣损失」;比较软聚类与 Leiden 硬聚类做第一层 SID 的差异;评估簇周期重算带来的画像漂移对增量训练的影响。