九羽@炼丹笔记

在清洗数据构造正负样本时,由于日志的延迟上报问题,在点击事件的问题中构造样本时,往往会出现将曝光未点击数据误以为是负样本的情况,可真实的负样本真的是这样吗?

在Facebook的《Embedding based Retrieval in Facebook Search》论文中,

在训练练数据挖掘方面,Facebook基于召回指标验证召回流程中不同正负样本的选择策略。

针对以用户点击为正样本时的负样本选择:

  • 从文档池随机选取作为负样本,即easy case;
  • 同一次会话中的曝光未点击文档作为负样本,即hard case。

结果表明,曝光未点击作为负样本的召回率远低于随机负样本,约55%的召回率退化。作者认为原因在于全部以hard case做负样本的训练数据和实际召回任务面对的数据分布不一致,实际索引中大多数是和用户query差别很大的easy case。

针对正样本的选择策略:

  • 用户点击为正样本
  • 曝光即为正样本

实验表明,用户点击和曝光分别作为正样本的召回指标相差不多,添加曝光数据并不能增加额外价值,增大训练数据规模也不能。

IJCAI20关于CVR预估标签延迟的论文《An Attention-based Model for CVR with Delayed Feedback via Post-Click Calibration》,讨论了搜索推荐系统中延迟反馈的的负样本问题

在推荐搜索的建模中,我们经常会使用D+1天的数据作为label,从1~D天的数据中的进行特征抽取等工作,和我们时间序列问题建模类似,但和很多其他的时间序列问题建模不一样的地方在于,我们的label不一定可靠,比如在传统的时间序列回归中,D+1天的销量是多少就是多少,我们没有太多的犹豫,因为不大会有其他的情况。但是在电商的问题中,就存在下面这种情况:

D+1天未购买可能并不一定是真正意义上的未购买,而可能是加入购物车或者意愿清单了, 只是没有在当天下单, 而是过了一天在D+2天的时候下了单, 而这样的标签如果我们直接默认其为负样本就会有较大的问题,因为它并不是真正意义上的负样本,只是反馈延迟了。

这在搜索推荐系统中,我们称之为延迟反馈的问题

本文的模型框架主要分为左右两个模块,左侧的转化模型以及右侧的时间延迟模型。

1.左侧转化模型

2.时间延迟模型

关系梳理

这个问题较早在2014文章《Modelling Delayed Feedback in Display Advertising》中被提出,当时神经网络等还没那么流行,但是解决的思路非常值得借鉴。在广告推荐中,有一个指标价值是非常大的:

eCPM=CPA∗P(conversion,click)=CPA∗P(click)∗P(conversion|click),

CPA: Cost per conversion, 广告商愿意为每个转化支付的金额, 如果eCPM高的话,意味着我们可能获得更多的钱。

从上面这点可以看出,我们希望能很好地预估某个广告的转化概率(最终转化即可,对应到下文P(C=1|X=x).

我们先定义五个变量,

问题转化

曝光Bias:暴露偏差的发生是因为用户只接触到特定项目的一部分,因此未观察到的交互并不总是代表消极偏好。

特殊地,用户和商品之间未被观察到的交互可以归因于两大原因:1)商品与用户兴趣不匹配;2)用户不知道该商品。因此,在解释未观察到的相互作用时会产生歧义。无法区分真正的消极互动(如暴露但不感兴趣)和潜在的积极互动(如未暴露)将导致严重的Bias。以前的研究已经调查了数据暴露的几个方面:

1)暴露受先前推荐系统的策略的影响,这些策略控制要显示哪些商品。

最近的一些工作也将这种“曝光偏差”(exposure bias)称为“前一模式偏差”(previous mode bias)。

2) 因为用户可以主动搜索和查找自己感兴趣的商品,这样会导致相关的商品更大概率的被曝光。在这种情况下,exposure bias也被称作为是selection bias;

3)用户的背景是商品曝光的另一个因素,例如社交朋友、他们所属的社区和地理位置等;

4)流行的商品有更大的概率被曝光(popularity bias)。我们认为流行度bias也是Exposure Bias的一种。

曝光偏差会误导模型的训练和评估。

1. 评估的Debiasing

目前处理该问题的策略主要还是使用inverse propersity score。为了解决这个问题,类似于外显反馈数据中的选择偏差处理,Yang等人建议用隐式反馈数据倾向的倒数来加权每个观测值。intuition是把经常观察到的交互降权,而对少的样本进行升权;

2. 模型训练的Debiasing

为了解决曝光偏差的问题,传统的策略就是将所有被观测的交互作为负例并且明确它们的交互。confidence weight可以被分为三类:

1.Heuristic:典型的例子是加权的矩阵分解以及动态MF,未观测到的交互被赋予较低的权重。还有很多工作则基于用户的活跃度指定置信度等;但是赋予准确的置信权重是非常有挑战的,所以这块依然处理的不是非常好。

2.Sampling: 另一种解决曝光bias的方式就是采样,经常采用的采样策略有均匀的负采样,对于流行的负样本过采样,但是这些策略却较难捕捉到真实的负样本。

3.Exposure-based model:另外一个策略是开发基于曝光的模型,这样可以知道一个商品被曝光到某个用户的可能性等。

4.Others:例如考虑用户的序列行为等,对应的设计inverse propensity的模型等。

  1. arxiv.org/pdf/2006.1163
  2. zhuanlan.zhihu.com/p/22
  3. zhihu.com/people/yucona
  4. 推荐系统Bias大全
  5. CVR预估之延迟反馈问题
  6. 你一直在使用错误的标签,CVR预估时间延迟问题
