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
Serving swaps cold items for nearest warm neighbors; SASRec on music then falls from 0.318 to 0.042 HR@10. SwapRec trains on the same swap and recovers 0.240.
ID sequential recommenders give each item an embedding. A cold item has almost no clicks, so that embedding barely moves. Feeding a cold click into the model distorts the user estimate; dropping it freezes real-time personalization. A common production heuristic replaces the cold item at inference with its nearest warm neighbor in side-information space. Housing and e-commerce stacks do versions of this.
The heuristic assumes the model treats semantically close IDs alike. Albatross AI and Johannes Kepler University Linz point out that warm and cold items show up for different users and in different sequences. Training never saw the swap, so accuracy collapses when serving applies it.
SwapRec leaves SASRec and BERT4Rec unchanged and edits training sequences. A nearest-neighbor map φ comes from side information (audio, title plus description, plot text). During training, each position is replaced by φ(item) with probability pswap, with at most Mswap swaps per sequence. Inputs and targets both change. Cold items are rare in raw data, so being swapped in gives their ID embeddings more updates. Mswap also pushes swaps earlier in the sequence, so later subsequences still supervise those IDs.
At inference only cold items in the input are swapped, not the target. pswap and Mswap are hyperparameters.
Evaluation uses a global temporal split with 20% of interactions in test and max length 40. k-core filtering is relaxed from the usual 5 to 2 so cold items remain. Three domains:
| Dataset | Users / items / interactions | Side information |
| Music4All-Onion | 20k / 53k / 17.3M | audio MusiCNN |
| Amazon AllBeauty | 13k / 7k / 0.50M | title+description MiniLM |
| ML-20M | 112k / 12k / 19.9M | IMDB plot mpnet |
Cold items are those with ntrain ≤ 10. MultVAE, Item-kNN, and ALS are extra baselines; those collaborative filters do not support swap inference.
Without swaps, sequential models beat the non-sequential baselines on every set. SwapRec barely hurts overall HR@10, and on ML-20M SASRec edges up from 0.1185 to 0.1202.
Once inference-time swaps are on, models without SwapRec drop hard.
| Dataset | SASRec overall swap HR@10 | +SwapRec |
| Onion | 0.0422 | 0.2404 |
| Amazon | 0.0098 | 0.0454 |
| ML-20M | 0.0524 | 0.1102 |
On Onion, plain SASRec falls from 0.3183 to 0.0422; SwapRec is 0.3104 without a swap and 0.2404 with one. BERT4Rec moves in the same direction, with a smaller gap.
Strict cold start (ntrain=0) compares swap, a randomly initialized embedding, and dropping the item. Without SwapRec, swap on Onion is worse than dropping (SASRec 0.0423 vs 0.2197); music sessions are long, so earlier warm items can carry the model. With SwapRec, inference-time swap becomes the best of the three: 0.2405 on Onion SASRec, 0.0494 on Amazon, 0.1102 on ML-20M.
On the producer side, Amazon top-10 cold-item share goes from 30.7% to 31.8%, catalog coverage from 0.5779 to 0.6322. The lift is small, but the CDF sits above SASRec for every frequency, so it is not an artifact of the cold threshold.
Plenty of stacks already swap to a nearest neighbor at serving. The missing piece is that training never saw those inputs. SwapRec's claim is narrow: run the same heuristic in training, keep the ID model, skip a multimodal rewrite and skip a separate semantic-ID trainer. For a SASRec deployment that already proxies cold items with side-information neighbors, this is a data-pipeline patch.
It is not a stronger cold-start algorithm. Against DropoutNet, semantic IDs, or multimodal single-tower models it deliberately takes the simpler path, in exchange for dropping into an existing ID sequential model.
The authors list the bounds. Evaluation swaps only the last item, because sequential models overweight the latest click; real sessions put cold items anywhere. Multiple swaps, other positions, and other neighbor maps are untested. φ keeps only the single nearest warm item. A contrastive pull between swappable IDs, in the style of synonym training, is not tried. How training-time swaps warp the ID embedding space is not analyzed.
Amazon's cold share rises only 1.1 points, so the producer-side win is modest. On Onion, BERT4Rec with SwapRec matches plain BERT4Rec at 0.1597 HR@10 on cold swapped sequences; not every backbone collects the same dividend. This is a workshop paper: standard datasets, standard backbones, no online A/B.