为了解决冷启动问题,作者提出一种基于梯度的元学习方法,设计了Meta-Embedding,可以通过学习为新广告ID生成理想的初始化Embedding。该方法利用之前学过的广告来为新广告ID训练Embedding生成器,即本文方法是学习如何更好的学习Embedding。当遇到一个新广告时,训练生成器通过输入它的内容和属性来初始化Embedding。接着,生成的Embedding可以加速模型在warm up阶段(当有很少的标签样本可用时)的拟合。

一、简要信息

序号 属性
1 论文模型 MeLU
2 所属领域 推荐系统
3 研究内容 CTR; Embedding; Cold Start; meta-learning; learning to learn
4 核心内容 广告冷启动问题
5 论文PDF 2019SIGIR-Warm up cold-start advertisements Improving ctr predictions via learning to learn id embeddings.pdf
6 GitHub源码 https://github.com/Feiyang/MetaEmbedding

二、研究动机

目前广告CTR预估的主流方法是应用深度学习,相比没有ID输入的方法,一个训练得好的广告ID Embedding能极大提高预测准确率。但训练embedding向量需要大量的label_data,而且对于一些只有很少训练样本的小广告来说,它们训练得到的Embedding很难和大广告一样出色,这些问题就是冷启动问题。
在广告系统中存在大量的长尾广告,因此广告冷启动问题急需解决。如下图所示,根据KDD Cup2012的数据显示,5%的广告占据了超过80%的样本:
Warm Up Cold-start Advertisements: Improving CTR Predictions via Learning to Learn ID Embeddings - 图1
为了解决冷启动问题,作者设计了Meta-Embedding来代替数据不足时的随机化Embedding。该方法利用广告特征的参数函数作为ID Embedding生成器,通过两阶段模仿在旧ID上训练生成器,使用基于梯度的元学习来提升冷启动和warm-up阶段的效果。

三、评价指标

LogLossAUC,同时用百分比公式来展示相对提升:
image.png
base-cold是随机初始化Embedding得到的指标。

四、传统方法/相关工作

解决冷启动的方法

有两种类型的方法,一种是通过设计决策策略,例如使用contextual-bandits,或通过为cold item或user设计interview来收集信息。本文属于第二种类型,是将冷启动视为在线监督学习,它通常使用side information用于冷启动阶段,例如使用user属性,item属性,关系数据等等。但是这些方法即没有考虑使用ID,也没有在warm-up阶段对它们做优化。本文不仅使用了全部可用特征,此外目的也是同时提升冷启动阶段和warm-up阶段的效果。
对于在线推荐,许多研究有助于改善在线学习并加快模型与增量数据的拟合。
例如:用增量数据调整矩阵分解因子。 [40]使用等级比较策略来学习潜在特征。
这些方法可以通过少量数据来更快地学习,但是如果没有新广告的样本,则无法直接应用。而且,这些方法主要是为矩阵分解而设计的,因此将其应用于深度前馈模型并不是直接的。与这些方法不同,Meta-Embedding在冷启动和预热阶段均改善了CTR预测,并且是针对具有Embedding&MLP结构的深度模型而设计的。
Dropout-Net通过在深度协同过滤模型上应用dropout来处理缺失输入,可以被视为一种用于预训练基础模型的成功训练方法。但是,由于本文关注的是一般的CTR预测,而不是协同过滤,因此我们没有在实验中包括它。

元学习

本文研究的是如何warm-up冷启动广告,在元学习领域相关的问题就是few-shot learning和fast adaptation。本文受到MAML的启发,用基于梯度的元学习方法来学习共享模型参数。
更多元学习详情请查看:
什么是meta-learning? https://www.zhihu.com/question/264595128/answer/743067364
MAML模型介绍及算法详解:https://zhuanlan.zhihu.com/p/57864886

五、主要思想

本文有两个目标:

  • 在冷启动阶段性能更好
  • 在warm-up阶段收敛更快

