fix(analytics): shrink video efficiency and gate noisy boards by views
This commit is contained in:
1 parent
e7034cfb84
commit
bc3bef0743
12 files changed
+125
-40
No files matched your search
+6
-2
@@ -676,12 +676,15 @@ Reaction 视频时长差异极大(100~336 分钟),而播放是累计计数
|
||||
|
||||
```
|
||||
内容小时 = duration / 3600 # 多 P 的 duration 已是各 P 之和
|
||||
内容效率 = view / 内容小时
|
||||
互动效率 = (like + coin + favorite) / 内容小时
|
||||
内容效率 = (view + κ_v·μ₀) / (内容小时 + κ_v) # 榜单口径(收缩后)
|
||||
原始效率 = view / 内容小时 # 详情页口径
|
||||
互动效率 = (互动 + κ_v·μ₀ᵢ) / (内容小时 + κ_v)
|
||||
UP 内容效率 = EB 收缩后的 Σview / Σ内容小时
|
||||
```
|
||||
|
||||
- 分母只用总时长,**不用分 P 数**:B 站播放记在 bvid 上,`view / pages` 没有统计含义;`pages` 仅用于详情展示与包装诊断;
|
||||
- **视频级也做 EB 收缩**:`κ_v` 默认 60 分钟(配置 `analytics.video_shrink_minutes`),`μ₀` 为全库播放/小时。短时长视频的暴露量小、速率估计噪声大,收缩后不再虚高;2–3 小时的长视频几乎不受影响;
|
||||
- 效率榜与综合热度榜只统计**播放 ≥ `analytics.min_view_for_ranking`(默认 2000)** 的视频;播放过低的视频多为小样本噪声,不上榜;
|
||||
- 效率榜只统计 `duration >= analytics.min_duration_seconds`(默认 600 秒)且发布满 `analytics.maturity_days`(默认 2 天)的视频;不足者标注"样本不足";
|
||||
- **不用无界年龄项**:reaction 视频通常在发布前两天完成数据积累、两周内接近平台期,`log(age)` 会系统性惩罚老视频,故采用"成熟窗口筛选"而非年龄回归;
|
||||
- `duration` 为空或 ≤ 0(通常只在失效视频出现)不进入效率榜,不插补;
|
||||
@@ -839,6 +842,7 @@ storage:SQLite WAL,单写线程
|
||||
| 39 | **粉丝快照回填(真实性)** | 预览库 488 个 UP、796/796 视频补齐 `up_follower`,0 失败;历史视频标记 `backfilled=1` |
|
||||
| 40 | **导航拆分与数据说明页** | `/videos`、`/ups`、`/about` 均返回 200;`/api/about` 返回 schema 4、当前阈值、权重与粉丝覆盖度 |
|
||||
| 41 | **全量离线测试** | 32 个 `tests/test_*.py` 全部通过(含新增 `test_up_profile.py` 与迁移/数据库断言更新) |
|
||||
| 42 | **内容效率噪声修正** | 预览库实测:视频级 EB 收缩(κ=60 分钟)+ 播放 ≥ 2000 后,效率榜 Top10 全为 ≥110 分钟视频;「什么哦吼吼」4 条不再入榜;综合热度榜同样应用 2000 门槛(637 条) |
|
||||
|
||||
**未验证(需授权或外部配合)**:
|
||||
|
||||
|
||||
Reference in new issue
Block a user