superhj1987 / ToDo

我的ToDo列表
3 stars 0 forks source link

极客时间:《推荐系统三十六计》 #2

Open superhj1987 opened 6 years ago

superhj1987 commented 6 years ago

time.geekbang.org 极客时间的技术专栏课程

superhj1987 commented 6 years ago

推荐团队

  1. 数据挖掘/算法工程师: 清洗数据、训练模型、开发接口,评估指标。
  2. 软件开发工程师:推荐服务输出。数据库、API开发、在线业务。
  3. 运维工程师:反馈数据收集和管理,回收用户反馈数据,统一存储日志数据。
  4. 非技术协调角色

工程师学习

个性化推荐

deltaConnection/(deltaUser * deltaItem),此值越大说明用户与物品的连接呈自发趋势,需要上推荐系统。

推荐系统经典问题:评分预测、行为预测、【冷启动问题->大部分推荐、小部分探索】

思维模式:目标思维、不确定思维

数据驱动的AB测试平台

架构

基于内容的推荐-用户画像(User Profile)

认识用户:查户口、堆数据、黑盒子

文本结构化->内容画像:关键词、实体识别、分类、主题模型、嵌入

用户标签选择(特征选择):卡方检验、信息增益

【使用LDA主题模型,对用户兴趣做聚合:用户=文章,用户的行为序列=文章中的词】

【对于多个具有权重的用户标签,使用加权采样算法每次使用部分标签做召回:有限数据集,无限数据集(蓄水池抽样、加权蓄水池抽样)】

基于内容的推荐是成熟推荐系统的第一步,是一个包装成推荐系统的信息检索系统: 丰富的内容源!!!清洗内容!!!挖掘内容!!!匹配用户的兴趣和内容属性!!!

内容分析:

内容推荐:使用逻辑回归+GBDT训练一个二分类器,构建预估模型,预估用户行为的发生概率,按照概率排序。

【目前使用内容和用户余弦相似度来做排序】

协同过滤

物品协同和用户协同的用户物品矩阵是稀疏的,取两个物品的共同用户和两个用户的共同物品只需要少量计算即可【物品协同过滤使用余弦相似度没有考虑置信问题也没有做物品中心化和用户中心化的改进,但Slope one算法只能解决评分矩阵的置信问题】

相似度计算方式:

矩阵分解

解决point-wise的pair-wise算法:BPR,贝叶斯个性排序模型。

模型融合

GBDT+FTRL: GBDT用来组合特征,FTRL来做CTR预估

FM因子分解机模型(矩阵分解)

WDL: wide and deep learning

EE&&冷启动

Bandit算法(不常用,同时处理的物品数量不能太多)

走一步算一步

选择物品->选择策略

避免信息茧房

结合协同过滤的Bandit->COFIBA(用户所在的群体共同决策推荐结果)

随机的去掉一些用户特征

【模型融合之后加一层蓄水池抽样,或者在召回阶段加一层蓄水池采样,这样在不影响整个推荐流程和转化概率的前提下,降低计算复杂度和提升推荐多样性。】

【热榜解决冷启动问题和用户兴趣探索问题】

【用户画像对新内容有加权,解决内容冷启动问题】

科学排行榜: EE&&冷启动;降级、兜底策略

深度学习

实时推荐

Bandit算法天然适合实时性

【ItembasedCF->改造为实时,目前模型是周期性更新】

【热榜内容是周期性窗口更新】

其他