推荐引擎系统架构

2023-10-26

     本文从互联网收集并整理了推荐系统的架构,其中包括一些大公司的推荐系统框架(数据流存储、计算、模型应用),可以参考这些资料,取长补短,最后根据自己的业务需求,技术选型来设计相应的框架。后续持续更新并收集。。。

界面UI那一块包含3块东西:

   1) 通过一定方式展示推荐物品(物品标题、缩略图、简介等);

   2) 给的推荐理由;

   3) 数据反馈改进个性化推荐;

关于用户数据的存放地方:

   1)数据库/缓存用来实时取数据;

   2) hdfs文件上面;

抽象出来的三种推荐方式

 

       推荐引擎的构建来源于不同的数据源(也就是用户的特征有很多种类,例如统计的、行为的、主题的)+不同的推荐模型算法,推荐引擎的架构可以试多样化的(实时推荐的+离线推荐的),然后融合推荐结果(人工规则+模型结果),融合方式多样的,有线性加权的或者切换式的等。

A模块负责用户各类型特征的收集,B模块的相关表是根据图3中的推荐引擎来生成的,B模块的输出推荐结果用来C模块的输入,中间经过过滤模块(用户已经产生行为的物品,非候选物品,业务方提供的物品黑名单等),排名模块也根据预设定的推荐目标来制定,最后推荐解释的生成(这是可能是最容易忽视,但很关键的一环,微信的好友推荐游戏,这一解释已经胜过后台的算法作用了)

 

      HULU的推荐系统

      

       

总结:这个也就跟图3有点类似了,葫芦的推荐系统,至少在他blog中写的比较简单。更多的是对推荐系统在线部分的一种描述,离线部分我猜想也是通过分布式计算或者不同的计算方式将算法产生的数据存储进入一种介质中,供推荐系统在线部分调用。系统的整个流程是这样的,首先获取用户的行为,包括(watch、subscribe、vote),这样行为会到后台获取show-show对应的推荐数据。同时这些行为也会产生对应的topic,系统也会根据topic到后台获取topic-show对应的推荐数据。两种数据进行混合,然后经过fliter、explanation、ranking这一系列过程,最后生成用户看到的推荐数据。

 

     淘宝的推荐系统(详细跟简单版)

       总结:淘宝的推荐系统,描述了推荐引擎搭建的整体架构,包括离线的分布式计算和存储、监控、数据统计和分析、实验平台等。给我们搭建推荐引擎提供了很好的建议。整体流程大致这样。通过后台的分布式计算,将算法产生的算法结果数据存储进入一种介质中,首推hbase。然后,通过一种叫做云梯的机制将算法结果推入中间层介质中,供推荐系统在线部分调用。在线部分提供引擎和实验分流,用户的行为将存储进入hadoop中,数据统计分析平台由hive来搭建,主要用来分析和统计hadoop中的用户行为log。这张图不仅讲了,推荐系统的架构流程,也讲了跟这个平台有关系的人,是怎么介入的,我觉得提供的信息可很好的参考。

 

    Netflix的推荐系统

   总结:netflix的推荐系统,描述了推荐引擎搭建的整体架构,采用了三种计算方式的结合。整体流程:用户通过UI产生事件跟行为,然后分发给离线(我理解的是按天存储)、近线存储(不提供历史,存储当天用户实时行为。不知道理解是否有误),离线的计算利用离线的数据建好模型供实时调用,近线的计算利用用户的实时行为计算得出规则供实时调用,最后在线的计算通过前两种方式来得到最终的推荐结果,关键问题,就是如何以无缝方式结合、管理在线和离线计算过程,当然找到这些要求之间恰当的平衡并不容易,需要深思熟虑的需求分析,细心的技术选择,战略性的推荐算法分解,最终才能为客户达成最佳的结果。

 

 优酷的推荐系统

       

