论文地址:https://arxiv.org/pdf/1904.11547.pdf
前序
新广告出现时,通过训练好的生成器,利用新广告的一些基础属性得到embedding
首先,我们列出了我们两个重要原则:
(1) 更擅长冷启动:在使用没有label的数据时,对新广告进行预测的loss应该更小
(2) 预热更快:在经过少量label样本后,应加快模型拟合,以便减少后续预测的预测损失
为了实现这两个需求,我们设计了一个两阶段模拟“大”广告的流程(冷启动、热启动)。 在冷启动阶段,我们需要为没有embedding数据的 ID 分配初始嵌入。在热启动阶段,我们已经可以使用少量有label的数据来进行训练
通过两阶段模拟,我们提出了一种元学习算法来训练元嵌入生成器。我们的方法的本质是将点击率预测重新定义为元学习问题,其中学习每个ad被视为一项task。我们建议一种基于梯度的训练算法,具有模型不可知的元学习 (MAML) [5] 的优势。 MAML 成功在许多领域快速适应,但它为每个任务训练一个模型,所以如果有数百万个任务(广告),它就不能用于 CTR 预测。为此,我们将 MAML 推广到基于内容的嵌入生成器。我们构建统一的优化目标,来平衡冷启动和热训练。然后生成的嵌入不能只产生 - 没有标记数据可接受的预测,在数据量少时也能快速适应。
在大多数情况下,输入 x 可以分为三个部分,即x = (i, u[i], v), 包括
(1) i,广告标识符(ID),一个正整数,用于标识每个广告
(2) u[i],特定广告 i 的特征和属性
(3) v,其他不一定与广告相关的特征,可以有多个字段,例如用户特征和上下文信息
一般用look_up table的办法,对id进行编码
然后loss公式是下面这样,使用sgd来进行优化
对一个新出现的id,如果编码成0附近的随机数,就是冷启动问题
3.1 Recasting CTR prediction as Meta-Learning
我们首先对5中函数做下改变
g[i]和原本的f函数有一样的参数 θ and ϕ[i]。对于id为1 2时,task t1 t2就会学习到特定模型g[1] g[2],而且共享参数 θ,但是ϕ[1] ϕ[2]是不一样的。所以我们的目标是利用old id来学习新id
3.2 Meta-Embedding
实际上思路挺简单的,首先最终的目的是训练hw这个函数,训练过程是交替训练参数,已有的I个id,每个id都训练一遍,每个id训练的时候要采样两个batch(k个样本,k很小)的数据Da Db
1:先用hw函数(使用的特征时id的基础特征)为当前id生成embedding
2:在Da上计算loss_a,并求loss的导数(梯度),并在1中求得的embedding上减去 a*梯度,得到更新的embedding
3:在Db上计算得到loss_b,loss_a和loss_b加权得到总梯度loss,反向传播更新hw