Add TapADN smart preload attribution

This commit is contained in:
2026-06-05 21:44:35 +08:00
parent c21bdec3fe
commit fd98a7f541
48 changed files with 9441 additions and 18 deletions

View File

@@ -0,0 +1,160 @@
# TapADN 智能预加载策略验收报告(含随机偏好机器人 + 网络环境)
## 仿真前提
- 模型定位IAA 场景中 3 类广告位(激励/开屏/插屏)统一参与策略决策。
- 次留默认验收基线35%
- 随机机器人数量5000
- 场景进入->展示请求->预加载决策->展示时延为核心链路。
- 每次样本运行前先生成一批“偏好机器人”,再在其上分别运行:纯手动(无 smart与智能预加载两种模式。
- 预加载触发后在 cooldown 内有效一次,不命中将视作普通 load。
- `Immediate`:请求时已命中可直接播放的占比(值越高越好)
- `Waste`:预加载后在 cooldown 内未被消费即失效的比例(值越低越好)
- 网络环境Wi-Fi / 4G / 3G / 2G 按机器人偏好加权采样,逐回合独立变化。
## 机器人与网络设置
- 机器人类型随机采样以下偏好族reward_heavy、interstitial_focus、splash_driven、balanced、churn_sensitive、network_bound
- 每类机器人具有独立的场景进入偏好、请求偏好、fill 成功倍率、加载时延倍率和留存倍率。
- 网络环境以会话粒度采样低网速会同步影响网络请求率、fill 成功率和加载耗时。
## 参数扫描范围
- Threshold: `0.20~0.90` 步长 0.05
- Cooldown: `30,60,90,120,180,240,300`
- 次留:`20%,25%,30%,35%,40%,50%,60%`
## 基线对照
- 次留 35% 基线(纯手动,无 smart即时命中率0.00%
- 次留 35% 基线平均时延1615 msp95 2913
- 次留 35% 建议起点(当前模型):`threshold=0.25, cooldown=30s`
- 对比基线即时命中提升:`38.09%`
- 对比基线时延变化:`-565 ms`
- 平衡候选Waste<=12%
- threshold=0.25, cd=60sImmediate 25.12%Waste 4.88%
## 最优/最差(次留=35%
| 排名 | Threshold | Cooldown | 即时命中率 | 平均等待 | P95等待 | 浪费率 | 播放成功率 |
|---|---:|---:|---:|---:|---:|---:|---:|
| 1 | 0.25 | 30 | 38.09% | 1050 | 2787 | 14.03% | 81.35% |
| 2 | 0.20 | 30 | 36.65% | 1073 | 2790 | 13.96% | 81.35% |
| 3 | 0.25 | 60 | 25.12% | 1234 | 2774 | 4.88% | 77.96% |
| 4 | 0.20 | 60 | 24.81% | 1242 | 2830 | 6.75% | 77.45% |
| 5 | 0.30 | 30 | 24.65% | 1285 | 2894 | 7.73% | 77.79% |
| 6 | 0.30 | 60 | 24.56% | 1239 | 2812 | 5.76% | 77.61% |
| 7 | 0.35 | 30 | 23.05% | 1318 | 2895 | 5.44% | 77.58% |
| 8 | 0.50 | 30 | 22.96% | 1320 | 2893 | 4.99% | 77.54% |
### 最差 8 组
| 排名 | Threshold | Cooldown | 即时命中率 | 平均等待 | P95等待 | 浪费率 | 播放成功率 |
|---|---:|---:|---:|---:|---:|---:|---:|
| 1 | 0.90 | 300 | 0.00% | 1629 | 2924 | 0.00% | 70.55% |
| 2 | 0.90 | 240 | 0.00% | 1630 | 2899 | 0.00% | 70.09% |
| 3 | 0.90 | 180 | 0.00% | 1622 | 2907 | 0.00% | 70.60% |
| 4 | 0.90 | 120 | 0.00% | 1633 | 2943 | 0.00% | 70.51% |
| 5 | 0.90 | 90 | 0.00% | 1637 | 2963 | 0.00% | 70.84% |
| 6 | 0.90 | 60 | 0.00% | 1628 | 2863 | 0.00% | 70.72% |
| 7 | 0.90 | 30 | 0.00% | 1627 | 2933 | 0.00% | 69.52% |
| 8 | 0.85 | 300 | 0.00% | 1623 | 2910 | 0.00% | 70.69% |
## 与纯手动模式对比次留35%
- 纯手动Immediate `0.00%`AvgWait `1615`msWaste `0.00%`
- smart 最优:阈值 `0.25`cd `30`Immediate `38.09%`AvgWait `1050`msWaste `14.03%`
- 增益:`38.09%`
### 网络分层对比次留35%
- WIFI手动即时 `0.00%` / 等待 `1248ms`;智能(`threshold=0.25, cd=30s`)即时 `40.13%` / 等待 `767ms`;提升 `40.13%`
- 4G手动即时 `0.00%` / 等待 `1601ms`;智能(`threshold=0.25, cd=30s`)即时 `39.66%` / 等待 `1003ms`;提升 `39.66%`
- 3G手动即时 `0.00%` / 等待 `2165ms`;智能(`threshold=0.20, cd=30s`)即时 `32.64%` / 等待 `1498ms`;提升 `32.64%`
- 2G手动即时 `0.00%` / 等待 `3044ms`;智能(`threshold=0.25, cd=30s`)即时 `32.06%` / 等待 `2116ms`;提升 `32.06%`
## 次留敏感度35%基线)
- 次留 20%:手动基线时延 1618ms智能最佳 `threshold=0.20, cd=30s`,最佳 Immediate 38.69%Waste 13.14%;最差 `threshold=0.90, cd=300s`Immediate 0.00%Waste 0.00%。
- 次留 25%:手动基线时延 1641ms智能最佳 `threshold=0.20, cd=30s`,最佳 Immediate 37.52%Waste 14.16%;最差 `threshold=0.90, cd=300s`Immediate 0.00%Waste 0.00%。
- 次留 30%:手动基线时延 1629ms智能最佳 `threshold=0.20, cd=30s`,最佳 Immediate 37.42%Waste 13.33%;最差 `threshold=0.90, cd=300s`Immediate 0.00%Waste 0.00%。
- 次留 35%:手动基线时延 1615ms智能最佳 `threshold=0.25, cd=30s`,最佳 Immediate 38.09%Waste 14.03%;最差 `threshold=0.90, cd=300s`Immediate 0.00%Waste 0.00%。
- 次留 40%:手动基线时延 1617ms智能最佳 `threshold=0.20, cd=30s`,最佳 Immediate 38.05%Waste 13.64%;最差 `threshold=0.90, cd=300s`Immediate 0.00%Waste 0.00%。
- 次留 50%:手动基线时延 1618ms智能最佳 `threshold=0.25, cd=30s`,最佳 Immediate 38.02%Waste 14.06%;最差 `threshold=0.90, cd=300s`Immediate 0.00%Waste 0.00%。
- 次留 60%:手动基线时延 1619ms智能最佳 `threshold=0.25, cd=30s`,最佳 Immediate 38.01%Waste 14.88%;最差 `threshold=0.90, cd=300s`Immediate 0.00%Waste 0.00%。
## 交叉参数观察
- 在同一保留率下,阈值下调能显著提高 `Immediate`,但通常也抬高 `Waste`
- cooldown 拉长可降低 waste减少重复预加载/空耗),但可能提高用户等待。
- 在弱网(尤其低分配机器人更多时)场景,建议提高 waste 上限约束后再考虑 lower threshold。
## 图表示例(输出文件)
- `heatmap_immediate_r_0.20.png`
![](heatmap_immediate_r_0.20.png)
- `heatmap_immediate_r_0.35.png`
![](heatmap_immediate_r_0.35.png)
- `heatmap_immediate_r_0.60.png`
![](heatmap_immediate_r_0.60.png)
- `heatmap_preload_success_r_0.20.png`
![](heatmap_preload_success_r_0.20.png)
- `heatmap_preload_success_r_0.35.png`
![](heatmap_preload_success_r_0.35.png)
- `heatmap_preload_success_r_0.60.png`
![](heatmap_preload_success_r_0.60.png)
- `heatmap_wait_ms_r_0.20.png`
![](heatmap_wait_ms_r_0.20.png)
- `heatmap_wait_ms_r_0.35.png`
![](heatmap_wait_ms_r_0.35.png)
- `heatmap_wait_ms_r_0.60.png`
![](heatmap_wait_ms_r_0.60.png)
- `heatmap_waste_ratio_r_0.20.png`
![](heatmap_waste_ratio_r_0.20.png)
- `heatmap_waste_ratio_r_0.35.png`
![](heatmap_waste_ratio_r_0.35.png)
- `heatmap_waste_ratio_r_0.60.png`
![](heatmap_waste_ratio_r_0.60.png)
- `line_immediate_vs_retention.png`
![](line_immediate_vs_retention.png)
- `line_mode_immediate_vs_retention.png`
![](line_mode_immediate_vs_retention.png)
- `line_mode_wait_vs_retention.png`
![](line_mode_wait_vs_retention.png)
- `line_network_immediate_vs_retention.png`
![](line_network_immediate_vs_retention.png)
- `line_network_wait_vs_retention.png`
![](line_network_wait_vs_retention.png)
- `line_threshold_0.55_retention_0.20.png`
![](line_threshold_0.55_retention_0.20.png)
- `line_threshold_0.55_retention_0.25.png`
![](line_threshold_0.55_retention_0.25.png)
- `line_threshold_0.55_retention_0.30.png`
![](line_threshold_0.55_retention_0.30.png)
- `line_threshold_0.55_retention_0.35.png`
![](line_threshold_0.55_retention_0.35.png)
- `line_threshold_0.55_retention_0.40.png`
![](line_threshold_0.55_retention_0.40.png)
- `line_threshold_0.55_retention_0.50.png`
![](line_threshold_0.55_retention_0.50.png)
- `line_threshold_0.55_retention_0.60.png`
![](line_threshold_0.55_retention_0.60.png)
- `line_wait_vs_retention.png`
![](line_wait_vs_retention.png)
## 验收结论
- 建议首轮灰度点:`threshold=0.25`, `cooldown=60s`(兼顾即时性与 waste
- 次留 35% 下智能策略最佳立即命中来自 `threshold=0.25, cd=30s`,即时率 `38.09%`Waste `14.03%`
- 建议将 `smart_preload` 配置作为实验变量:先以纯手动为对照,再按次留分层和网络监控逐步放量。