备注:上图来至easyhadoop举办的技术沙龙中优酷数据挖掘工程师的演讲,有关详细信息请移步 http://virtual.51cto.com/exp/Hadoop_20130330/index.html#top。作者在演讲中讲的一些"干货"跟推荐议题是很有价值的,下图简单描述。

模型前数据准备(理解数据源,用户,物品)

 

 

 

 

 

模型策略

 

 

 

“无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里可以跳转到教程。”

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

推荐引擎系统架构 的相关文章

  • 教你如何构建 Linux 内核

    介绍 我不会告诉你怎么在自己的电脑上去构建 安装一个定制化的 Linux 内核 这样的资料太多了 它们会对你有帮助 本文会告诉你当你在内核源码路径里敲下make 时会发生什么 当我刚刚开始学习内核代码时 Makefile 是我打开的第一个文
  • C语言中函数指针、指针函数、结构体中的函数指针的用法和区别

    一 指针函数 定义 指针函数 简单的来说 就是一个返回指针的函数 其本质是一个函数 而该函数的返回值是一个指针 声明格式为 类型标识符 函数名 参数表 这似乎并不难理解 再进一步描述一下 看看下面这个函数声明 int fun int x i
  • OSI七层协议模型及其协议

    文章目录 一 OSI七层模型是什么 其协议有哪些 二 TCP IP四层协议 TCP IP五层协议 OSI七层协议是什么 一 OSI七层模型是什么 其协议有哪些 二 TCP IP四层协议 TCP IP五层协议 OSI七层协议是什么 一 1 O

