背景
阿里妈妈 2022 kdd
动机
如何在精排CTR模型中研究探索与利用问题。想要解决推荐系统中的信息茧房问题,即:模型在曝光数据上进行训练,展示items给用户,再收集曝光数据作为模型的数据,长此以往曝光带来的偏差会越来越严重,大量长尾item和新item无法被学习,预估置信度低。
这实际上引出了现有推荐/搜索等系统普遍存在的一个困境:关于曝光资源分配和预估置信度之间的权衡,即:如何给用户展示其感兴趣并曝光足够的item(曝光量足够时预估点击率才更准),同时还能为新item或长尾item预留足够的曝光资源(资源充分利用,不浪费)。
Related works
EE: 模型准确率和不确定性之间的权衡,缺点是item最终的预估值分布会和真实分布存在较大的diff, 因为预估的不确定性上限值会加到原始模型预测值上,形成最终的预测分。
本文贡献
· 提出对抗梯度探索策略(Adversarial Gradient driven Exploration,AGE),将EE嵌入CTR。能够保证探索后CTR预估值和未探索时的CTR预估值分布一致;
· EE效率&曝光资源充分利用:提出了一种动态阈值单元(Dynamic Threshold Unit ,DTU)来决定需要探索哪些有价值的Item,过滤低价值的item,避免将资源浪费在低价值item的探索上,能够有效提升探索效率和指标;
· 在离线评估:在学术数据集做离线评估,在阿里在线展示广告平台中做A/B测试,验证了AGE的有效性,同时能够加快精排模型的收敛速度。
方法
伪探索模块
扰动
Δ
x
∗
\Delta_x^*
Δx∗需要最小化预估值f和真实值y之间的loss,它的l2范数需要小于
λ
\lambda
λ. 但是这个伪探索模块主要是给那些被低估的item用,所以
y
∗
y^*
y∗默认应该为1,并且在
λ
\lambda
λ上要新增一个降权系数
δ
y
∗
\delta y^*
δy∗, 被低估的越严重降权系数就应该越大
上述
Δ
x
∗
\Delta_x^*
Δx∗的解是:
下面求解不确定性
δ
y
\delta_y
δy和对抗梯度
g
g
g
不确定性 δ y \delta_y δy的计算
采用蒙特卡罗-dropout (MC-Dropout)策略:对同一个输入进行多次前向传播过程,这样在 dropout 的加持下可以得到不同的输出,将这些输出进行平均和统计方差,即可得到模型的预测结果及 uncertainty。这个dropout在test阶段也是要打开的。
对抗梯度g的计算
对抗梯度g->是未扰动时
f
(
x
)
f(x)
f(x)对x的梯度,也即扰动的方向是跟着y对x的梯度方向走的。用数学的方式就是沿着曲线的切线或一阶导数的方向移动,这样能够尽可能保证扰动不会影响整体值的分布,同时扰动是沿着y值增长的方向,使得探索后的CTR值会大于原始CTR值,达到探索的目的
投影梯度下降法(project gradient descent),采用T步梯度更新:
这种对抗干扰本质上是探索发现哪些samples在输入空间泛化性很差,泛化性差就做扰动和探索,并保留在训练样本中做继续训练,直到泛化性变好或不确定性变小为止。
动态阈值单元:Dynamic Threshold Unit
探索的机会给那些高潜的item,如果探索后的CTR值小于未探索前的CTR,那实际上就没必要做探索了。或者说,如果某个item的CTR没有随着曝光有增长的趋势,实际上就不是潜力item,没有必要做探索了。
DTU就是用来过滤低潜力的item。做法就是使用一个简单的网络,输入的特征只包括item侧的特征(类似item单塔网络),来预测item的期望CTR。
然后加入一个阈值判断
y
s
y_s
ys是不是达到阈值,再加到最终的判断结果里: