当前位置:   article > 正文

【RecSys】推荐系统和计算广告经典算法论文及实现总结_内容推荐算法论文整理

内容推荐算法论文整理

介绍

本文梳理汇总了推荐系统和计算广告领域的书籍,教程,博文,论文,代码等资源。主要内容是计算广告的相关知识,重点是CVR预估内容。CTR预估,LTV预估和调价未展开。

推荐系统和计算广告的技术栈很相似,并且在数据抽取,特征构造,特征处理和模型选择上有很多技术是通用的。推荐系统的目的是推送用户潜在喜欢的内容,计算广告则专注挖掘对条目潜在感兴趣的用户,这些用户会有尽可能多的用户粘性,高价值。这里的条目,根据场景不同也有不同的定义。比如,商品推荐场景下,条目就是商品;在游戏广告推荐场景下,条目就是展示游戏的素材。

计算广告的目的是通过广告投放的方式来提高产品的价值。这些价值的体现包括用户注册,用户购买,用户使用市场等等。所以需要挖掘用户潜在的意图,从而提高投入产出比(ROI)。这其中需要对用户兴趣度和用户价值进行建模。CTR和CVR关注的是用户的兴趣,LTV关注的是用户价值。

当然广告这种展示形式是与广告投放时使用的素材,投放的时间,投放的媒体,媒体展示位置等多种因素相关的,这又衍生出许多精细的领域,比如debias。本文暂不涉及。

计算广告的算法工程师的主要工作一般包括:

  • 数据抽取:少量数据一般用 SQL,大量数据一般使用 Scala 通过 Hive 和 Spark 从数据仓库中拉取数据。再将代码部署到离线平台之后,这些代码一般都是按照一定的周期例行化自动运行的。

  • 特征构造:也就是常说的特征工程,在广告场景下存在数据稀疏的问题,所以需要尽可能多的数据来表征用户。原生的特征,一般在几十维到几百维不等,经过Embedding之后一般在上千维。与数据抽取所用的技术栈是一样的。这些特征一般可以分为以下几种类型:

    • 用户自然人特征:比如性别,年龄,所在地,职业,受教育程度等。
    • 用户画像特征:这里会进一步衍生出更多细粒度的特征来描述自然人,比如所在地的收入水平,是几线城市等等。
    • 特征领域相关的大盘统计特征:在购物场景下,基于某一时间窗口统计的全量特征。
    • 用户短期,长期统计特征:在购物场景下,这可以是某品类商品点击次数等。
    • 用户短期,长期品类特征:在购物场景下,这可以是最喜欢的点击商品品类等。
    • 广告投放渠道相关的统计特征:在广告场景下,会把素材投放到各个媒体,基于这部分收集到的数据可以统计出不同渠道上用户的特征。
    • 广告投放渠道相关的品类特征:同理。
    • 序列特征:这部分一般是用户点击序列,购买序列等高维度特征,下文也会介绍针对此类特征的建模方法。
  • 特征处理:

    • 统计特征:标准化,归一化。
    • 类别特征:Embedding。
    • 序列特征:Embedding。
  • 模型评价指标:

    • CTR:点击率预估一般转化为用户是否点击的二分类问题建模,因此评价指标是 loss 和 AUC。
    • CVR:转化率预估一般转化为用户是否注册的二分类问题建模,因此评价指标是loss 和 AUC。
    • LTV:用户价值预估一般转化为用户是否付费的二分类问题建模,因此评价指标是 Gini 系数 和 AUC。
  • 损失函数:因为是类别不平衡的二分类问题,在CTR场景中正负样本的比例大概在1:100,CVR场景下的正负样本比例在1:1000到1:10000不等,所以需要考虑平衡正负样本。常用的处理方式:

    • 随机抽样,分层抽样等,将正负样本采样到正常的比例,或者1:1的比例,者不可避免的会引入与真实分布不同的问题,但是在模型校准部分会进行处理,所以不用担心。
    • 加权损失函数
    • 类别权重
  • 模型选择:需要结合场景理解来选择模型,大多数模型都是针对CTR任务建模的,并且也多为购物场景下的模型,因为域适应的问题,这样直接迁移到游戏领域的建模就可能导致效果不好。一般是先建议一个baseline,然后对其作相应的改进,多任务模型用得比较多。之后的内容会详细介绍。

  • 模型训练:

    • batch size:默认512,一些方法可能会将batch size加大到10000左右,以缓解样本稀疏性问题。
    • 学习率:衰减+预热。
    • 优化器:默认Adam。
    • epoch:及时停止。

