推荐系统 (一): 推荐系统的架构

  • 本文为《深度学习推荐系统》(王喆) 的读书笔记 (边读边记,希望能和大家共同进步!)

推荐系统的逻辑框架

  • 推荐系统要处理的是 “人” 和 “信息” 的关系。这里的 “信息” ,在商品推荐中指的是 “商品信息”,在视频推荐中指的是 “视频信息 ”, 在新闻推荐中指的是 “新闻信息”,简而言之, 可统称为 “物品信息” 。 而从 “人” 的角度出发, 为了更可靠地推测出 “人” 的兴趣点, 推荐系统希望利用大量与 “人” 相关的信息, 包括历史行为、人口属性、关系网络等, 这些可统称为 “用户信息”。此外, 在具体的推荐场景中, 用户的最终选择一般会受时间、地点、用户的状态等一系列环境信息的影响, 可称为 “场景信息” 或 “上下文信息”
  • 在获知 “用户信息” “物品信息” “场景信息” 的基础上, 推荐系统要处理的问题可以较形式化地定义为:对于用户 U U U (user), 在特定场景 C C C (context) 下, 针对海量的 “物品“ 信息,构建一个函数 f ( U , I , C ) f(U,I,C) f(U,I,C), 预测用户对特定候选物品 I I I (item) 的喜好程度, 再根据喜好程度对所有候选物品进行排序,生成推荐列表的问题
    在这里插入图片描述

不同业务模式的公司定义的具体推荐系统优化目标不同, 例如,视频类公司更注重用户观看时长 (Deep Neural Networks for YouTube Recommendations),电商类公司更注重用户的购买转化率 (Conversion Rate, CVR), 新闻类公司更注重用户的点击率, 等等。需要注意的是,设计推荐系统的最终目标是达成公司的商业目标、增加公司收益,这应是推荐工程师站在公司角度考虑问题的出发点

推荐系统的技术架构

  • 在实际的推荐系统中,工程师需要将抽象的概念和模块具体化 、工程化。在 图 1-3 的基础上,工程师需要着重解决的问题有两类:
    • (1) 数据和信息相关的问题,即 “用户信息” “物品信息” “场景信息” 分别是什么?如何存储 、 更新和处理?
      • “数据和信息” 部分逐渐发展为推荐系统中融合了数据离线批处理、 实时流处理的数据流框架
    • (2) 推荐系统算法和模型相关的问题, 即推荐模型如何训练 、 如何预测 、 如何达成更好的推荐效果?
      • “算法和模型” 部分则进一步细化为推荐系统中集训练 (training)、评估 (evaluation) 、 部署 (deployment)、 线上推断 (online inference) 为一体的模型框架

在这里插入图片描述

推荐系统的数据部分

  • 推荐系统的数据部分 (如图 1-4 中米黄色部分所示) 主要负责 “用户” “物品” “场景” 的信息收集与处理。 在得到原始的数据信息后,推荐系统的数据处理系统会将原始数据进一步加工, 加工后的数据出口主要有三个:
    • (1) 生成推荐模型所需的样本数据, 用于算法模型的训练和评估
    • (2) 生成推荐模型服务 (model serving) 所需的 “特征”, 用于推荐系统的线上推断
    • (3) 生成系统监控 、商业智能 (Business Intelligence, BI) 系统所需的统计型数据

负责数据收集与处理的三种平台

  • 客户端及服务器端实时数据处理” “流处理平台准实时数据处理” “大数据平台离线数据处理
    • 实时性由强到弱递减的同时, 三种平台的海量数据处理能力则由弱到强。 因此, 一个成熟的推荐系统的数据流系统会将三者取长补短, 配合使用

推荐系统的模型部分

  • 模型的结构一般由 “召回层” “排序层” “补充策略与算法层” 组成
    • “召回层” 一般利用高效的召回规则、 算法或简单的模型, 快快速地将待推荐物品的候选集从十万、百万量级的规模减小到几千甚至几百量级的规模,避免将全部候选物品直接输入深度学习模型造成的计箕资源浪费和预测延迟问题
    • 排序层“ 利用排序模型对初筛的候选集进行精排序 (推荐系统产生效果的重点,也是业界和学界研究的重心)
    • 补充策略与算法层”,也被称为 “再排序层”,可以在将推荐列表返回用户之前, 为兼顾结果的 “多样性” “流行度” “新鲜度” 等指标, 结合一些补充的策略和算法对推荐列表进行一定的调整, 最终形成用户可见的推荐列表

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


模型训练

  • (1) 离线训练:利用全量样本和特征,使模型逼近全局最优点
  • (2) 在线更新:准实时地 “消化” 新的数据样本,更快地反映新的数据变化趋势,满足模型实时性的需求

模型评估

  • 为了评估推荐模型的效果,方便模型的迭代优化,推荐系统的模型部分提供了 “离线评估” 和 “线上 A/B 测试” 等多种评估模块,用得出的线下和线上评估指标, 指导下一步的模型迭代优化

参考文献

  • 《深度学习推荐系统》(王喆)
  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
音乐推荐系统是基于用户历史行为和个人兴趣偏好等信息,通过算法分析和预测用户的音乐需求,为用户推荐符合其兴趣的音乐。其架构思想主要包括以下几个方面: 1. 数据采集和处理:音乐推荐系统需要收集大量的用户数据,包括用户的听歌记录、评分、评论等信息,还需要获取音乐资源的元数据,如歌曲名、歌手、专辑、风格等信息。采集到的数据需要进行清洗、去重、标准化等预处理。 2. 特征提取和表示:音乐推荐系统的核心是提取和表示用户和音乐的特征。用户特征包括用户的历史行为、兴趣偏好、个人信息等;音乐特征包括歌曲的元数据、歌曲特征(如节奏、旋律、情感等)、歌曲间的相似度等。特征表示需要将数据转换为机器可处理的向量形式。 3. 模型训练和选择:音乐推荐系统需要根据用户和音乐的特征建立相应的模型,如基于内容的推荐、协同过滤推荐、深度学习推荐等。模型训练需要使用大量的数据和合适的算法,同时需要对模型进行评估和选择。 4. 推荐生成和展示:根据用户的历史行为和个人偏好,音乐推荐系统生成相应的音乐推荐结果,并将推荐结果以可视化的形式展示给用户,如推荐列表、个性化电台、歌单推荐等。 5. 实时性和可扩展性:音乐推荐系统需要具备实时性和可扩展性,能够在海量数据下快速响应用户需求,并支持高并发的访问。因此,推荐系统需要使用分布式系统架构,如Hadoop、Spark等,以及缓存技术、负载均衡等技术实现高效的推荐服务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值