线下可能很好,但是线上表现并不如意,对于这种线上线下一致性问题,是机器学习模型在上线之后经常遇到的问题。
围绕着这个问题,从多个角度来考虑该问题。
1 特征维度
数据作为模型的输入,决定着模型的上限。一般一致性问题在数据的表现为:
1.1 线上线下的处理方式不同
针对同样的特征输入,离线和在线的处理方式不同,如input_schema配置没对齐、特征抽取不一致等,这是最容易出现的情况。
解决方法
一般是离线和在线共用同一套特征抽取框架,同时每次模型上线前先生成一批待校验的一致性样本,对比每条样本在离线打分和在线打分的gap,小于一定阈值(如1e-6)算一致性通过
1.2 特征更新延迟性
user侧和item侧的特征一般以正排方式储存在key-value载体中,根据特征类型的不同更新时效性也可以分为:
- 长期更新:user的年龄、性别、婚否、是否有孩子等长期比较稳定的用户画像特征
- 天级更新:user最近7天/14天在该appid上的pv个数、click个数、conv个数、ctr、cvr等按天统计的中长期兴趣特征
- 小时级更新:user的精准兴趣、广泛兴趣、app安装列表等按小时统计的近实时特征
- 实时更新:user最近互动过的adid、appid、industry_id,item实时反馈特征,session序列特征
对于天级更新、小时级更新和实时更新这些对时效性比较敏感的特征,如果出现了更新延