Experiment: retail_full_predict_behavior
Retail prediction experiment results and MBGR notes.
views
| comments
Experiment: retail_full_predict_behavior#
| Behavior | Num_Users | Recall@5 | Recall@10 | Recall@20 | NDCG@5 | NDCG@10 | NDCG@20 |
|---|---|---|---|---|---|---|---|
| Overall | 147894 | 0.558002 | 0.676742 | 0.791824 | 0.430928 | 0.469364 | 0.498486 |
| pv | 113427 | 0.547108 | 0.668618 | 0.786838 | 0.418684 | 0.458003 | 0.487924 |
| fav | 3696 | 0.548722 | 0.664547 | 0.786515 | 0.423898 | 0.461273 | 0.492092 |
| buy | 19340 | 0.624489 | 0.726485 | 0.823561 | 0.502732 | 0.535822 | 0.560378 |
| cart | 11431 | 0.554557 | 0.675554 | 0.787043 | 0.431819 | 0.470979 | 0.49915 |
MBGR#
问题定义#
给定用户历史序列,同时为 K 种业务类型生成下一个 item 的 Semantic ID:
三个核心模块#
BID(Business-aware Semantic ID)#
解决问题:不同业务的 item 压缩到同一 SID 空间,各业务的语义被混淆
一个业务感知的自编码器:
输入 token embeddings [t_i, b_i]->Encoder(FFN + Gating)->业务感知的 item 表示 e_i->Decoder(FFN + Gating)->生成预测 tokenplaintextEncoder 和 Decoder 都把business embedding 拼进去
MBP(Multi-Business Prediction)#
做法是 MoE(混合专家)架构,为每种业务生成专属表示
LDR(Label Dynamic Routing)#
解决问题:训练时每个序列位置只有一个行为标签,其余业务的标签为空(稀疏),导致多业务预测缺乏监督信号。
做法极为简洁:从序列中向后查找同业务的下一个交互作为标签:
把”下一个同类行为的 item”作为当前位置的标签,将稀疏标签变为密集标签。如果找不到则 mask 掉。