术语

之前的一篇博文已经总结了计算广告领域的相关术语:

【计算广告】基本概念及RTB/RTA投放策略介绍

以下是推荐和广告领域中基本的三个子方向:

  1. CTR(Click-Through-Rate):点击通过率,CTR=(广告的实际点击次数/广告的展现量)*100%
  2. CVR(Conversion Rate):转化率。是一个衡量CPA广告效果的指标,简言之就是用户点击广告到成为一个有效激活或者注册甚至付费用户的转化率。CVR=(转化量/点击量)*100%
  3. LTV(Life Time Value):生命周期总价值,意为客户终生价值,是公司从用户所有的互动中所得到的全部经济收益的总和,通常被应用于市场营销领域,用于衡量企业客户对企业所产生的价值,被定为企业是否能够取得高利润的重要参考指标。

此外还有校准和调价环节,一般也作为单独的子方向有专人负责。

书籍

两本必读:

  • 王喆《深度学习推荐系统》
  • 刘鹏,王超《计算广告——互联网商业变现的市场与技术》

在这里插入图片描述

论文

TitleYearCitedModel
Machine Learning Methods
Item-Based Collaborative Filtering Recommendation AlgorithmsWWW10 200110936 (2022/04/27)ItemCF
Recommendations Item-to-Item Collaborative FilteringIC 20037661ItemCF
Unifying User-based and Item-based Collaborative Filtering Approaches by Similarity FusionSIGIR 20061001UserCF
Matrix Factorization Techniques for Recommender SystemsComputer 20099958MF
Factorization MachinesICDM 20102131FM
Practical Lessons from Predicting Clicks on Ads at FacebookADKDD 2014717GBDT + LR
Field-aware Factorization Machines for CTR PredictionRecSys 2016519FFM
Learning Piece-wise Linear Models from Large Scale Data for Ad Click PredictionarXiv 2017 (2012)44LS-PLM
Deep Learning Methods
A Convolutional Click Prediction ModelCIKM 2015107CCPM
AutoRec: Autoencoders Meet Collaborative FilteringWWW 2015899AutoRec
Product-based Neural Networks for User Response PredictionICDM 2016404PNN
Wide & Deep Learning for Recommender SystemsDLRS 20162147Wide & Deep
Deep & Cross Network for Ad Click PredictionsADKDD 2017504Deep & Cross
Neural Collaborative FilteringWWW 20173391NeuralCF
Deep Learning over Multi-field Categorical Data – A Case Study on User Response PredictionECIR 2016385FNN
Higher-Order Factorization MachinesNIPS 2016166HOFMs
DeepFM: A Factorization-Machine based Neural Network for CTR PredictionIJCAI 20171292DeepFM
Neural Factorization Machines for Sparse Predictive AnalyticsSIGIR 2017860NFM
Attentional Factorization Machines: Learning the Weight of Feature Interactions via Attention NetworksIJCAI 2017540AFM
Field-weighted Factorization Machines for Click-Through Rate Prediction in Display AdvertisingWWW 2018116FwFM
An Input-aware Factorization Machine for Sparse PredictionIJCAI 201915IFM
FiBiNET: Combining Feature Importance and Bilinear feature Interaction for Click-Through Rate PredictionRecSys 201983FiBiNet
A Dual Input-aware Factorization Machine for CTR PredictionIJCAI 202016DIFM
Field-Embedded Factorization Machines for Click-through rate predictionarXiv 20202FEFM and DeepFEFM
Behavior sequence transformer for e-commerce recommendation in AlibabaDLP-KDD 2019104BST
Sequence Feature Modeling
Deep Interest Network for Click-Through Rate PredictionSIGKDD 2018763DIN
Deep Interest Evolution Network for Click-Through Rate PredictionAAAI 2019340DIEN
]Deep Session Interest Network for Click-Through Rate PredictionIJCAI 2019123DEIN
Multi-Task Model
An Overview of Multi-Task Learning in Deep Neural NetworksarXiv 20171866Multi-Task
Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion RateSIGIR 201895ESMM
Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-ExpertsKDD 2018231MMoE
Progressive Layered Extraction (PLE): A Novel Multi-Task Learning (MTL) Model for Personalized RecommendationsRecSys 202020PLE

