【学习笔记】广告推荐算法

广告推荐算法

常识性问题

1、有哪些推荐系统,分别有什么特点?[1]

  • 基于协同过滤的方法:根据过往的很多用户协同数据,判断当前用户的相似度,从而在众多可能的对象中过滤出可以推荐给当前用户的;无需当前用户数据,但是过往数据越多,推荐系统越好;
    • 基于user的协同过滤:根据你对物品的评价去找和你有相似评价的人,将他们觉得好的东西推荐给你
    • 基于item的协同过滤:根据你对物品的评价去找同类好评的物品,直接推荐给你
  • 基于内容的方法:将用户的属性特点和物品的属性特点相匹配,如用户喜欢喜剧,而该电影恰好是喜剧片,直接推给他。
  • 基于模型的方法:在基于内容的方法基础上,将算法换成机器学习模型,
  • 基于流行度算法:根据流行度/点击率推荐给用户,无需当前用户数据,简单粗暴
  • 补充学习[2]

2、有哪些广告算法,如何区别?

  • 基础知识:
    • CTR:点击率=点击数/真实曝光数 CTR=adclk/real_adimp
    • CVR:转化率=转化量/点击量

3、推荐算法和广告算法有什么区别和联系,如何判断?[3]

  • 广告算法:
    • 优化目标:直接目标是为增加营收,因此预估目标都是预估CTR和CVR,因为CPC和CPA计价是主流计价方式;
    • 算法侧重点:要预测“精准”的CTR和CVR,用于后续计算精确的出价
    • 辅助策略:计算广告领域的其他业务,如定价、匹配、流量分发等等模块对平台盈利也有影响
  • 推荐算法:
    • 优化目标:直接目标是为增加用户参与度(流量、成交量、播放量等),因此不同业务场景有不同的预估目标;
    • 算法侧重点:结果往往以列表的形式(推荐列表)呈现,因此不用估的那么准;而是要更多照顾一个列表整体上,甚至一段时间内的内容多样性上对于用户的“吸引力”
    • 辅助策略:补充策略做出一些看似“非最优”的选择,比如探索性的尝试一些长尾内容,在生成整个推荐列表时要加入多样性的约束

4、项目需要实现什么广告推荐算法?

  • 任务清单:乘客消费习惯及推荐算法研究,即根据销售统计数据进行用户消费习惯研究,并根据研究成果进行补货推荐算法的实现。
  • 开发工具及数据接口:利用baidu或aliyun的Al数据接口构建深度学习平台,针对已收集到相关信息进行识别训练,从而不断提升推荐算法的效率(如产生费用,自行承担)
  • 直播答疑:
    • 推荐算法,我希望是推荐,比如未来的广告推荐的算法,比如算算上,比如特定的时间时期或者节假日,亦或者是时间段推送不同类型的广告,当然这还有广告商在付费的时候,他买的时段或者他的播放率等等。
    • 我们推荐算法这件事,大家请不要把它用在推荐卖东西这件事,我们希望把推荐算法考虑,更多的考虑是在屏幕上的广告的或者信息的推推送这件事上,而不只是考虑卖东西。
  • 我:
    • 补货是推荐算法,但是不重要
      • 基于用户的协同过滤,根据过往的销售统计数据研究不同类型用户的消费习惯,再给当前用户推荐相似用户的消费,但是每辆车上的用户是随机的,并不固定;因此不是基于用户的协同过滤
      • 应该是基于流行度算法,将热门的物品推荐给司机,便于司机挑选补货,但是仔细讲可能需要区分地区
    • 广告最重要

5、如何学习广告推荐算法?

  • 补充学习[4]

基础知识点

1、线性回归:

  • 定义:
    • 常使用曲线/直线来拟合数据点,目标是使曲线到数据点的距离差异最小。线性回归是回归问题中的一种,线性回归假设目标值与特征之间线性相关,即满足一个多元一次方程。[5]
    • 通过构建损失函数\(\hat y=\omega x+b\),来求解损失函数最小时的参数w和b,其中

2、什么是点击率CTR?它有什么意义?

  • 定义:广告点击次数除以总展示次数(广告投放次数)[6]
  • 意义:衡量某个网站的在线广告活动是否成功,以及电子邮件活动的有效性
  • 常见数值:CTR的数值平均接近 0.2 % 0.2% 0.2%或 0.3 % 0.3% 0.3%,超过 2 % 2% 2%被认为是非常成功的。
  • 常见预估算法:FM, FFM, DeepFM