为了实现这两个目标,作者针对手中的大广告设计了冷启动和warm-up两个阶段的模拟。在冷启动阶段,需要为没有标签的ID赋Embedding初值,在有少量标签样本的warm-up阶段,通过模拟模型拟合过程来更新Embedding,用这种方式来学习如何学习。本文方法的本质就是将CTR预估问题转化为元学习问题,将学习每个广告视为任务。提出的基于梯度的训练算法有着“与模型无关的元学习”(MAML)的优势。MAML在许多领域快速适应上是成功的,但它对每个任务都训练一个模型,且二阶导的计算量大,所以当有上百万个任务(广告)时不能直接用于CTR预估。为此,本文将MAML泛化为一个基于内容的Embedding生成器。同时构建同统一的优化目标来平衡cold start和warm-up的效果。本文方法易于实现,可以应用在离线和在线环节,也可以应用在其他ID特征的冷启动,如userID,广告主ID,在E&E和AL领域也可以进行扩展。
模型框架图如下:
image.png
左图是一般CTR预估模型框架,ID类特征会通过Embedding获得稠密向量,然后喂入例如(MLP,FM,PNN)等模型做预估。
右图是Meta-Embedding的做法,这里在输入处放弃了原始ID,用其特征id的embedding做为ID Embedding,这个Embedding由提出的Meta-Embedding生成。
image.png
上图是一个简单的模型反向传播流程图,在embedding初始化那里有所不同。
image.png
上图是模型算法流程图,第一步更新得到image.png,然后计算得到lossimage.png,此时相当于coldstart阶段,因为初始训练这个ad_id相当于coldstart,第二步上损失Warm Up Cold-start Advertisements: Improving CTR Predictions via Learning to Learn ID Embeddings - 图8更新新一轮的参数,image.png,然后算预估算损失,image.png,就相当于warm up阶段也结束了,这里叫warm-up也容易理解,因为模型已经将id_i训练过一轮了,因此在这个基础上在训练,也就是第二轮相当于在pre train model上warm up。最后用一个平衡因子Warm Up Cold-start Advertisements: Improving CTR Predictions via Learning to Learn ID Embeddings - 图11平衡上述两个loss,image.png,这两个loss与作者希望优化的两个点相关联:新广告误差尽可能小;有一些样本的时候新广告能尽快收敛。因此保留下两个loss。
后续的模型整体框架图:
image.png
通过在最后一层使用三个trick,可以获得数值稳定的输出:

  • 使用tanh激活
  • 不要增加偏置项
  • 使用L2正则惩罚权重

    六、实验评估

    数据集

    MovieLens-1M
    腾讯2018社交广告比赛
    KDD Cup 2012
    image.png

    baseline

  • FM:2路分解机。最初,它使用一键编码和矩阵乘法来获取嵌入向量,而在我们的实现中,我们直接使用查找嵌入。为了提高效率,我们对一阶和二阶分量使用相同的嵌入向量

  • Wide & Deep:由Google提出,该模型对低阶和高阶特征交互进行建模。宽泛部分是采用one-hot向量作为输入的Logistic回归。深层组件具有嵌入层和三个具有ReLU激活的密集隐藏层。
  • PNN:基于产品的神经网络。它首先将密集的嵌入馈入密集层和乘积层,然后将它们串联在一起,并使用另外两个密集层进行预测。正如他们的论文所建议的,我们使用三种变体:IPNN,OPNN和PNN 。 IPNN是具有内部产品层的PNN,OPNN是具有外部产品层的PNN,而PNN 同时具有内部和外部产品。
  • DeepFM:一种最新的先进方法,可以学习字段之间的低层和高层交互。它将密集的嵌入馈入FM和深层组件,然后将它们的输出连接起来,并通过密集的层获得最终的预测。对于深层组件,我们使用中建议的三个ReLU层。

每个输入字段的Embedding维度固定为256。对于NLP特征,首先将每个token(word)转化为256维的word-embedding,然后使用AveragePooling来得到字段(句子)级别的表示。

实验结果

开始时先用旧广告预训练基础模型,用于训练Meta-Embedding的样本个数可见上表。完成训练后,在新广告上进行测试。对于每个新广告,一个接一个的训练3个mini-batch,就好像它们是warm-up的数据,分别命名为batch-a,batch-b,batch-c,每个batch有K个实例,新广告的其他实例用于测试。具体实验步骤如下:

  1. 用老广告数据预训练基模型(1 epoch)
  2. 用训练数据训练Meta-Embedding(2 epoch)
  3. 用随机初始化或Meta-Embedding生成新广告的初始Embedding
  4. 在测试集上评估冷启动效果
  5. 用batch-a更新新广告的ID Embedding,同时计算在测试集上的评估指标
  6. 用batch-b更新新广告的ID Embedding,同时计算在测试集上的评估指标
  7. 用batch-c更新新广告的ID Embedding,同时计算在测试集上的评估指标

image.png
image.png
image.png
在越小的数据集上相对提升的效果越明显。

七、总结

引入CV领域中的元学习来解决CTR预估中的冷启动问题,用Meta-Embedding替代随机初始化Embedding,性能上来说也是优于随机化Embedding。在损失参数平衡因子那没做实验,实验结果那一小节,作者也提到,在腾讯的数据集上,Wide&Deep的对比实验并没有提升,反而有轻微下降,推测原因可能是Wide部分直接使用了原始输入。另外只给出相对提升,没给出原始值。还有对于线上效果如何,没有提到。