一般来说,CVR 常用 Wide & Deep 和 DeepFM 模型当做baseline,再根据具体场景,结合多任务模型等进行调优。序列模型常用于对序列特征进行建模,多任务模型常用于 LTV 预估任务。

参考资料:

  • DeepCTR repository
  • 《深度学习推荐系统》

代码

DeepCTR:

教程

推荐系统领域博主:

计算广告领域博主:

CTR 预估模型

下图来自深度学习推荐系统一书。这些模型都是针对CTR任务提出的。具体地,可以阅读书籍或者查阅相关内容。
在这里插入图片描述

CVR 预估模型

针对CVR预估提出的模型很少,所以目前的处理方案基本都是使用CTR模型进行离线实验,如果效果比较好,则拿到线上进行小流量的实验,观察稳定后,再进行部署。下面介绍一些在CVR场景中常用的模型。

FM 及其变体

FM

矩阵分解(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

推荐阅读文章:深入FFM原理与实践

在CTR预估中,通常会遇到one-hot类型的变量,会导致数据特征的稀疏。为解决这个问题,FFM在FM的基础上进一步改进,在模型中引入类别的概念,即Field将同一个Field的特征单独进行one-hot编码,所以FFM模型中,每一维特征都会针对其他特征的每个Field分别学习一个隐变量,该隐变量不仅与特征相关,也与Field相关

在DSP或者推荐场景中,FFM主要用来评估站内的CTR和CVR,即一个用户对一个商品的潜在点击率和点击后的转化率。 CTR和CVR预估模型都是在线下训练,然后线上预测。两个模型采用的特征大同小异,主要分三类:

  • 用户相关的特征
    年龄、性别、职业、兴趣、品类偏好、浏览/购买品类等基本信息,以及用户近期点击量/购买量/消费额等统计信息
  • 商品相关的特征
    商品所属品类、销量、价格、评分、历史CTR/CVR等信息
  • 用户-商品匹配特征
    浏览/购买品类匹配、浏览/购买商家匹配、兴趣偏好匹配等

在这里插入图片描述

为了使用FFM方法,所有的特征必须转换成field_id:feat_id:value格式,field_id代表特征所属field的编号,feat_id是特征编号,value是特征的值。

DeepFM

在这里插入图片描述

整个模型大体分为两部分:FM(左边)和DNN(右边)。模型大概的流程如下:

  1. 首先利用FM进行embedding得到Dense Embeddings的输出。
  2. 将Dense Embeddings的结果作为左边FM模块和右边DNN模块的输入。通过一定方式组合后,模型左边FM模块的输出完全模拟出了FM的效果,而右边的DNN模块则学到了比FM模块更加高阶的特征交叉。
  3. 最后将DNN和FM的结果组合后激活输出。

AFM

结合注意力机制,假设不同的交叉特征对于结果的影响程度不同,以直观的业务场景为例,用户对不同交叉特征的关注程度是不同的。

AFM 模型引入注意力机制是通过在特征交叉层和最终的输出层之间加入注意力网络实现的。注意力网络的作用是为每一个交叉特征提供权重,也就是注意力得分。
在这里插入图片描述
参考资料:

Wide & Deep

在这里插入图片描述
可以将LR和DNN结合起来,同时增强拟合能力和泛化能力,wide&deep就是将LR和DNN组合起来,wide部分是LR,deep部分是DNN,将两者的结果组合进行输出。

  1. 线性模型无法学习到训练集中未出现的组合特征;
  2. FM或DNN通过学习嵌入向量,虽然可以学习到训练集中未出现的特征,但是在数据稀疏时容易过度泛化,进而推荐不相关物品的情况。

Wide部分是一种特殊的神经网络,其输入和输出相连,属于广义线性模型的范畴,用于Memorization。Deep指的是Deep Neural Network,用于Generalization。

在这里插入图片描述
注意:

  • 哪些维度特征要参与构造组合特征,需要人工设定
  • 本质上是one-hot之后的组合特征:仅仅在输入样本X中的特征gender=female和特征language=en同时为1,新的组合特征AND(gender=female, language=en)才为1。所以只要把两个特征的值相乘就可以了。 这样Cross-product transformation 可以在二值特征中学习到组合特征,并且为模型增加非线性。
  • 因为Wide侧的数据是高维稀疏的,所以作者使用了 FTRL 算法优化,而Deep侧使用的是AdaGrad

ESMM

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的概率。

参考资料:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/811728
推荐阅读
相关标签
  

闽ICP备14008679号