推荐系统系列--1--系统架构

最近开始学习推荐系统, 在这里做个记录, 会更新如下内容:

  1. 推荐系统架构( 本文)
  2. 推荐系统协同过滤与矩阵分解
  3. 推荐系统与深度学习
  4. Embedding在推荐系统中的应用
  5. 多角度审视推荐系统
  6. 推荐系统工程实现
  7. 推荐系统评估
  8. 推荐系统前沿
    该系列内容是参考 王喆的深度学习推荐系统 和深度学习推荐系统 书籍 整理的,作为自己的学习笔记.

推荐系统要解决的问题就是 在信息过载的情况下,用户如何高效获取感兴趣的信息。
从根本出发,推荐系统就是处理 人 与 信息 之间的关系问题,也就是基于人和信息,构建出一个找寻感兴趣信息的方法。

这里的“信息”定义非常多样,它在不同的场景下的具体含义也不同,比如商品推荐中指‘商品信息’,在视频推荐中指’视频信息‘,在新闻推荐中指的是’新闻信息‘,这里我们统称为“物品信息”。

而从“人”的角度出发,为了更可靠地推测出 人 的兴趣点,推荐系统希望能利用 大量的 与 人 相关的信息,这类信息包含 历史行为,人口属性,关系网络等,他们可以被统称为“用户信息”。

此外在具体的推荐场景下,用户的最终选择一般会受到 时间、地点、用户状态等一系列环境信息的影响,这些环境信息又可以被称为 “场景信息” 或者 “上下文信息”。

基于上面的信息的定义,推荐系统要处理的问题就是可以被形式化地定义为: 对于某个用户U(User),在特定场景C(Context)下,针对海量的“物品”信息构建一个函数,预测用户对特定候选物品I(item)的喜好程度,再根据喜好程度对所有候选物品进行排序,生成推荐列表的问题。
在这里插入图片描述
在实际推荐系统中该,工程师需要将抽象的概念和模块具体化,工程化。

  • 数据和信息相关的问题,即用户信息,物品信息,场景信息分别是什么?如何存储,更新和处理?
  • 推荐系统的算法和模型相关的问题,即模型如何训练、预测、如何达成最好的推荐效果?

我们可以将这两类问题,分为2部分: ”数据和信息“ 部分,逐渐发展成为推荐系统中融合了数据离线批处理、实时流处理和数据流框架;”算法和模型“部分则进一步细化为推荐系统中训练、评估、部署、线上推断为一体的模型框架,具体如下图:
在这里插入图片描述

  • 推荐系统数据部分

    推荐系统的数据部分主要负责”用户““物品”“场景”的信息收集与处理。具体地讲,将负责数据收集与处理的三种平台按照时时性的强弱排序,依次为**“客户端及服务器端实时数据处理”,“流处理平台准时数据处理”,“大数据平台离线数据处理”**。在实时性由强到弱递减的同时,三种平台的海量数据处理能力则由弱到强。因此,一个成熟的推荐系统的数据流系统会将三者取长补短配合使用。

在得到原始数据信息后,推荐系统的数据处理系统会将原始数据进一步加工,加工后的数据出口主要有三个:

  1. 生成推荐模型所需的样本数据,用于算法模型的训练和评估。
  2. 生成推荐模型服务(model serving)所需的特征,用于推荐系统线上推断。
  3. 生成系统监控、商业智能(Business Intelligence,BI)系统所需的统计型数据。
    可以说,推荐系统的数据部分是整个推荐系统的“水源”,只有保证数据持续、干净,才能不断地滋养推荐系统,使其高校运转。
  • 推荐系统模型部分

    推荐系统的“模型部分”是推荐系统的主体,模型结构一般由 “召回层”、“排序层”、“补充策略与算法层”组成。

    1. “召回层”一般利用高效的召回规则、算法或简单的模型,快速从海量的候选集中召回用户可能感兴趣的物品。
    2. “排序层”利用排序模型对初筛的候选集进行精细排序。
    3. “补充策略与算法层”,也被称为“再排序”,可以在将推荐列表返回用户之前,为兼顾结果的“多样性,流行度,新鲜度”等指标,结合一些补充的策率和算法对推荐列表。

    从推荐模型接收到所有候选物品集,到最后产生推荐列表,这一过程一般称为模型服务过程。

    在线环境进行模型服务之前,需要通过模型训练(Model training)确定模型结构,结构中不同参数权重的具体数值,以及模型相关算法和策略中的参数取值,模型的训练方法又可以根据模型训练环境的不同,分为“离线训练”和“在线更新”两部分,其中:离线训练的特点是可以利用全量样本和特征,使模型逼近全局最优点;在线更新则可以准时地“消化”新的数据样本,更快地反映新的数据变化趋势,满足模型实时性的需求。
    除此以外,为了评估推荐系统的效果,方便模型的迭代优化,推荐系统的模型部分提供了“离线评估”和“线上AB测试”等多种评估模块,用得出线下和线上评估指标,指导下一步模型迭代优化。
    以上所有模块共同组成了推荐系统模型部分的技术框架。模型部分,特别是“排序层”模型是推荐系统产生效果的重点,也是工业界和学术界的研究中心。

深度学习对于推荐系统的革命

深度学习对推荐系统的革命集中在模型部分,那具体都有什么呢?
我把最典型的深度学习应用总结成了 3 点:

  • 深度学习中 Embedding 技术在召回层的应用。作为深度学习中非常核心的 Embedding 技术,将它应用在推荐系统的召回层中,做相关物品的快速召回,已经是业界非常主流的解决方案了。不同结构的深度学习模型在排序层的应用。
  • 深度学习模型在排序层应用。排序层(也称精排层)是影响推荐效果的重中之重,也是深度学习模型大展拳脚的领域。深度学习模型的灵活性高,表达能力强的特点,这让它非常适合于大数据量下的精确排序。深度学习排序模型毫无疑问是业界和学界都在不断加大投入,快速迭代的部分。
  • 增强学习在模型更新、工程模型一体化方向上的应用。增强学习可以说是与深度学习密切相关的另一机器学习领域,它在推荐系统中的应用,让推荐系统可以在实时性层面更上一层楼。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值