第 124 题:序列特征的统计聚合,均值/方差/分位数的压缩表示?
题目
序列特征的统计聚合,均值/方差/分位数的压缩表示?
完整讲解
一、序列特征与压缩需求
用户行为序列、历史统计等序列特征长度不定且可能很长,直接喂入模型会带来变长与高维问题。统计聚合将序列压缩为固定维度的统计量,既降维又保留分布信息,便于作为标量或低维向量输入排序/召回模型。
二、均值、方差、分位数
- 均值 $\bar{x} = \frac{1}{n}\sum_i x_i$:刻画中心趋势;对异常值敏感。
- 方差 $\sigma^2 = \frac{1}{n}\sum_i (x_i - \bar{x})^2$ 或标准差:刻画离散程度;与均值一起可粗描分布。
- 分位数(如 P25、P50、P75、P90):刻画分布形状与尾部,比均值更鲁棒;多取几个分位数即得到固定维向量(如 4 维),作为序列的压缩表示。
三者结合:$[\bar{x}, \sigma, \text{P25}, \text{P50}, \text{P75}]$ 等,用少量标量近似「整段序列的分布」,实现压缩表示。
三、工程实现与流式
- 离线:对每条样本的序列(如过去 30 天点击次数序列)算均值、方差、分位数,写入特征表;分位数用排序或近似算法(如 TDigest、GK summary)在有限内存下算。
- 在线/流式:用增量公式维护均值与方差:$n’=n+1$,$\bar{x}’ = \bar{x} + (x_{new}-\bar{x})/n’$,$\sigma’^2$ 用 Welford 等增量更新;分位数可用可并行的 sketch(如 TDigest)做增量更新,支持流式数据的压缩表示。
- 多序列:若有多条序列(如按行为类型分),每条单独做统计聚合再拼接,得到多组「均值/方差/分位数」向量。
四、使用方式
- 直接作为标量特征输入 DNN;或作为序列的「概要」与 ID 序列、注意力输出等一起融合。
- 分位数维数不宜过多(3~5 个常用),在表达力与维度间折中。
面试要点
- 能说明序列用均值、方差、分位数做统计聚合得到固定维压缩表示的目的与形式。
- 能说清均值/方差/分位数各自含义及分位数对分布与尾部的刻画;流式下的增量与 sketch。
- 能提及多序列分别聚合、维度选择与输入下游的方式。
记忆要点
- 序列压缩:均值(中心)、方差(离散)、分位数(形状/尾部)→ 固定维向量。
- 流式:均值/方差可增量;分位数用 TDigest 等 sketch 增量更新。
- 多序列可分别聚合再拼接;维数 3~5 个分位数常用。