内容纲要

文章目录

  1. 简介
  2. 应用场景
  3. 意义
  4. 架构
  5. 详解

推荐系统概论

欢迎转载,作者:Ling,注明出处:推荐系统教程:概论

推荐系统

简介

推荐系统是一个通过获知“用户信息”,“物品信息”和“场景/上下文信息”等信息,输入候选物品,输出推荐物品列表的系统。

file

应用场景

  • 头条新闻推荐
  • Youtube视频推荐
  • 酷狗音乐推荐
  • 。。。

我一直认为人有两种行为

  • 主动:搜索
  • 被动:推荐

做为一个工程师,搜索,推荐和广告是目前最广的几个领域,而这几个领域的技术都几乎互通互用,几乎各个公司都需要,所以我们需要学好推荐相关知识。

意义

  • 用户角度: 推荐系统解决在“信息过载”的情况下,用户如何高效获得感兴 趣信息的问题。
  • 公司角度: 推荐系统解决产品能够最大限度地吸引用户、留存用户、增加用 户黏性、提高用户转化率的问题,从而达到公司商业目标连续增长的目的。

架构

file

详解

整个推荐系统流程为:为系统设计冷启动,包括用户冷启动,物品冷启动和系统冷启动。然后输入物品列表,我们预训根据用户信息,物品信息和上下文各种信息,训练好模型。物品列表先通过召回层进行粗排,讲物品列表从几百万量级,降到几百量级的物品列表,然后再通过精排,将物品列表降到top N,同时保证排序结果准确。同时通过各种评测指标,评测系统,将最后的物品列表推荐给用户。

其核心内容如下。

输入与输出

推荐系统的输入是候选物品,这些物品可以是任意形态的物品,输出是候选物品列表。

信息

包括

  • 用户信息

  • 物品信息

  • 上下文信息

  • 。。。

通过这些信息,可以用于设计冷启动模型,召回层模型和排序层模型。

冷启动

在没有大量数据的情况下做推荐,叫冷启动。

主要包括

  • 用户冷启动:用户没有历史记录情况下的推荐
  • 物品冷启动:物品没有历史记录情况下的推荐
  • 系统冷启动:新上线的系统如何进行推荐

召回层

处理百万量级的列表,cost太大,所以需要先将推荐列表降到几百百量级,这就是召回层。

主流做法有:

  • 多路召回:就是通过简单规则,每个规则都可以得到一个物品列表。

  • Embedding:通过各种Embedding求用户期望的一个较小的物品列表。

  • 局部哈希:为了进一步降低比较次数所采取的方法

排序层

主要从几百个物品中挑选出top N的物品,并且确保Rank正确。

主要分为:传统浅层机器学习模型和深度学习模型。

  • 浅层机器学习模型发展轨迹:由最初的协同过滤(CF)开始,衍生出用户协同过滤(算用户相似性,推荐其他用户的物品,UserCF)和物品协同过滤(根据物品相似性,推荐相似物品给用户,ItemCF)。CF基础上通过矩阵分解发展出MF。同时另外一个分支,基于逻辑回归(LR)也可以排序,在此基础上进一步发展出基于样本分组的LR(LS-PLM)。LR+特征交叉,发展出PLOY2,通过向量交叉发展出FM,其实也是MF加入更多特征发展出的FM。再FM基础上加上域特征,发展出FFM。LR+GBDT,用GBDT作为特征组合的方式,获取特征,LR进行回归分类,以达到排序目的,发展出GBDT+LR。还有两个单独分支,主题模型分支,即从LSA中的SVD发展到pLSA,再到最后的基于采样的LDA主题模型。同时还有个图模型分之一,比如Personal Rank。
  • 深度学习推荐模型发展轨迹:首先基于DNN/MLP,菜用自编码解码形式,发展出AutoRec。用NN替代CF中相似计算方式,发展出NeuralCF。基于ResNet和DNN传统网络,发展出Deep Crossing。再Deep Crossing基础上,替代Stack层为product层,发展出PNN。再DNN基础上加上用户和物品间的Attention,发展出DIN。再加上序列模型思想发展出DIEN。在DNN基础上加上强化学习思想,发展出DRN。DNN区分Wide和Deep两部分,wide强调直接复用,deep强调走深层次网络,发展出Wide&Deep推荐模型。针对Wide部分,通过Cross Layer加强直接复用特征之间的特征交叉,发展出Deep&Cross。Wide部分直接用FM,发展出DeepFM。针对Deep部分,加上Attention,发展出AFM,用上Bi-ineraction发展出NFM。如果考虑到初始化影响,将FM用于初始化Embedding,发展出FNN。

系统评估

系统评估方式主要包括

  • 离线实验
  • 用户调查
  • 在线实验
    • Interleaving
    • A/B测试
  • 介于离线和在线之间的仿真Replay实验

评估指标主要包括:

  • 准确率
  • 召回率
  • 精确度
  • 均方根误差
  • NDCG
  • PR曲线,以及AUC面积
  • ROC曲线
  • mAP多用户评价准确率
  • 满意度
  • 多样性
  • 健壮性
  • 新颖度
  • 惊喜度
  • 实时性
  • 信任度
  • 商业目标
  • 。。。

接下来我会对各部分内容进行详解。