小红书精读:Preserving rare-item recall under a storage budget: quantization, distillation, and the limits of teacher fidelity

less than 1 minute read

同样存储预算,砍精度还是砍维度🤔

各位算法同学们,先抛个反常识结论:在固定存储预算下,把embedding存成4bit、保留更高rank,比蒸馏一个学生模型更能保住长尾物品的召回——但它每算一次分数要多花7.5倍算术量。这篇论文回答的就是“字节到底该花在rank还是precision”,而且顺手戳破了一个常见指标:压缩模型对teacher的保真度,并不能代表它召回了多少稀有物品。

📄 Preserving rare-item recall under a storage budget: quantization, distillation, and the limits of teacher fidelity

🔧 所有候选模型都被卡在同一个预算里:每行168字节(40维FP32加8字节ID),包括40维BPR、两个40维UnKD蒸馏学生,以及把300维teacher的分数矩阵做低秩分解——rank 40/32bit、80/16bit、155/8bit、300/4bit,除了rank和精度,其他全固定。

🧩 作者把“teacher保真度”单独拎出来当靶子:teacher-hit retention(teacher命中的长尾物品里,压缩模型也命中的比例)和tail recall@20在147个候选对里有23对排序不一致,7个cell里有3个选错了长尾召回的冠军,原因是学生能找到teacher自己漏掉的稀有物品。

⚙️ 实验协议是先固定候选和验证性分析、再跑一次测试集,2个cell来自早前的留出研究,5个cell是预先写死协议的prospective expansion,避免了看着测试集调模型这个老坑。

📊 rank 300 + 4bit只用了teacher 13%的存储,在每个cell里保住95–103%的tail recall@20和93–97%的NDCG@20。

📈 同样字节给rank 40 + FP32,tail recall在全部7个cell里垫底;在MovieLens-20M上它保住了teacher 94.6%的NDCG,却只有25.3%的tail recall——平均指标看着没事,长尾已经塌了。

✅ 4bit分解的tail recall是rank-40的1.2–12.7倍;两个UnKD学生只保住teacher 56–102%的tail recall,5个扩展cell的10个预设比较里4bit全部更高,同时95%区间不含0。

总结:做线上feature store压缩的同学可以重点关注,判断标准要换成总tail recall而不是只看对teacher的保真度,对比基线至少放一个同字节的高rank低精度方案。坑在于推理时算术量涨到7.5倍,得先算清serving的算力账;另外这只是MF和LightGCN两个backbone,图模型更深的结构没覆盖。

原文:AlphaXiv

Updated: