
用户画像特征聚合需通过时间序列的滑动窗口动态聚合行为(频率、强度、顺序间隔),结合异常值过滤与PCA降维,高效处理高维行为数据,生成反映用户近期兴趣与行为模式的向量。
用户行为按时间序列存储(如观看视频、点赞、评论),特征聚合需兼顾行为的时间顺序(如事件间隔)与时间窗口内的行为统计。时间窗口(固定或动态)用于统计行为频率、强度,事件间隔(如观看后点赞的间隔时间)反映用户兴趣深度。高维数据处理时,行为分类后特征维度高(如视频类别观看次数),易导致“维度灾难”,需通过异常值过滤(如滑动窗口中位数)和PCA降维(保留主成分)减少维度。类比:用户行为序列像“时间轨迹”,聚合后为“模式向量”,异常值过滤像“去除噪声”,降维像“压缩轨迹保留关键路径”。
| 方法 | 定义 | 特性 | 使用场景 | 注意点 |
|---|---|---|---|---|
| 滑动窗口(固定) | 固定时间间隔(如7天)统计行为 | 简单,计算量可控 | 短期兴趣分析(如7天推荐) | 时间窗口大小影响结果(如7天反映近期,30天反映稳定) |
| 动态窗口(活跃度) | 根据用户行为频率调整窗口(如活跃用户用3天,冷用户用30天) | 灵活,适应用户活跃度 | 高频/低频用户画像 | 需动态计算,增加复杂度 |
| 事件间隔特征 | 计算行为间时间差(如观看后点赞间隔) | 保留顺序信息,反映兴趣深度 | 顺序敏感场景(如评论后点赞) | 需额外计算时间差,增加计算量 |
| 中位数异常值过滤 | 用滑动窗口内的中位数过滤异常值(如点赞数超过窗口中位数1.5倍IQR的视为异常) | 避免极端行为影响画像 | 高维特征处理 | 需计算分位数,增加计算量 |
| PCA降维 | 线性变换减少特征维度 | 保留主要特征,降低计算 | 高维特征(如用户行为分类后的向量) | 可能丢失部分信息,需验证 |
| K-means聚类 | 将用户分组,提取群体特征 | 发现用户群体,简化画像 | 用户分群(如推荐场景) | K值选择影响结果(需结合业务验证) |
伪代码(含滑动窗口、事件间隔、异常值过滤):
def aggregate_user_features(user_id, behavior_data, window_size=7):
# 1. 排序行为数据
behavior_data.sort(key=lambda x: x[0]) # 按时间排序
# 2. 计算事件间隔(顺序特征)
intervals = []
for i in range(1, len(behavior_data)):
prev = behavior_data[i-1]
curr = behavior_data[i]
interval = (curr[0] - prev[0]).total_seconds()
intervals.append(interval)
# 3. 滑动窗口聚合(带异常值过滤)
aggregated = {}
current_window = []
for record in behavior_data:
current_window.append(record)
if len(current_window) > window_size:
current_window.pop(0)
# 统计行为,过滤异常值(如点赞数超过窗口内75%分位数的视为异常)
for action in ['watch', 'like', 'comment']:
counts = [r[2] for r in current_window if r[1] == action] # 假设行为数据格式为 (时间对象, 行为类型, item_id)
if counts:
q75, _ = np.percentile(counts, [75])
aggregated[f'{action}_count'] += sum(1 for c in counts if c <= q75)
aggregated[f'{action}_frequency'] = aggregated[f'{action}_count'] / window_size if window_size else 0
# 4. 添加顺序特征(事件间隔)
aggregated['watch_like_interval'] = np.mean(intervals) if intervals else 0
return aggregated
面试官您好,针对用户画像的特征聚合,核心思路是结合时间序列的顺序信息和时间窗口动态聚合,同时处理异常值与高维数据。首先,用户行为按时间存储,比如观看视频、点赞、评论,我们考虑行为发生的顺序,比如先观看视频(事件1),然后点赞(事件2),间隔时间可能反映用户对视频的兴趣深度。用滑动窗口(比如最近7天)统计行为次数,同时计算事件间隔(如观看后多久点赞),作为顺序特征。然后处理高维数据,比如用户行为分类后特征维度高(如不同视频类别的观看次数),用滑动窗口内的分位数过滤异常值(如点赞数超过窗口内75%分位数的视为异常),再用PCA降维,保留关键主成分。这样既保留行为顺序的时序信息,又通过异常值过滤和降维减少计算量,生成高效的用户画像。具体步骤:1. 时间序列排序;2. 计算事件间隔(顺序特征);3. 滑动窗口聚合行为计数(带异常值过滤);4. 特征工程(频率、强度比);5. 降维(PCA)。这种算法能高效处理大规模用户行为数据(如快手每日数亿行为),生成反映用户近期兴趣和顺序行为的画像,用于精准推荐。