← Back to list
GenRecEdit

Bringing Model Editing to Generative Recommendation in Cold-Start Scenarios

生成式推荐 学术
Abstract 7 Reading 7 Rating —
2026-03-15
Chenglei Shen, Teng Shi, Weijie Yu, Xiao Zhang, Jun Xu
Renmin University of China, University of International Business and Economics
提出GenRecEdit框架,首次将模型编辑技术应用于生成式推荐的冷启动问题,在仅需9.5%重训练时间下显著提升冷启动物品推荐性能
cold-start semantic-id transformer academic

1 研究背景与动机

1.1 冷启动崩塌问题

生成式推荐 (Generative Recommendation, GR) 将每个物品表示为一组离散语义 ID (Semantic IDs, SIDs),通过自回归模型预测下一个物品的 SID 序列来完成推荐。然而,GR 模型在冷启动物品上存在严重的冷启动崩塌 (cold-start collapse) 现象:推荐准确率接近于零。

作者在 Figure 1 中展示了三个 Amazon 数据集上的统计数据:

  • Phone 数据集:cold item 的 NDCG@10 仅为 0.0014(warm item 为 0.0108),下降 -84.93%
  • Video 数据集:cold item 的 NDCG@10 仅为 0.0023(warm item 为 0.0165),下降 -87.76%
  • Software 数据集:cold item 的 NDCG@10 仅为 0.0005(warm item 为 0.0020),下降 -86.82%

1.2 现有方案的局限

传统解决方案是收集冷启动物品的交互数据后重新训练模型,但面临三大问题: 1. 稀疏反馈:冷启动物品缺少用户交互数据 2. 高计算成本:重训练代价高昂 3. 延迟更新:在新闻、短视频等需要实时推荐的场景中不可接受

1.3 从 NLP 模型编辑获得启发

NLP 领域的模型编辑 (Model Editing) 技术可以在不重训练的情况下向 LLM 注入新知识。然而,直接将 NLP 模型编辑迁移到 GR 面临两个根本性挑战(Figure 2):

  1. 缺乏主谓宾结构:NLP 中的编辑依赖句子的 subject-object binding(如 "The American President is ..."),但 GR 序列(SID 序列)没有显式的句子结构,难以定位编辑目标
  2. 缺乏稳定的 token 共现模式:自然语言中的短语(如 "Donald" 和 "Trump")有高共现概率(来自预训练语料),但冷启动物品的 SID 模式是模型未见过的,无法通过单次编辑同时注入多个 token

2 问题分析

2.1 冷启动崩塌的根源分析

作者设计了两个诊断实验(Figure 3),基于 Cell Phones and Accessories 数据集:

实验1:逐位置 NDCG 分析(Figure 3 左)

  • 将四位 SID 逐步生成(position 0-3),观察前 n 个 SID token 的 NDCG
  • 结果:Position 0 的 NDCG 最高(0.05 左右),之后急剧下降
  • 结论:GR 模型通常能正确生成冷启动物品的第一个语义 ID(即粗粒度类别),但后续 token 生成越来越不稳定

实验2:IID Ratio 分析(Figure 3 右) 定义 IID Ratio@K 度量 top-K 推荐中属于当前测试子集(warm 或 cold)的物品占比:

$$\text{IID Ratio@K} = \frac{1}{|\mathcal{U}|} \sum_{u \in \mathcal{U}} \frac{|R_{iid} \cap \hat{R}_{u,K}|}{|R_{iid}|}$$

其中 $\mathcal{U}$ 是用户集合,$R_{iid}$ 是与当前测试集关联的物品集合,$\hat{R}_{u,K}$ 是 GR 模型生成的 top-K 物品。

结果显示 warm/cold 之间 IID Ratio 存在巨大差距:模型几乎不生成冷启动物品,即使推荐正确时也倾向于生成已见过的语义 ID 模式。

2.2 模型编辑在 GR 中的形式化

FFN 中的信息流:对于 Transformer 中的 FFN 层,给定隐状态 $h \in \mathbb{R}^{d_h}$:

$$k = \sigma(W_{\text{in}} h) \in \mathbb{R}^{d_0}, \quad z = W_{\text{out}} k \in \mathbb{R}^{d_1}$$

其中 $W_{\text{in}} \in \mathbb{R}^{d_0 \times d_h}$,$W_{\text{out}} \in \mathbb{R}^{d_1 \times d_0}$,$\sigma(\cdot)$ 为逐元素激活。$k$ 是 key-value memory 中的 key,$z$ 是 value。

