关注我们,一起学习~
title:Alleviating Cold-start Problem in CTR Prediction with A Variational Embedding Learning Framework
link:https://arxiv.org/pdf/2201.10980.pdf
from:WWW 2022
预备知识:变分推断,不熟悉的小伙伴可以看一下下面的链接内容
https://zhuanlan.zhihu.com/p/49401976
熟悉变分推断和推荐的小伙伴可以跳转至第3节开始阅读。
1. 导读
本文提出变分embedding学习框架VELF来缓解CTR预测中的冷启动问题,VELF 通过两种方式缓解由数据稀疏性引起的过拟合来解决冷启动问题:
学习概率化的embedding 结合可训练和可正则的先验知识,从而利用相应的辅助信息
2. 方法
2.1 基础 2.1.1 CTR预测问题 令D表示数据集,(x, y)表示数据集中的实例,y是标签,x包含用户,广告(商品)和上下文内容。u表示用户id,i表示广告id,c(u)和c(i)分别表示用户和广告对应的特征,因此x表示为x=[u, c(u), i, c(i), contexts]。通过embedding层得到稠密表征
z=g_{\phi}(x) ,然后通过神经网络得到预测值
\hat{y}=\sigma(f_{\theta}(z)) ,损失函数即为交叉熵损失函数。
L(\phi,\theta)=l(\phi,\theta)=-y\log(\hat{y})-(1-y)\log(1-\hat{y})
2.1.2 变分推断 变分推理是一种分析逼近技术,用于学习潜在变量 𝒛 在观察变量x下的后验分布 𝑝(𝒛|𝒙)。根据贝叶斯公式可以得到下式
p(z|x)=p(x|z)p(z)/p(x)=p(x,z)/p(x)
但是其中的p(x)无法得到有效估计,因此变分推断通过最大化关于变分参数
\phi_q 的证据下界(ELBO)得到近似的后验分布为
q_{\phi_q}(z|x) \approx p(z|x) ,
\phi_q 为可学习参数。
E L B O\left(\phi_{q}\right)=\mathbb{E}(\log p(x \mid z))-D_{K L}\left(q_{\phi_{q}}(z \mid x) \| p(z)\right)
2.2 分布估计 image.png
2.2.1 VELF 本文利用VELF来估计用户和广告的embedding的分布,整个ctr预测模型可以表示为
p_{\phi,\theta}(y|x,z) ,z表示潜在变量(embedding空间),z的后验分布需要估计得到。VELF中所有分布都采用高斯假设。在变分推断中将最大化 ELBO作为目标函数,表示为下式
L(\phi_q,\theta)=E L B O\left(\phi_{q},\theta\right)=\mathbb{E}(\log p(x \mid z))-D_{K L}\left(q_{\phi_{q}}(z \mid x) \| p(z)\right)
第一项 试图最大化似然以提高预测的置信度,第二项 试图通过最小化 KL 散度来找到近似的后验分布。第一项置信度的预测可以用log损失函数
l(\phi,\theta) ,KL散度看做是正则项,引入超参数α来控制其影响。
p(z)是 这个目标式中的关键,他是潜在变量z的先验分布,通常可以采用高斯分布,但是不同用户和广告中存在较大差异,固定的先验分布会影响模型的泛化性。因此,本文作者将p(z)建模为
p_{\phi_p}(z|c) ,c为用户和广告的ID,通过神经网络得到z的分布。
这样可以充分利用数据集中的信息来获得合理的先验。具有相似属性的 ID 可以自然地聚集在潜在embedding空间中,因为它们是从相似分布中采样的,这些分布被 KL 散度正则化限制为接近相似的先验分布。因此,每个簇中的全局知识可以由包含少量样本的冷启动 ID 共享。借助全局知识,即使是冷启动 ID 也可以获得合理的embedding。
最终损失函数为下式,
\mathcal{L}(\boldsymbol{\phi}, \boldsymbol{\theta})=l(\boldsymbol{\phi}, \boldsymbol{\theta})-\alpha \cdot D_{K L}\left(q_{\boldsymbol{\phi}_{q}}(z \mid x) \| p_{\boldsymbol{\phi}_{p}}(z)\right)
2.2.2 平均场变分embedding框架 平均场变分方法是一种简单有效的方法。本文需要考虑两类潜在变量,用户和广告,
z^i 和
z^u 。根据平均场理论,假设
z^i ,
z^u 相互独立,损失函数可以改写为下式,
\begin{aligned}
\mathcal{L}(\boldsymbol{\phi}, \boldsymbol{\theta}) &=l(\boldsymbol{\phi}, \boldsymbol{\theta}) \\
&-\alpha \cdot\left(D_{K L}\left(q_{\phi_{q}^{u}}\left(z^{u} \mid u\right) \| p_{\boldsymbol{\phi}_{p}^{u}}\left(z^{u}\right)\right)\right.\\
&\left.+D_{K L}\left(q_{\boldsymbol{\phi}_{q}^{i}}\left(z^{i} \mid i\right) \| p_{\boldsymbol{\phi}_{p}^{i}}\left(z^{i}\right)\right)\right)
\end{aligned} 2.2.3 正则的先验 前文中以 ID 的特征作为输入为 ID 引入了不固定的参数化先验。因此,可以充分利用数据集中的信息来获得合理的先验,并促进具有相似属性的ID之间的知识共享。然而,参数化的现有技术仍然存在通过引入额外的分布参数而过度拟合的风险。因此通过强制参数化的先验接近标准正态超先验来规范先验:
\begin{array}{l}
p\left(z^{u}\right)=\mathcal{N}\left(0, I^{u}\right) \\
p\left(z^{i}\right)=\mathcal{N}\left(0, I^{i}\right)
\end{array} 从而可以得到新的损失函数,如下,
\begin{array}{c}
\mathcal{L}\left(\boldsymbol{\phi}^{u}, \boldsymbol{\phi}^{i}, \boldsymbol{\theta}\right)=l\left(\boldsymbol{\phi}^{u}, \boldsymbol{\phi}^{i}, \boldsymbol{\theta}\right) \\
-\alpha \cdot\left(D_{K L}\left(q_{\boldsymbol{\phi}_{q}^{u}}\left(z^{u} \mid x^{u}\right) \| p_{\boldsymbol{\phi}_{p}^{u}}\left(z^{u}\right)\right)+\right. \\
\left.D_{K L}\left(q_{\boldsymbol{\phi}_{q}^{i}}\left(z^{i} \mid x^{i}\right) \| p_{\boldsymbol{\phi}_{p}^{i}}\left(z^{i}\right)\right)\right) \\
-\alpha \cdot\left(D_{K L}\left(p_{\boldsymbol{\phi}_{p}^{u}}\left(z^{u}\right) \| p\left(z^{u}\right)\right)+\right. \\
\left.D_{K L}\left(p_{\boldsymbol{\phi}_{p}^{i}}\left(z^{i}\right) \| p\left(z^{i}\right)\right)\right)
\end{array} 2.3 训练 获得用户和广告最终embedding的过程相同,这里以用户embedding
z^u 为例,通过参数化神经网络,可以得到对应的先验分布和后验分布。公式如下,
\begin{array}{c}
q_{\phi_{q}^{u}}\left(z^{u} \mid u\right)=\mathcal{N}\left(\mu_{q}^{u}(u), \sigma_{q}^{u 2}(u)\right) \\
p_{\phi_{p}^{u}}\left(z^{u}\right)=p_{\phi_{p}^{u}}\left(z^{u} \mid c(u)\right)=\mathcal{N}\left(\mu_{p}^{u}(c(u)), \sigma_{p}^{u 2}(c(u))\right)
\end{array} 其中后验分布中的
\mu_q^u(u) ,
\sigma_q^{u}(u) 是由DNN通过用户ID计算得到,先验分布的参数
\mu_p^u(u) ,
\sigma_p^u(u) 由用户属性经DNN计算得到。
在VELF中,用户ID的潜在embedding
z^u 是从估计的后验分布中采样得到,如下所示,
\begin{array}{l}
z^{u}=\mu_{q}(u)+\sigma_{q}(u) \odot \epsilon^{u} \\
\boldsymbol{\epsilon}^{u} \sim \mathcal{N}(0, I)
\end{array} 结合用户,广告的ID embedding,用户,广告的属性embedding,以及上下文embedding得到最终的预测,公式如下,
\hat{y}=\sigma\left(f_{\theta}\left(\operatorname{concat}\left(z^{u}, z^{i}, z^{c(u)}, z^{c(i)}, z^{\text {context }}\right)\right)\right)
损失函数任然采用交叉熵损失函数,公式如下,
l(\boldsymbol{\phi}, \boldsymbol{\theta})=\frac{1}{L} \sum_{k=1}^{L}\left(-y \log \hat{y}_{(k)}-(1-y) \log \left(1-\hat{y}_{(k)}\right)\right)
KL 散度可以根据给定的高斯分布定义在不估计的情况下计算和微分:
D_{K L}(q \| p)=\log \frac{\sigma_{p}}{\sigma_{q}}+\frac{\sigma_{q}^{2}+\left(\mu_{q}-\mu_{p}\right)^{2}}{2 \sigma_{p}^{2}}
将损失函数和KL散度的具体形式应用于上面2.2.3部分的总损失函数,可以进行训练。
2.4 预测 给定VELF 模型,使用估计后验和参数化的先验的中心(均值)进行预测。这里以获取用户embedding为例,参数化先验的手段用于弥补极不频繁或新ID的不可靠后验。通过类似sigmoid的函数g(u)来得到结合比例。F(u)表示用户u在训练数据中的累计频率
z^{u}=g(u) \mu_{q}(u)+(1-g(u)) \mu_{p}(c(u))
g(u)=\frac{1}{1+e^{-\mathcal{F}(u)+\epsilon}}
得到用户和广告的embedding后,就可以计算得到偏好分数
\hat{y} 。
3. 结果
image.png
4. 总结
本文是针对冷启动提出的方法,他可以应对用户冷启动也可以应对广告,即商品冷启动。主要是将用户和广告的embedding建模成分布而不是单纯的一个向量,通过从分布中采样得到对应的embedding,将先验信息和后验信息进行结合,在冷启动用户或商品时,可以感知相似分布的其他用户或商品的知识,从而辅助其embedding的生成。
通过变分推断来建模用户和广告的embedding 通过平均场原理,相互独立,因此分别考虑用户和广告的KL散度 防止过拟合,加入分布约束