Read this paper write-up in English
UxSID:以目标语义组共享超长序列兴趣记忆¶
论文信息¶
| 项目 | 内容 |
|---|---|
| 论文链接 | arXiv 2605.09040 |
| 公司/机构 | Kuaishou |
| 首次公开日期 | 2026-05-09(arXiv v1) |
| 原文开源代码 | 否:未找到原作者公开实现(核查日期:2026-10-13;实现依据 v4) |
| Adapter | uxsid |
| 本地复现代码 | src/auto_research/reproductions/uxsid/ |
本轮依据 2026-10-09 的 v4 正文 实现;v1 与实质更新日期分开记录,不将旧文更新计作十月新 v1。
本地对照口径:基线为 global-only、item-agnostic 与 ungated,实验组为 UxSID;四种真实训练结构共享同一冻结语义编码、SID 侧信息、初始参数、样本和训练预算,仅用 validation 选择 epoch/结构,之后报告 test。本轮未见稳定提升,稳定相对收益不适用。MovieLens 评分预测不能替代原论文 KuaiRec/XLong 超长历史、CTR/CTCVR 或线上收益。
原始论文总结¶
背景与主要改动¶
UxSID 在逐候选检索和完全候选无关的历史压缩之间加入“目标语义组共享记忆”:用目标物品第一层 SID 查询全历史与可学习兴趣锚点,利用全局兴趣门控第二层语义探针。语义相近的候选共享用户兴趣表示,使离线端到端训练与线上按用户/SID 查表使用同一记忆。
IAIC 先用可学习锚点对行为序列做交叉注意力,再为每个锚点配置独立 Sigmoid PFFN、残差及 LayerNorm;正交项抑制兴趣坍缩。目标 SID 对原序列取全局响应,并以该响应门控 SID 后查询压缩锚点,最后拼接两级兴趣表示进行监督训练。
flowchart TD
A[物品内容属性] --> B[语义编码与残差量化]
B --> S[第一层目标 SID]
H[用户行为序列] --> I[IAIC:锚点 attention / PFFN / 正交项]
H --> G[SID 全历史 probing]
S --> G
G --> Q[全局响应门控目标 SID]
S --> Q
I --> L[局部锚点 probing]
Q --> L
G --> M[拼接全局/局部记忆]
L --> M
M --> P[监督预测;离线记忆生成]
P --> C[用户/SID 共享缓存;线上与离线一致]
原论文关键图¶
原论文 Figure 2(关键图):展示原论文提出的核心架构、主要模块及其连接关系。图片来自原论文,版权归原作者所有;点击图片可查看来源。
核心公式¶
原文 Eq.2 的残差量化为
本地明确使用两级 residual k-means 加七级 finite scalar residual,而不是冒称原文公开实验的 LETTER 四个 256 码本。码本中心与 scalar 范围仅在训练物品属性上拟合,推理使用第一层码 ID。
IAIC 的锚点压缩和原文 Eq.5 正交项为
分母是整个锚点矩阵的 squared L2 norm,不是逐行单位化后的余弦矩阵。每个锚点保留独立参数的 PFFN,而非用一个共享 FFN 替代。
两级探针保持 Eq.6–9:目标 SID 先查询原行为表示取得 \(e_g\),\(q_{ref}=c_{target}\odot\sigma(\mathrm{MLP}(e_g))\) 再查询锚点取得 \(e_l\)。预测端以 \([e_g;e_l]\) 与 user/item/context/短历史特征拼接,使用 \(\mathrm{BCE}+\lambda\mathcal L_{ortho}\) 实际反向传播。
论文离线与线上效果¶
| 原论文指标 | UxSID | 对照/位置 |
|---|---|---|
| XLong AUC | 0.8408 | TWIN 0.8154;C-Former 0.8135;Table 1 |
| KuaiRec-Big AUC | 0.8348 | TWIN 0.8269;C-Former 0.8276;Table 1 |
| 工业 CTR AUC | 0.8728 | TWIN 0.8712;Table 2 |
| 工业 CTCVR AUC | 0.8626 | TWIN 0.8609;Table 2 |
| 线上 Revenue 相对提升 | +0.337% | 快手短视频广告一周生产 A/B;Table 3 |
同一生产实验 Exposure +0.111%、Advertising Cost +0.231%。正文称收益显著,未给该表的 p-value/置信区间。论文 \(O(1)\) 在线查表和 10k 历史扩展结果属于原生产系统,本地不据此宣称服务延迟或容量改善。
本地复现与运行¶
python -m pip install -e '.[neural-recs,llm-evolution]'
PYTHONPATH=src python scripts/run_uxsid.py \
--dataset-dir data --device cpu --seed 42 --epochs 3 \
--output runs/uxsid-42
# NVIDIA A100/A30 使用 --device cuda;可指定带 provenance.json 的本地公开 encoder mirror。
默认 encoder 是固定版本 Qwen2.5-0.5B-Instruct 7ae557604adf67be50417f59c2c2f167def9a775;仅输入公开电影标题和 genre。所有 encoder 参数冻结,mask mean pooling 后归一化,不读取评分/验证/测试标签。公开文本语义不是私有视频/世界知识对齐 MLLM。
按每个用户时间排序,最后一条 test、倒数第二条 validation,之前均为 train;每次预测只使用此前已发生的评分物品作为历史。监督标签为 observed rating≥4,最长历史 256。timestamp 归一化只拟合 train;不做全库点击排名,也不是私有广告数据。
四组均实际训练:global-only、agnostic、ungated、uxsid。各组都直接接收相同 SID 侧特征,避免把额外信息当成压缩结构收益。不是“DIN 基线”,因为没有将局部 SID 探针误名为 DIN。
本地结果¶
一次早期 CPU/seed42/100 用户/1 epoch 诊断中,UxSID test AUC 0.5848,validation 选择的 agnostic 为 0.5916;负结果原样保留。后续完整用户、冻结 Qwen 编码、A100 的 42/43/44 实跑结果单独保存,不与该早期 CPU 配置合并统计。
2026-10-13 的 A100 实跑使用全部 943 用户,train/validation/test 为 97,171/943/943,每组各训练 3 epochs。以下为三种子的均值±样本标准差:
| 结构 | Test ROC-AUC | Test PR-AUC |
|---|---|---|
| global-only | 0.74123±0.01134 | 0.73018±0.01589 |
| agnostic | 0.74045±0.01299 | 0.72732±0.01712 |
| ungated | 0.74142±0.01008 | 0.73252±0.01529 |
| UxSID | 0.74102±0.01019 | 0.73091±0.01435 |
三个种子的 validation 选择分别为 UxSID/global-only/global-only;UxSID 没有稳定超过对照。各组均有真实参数更新,缓存/直接计算最大误差为 0。三种子是执行稳定性诊断,不把这些重叠的结果宣称为原论文收益。
代码映射与复现边界¶
| 论文部分 | 本地代码 |
|---|---|
| Eq.2 语义残差量化 | model.py:ResidualKmeansFSQ |
| Eq.3–5 IAIC/PFFN/正交项 | InterestCompressor / orthogonality_loss |
| Eq.6–11 双层探针/门控/监督 | UxSID.memory / UxSID.score / objective |
| 用户/SID 同记忆与失效 | SemanticMemoryCache;key 还包含历史和模型摘要 |
| 时间切分、真实训练、验证选择 | experiment.py |
缓存只有 eval-mode 模型才能填充,记忆计算不接收 target item ID;相同 SID 候选共享记忆,历史或模型变化使旧 key 失效。原序列训练与缓存推理检查数值一致,不是生产 Embedding Server 吞吐测量。
核心机制/L2 公开数据训练,所有结果仍为小模型评分诊断。未复刻原文公开 LETTER、XLong/KuaiRec 协议、私有 MLLM/广告特征、多任务 CTCVR head、分布式 ES 与生产 A/B;不宣称复现原业务收益,evolve 尚未登记为可晋级算子。