编辑目标:对于第 $i$ 个编辑请求,运行模型获得激活向量 $k_i$,原始 FFN 输出 $z_i = W_{\text{out}} k_i$。寻找最小干预 $\delta_i$:

$$\delta_i = \arg\min_\delta -\log p_\theta(o_i \mid (s_i, r_i); z_i + \delta_i)$$

其中 $(s_i, r_i)$ 是编辑请求的上下文,目标是使模型更倾向于生成目标 token。

理想更新矩阵 $\Delta W_{\text{out}}^*$ 满足:

$$(W_{\text{out}} + \Delta W_{\text{out}}^*) k_i = z_i'$$

其中 $z_i' \triangleq z_i + \delta_i$。

GR 中的适配:由于 GR 序列缺乏显式主谓宾结构且不存在稳定 token 共现,作者将单个 token 作为编辑对象 $o$,将整个交互历史与冷启动物品的 SID 前缀作为 subject $s$,丢弃 relation $r$。每个编辑请求形式为 $\langle s_p, o_p \rangle$,其中 $p \in \{0,1,2,3\}$ 表示四位 SID 中的位置。

3 GenRecEdit 框架

GenRecEdit 由三个核心模块组成(Figure 4):

3.1 Position-Wise Knowledge Preparation(逐位置知识构建)

通过相似度匹配为冷启动物品构建伪交互历史:

Step 1:编码冷启动物品

$$e_c = f_{\text{enc}}(m_c)$$

其中 $m_c$ 是物品元数据信息,$f_{\text{enc}}(\cdot)$ 是编码器(使用 Sentence-T5)。

Step 2:检索相似 warm 物品

$$\text{sim}(c, j) = \cos(e_c, e_j) = \frac{e_c^\top e_j}{\|e_c\|_2 \|e_j\|_2}$$

$$\mathcal{N}_k(c) = \text{TopK}_{j \in \mathcal{I}_{\text{warm}}} \text{sim}(c, j)$$

Step 3:构建伪交互序列

对每个检索到的 warm item $j \in \mathcal{N}_k(c)$,提取用户的真实交互历史中 $j$ 之前的交互作为冷启动物品 $c$ 的伪交互历史。然后按位置拆分为编辑请求 $(s_p, o_p)$,其中 $s_p$ 由交互历史和冷启动物品的 SID 前缀组成,$o_p$ 是对应位置的 SID token。

3.2 Locate-Then-Edit Framework(定位-编辑框架)

3.2.1 Layer Location(层定位)

使用 probing classifier 定位最关键的编辑层。对于每个位置 $p$,从每一层 $l$ 提取 subject $s_p$ 最后一个 token 的激活 key $k_{p,i}^l$,训练线性分类器:

$$Cls(k_{p,i}^l) = \text{Sigmoid}(\langle \theta, k_{p,i}^l \rangle)$$

判断激活是否来自冷启动物品(编辑知识,标签1)还是原始训练数据(标签0)。数据集按 8:2 划分为训练集和验证集,选择分类准确率最高的层作为位置 $p$ 的编辑层 $l_p$。

3.2.2 Memory Construction(记忆构建)

对每个编辑请求 $(s_{p,i}, o_{p,i})$,在编辑层 $l_p$ 的 FFN 上计算目标向量 $z_i'$,使得将 $\delta_i = z_i' - z_i$ 加到隐状态后,模型能正确生成目标 token $T$。优化损失:

$$\mathcal{L}_{\text{edit}}(\delta_i) = \mathcal{L}_{\text{CE}}(\text{onehot}(o_{p,i}), p_\theta(\cdot \mid s_{p,i}; z_i + \delta_i))$$

其中 $\text{onehot}(o_{p,i}) \in \mathbb{R}^{|\mathcal{V}|}$。

3.2.3 Parameter Updating(参数更新)

将 $m$ 个编辑请求的 key 和 memory 堆叠为矩阵 $K_1 = [k_1 | k_2 | \cdots | k_m]$ 和 $Z_1' = [z_1' | z_2' | \cdots | z_m']$。参数更新通过最小化以下目标求解:

