训练时就把冷品换成近邻,序列推荐才扛得住推理期swap

SwapRec: Warming Up Cold Items Through Training-Time Swaps

Marta Moscati, Jan Malte Lichtenberg, Davide Abbattista, Antonio De Candia, Laura Boggia, Matteo Ruffini

cs.IR, cs.MM

2026-09-01

工业界推理时常用相似热品替换冷品,但SASRec在音乐数据上swap后HR@10从0.318掉到0.042。SwapRec把同一替换提前到训练,swap后HR@10回到0.240。

这篇在解决什么

ID 序列推荐给每个商品一个 embedding,冷品几乎没被点过,embedding 更新不到。用户刚点了冷品,把这次点击喂进模型会把偏好估计带偏;丢掉这次点击,实时个性化又停了。工业上的土办法是推理时把冷品换成侧信息最像的热品,住房和电商都有类似做法。

这个办法默认模型对「语义相近的 ID」表现一样。Albatross AI 和林茨开普勒大学指出:热品和冷品出现在不同用户、不同序列里,训练从未见过这种替换,推理期一 swap,准确率会塌。

方法

SwapRec 不改 SASRec、BERT4Rec 的结构,只改训练序列。用侧信息(音频、标题描述、剧情文本)算每个商品的最近邻映射 φ。训练时每个位置以概率 pswap 把商品换成 φ(该商品),且一条序列最多换 Mswap 次。输入和训练目标一起换。冷品本来很少出现,被换进来的机会反而多,ID embedding 能多更新几次。Mswap 还让替换更常发生在序列前部,后续子序列都能当监督。

推理时只换输入里的冷品,不换要预测的目标。pswap 和 Mswap 当超参。

评测用全局时间切分,测试集占 20% 交互,序列最长 40。k-core 从常见的 5 降到 2,把冷品留下。三个域:

数据用户 / 商品 / 交互侧信息
Music4All-Onion2.0 万 / 5.3 万 / 1729 万音频 MusiCNN
Amazon AllBeauty1.3 万 / 0.7 万 / 50 万标题+描述 MiniLM
ML-20M11.2 万 / 1.2 万 / 1992 万IMDB 剧情 mpnet

冷品阈值是训练集交互次数 ntrain ≤ 10。对照还有 MultVAE、Item-kNN、ALS;这些协同过滤基线不支持 swap 推理。

结果

不 swap 时,序列模型全面高于非序列基线。SwapRec 对整体 HR@10 几乎不伤,ML-20M 上 SASRec 还从 0.1185 升到 0.1202。

一做推理期 swap,没有 SwapRec 的模型掉得很狠。

数据SASRec 整体 swap HR@10+SwapRec
Onion0.04220.2404
Amazon0.00980.0454
ML-20M0.05240.1102

Onion 上原 SASRec 从 0.3183 掉到 0.0422;SwapRec 在不 swap 时 0.3104,swap 后仍有 0.2404。BERT4Rec 方向相同,幅度小一些。

严格冷启动(ntrain=0)试了三种处理:swap、随机初始化 embedding、直接丢掉该商品。没有 SwapRec 时,swap 在 Onion 上比丢掉该商品更差(SASRec 0.0423 vs 0.2197),音乐会话长,模型还能靠前面的热品撑着。加上 SwapRec 后,推理期 swap 变成最好的处理:Onion SASRec 0.2405,Amazon 0.0494,ML-20M 0.1102。

内容侧,Amazon top-10 里冷品占比从 30.7% 到 31.8%,目录覆盖率从 0.5779 到 0.6322。提升幅度不大,但 CDF 全程在 SASRec 上方,不是阈值切出来的假象。

为什么重要

很多团队已经在推理期做近邻替换,问题是训练没见过这种输入。SwapRec 的主张很窄:同一启发式提前到训练,ID 模型不用改成多模态,也不用另训 semantic ID。对已经上了 SASRec、又用侧信息近邻顶冷品的栈,这是改数据管线就能做的补丁。

它不是更强的冷启动算法。和 DropoutNet、语义 ID、多模态单塔比,它故意走更简单的路,换来的是能接到现有 ID 序列模型上。

局限与存疑

作者列得很清楚。评测只 swap 序列最后一项,因为序列模型对最近一次交互最敏感;真实会话里冷品可以出现在任何位置,多次替换、不同位置、不同近邻映射都没测。φ 只取最相似的一个热品。对比损失(像同义词那样拉近可替换 ID)没做。ID embedding 空间被训练期 swap 拧成什么样,也没有分析。

Amazon 冷品占比只多 1.1 个百分点,内容冷启动的获益有限。Onion 上 BERT4Rec 加 SwapRec 之后,冷序列 swap 的 HR@10 和原 BERT4Rec 一样是 0.1597,不是所有骨干都吃到同等红利。车间论文,数据量和骨干都偏标准,没有在线 A/B。

术语

原文与代码

社区讨论

相关论文

全部论文解读