# loghubods.alg_recsys_feature_user_share_return_stat

## 概述

用户级分享回流特征表，刻画每个用户在最近时间窗口内的「分享能力」和「回流效果」。小时级分区，每小时更新。

## 数据源

| 表 | 用途 |
|---|------|
| `loghubods.dwd_recsys_alg_exposure_base_20250108` | 曝光基础表，只取 `is_share=1` 的记录 |
| `loghubods.alg_vid_feature_basic_info` | 视频信息表，补充类目和标签 |

## 参数

| 参数 | 含义 |
|------|------|
| `${dt}` | 日期，如 20260301 |
| `${hh}` | 小时，如 04 |
| `${hours_early}` | 回看小时数（时间窗口长度） |
| `${max_n}` | max 序列取 Top-N |
| `${last_n}` | last 序列取 Top-N |
| `${cate_n}` | 类目/标签序列取 Top-N |
| `${smooth_plus}` | 类目回流率排序的平滑分母 |

## 生产流程

```
exposure_base (is_share=1, 近 ${hours_early} 小时)
    ↓ LEFT JOIN video_info (补类目/标签)
t_base
    ├──→ t_total           用户级聚合统计 (SUM/MAX)
    ├──→ t_max_share       分享次数最高 Top-N 视频序列
    ├──→ t_max_return      回流UV最高 Top-N 视频序列
    ├──→ t_last_share      最近分享 Top-N 视频序列
    ├──→ t_last_return     最近N级回流 Top-N 视频序列
    ├──→ t_last_1_return   最近1级回流 Top-N 视频序列
    ├──→ t_cate1           一级类目回流率 Top-N
    ├──→ t_cate2           二级类目回流率 Top-N
    ├──→ t_label1          标签1回流率 Top-N
    └──→ t_label2          标签2回流率 Top-N
    ↓
t_result (LEFT JOIN 合并 10 个 CTE)
    ↓
JSON_FORMAT 打包 → feature 字段
```

## 输出字段

表结构：`mid STRING, feature STRING`，按 `dt, hh` 分区。

`feature` 是一个 JSON，包含以下字段：

### 用户整体统计

| JSON key | 含义 |
|----------|------|
| `s_pv` | 分享 PV 总和 |
| `s_cnt` | 分享次数总和 |
| `r_pv` | 回流 PV 总和（排除自己） |
| `r_uv` | 回流 UV 总和（排除自己） |
| `m_s_cnt` | 单次曝光最大分享次数 |
| `m_r_uv` | 单次曝光最大回流 UV |

### 行为序列

| JSON key | 含义 | 排序 |
|----------|------|------|
| `m_s_s` | 分享次数最多的 Top-N 视频 | share_cnt DESC |
| `m_r_s` | 回流UV最多的 Top-N 视频 | return_uv DESC |
| `l_s_s` | 最近分享的 Top-N 视频 | ts DESC |
| `l_r_s` | 最近N级回流 Top-N 视频 | ts DESC |
| `l_r1_s` | 最近1级回流 Top-N 视频 | ts DESC |

序列元素格式：`{"id": vid, "cnt"/"uv": 值, "ts": 时间戳}`

### 类目偏好序列

| JSON key | 含义 |
|----------|------|
| `c1_s` | 一级类目 (merge_first_level_cate) |
| `c2_s` | 二级类目 (merge_second_level_cate) |
| `l1_s` | 节日标签1 (festive_label1) |
| `l2_s` | 节日标签2 (festive_label2) |

按回流率（`return_uv / (share_pv + smooth)`）降序取 Top-N。

序列元素格式：`{"na": 名称, "sp": 分享PV, "rp": 回流PV, "ru": 回流UV, "mu": 最大回流UV}`

## 设计要点

- **noself**：回流统计排除分享者自己，衡量真实拉新/拉活能力
- **max vs last 序列**：max 捕捉历史最佳表现，last 捕捉近期兴趣漂移
- **类目排序平滑**：分母加 `${smooth_plus}` 避免小样本类目排名虚高
- **mid 取值**：优先用 uid，uid 为空时降级用 mid
