如何提取用户行为序列的TF-IDF特征?

解读

面试官问“如何提取用户行为序列的TF-IDF特征”,并不是想听一句“把行为当词、把用户当文档、直接调TfidfVectorizer”就结束。他真正想看的是:

  1. 你是否理解国内主流埋点格式(如阿里SPM、字节事件模型、腾讯MMP)带来的序列噪声;
  2. 能否把“行为”抽象成可解释、可落地、可上线的“词”,并解决数据倾斜、稀疏、时效性三大痛点;
  3. 是否知道TF-IDF只是信号放大器,后续必须配合业务规则模型才能产生运营价值。

一句话:他要的是“从日志→特征→业务”的完整闭环,而不是教科书代码。

知识点

  1. 行为粒度选择
    • 国内日志常含“页面-展位-元素”三级,需按运营目标合并或截断;例如拉新场景只保留“曝光→点击→注册”三级事件,减少噪音。
  2. 时间窗口切片
    • 采用滑动窗口+会话切分双保险:先以30 min无操作切会话,再在会话内做7天滑动窗口,兼顾短期兴趣长期偏好
  3. 行为序列清洗
    • 去重:同一用户同一事件在5秒内重复触发,只保留首次;
    • 归一:把“click_iphone14_red_128g”映射到“click_sku_iphone14”,降低词表爆炸
    • 过滤:剔除pv<10的长尾事件,减少稀疏行。
  4. 构造“词”的三种运营级方案
    a. 原始事件ID:简单,但词表大;
    b. 事件+属性拼接:如“search_手机_品牌_苹果”,信息丰富,可解释性强;
    c. 事件+上下文:如“cart_iphone14_after_view”,引入行为转移信号,适合召回模型。
  5. TF-IDF二次加权
    • 在标准TF-IDF后再乘业务权重:下单=5、加购=3、点击=1,让高价值行为获得更高分;
    • 新用户冷启动,把IDF替换为平滑先验,防止全零向量。
  6. 实时特征工程
    • Flink CEP在线拼接行为串,落Kafka,再通过Redis String存“用户→行为TF-IDF稀疏向量”,供推荐/营销系统毫秒级调用
  7. 效果验证
    • 离线:看AUC提升TopK召回率
    • 在线:做人群包AB实验,重点监控7日留存差值人均GMV差值,确保特征带来可核算的增量收益

答案

第一步:明确业务目标
假设目标是提升老客复购率,则只取近30天“浏览-加购-下单-评价”四类事件,其余全部丢弃,减少噪声。

第二步:会话切分+滑动窗口
用30 min无操作切会话,得到每个用户的会话列表;在每个会话里,用7天滑动窗口生成行为子序列,保证短期兴趣长期偏好兼顾。

第三步:生成“词”
采用“事件+主属性”拼接,例如:

  • 原始日志:event=“sku_view”, properties={“sku_id”:“10024”,“brand”:“Apple”}
  • 生成词:view_sku_apple
    把词表控制在50万以内,并剔除pv<10的长尾词,防止稀疏。

第四步:计算TF-IDF

  • 文档:一个用户在一个时间窗口内的行为序列;
  • 词:上述生成的事件属性词;
  • 频率:词在该用户窗口内出现次数;
  • 逆文档频率:用平滑IDF log((N+1)/(df+1))+1,防止新词df=0;
  • 最终向量用L2归一化,方便下游模型。

第五步:业务加权
对“order”类事件乘5,“cart”乘3,“view”乘1,再与TF-IDF得分相乘,得到加权TF-IDF,确保高转化行为信号更强。

第六步:上线与监控

  • 离线:Spark批处理每日更新,落Hive表;
  • 实时:Flink解析埋点,拼接行为串,调用Redis TF-IDF服务,<50 ms返回向量;
  • 监控:每日看向量覆盖率(>98%)、平均稀疏度(<5%非零元素),以及复购AB实验7日留存差值≥+1.2%,确保特征真正带来可核算的GMV增量

拓展思考

  1. TF-IDF不是终点
    国内大厂实际生产中,TF-IDF往往只作为基础信号,后续会再接入Word2Vec/Transformer学习行为Embedding,形成双塔召回文本塔;此时TF-IDF向量可充当冷启动兜底,防止新用户无Embedding可用。

  2. 多目标冲突处理
    同一行为序列既要服务复购模型,又要服务流失预警,需维护多版本TF-IDF词表:复购表强调“order”权重,流失表强调“last_login_gap”类事件,通过特征仓库版本隔离,避免互相干扰。

  3. 合规与隐私
    国内《个人信息保护法》要求可解释性,TF-IDF特征必须能反向映射到原始事件,因此需保留词表字典脱敏映射关系,在数据出境评估时提供特征血缘报告,确保审计可追溯