随机推荐

  • php如何处理高并发请求

    PHP 处理高并发请求的方法 使用异步框架 通过使用异步处理方式 可以有效地降低 PHP 处理请求的响应时间 避免因为 IO 操作而导致的等待阻塞 常用的异步框架有ReactPHP和Swoole等 使用缓存 使用缓存可以减少每个请求都需要访
  • Open3D——RGBD图转化为点云(pcd)并显示

    1 用Open3D分别读取RGB图片和深度图片 彩色图 深度图 2 把Open3D中的RGBD图片转化pcd格式并储存 3 显示点云 直接看代码 Open3D www open3d org The MIT License MIT See l
  • 五款单按键开关机电路图

    转载 https blog csdn net shileiwu0505 article details 114401137 一 单按键开关机电路图 本例电路可实现通过按一次按键S1实现开机 再按一次S1实现关机的功能 整个电路的工作过程 电
  • 详解 TS 中的子类型兼容性

    简介 在写 TypeScript 代码时经常遇到类型检查不通过的问题 这些问题根据编译器给出的错误提示以及修改建议多数可以快速修复 本文讲解的内容是编译器进行类型检查时的兼容性相关检查规则 这些规则在 TypeScript 语言背后默默发挥
  • 刷脸支付用户可以摆脱对手机介质的依赖

    支付宝与微信的刷脸支付设备落地体量约在10万台左右 同时云闪付也在广州 杭州等七个城市陆续上线了 刷脸付 从安装数量看 刷脸设备的总体落地效果理想 现在商家对使用扫码支付服务具有很强的依赖性 且担心刷脸支付因为技术与道德问题而遭遇不必要的麻
  • 【uni-app】响应式单位rpx

    单位 rpx是响应式px rpx是一种根据屏幕宽度自适应的动态单位 以750宽的屏幕为基准 750rpx正好是屏幕的宽度 屏幕变宽 rpx实际显示效果会等比放大 但在App端和h5端 屏幕宽度达到960px时 默认将按照375px的屏幕宽度
  • linux增加nfs的inode,使用NFS时出现nfs_inode_cache占用内存过高问题的解决

    使用NFS时出现nfs inode cache占用内存过高问题的解决 来源 IT165收集 发布日期 2014 04 14 20 52 06 一 现象 运行了使用NFS文件系统的应用程序后 内存缓慢泄漏 最后导致整个服务器的内存全部耗尽 系
  • 向量微积分基础

    本文首发在我的个人博客 https jlice top p 7kemt 欢迎大家前去参观 么么哒 机器学习里经常需要用到向量微积分 向量微积分其实并不难 但大学数学一般不提 导致在看机器学习的一些推导时常常感觉疑惑 机器学习里经常用到标量和
  • python3 华为推送系统接入

    只是后台对接华为推送服务接口对接 前端集成还是请参考官方文档 根据AppID和AppSecret 获取请求token 根据token发送http请求 获取token 请注意token的有效时间 不避免频繁获取 def get access
  • 基于深度学习的小学语文“输出驱动”教学研究课题方案

    目录 一 课题研究的背景与意义 二 课题研究理论依据 三 国内外研究情况
  • CheckStyle使用手册

    介绍 CheckStyle是SourceForge下的一个项目 提供了一个帮助JAVA开发人员遵守某些编码规范的工具 它能够自动化代码规范检查过程 从 而使得开发人员从这项重要 但是枯燥的任务中解脱出来 CheckStyle默认提供一下主要
  • 用VC 6.0实现串行通信的三种方法

    摘要 本文介绍了在Windows平台下串行通信的实现机制 讨论了根据不同的条件用Visual C 设计串行通信程序的三种方法 并结合实际 实现对温度数据的接收监控 在实验室和工业应用中 串口是常用的计算机与外部串行设备之间的数据传输通道 由
  • 数据挖掘常用的基本技术,主要有哪些?

    1 统计学 统计学虽然是一门 古老的 学科 但它依然是最基本的数据挖掘技术 特别是多元统计分析 如判别分析 主成分分析 因子分析 相关分析 多元回归分析等 2 聚类分析和模式识别 聚类分析主要是根据事物的特征对其进行聚类或分类 即所谓物以类
  • 【转】多层级的makefile编写——递归调用makefile

    转自 多层级的makefile编写 递归调用makefile wangyuling1234567890的专栏 博客频道 CSDN NET http blog csdn net wangyuling1234567890 article det
  • 测试框架pytest教程(7)实现 xunit 风格的setup

    pytest支持setup和teardown 对于使用unittest和nose框架的用户来说对这些很熟悉 但是在pytest可以使用功能更强大的fixture来实现固定装置 模块级别 如果单个模块中有多个测试函数和测试类 您可以选择实现以
  • 计算机网络相关知识点

    计算机网络知识点 1 流量单位换算 2 概念和单位换算 3 计算机网络概述 4 例题 本文参考资料一 GitHub上的博客CS Notes 本文参考资料二 百度文库计算机网络知识点文档 1 流量单位换算 计算机中表示容量的单位有B KB M
  • MySQL5.7 下载安装

    一 下载 尽量使用压缩包解压缩方式安装 压缩包的解压后配置下环境变量就能使用 如果使用安装程序 msi安装程序 安装 卸载起来会比较麻烦 下载地址链接 各版本下载链接 二 安装 1 解压缩 下载的zip压缩包解压缩 我的mysql解压缩安装
  • AttributeError: ‘str‘ object has no attribute ‘parse‘

    今天 使用python提取版本号 pip3 install packaging from packaging import version A 3 5 2 version parse A 发现报错 AttributeError str ob
  • golang开发:类库篇(三)命令行工具cli的使用

    为什么要使用命令行 觉得这个问题不应该列出来 又觉得如果初次进行WEB开发的话 可能会觉得所有的东西都可以使用API去做 会觉得命令行没有必要 其实 一个生产的项目命令行是绕不过去的 比如运营需要导出报表 统计下付费用户 服务不稳定修改下订
  • 推荐引擎系统架构

    本文从互联网收集并整理了推荐系统的架构 其中包括一些大公司的推荐系统框架 数据流存储 计算 模型应用 可以参考这些资料 取长补短 最后根据自己的业务需求 技术选型来设计相应的框架 后续持续更新并收集 界面UI那一块包含3块东西 1 通过一定