广告算法具体

1、有哪些广告算法模型?

  • 前提:NN的性能显著高于LR,以下提到的模型基本都是召回和排序的模型,[7]
  • 传统机器学习模型:
    • LR:机器学习经典模型
    • FM、FFM:机器学习经典模型
    • GBDT+LR:GBDT+LR是小公司、少数据、和对DNN有畏惧心理的公司和业务中应用最广泛的模型。它的非线性不需要人手工构造,由树模型学到,降低了特征工程的复杂度。模型结构简洁,加上近几年树模型开发充分,拥有xgboost和lightgbm这样训练速度和精度都惊人的工具,所以训练成本极低,是很强的baseline。
  • 深度学习模型:
    • 纯DNN模型:DNN在CNN制霸ImageNet后,就不断有NN在排序模型的尝试,在Google放出自己youtube的排序模型是纯粹的DNN之前,DNN就已经成为主流了,这篇工作放出来后,就更少有人和神经网络过不去了。
    • 双塔系列模型:
      • DSSM及变种:双塔模型的最大特点就是user和item是独立的两个子网络,对工业界十分友好,两个塔可以各自缓存,线上infer只需要取出缓存做有限的运算即可。
    • Wide and Deep系列模型:Wide and Deep及后续的模型家族是现在业界应用最广泛的深度学习模型,其主要原因在于模型结构就融合了传统机器学习模型和DNN,从而能够既有LR的记忆性,又有DNN的泛化性,加上模型复杂度加强,其上限是远高于LR的。对于有DNN PTSD的人来说,有一个LR在模型中,也显得可靠许多。
      • Wide and Deep:原始WDL,Deep部分是DNN,Wide部分是LR,WDL的开山之作
    • DeepFM:源自Wide and Deep,Wide端改成FM。
    • Deep Interest Network(DIN):阿里妈妈的工作,是Attention风行以来较热门的一篇

2、算法模型包括哪些部分?

  • 广告和推荐算法的技术框架比较相似,在线计算时都分为召回(candidates generating)和排序(candidates ranking)两个阶段(这似乎是计算资源有限条件下,所有检索问题的通用架构)

经典推荐算法FM

1、FM算法有什么作用?

  • 预测点击率 CTR(click-through rate)和转化率 CVR(conversion rate)
  • 主要目标:解决数据稀疏的情况下,特征怎样组合的问题
  • 优势:
    • 可以在非常稀疏的数据中进行合理的参数估计
    • FM模型的时间复杂度是线性的
    • FM是一个通用模型,它可以用于任何特征为实值的情况

2、FM算法的原理是什么?

  • 一般不考虑特征间关联的线性模型:$$\hat y=w_0+\sum_{i=1}^n w_ix_i$$
  • 考虑特征间相关性的多项式模型:$$\hat y=w_0+\sum^n_{i=1} w_ix_i+\sum^n_{j=i+1}w_{ij}x_ix_j$$
    • 特征组合部分的参数是\(\frac{n(n-1)}{2}\)个w,也就是待学习的参数。
    • 缺点:参数w的学习很困难,因为对其更新时,梯度为\(x_ix_j\),当且仅当\(x_i\)\(x_j\)同时非零时才能更新。因此如果特征非常稀疏(同时非0的组合很少)且维度很高的话,无法充分训练。[8]
  • 一维FM模型的表达式(引入辅助向量\(V_i=[v_{i1},v_{i2},\dots,v_{ik}]^T\),其中\(k\lt\lt n\)):$$\hat y=w_0+\sum^n_{i=1} w_ix_i+\sum^n_{j=i+1}\langle V_i,V_j\rangle x_ix_j$$
    • 其中k为超参数,时间复杂度为\(O(kn^2)\)
    • 辅助变量与参数的关系:\(w_{ij}=v_i^Tv_j=\sum^k_{l=1} v_{il}v_{jl}\)
    • 待学习参数从\(\frac{n(n-1)}{2}\)个x变成\(n\times k\)的矩阵V,减少了待学习参数的个数和训练复杂度。[9]
  • 优化后的FM模型(降低时间复杂度):$$\hat y=w_0+\sum_{i=1}^n w_ix_i+\frac{1}{2}\sum_{f=1}^k \left( \left( \sum_{i=1}^n v_{i,f}x_i \left) - \sum_{i=1}^n v_{i,f}^2 x_i^2 \right)$$
  • 多维FM算法(将二阶交叉项转换成多阶交叉项):$$\hat y=w_0+ \sum^n_{i=1} w_ix_i+ \sum^d_{l=2} \sum^n_{ii=1} \dots \sum^n_{i=1} \left( \prod^l_{j=1} x_{j_j} \right) \left( \sum_{f=1}^{k_l} \prod^l_{j=1} v^{(l)}_{i_j,f} \right)$$

