一、前言
推荐系统中, 负采样一直是行业的难点和痛点,今天我在此做一下学习和探讨。
首先负反馈数据分为2种:
- 显式负反馈:用户直接点不喜欢、投诉、或者打低分;这类数据虽然能体现用户的dislike,但往往非常稀疏。
- 隐式负反馈:曝光不点击/转化等;这类数据在工业界是海量的,一般作为负样本使用,但其实存在噪声,是我们讨论的重点
二、bias
推荐中的bias是无处不在的。
- Position Bias:用户更倾向于和位置靠前的物品进行交互
- Exposure Bias / Observation Bias:带标签的数据都是曝光过的,未曝光的数据无法确定其标签
- Selection Bias:用户倾向于给自己喜欢或者不喜欢的物品进行打分
- Conformity Bias:用户打分的分数倾向于和群体观点保持一致
- Popularity Bias:热门的物品获得了比预期更高的热度,长尾物品得不到足够曝光、马太效应
- Unfairness Bias:因数据不均匀导致对某些群体的推荐结果 有偏,如种族歧歧视、性别歧视等
三、处理方案:
3.1、真实负样本优化
1)对负样本降采样:为了缓解对头部词的过度打压,除了常见的Skip-Gram中的抽样方式外,可以根据概率 p=1−(αf)tp=1-(\frac{\alpha}{f})^t 对负样本进行随机丢弃,其中参数 ff 是词归一化之后的展现频率,参数 tt 是介于0到1之间的调节参数, α\alpha 是给定的频率阈值,只有当 f>αf>\alpha 时才会以一定的概率进行丢弃
2)对负样本进行可调参的带权随机采样:
随机采样是负采样的最常用方法,但是 千万不要以为是在整个候选库里等概率抽样。
- 当热门物料做正样本时,要降采样,减少对正样本集的绑架。
- 比如,某物料成为正样本的概率Ppos=(z(wi)0.001+1)0.001z(wi),其中z(wi)是第i个物料的曝光或点击占比。
- 当热门物料做负样本时,要适当过采样,抵销热门物料对正样本集的绑架;同时,也要保证冷门物料在负样本集中有出现的机会。
- 比如,某物料成为负样本的概率Pneg=