赞
踩
本文梳理汇总了推荐系统和计算广告领域的书籍,教程,博文,论文,代码等资源。主要内容是计算广告的相关知识,重点是CVR预估内容。CTR预估,LTV预估和调价未展开。
推荐系统和计算广告的技术栈很相似,并且在数据抽取,特征构造,特征处理和模型选择上有很多技术是通用的。推荐系统的目的是推送用户潜在喜欢的内容,计算广告则专注挖掘对条目潜在感兴趣的用户,这些用户会有尽可能多的用户粘性,高价值。这里的条目,根据场景不同也有不同的定义。比如,商品推荐场景下,条目就是商品;在游戏广告推荐场景下,条目就是展示游戏的素材。
计算广告的目的是通过广告投放的方式来提高产品的价值。这些价值的体现包括用户注册,用户购买,用户使用市场等等。所以需要挖掘用户潜在的意图,从而提高投入产出比(ROI)。这其中需要对用户兴趣度和用户价值进行建模。CTR和CVR关注的是用户的兴趣,LTV关注的是用户价值。
当然广告这种展示形式是与广告投放时使用的素材,投放的时间,投放的媒体,媒体展示位置等多种因素相关的,这又衍生出许多精细的领域,比如debias。本文暂不涉及。
计算广告的算法工程师的主要工作一般包括:
数据抽取:少量数据一般用 SQL,大量数据一般使用 Scala 通过 Hive 和 Spark 从数据仓库中拉取数据。再将代码部署到离线平台之后,这些代码一般都是按照一定的周期例行化自动运行的。
特征构造:也就是常说的特征工程,在广告场景下存在数据稀疏的问题,所以需要尽可能多的数据来表征用户。原生的特征,一般在几十维到几百维不等,经过Embedding之后一般在上千维。与数据抽取所用的技术栈是一样的。这些特征一般可以分为以下几种类型:
特征处理:
模型评价指标:
损失函数:因为是类别不平衡的二分类问题,在CTR场景中正负样本的比例大概在1:100,CVR场景下的正负样本比例在1:1000到1:10000不等,所以需要考虑平衡正负样本。常用的处理方式:
模型选择:需要结合场景理解来选择模型,大多数模型都是针对CTR任务建模的,并且也多为购物场景下的模型,因为域适应的问题,这样直接迁移到游戏领域的建模就可能导致效果不好。一般是先建议一个baseline,然后对其作相应的改进,多任务模型用得比较多。之后的内容会详细介绍。
模型训练:
之前的一篇博文已经总结了计算广告领域的相关术语:
以下是推荐和广告领域中基本的三个子方向:
此外还有校准和调价环节,一般也作为单独的子方向有专人负责。
两本必读:
一般来说,CVR 常用 Wide & Deep 和 DeepFM 模型当做baseline,再根据具体场景,结合多任务模型等进行调优。序列模型常用于对序列特征进行建模,多任务模型常用于 LTV 预估任务。
参考资料:
DeepCTR:
推荐系统领域博主:
计算广告领域博主:
下图来自深度学习推荐系统一书。这些模型都是针对CTR任务提出的。具体地,可以阅读书籍或者查阅相关内容。
针对CVR预估提出的模型很少,所以目前的处理方案基本都是使用CTR模型进行离线实验,如果效果比较好,则拿到线上进行小流量的实验,观察稳定后,再进行部署。下面介绍一些在CVR场景中常用的模型。
矩阵分解(Matrix Factorization,MF)模型是个在推荐系统领域里很经典的协同过滤算法。其核心思想是通过两个低维的矩阵(一个代表用户embedding矩阵,一个代表物品embedding矩阵)的乘积计算,来模拟真实用户点击或评分产生的大的协同信息稀疏矩阵,本质上是编码了用户和物品协同信息的降维模型。
本质上,MF模型是FM模型的特例,MF可以被认为是只有 User ID和Item ID这两个特征Fields的FM模型,MF将这两类特征通过矩阵分解,来达到这两类特征embedding化表达的目的。而FM模型则可以看作MF模型的进一步拓展,除了 User ID和Item ID这两个特征之外,很多其他类型的特征都可以进一步融入到FM模型里,它将所有这些特征转化为embedding低维向量表达,并计算任意两个特征embedding的内积,即特征组合的权重。
FM 模型继承了 MF 的特征 embedding 化表达这个优点,同时引入了更多 Side Information作为特征,将更多特征及Side Information embedding化融入到FM模型中,所以FM模型更灵活,可以应用到更多场景。
推荐阅读文章:深入FFM原理与实践
在CTR预估中,通常会遇到one-hot类型的变量,会导致数据特征的稀疏。为解决这个问题,FFM在FM的基础上进一步改进,在模型中引入类别的概念,即Field。将同一个Field的特征单独进行one-hot编码,所以FFM模型中,每一维特征都会针对其他特征的每个Field分别学习一个隐变量,该隐变量不仅与特征相关,也与Field相关。
在DSP或者推荐场景中,FFM主要用来评估站内的CTR和CVR,即一个用户对一个商品的潜在点击率和点击后的转化率。 CTR和CVR预估模型都是在线下训练,然后线上预测。两个模型采用的特征大同小异,主要分三类:
为了使用FFM方法,所有的特征必须转换成【field_id:feat_id:value】格式,field_id代表特征所属field的编号,feat_id是特征编号,value是特征的值。
整个模型大体分为两部分:FM(左边)和DNN(右边)。模型大概的流程如下:
结合注意力机制,假设不同的交叉特征对于结果的影响程度不同,以直观的业务场景为例,用户对不同交叉特征的关注程度是不同的。
AFM 模型引入注意力机制是通过在特征交叉层和最终的输出层之间加入注意力网络实现的。注意力网络的作用是为每一个交叉特征提供权重,也就是注意力得分。
参考资料:
可以将LR和DNN结合起来,同时增强拟合能力和泛化能力,wide&deep就是将LR和DNN组合起来,wide部分是LR,deep部分是DNN,将两者的结果组合进行输出。
Wide部分是一种特殊的神经网络,其输入和输出相连,属于广义线性模型的范畴,用于Memorization。Deep指的是Deep Neural Network,用于Generalization。
注意:
ESMM 引入两个预估展现点击率(CTR)和展现后点击转化率(CTCVR)作为辅助任务。ESMM 将 pCVR 作为一个中间变量,并将其乘以 pCTR 得到 pCTCVR,而不是直接基于有偏的点击样本子集训练 CVR 模型。pCTCVR 和 pCTR 是在全空间中以所有展现样本估计的,因此衍生的pCVR也适用于全空间并且缓解了 SSB 问题。
此外,CVR 任务的特征表示网络与 CTR 任务共享,后者用更丰富的样本进行训练。这种参数共享遵循特征表示迁移学习范式,可以缓解数据稀疏性问题。
左边是主任务 pCVR,右边是两个辅助任务 pCTR 和 pCTCVR。
1)Embedding Layer
输入特征的构造,两个子网络均使用了user和item域的特征,这些特征是高维且稀疏的,例如userid常常通过one-hot编码表示,可能有数百维,所以常常使用embedding将其转换为低维稠密的特征,通过嵌入层共享,把曝光没点击的样本共享给pCVR模型,缓解训练数据稀疏的问题。
2)Field-wise Pooling Layer
user 域包含多种特征,比如年龄,收入等,这样就需要多个 embedding table,item也是如此。在user域中,根据输入得到多个等长的 embedding(假设user field、item field的embedding长度为都为n),然后做 element-wise +操作,就是对应维度相加得到一个长度仍为n的embedding,item 域也做同样操作,这样就得到了两个长度为n的embedding。最后再通过 concatenate 操作将两个 embedding 拼接,得到一个长为n+n=2n 的embedding。
3)MultiLayer Perceptron
这一层把上一层的输出作为input,然后经过多层感知机后通过sigmoid或者softmax得到CVR、CTR的概率。
参考资料:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。