更多干货,请关注公众号:炼丹笔记

负样本修正:既然数据是模型的上限,就不要破坏这个上限相关推荐

  1. 负样本修正:CVR预估时间延迟问题

    你的标签错了,而且错了很多! 一元@炼丹笔记 在推荐搜索的建模中,我们经常会使用D+1天的数据作为label,从1~D天的数据中的进行特征抽取等工作,和我们时间序列问题建模类似,但和很多其他的时间序列 ...

  2. 负样本的艺术,再读Facebook双塔向量召回算法

    负样本的艺术,再读Facebook双塔向量召回算法 Facebook这篇Embedding召回的论文,之前已经有几篇文章涉及过了,分别是<Embeding-based Retrieval in ...

  3. Opencv分类器的训练(内含文件批量改名工具及负样本图包下载地址)

    这里我用的是OpenCV+python+pycharm.整体脉络:环境配置–收集样本–转化文件–得到.xml文件–使用,在此记录一下. 一.环境配置 在python左上角点进这个小扳手就可以安装ope ...

  4. 模型花费几十万美元,五年之间指导无数项目,才发现负样本用的是null?

    视学算法报道 机器之心编辑部 人们口口声声担心「人工智能的推断不可靠」,实则连个数据泄露的问题都敢忽略. 人们常会提到,当今流行的深度学习模型是黑箱状态--给它一个输入,模型就会决策出一个结果,其中的 ...

  5. R语言回归模型构建、回归模型基本假设(正态性、线性、独立性、方差齐性)、回归模型诊断、car包诊断回归模型、特殊观察样本分析、数据变换、模型比较、特征筛选、交叉验证、预测变量相对重要度

    R语言回归模型构建.回归模型基本假设(正态性.线性.独立性.方差齐性).回归模型诊断.car包诊断回归模型.特殊观察样本分析.数据变换.模型比较.特征筛选.交叉验证.预测变量相对重要度 目录

  6. R语言基于自定义函数构建xgboost模型并使用LIME解释器进行模型预测结果解释:基于训练数据以及模型构建LIME解释器解释一个iris数据样本的预测结果、LIME解释器进行模型预测结果解释并可视化

    R语言基于自定义函数构建xgboost模型并使用LIME解释器进行模型预测结果解释:基于训练数据以及模型构建LIME解释器解释一个iris数据样本的预测结果.LIME解释器进行模型预测结果解释并可视化 ...

  7. R语言基于自定义函数构建xgboost模型并使用LIME解释器进行模型预测结果解释:基于训练数据以及模型构建LIME解释器解释多个iris数据样本的预测结果、使用LIME解释器进行模型预测结果解释

    R语言基于自定义函数构建xgboost模型并使用LIME解释器进行模型预测结果解释:基于训练数据以及模型构建LIME解释器解释多个iris数据样本的预测结果.使用LIME解释器进行模型预测结果解释并可 ...

  8. 类间样本数量不平衡对分类模型性能的影响问题

    我在做人脸检测试验的时候,发现了问题,别人的二分类器(判别是不是人脸)的阈值很高,大于90%点概率,而我的阈值要设置的很低10%点概率即认为是脸,经过观察,我的负样本数数量上比正样本数多的太多了,导致 ...

  9. SVM+HOG:用初次训练的.xml分类器在负样本原图上检测生成HardExample样本

    难例(或叫做难样本,Hard Example,Hard Negative,Hard Instance)是指利用第一次训练的 分类器在负样本原图(肯定没有人体)上进行行人检测时所有检测到的矩形框,这些矩 ...

最新文章

  1. 影像组学视频学习笔记(29)-ICC的计算、Li‘s have a solution and plan.
  2. 优化网站设计方案提升网站用户回头率
  3. 用shell批量修改文件名
  4. python输入ip地址_python批量生成本地ip地址的方法
  5. winhex把二进制文件转换为C语言格式的流程
  6. iOS UIPasteboard
  7. idea报错 IDEA:clear read-only status
  8. MSDN官网下载_Win10 winServer 原版系统下载 纯净版
  9. Navicat 安装配置
  10. cmd 复制文件命令copy 复制目录树命令xcopy
  11. 关于win10企业版在极域电子教室软件 v4.0 2015 豪华版的全屏控制下如何取得自由...
  12. python3爬虫系列20之反爬需要登录的网站三种处理方式
  13. 小猫钓鱼纸牌游戏java_纸牌游戏----小猫钓鱼
  14. 中国工程院院士倪光南:拥抱开源 与世界协同创新
  15. 服务器网卡相关知识点
  16. 升级啦!二维码签到适用PC+andriod+IOS-PHP源码-开源代码
  17. 【AE-MG动画全套学习教程】After Effects CC MG动画高效学习视频全套
  18. 相机快门之:电子快门
  19. 单片机24秒倒计时c语言,单片机汇编语言24秒倒计时程序
  20. 数字图像matlab边缘检测(一)

热门文章

  1. 利用zookeeper实现发布订阅模式
  2. angular2.0学习日记1
  3. 160407、java实现多线程同步
  4. Centos6.x搭建lnmp环境
  5. Android 通过Uri获取Bitmap对象
  6. 如何调试NativeSample
  7. 2021-08-30 centos连接WiFi方法
  8. JavaSE(四)——方法重写、多态、接口
  9. yabailv 运放_运放入门
  10. Xilinx IP解析之 Fast Fourier Transform(FFT) v9.1