推荐系统相关资料

一、一般推荐系统的构建流程

一般推荐系统的架构分为三个部分:在线部分,近线部分和离线部分。

  1. 理解业务问题,比如是分类、回归、聚类问题
  2. 选取特征:数值型、分类型
  3. 训练模型、导出模型文件、模型部署

二、召回阶段

image

三、排序阶段

(1)、LR

(2)、FM/FFM

在LR的模型中加入二阶特征的组合,即任意两个特征进行组合作为新的特征,这种组合的方式和多项式核方法SVM是等价的,然而在实际的业务中它有个潜在的问题,在大规模稀疏特征的场景下,模型的泛化能力很弱。

为什么说FM模型泛化能力强?

  1. 第09章:深入浅出ML之Factorization家族 | 计算广告与机器学习
  2. 深入FFM原理与实践 - 美团技术团队
  3. 推荐系统召回四模型之:全能的FM模型 - 知乎

(3)、GBDT+LR融合模型

一般说要训练推荐打分或者分类模型,99%的人会想到经典的逻辑回归(以下称LR),的确,LR的优点很明显:

  1. 搭建简单:无论你是使用Python或者Scala,简单易用的接口让你分分钟能搭好一个分类模型
  2. 结果容易解释:输出的结果介于[0,1]之间,用来打分或者分类妥妥的
  3. 易大规模并行:其分布式优化算法SGD、LBFGS已经很成熟

但是它的缺点也是明显的,也就是往往特征工程的好坏决定了LR表现的上限,工程师在选取特征、组合特征需要耗费大量的人力不说,效果好不好还不一定。为了解决这个问题,2014Facebook发表的一篇论文提出了一种结合了GBDT和LR的融合模型,其思路简单来说就是利用GBDT来代替人工组合特征的过程,GBDT组合好的特征再输入到LR中完成分类或者预测任务。如下图,样本点经过GBDT时,遍历三棵树之后样本点会分别落入三棵树的叶子节点上,图中样本x分别落入了Tree1中的第一个叶节点、Tree2的第三个叶节点、Tree3的第一个叶节点,我们规定样本点落入了哪个叶子节点那个叶子节点就取1,否则取0,因此我们得到的新的特征向量为[1,0,0,0,0,1,0,1,0],这个特征向量可以作为LR模型的输入。新的特征向量的长度等于GBDT模型里所有树包含的叶子节点数之和。

因此,我们可以将GBDT+LR的核心思想归纳为:首先用已有特征训练好一个GBDT模型,然后用GBDT模型去预测数据,从GBDT模型的树中去获取叶子节点,从叶子节点构造新的特征,最后把新的特征加入原有的特征一起放入LR之中。关于GBDT+LR的实现请看我的另一篇文章:Kaggle电信客户流失预测——基于GBDT融合LR,实现的思路是将连续型的特征训练得到一个gbdt的预测模型,然后用该模型去预测连续型特征所得到的离散特征,然后再将原始的离散特征和预测得到的离散特征合并,转换成DataFrame给LR训练和预测。

GBDT+LR相关文章

  1. spark实现gbdt和lr - 算法之道
  2. 基于Spark的GBDT + LR模型实现 - justcodeit - 博客园
  3. 机器学习在个性化push中的应用 - 华繁的博客
  4. Spark实现GBDT+LR基于电商母婴潜在人群预测实例
  5. GBDT+LR算法解析及Python实现 - Bo_hemian - 博客园

(四)、Wide & Deep

  1. 深度学习在美团搜索广告排序的应用实践 - 美团技术团队
  2. 推荐系统技术演进趋势:召回->排序->重排
  3. 推荐系统召回四模型之:全能的FM模型 - 知乎

推荐系统需要考虑的问题

  1. LR+FM 混合模型具体怎么做?
  2. 数据清洗采用的是什么技术?用过 ETL 工具吗?
  3. Spark 跟 Hadoop 的区别是什么?为什么要使用 Spark?
  4. FM 中的 k 表示什么?
  5. Spark 在贵公司的实际应用场景有哪些?Sparkmlib 是否比 skitlearn 和 TensorFlow 更实用一些?
  6. Java Web 程序员如何转型推荐系统算法工程师?
  7. 请问为何不使用深度学习来推荐?如何做的特征筛选?FM 是 sparkmlib 自带的包还是自己实现的?以及用户画像是怎么实现的?
  8. 推荐系统有做 abtest 吗?
  9. 请问模型是实时训练的吗?
  10. 设备 ID 到用户 ID 转换,扩展未登录场景,请问怎么扩展到未登录场景,比如 H5 未必存在获取到设备信息?怎么设计推荐评测系统进行验证,以便不断优化推荐算法?
  11. 美团推荐的召回是怎么做的,精排只用了 FM+LR 吗,重排是怎么做的?
  12. 美图推荐的用户画像有多少个特征,如果特征很大,怎么进行性能优化?
  13. 美团新接入一个推荐场景,需要耗多少人力,算法与工程的人力配比是多少,算法与工程的分工是什么样的?
  14. 请问如何评估推荐系统?
  15. 请问 XGBoost、FM 是跑在 Spark 上的吗?FM 是自己实现的还是用的第三方库?
  16. 统计类特征受回流的日志是否正常,错误的日志得到错误的统计类特征,是否推荐算法不是实时的?

来源:晓宇:亿级用户个性化品类推荐实战解析

美团“猜你喜欢”深度学习排序模型实践 - 美团技术团队

汽车之家推荐系统排序算法迭代之路-InfoQ
深入理解推荐系统:排序 - 知乎

posted @ 2021-04-15 15:56  swordspoet  阅读(96)  评论(0编辑  收藏  举报