推荐系统正负样本构造

推荐系统正负样本构造

  1. 在feed场景中,使用曝光(展示)日志时,应该选择APP的SDK埋点的日志,而不是服务器Web接口返回的日志,因为Web接口返回的日志中的后果是会增加很多无效的负样本。举个例子,Web接口每次返回10条数据,但是APP屏幕最多只能展现3条数据,剩下的7条数据需要用户在feed中滑动屏幕后,才算真正的曝光,但很多用户可能并不会滑动屏幕或者滑动屏幕幅度较小,导致剩下的7条数据并未真正在APP上曝光。

  2. 针对同一个内容在不同时间对同一个用户曝光多次的情况,这时候训练集中可能会出现同一用户对同一内容点击与不点击并存的情况,如果多次曝光的间隔非常短,考虑只使用其中的一次曝光数据。

  3. 根据 youtube 的早期论文中描述,他们为了避免高度活跃用户对loss的影响,在训练集中对每个用户提取相同数量的训练样本。

  4. 根据《美团机器学习实战》书中所说,它们在 feed 场景中采用了Skip Above的方式来提高效果。具体来讲就是根据用户最后一次点击行为的位置,过滤掉最后一次点击之后的展示,可以认为用户没有看到,也可以保留最后一次点击之后的少数几个。

  5. 过滤异常数据,如爬虫数据

  6. 可以考虑去除只有曝光但是没有点击操作的用户样本(也就是有的用户只有负样本,没有正样本),不过去除的话,那模型就只能学习到活跃用户或者有意向用户的行为习惯,这就导致线下数据与线上数据分布有偏,所以需要根据线上A/B测试的效果来决定最终是否需要去除

特征和label的构造方式

最后说一点关于生成训练样本的方式,尽可能地采用线上模型预测样本时刻的特征作为之后训练样本中的数据,而不是使用离线回溯的方式去拼接训练样本中的各个特征,这就要求当线上模型在预测时,需要将喂给模型的特征做一次落地,比如上传到kafka,后续再由相应程序进行解析生成之后的训练样本。

参考:https://www.zhihu.com/question/324986054

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容