Alleviating Cold-start Problem in CTR Prediction with A Variational Embedding Learning Framework阅读笔记

动机

本文是2022年WWW上的一篇论文。之前关于冷启动的工作,大多是为新用户或新广告生成一个点(嵌入),但是因为冷启动用户或广告交互数据很少,冷启动用户或广告的嵌入并不是十分可靠,同时这些嵌入非常容易过拟合。为了学习到一个较为可靠的嵌入,同时避免过拟合,本文作者提出了一种通用的变分嵌入学习框架VELF,它为冷启动用户或广告生成一个分布,而不是一个固定的点。

方法

CTR预估

我们有一个数据集\((x,y)\in\mathcal D\),其中x包含了用户、广告、场景的特征,y是标签表示用户是否点积广告,

之后通过embedding层,将特征转换为稠密的表示

再通过一个MLP和sigmoid激活函数得到最终预测结果

损失函数为交叉熵损失函数

变分推断

变分推断是一种求后验分布p(z|x)的近似解的技术,z是潜在变量,x是观察到的变量。通常,我们可以通过贝叶斯规则求出p(z|x)=p(x,z)/p(x),但由于\(p(x)=\int p(x,z)dz\)难以计算,变分推断通过最大化关于参数\(\Phi_q\)的证据下界(ELBO)来获得最佳近似后验分布

关于变分推断可参考以下文章:如何简单易懂地理解变分推断?变分推断之傻瓜式推导ELBO

分布估计

作者提出的VELF旨在估计所有的用户与广告的embedding分布,需要学习的模型为\(p_{\phi,\theta}(y|x,z)\),z是观察不到的潜在变量,需要对z的分布进行一个估计,即p(z|x)。我们可以用变分推断来获取一个近似的分布,另外VELF中所有分布都是高斯分布。

第一项通过最大似然来提高预测的置信度,第二项通过最小化KL散度来找到近似分布。第一项置信度的预测可以看作是log损失函数,KL散度看作是一种正则化,引入一个参数\(\alpha\)来控制其影响。p(z)是这个式子的关键,通常采用高斯分布,但是因为不同用户和广告之间差异较大,用一个固定的先验分布会限制模型的泛化能力,因此在作者提出的方法中,将p(z)参数化为p(z|c),c是用户和广告的ID特征。最终我们的优化目标为

平均场变分嵌入框架

根据平均场理论,我们可以认为用户与广告的潜在变量\(z^u\)\(z^i\)是独立的,因此优化目标可以重写为如下

正则化先验

因为之前我们通过ID特征获取了非固定的参数化的ID的先验,这种方法存在过拟合的可能,因此我们强制参数化的先验近似于一个标准正态超先验:

我们的目标函数重写为

训练

VELF的结构如下图所示。

我们以用户u的潜在变量\(z^u\)为例,广告的潜在变量\(z^i\)可以用同样方法得出。通过相关函数获取后验分布和先验分布

根据分布得出用户的潜在变量

之后根据这些embedding求

损失函数为

KL散度为(关于这部分推导可以参考KL散度(Kullback-Leibler Divergence)介绍及详细公式推导)

预测

还是以获取用户u的潜在变量为例,


\(\mathcal F(u)\)是训练集中u的累计频率。
得到用户与广告的embedding后,就可以计算用户偏好分数\(\hat y\)

结果

作者以deepfm为骨干网络,进行了实验,在实验中作者提出的VELF在各个场景下都取得最好的效果。

总结

本文提出的解决冷启动问题是通过将用户与物品建模为一个分布,不是一个向量,通过分布采样到对应的embedding,并且结合先验和后验信息,再加入正则化防止过拟合。对于我来说,本文读起来难度有点大,因为我之前没深入了解过变分推断,之后有空再细读一遍文章,争取把每个点都弄懂。

posted @ 2022-06-22 15:43  South1999  阅读(170)  评论(0编辑  收藏  举报