$$W_1 \triangleq \arg\min_{\tilde{W}} \left( \left\| \tilde{W} K_0 - Z_0 \right\|_F^2 + \left\| \tilde{W} K_1 - Z_1' \right\|_F^2 \right)$$

其中 $(K_0, Z_0)$ 是原始训练数据的 key-value 对,$(K_1, Z_1')$ 是冷启动物品的编辑对。

通过 block form 正规方程求解,最终得到闭式更新:

$$\Delta W = R K_1^\top \left( \lambda C_0 + K_1 K_1^\top \right)^{-1}$$

其中 $C_0 \triangleq K_0 K_0^\top$,$R \triangleq Z_1' - W_0 K_1$,$\lambda$ 控制保留原有知识和注入新知识之间的权衡。

3.3 One-One Triggering Policy(一对一触发策略)

推理时生成一个物品需要产生多个 SID token(4位),每个位置 $p$ 的编辑在不同层 $l_p$ 上执行。如果所有编辑层同时激活,不同位置间的编辑会相互干扰,导致不可预测的 token 输出。

解决方案:引入门控机制,在生成位置 $p$ 的 SID token 时,只触发对应层 $l_p$ 的编辑,其他位置的编辑保持不激活。这种 One-One 激活方式防止了跨位置耦合效应,确保每个位置的输出只受其对应编辑的影响。

4 实验

4.1 实验设置

数据集:Amazon Review 2023 的三个类别:

  • Video Games (Video)
  • Software
  • Cell Phones and Accessories (Phone)

按时间戳排序,采用 timestamp-based protocol 严格划分 train/validation/test,无时间重叠。cold subset 在三个数据集中分别占 65.6%、24.3%、75.5%。

实现细节

  • Tokenization:Sentence-T5 编码元数据,$M=4$ 个 codebook,每个 $K=256$ 个码字,维度 $d=32$
  • 骨干模型:T5,6 层 decoder,使用 gated-silu 激活(而非 ReLU,因为 ReLU 会导致 key 被截断为低秩,使矩阵求逆 ill-conditioned)
  • RQ-VAE:multi-head,训练 10,000 epochs,Adam 优化器,学习率 $1e^{-3}$,batch size 2048
  • $\lambda \in \{3000, 3000, 1000\}$(分别对应三个数据集)

评估指标:top-$k$ Recall 和 NDCG($k \in \{10, 20, 50\}$),以及 IID Ratio

Baselines

  • Item ID-based: SASRec, BERT4Rec
  • Semantic ID-based: VQ-Rec, TIGER, LC-Rec
  • Cold-start-based: Retraining, Finetuning, SpecGR

4.2 Overall Performance(Table 1)

Video 数据集

Metric SASRec (Overall) BERT4Rec (Overall) VQ-Rec (Overall/Cold) TIGER (Overall/Cold) LC-Rec (Overall/Cold) Retrain (Overall/Cold) Finetune (Overall/Cold) SpecGR (Overall/Cold) GenRecEdit (Overall/Cold)
NDCG@10 0.0014 0.0019 0.0027/0.0000 0.0070/0.0020 0.0055/0.0012 0.0083/0.0044 0.0076/0.0103 0.0114/0.0051 0.0118/0.0123
NDCG@20 0.0019 0.0028 0.0035/0.0000 0.0096/0.0030 0.0072/0.0017 0.0109/0.0058 0.0093/0.0125 0.0136/0.0062 0.0140/0.0141
NDCG@50 0.0027 0.0044 0.0046/0.0001 0.0137/0.0052 0.0099/0.0028 0.0158/0.0096 0.0124/0.0164 0.0158/0.0075 0.0182/0.0176
RECALL@10 0.0028 0.0046 0.0053/0.0000 0.0141/0.0043 0.0109/0.0026 0.0167/0.0094 0.0141/0.0191 0.0237/0.0106 0.0210/0.0209
RECALL@20 0.0051 0.0081 0.0085/0.0001 0.0243/0.0083 0.0177/0.0045 0.0270/0.0148 0.0209/0.0281 0.0409/0.0195 0.0299/0.0283
RECALL@50 0.0089 0.0163 0.0141/0.0006 0.0455/0.0197 0.0318/0.0102 0.0521/0.0344 0.0364/0.0475 0.0953/0.0504 0.0510/0.0457

Software 数据集

Metric GenRecEdit (Overall/Cold)
NDCG@10 0.0370/0.0228
NDCG@20 0.0475/0.0249
NDCG@50 0.0601/0.0286
RECALL@10 0.0706/0.0359
RECALL@20 0.0480/0.0445
RECALL@50 0.1754/0.0629

Phone 数据集

Metric GenRecEdit (Overall/Cold)
NDCG@10 0.0064/0.0052
NDCG@20 0.0078/0.0063
NDCG@50 0.0098/0.0079
RECALL@10 0.0108/0.0083
RECALL@20 0.0144/0.0126
RECALL@50 0.0369/0.0207

关键结论: 1. GenRecEdit 在 overall 和 cold subset 上均取得最佳或接近最佳性能,全面超越 item ID-based 和 semantic ID-based 方法 2. Semantic ID-based 方法一致优于 item ID-based 方法,因为语义 ID 可以分配给未见物品,使模型通过语义 token 推理冷启动物品 3. GenRecEdit 与 Retrain、Finetune、SpecGR 等冷启动专用方法相比也取得优异效果,但效率远高于它们

4.3 Warm Subset Performance(Table 2)

在 Phone 数据集上评估各冷启动方法对 warm subset 的影响:

Method IID R.@10 N.@10 N.@20 R.@10 R.@20 Drop
TIGER 0.7020 0.0108 0.0144 0.0215 0.0362 --
Retraining 0.6181 0.0080 0.0104 0.0165 0.0259 -25.9%
Finetuning 0.1052 0.0014 0.0018 0.0022 0.0037 -87.0%
SpecGR 0.3329 0.0067 0.0081 0.0207 0.0389 -38.0%
GenRecEdit 0.6366 0.0101 0.0127 0.0186 0.0288 -6.5%

GenRecEdit 在 warm subset 上 NDCG@10 仅下降 6.5%,远优于 Retraining (-25.9%)、Finetuning (-87.0%) 和 SpecGR (-38.0%)。

4.4 Ablation Study(Table 3,Phone 数据集)

Model IID R.@10 N.@10 N.@20 R.@10 R.@20
GenRecEdit 0.7359 0.0064 0.0078 0.0108 0.0165
w/o position-wise 0.0220 0.0002 0.0002 0.0004 0.0005
w/o classifier (random) 0.7339 0.0059 0.0072 0.0100 0.0150
w/o classifier (worst) 0.6865 0.0055 0.0066 0.0094 0.0137
w/o one-one triggering 0.0030 0.0000 0.0001 0.0001 0.0002

结论: 1. Knowledge Preparation 和 One-One Triggering 是最关键的模块:去掉 position-wise 知识构建或 one-one triggering 后性能几乎降为零 2. Layer Location 的 probing classifier 也有正面贡献,选错层(worst)会导致明显性能下降

4.5 知识质量分析(Figure 5)

比较三种设置:

  • Origin:不注入新知识
  • Ours (GenRecEdit):注入构建的伪交互知识
  • Upper Bound:注入真实交互历史

GenRecEdit 相比 Origin 有显著提升,但与 Upper Bound 之间仍存在较大 Quality Gap,表明伪交互历史的质量仍有较大改进空间。

4.6 知识数量分析(Figure 6)

随着每个冷启动物品注入的知识量增加:

  • cold subset 上 IID Ratio@10 和 NDCG 持续上升
  • overall test set 上 NDCG 先上升后下降,存在 warm/cold 之间的内在权衡

4.7 超参数 $\lambda$ 分析(Figure 7)

$\lambda$ 控制保留原有知识和注入新知识的权衡:

  • $\lambda$ 增大:warm item 性能提升,cold item 性能下降
  • 适度的 $\lambda$ 可以在 overall test set 上取得最优平衡

4.8 更新时间分析(Table 4)

Model Update Retraining Finetuning SpecGR GenRecEdit
Type Train Train Alignment Edit
Relative Time 100% 18.1% 41.6% 9.5%

GenRecEdit 仅需重训练时间的 9.5%,是效率最高的方法。

4.9 分类器层准确率分析(Figure 8)

  • 跨位置一致:中间层到前面的层 probing 准确率更高,编辑作为等价线性变换在这些层更有效
  • Position 3 的 probing 准确率在深层急剧下降,因为该位置的 SID token 多为非语义 token,new/old 知识难以区分

5 总结

GenRecEdit 是首个将模型编辑应用于生成式推荐冷启动场景的框架。核心贡献:

  1. 揭示冷启动崩塌现象:GR 模型能生成冷启动物品的第一个语义 ID,但后续生成不稳定,倾向于已见过的语义 ID 模式
  2. 三模块框架:Position-Wise Knowledge Preparation 构建伪交互历史 -> Locate-Then-Edit 通过 probing classifier 定位关键层并执行 FFN 编辑 -> One-One Triggering 防止多位置编辑干扰
  3. 高效实用:仅需 9.5% 的重训练时间,warm subset 性能仅下降 6.5%

局限性:伪交互历史的质量与真实交互仍有差距(Quality Gap),未来可改进知识构建方法。