3、FM算法的步骤包括哪些?

  • 将训练样本中的输入特征进行归一化处理,设置FM的初始权重,通过FM算法得到预测值\(\hat y\)
  • 将训练样本中的输出特征标签,获得实际值y。
  • 根据预测值\(\hat y\)和实际值y,计算分类loss的梯度,更新FM的权重,重复步骤一,直到执行完全部迭代次数,保存模型结果。

4、FM的学习/训练算法有哪些?

  • 交替最小二乘法ALS
  • 马尔科夫链蒙特卡罗法MCMC
  • 随机梯度下降法SGD

5、如何用随机梯度下降法SGD训练FM?

  • 对比一维FM模型的表达式:$$\hat y=w_0+\sum^n_{i=1} w_ix_i+\sum^n_{j=i+1}\langle V_i,V_j\rangle x_ix_j$$
  • FM模型所有参数:$$\Theta=\left(w_0,w_1,w_2,\dots,w_n,v_{11},v_{12},\dots,v_{nk}\right)^T$$
  • 找到两个与\(\theta\)无关的函数满足:$$\hat y(x)=g(x)+\theta h(x)$$
    • \(\theta=w_0\)时:$$\hat y(x)=g(x)+\theta \times h(x)=\sum^n_{i=1} w_ix_i+\sum^n_{j=i+1}\langle V_i,V_j\rangle x_ix_j+w_0\times 1$$
    • \(\theta=w_0\)时:$$\hat y(x)=g(x)+\theta \times h(x)=\sum^n_{i=1} w_ix_i+\sum^n_{j=i+1}\langle V_i,V_j\rangle x_ix_j+w_0\times 1$$
    • \(\theta=w_0\)时:$$\hat y(x)=g(x)+\theta \times h(x)=\sum^n_{i=1} w_ix_i+\sum^n_{j=i+1}\langle V_i,V_j\rangle x_ix_j+w_0\times 1$$
    • 实际推导中,通常只计算h(x),而g(x)则利用\(\hat y -\theta \times h(x)\)来计算。
  • 计算\(\widehat{y}\)关于\(\theta\)的偏导数:$$$$
  • 设置FM的优化目标(损失函数):\(L=\sum_{i=1}^N loss\left( \hat y \left( x^{(i)} \right),y^{(i)}\right)\)
    • 对应不同的问题,比如分类、回归、排序等,这个loss函数通常有不同的选择方式,但这并不影响FM的最优化问题
  • 得到FM的最优化问题:$$\Theta^\ast=\arg \min_\Theta \sum_{i=1}^N loss\left( \hat y \left( x^{(i)} \right),y^{(i)}\right) $$
  • 引入L2正则项(\(\lambda_\theta\)表参数\(\theta\)的正则化系数):$$\Theta^\ast=\arg \min_\Theta \sum_{i=1}^N loss\left( \hat y \left( x^{(i)} \right),y^{(i)}+\sum_{\theta \in \Theta}\lambda_\theta \theta^2\right) $$

6、SGD训练FM的算法流程包括哪些?

  • 输入:训练集D,正则化系数集,学习率,正态分布方差参数
  • 输出:模型参数\(\Theta=\left(w_0,w,V\right)^T\)

  1. http://t.csdn.cn/AiUSE ↩︎

  2. https://www.jianshu.com/u/1ed8e91cd532 ↩︎

  3. https://www.zhihu.com/question/279830647/answer/2211224553 ↩︎

  4. https://zhuanlan.zhihu.com/p/431446738 ↩︎

  5. https://blog.csdn.net/hero_myself/article/details/116746224 ↩︎

  6. https://blog.csdn.net/john_xyz/article/details/78933253 ↩︎

  7. https://www.zhihu.com/question/352306163 ↩︎

  8. https://blog.csdn.net/hero_myself/article/details/116746224 ↩︎

  9. https://zhuanlan.zhihu.com/p/342803984 ↩︎

posted @ 2023-03-09 09:28  来人间凑数  阅读(1050)  评论(0)    收藏  举报