clearwind

clearwind

首页
分类
登录 →
clearwind

clearwind

首页 分类
登录
  1. 首页
  2. 🚀AI
  3. 📈LangChain
  4. Netflix个性化和推荐的系统架构

Netflix个性化和推荐的系统架构

0
  • 📈LangChain
  • 发布于 2024-07-16
  • 73 次阅读
clearwind
clearwind

离线、近线和在线计算

在线计算可以更好地响应最近的事件和用户交互,但必须实时响应请求。这会限制所采用算法的计算复杂性以及可处理的数据量。这个实时响应的过程中,如果发生意外,比如说这个物品 ID 就没有相关的物品,那么这时候服务就需要降级,所谓的降级就是不能达到最好的效果了,但是不能低于最低要求,这里的最低要求就是必须要返回东西,不能开天窗。

于是,这就降级为取出热门排行榜返回。虽然不是个性化的相关结果,但是总比开天窗要好。这就是服务的可用性。

在线阶段还要实时地分发用户事件数据,就是当用户不断使用产品过程产生的行为数据,需要实时地上报给有关模块。这一部分也是需要实时的,比如用于防重复推荐的过滤。

离线计算对数据量和算法计算复杂性的限制较少,因为它以批处理方式运行,时间要求宽松。但是,由于未纳入最新数据,因此它在更新之间很容易变得陈旧。大多数推荐算法,实际上都是在离线阶段产生推荐结果的。离线阶段的推荐计算和模型训练,如果要用分布式框架,通常可以选择 Spark 等。

近线计算是这两种模式之间的折衷方案,在这种模式下,我们可以执行类似在线的计算,但不需要实时提供这些计算。从前面的架构图中也可以看出,这一层的数据来源是实时的行为事件队列,但是计算的结果并不是沿着输入数据的方向原路返回,而是进入了在线数据库中,得到用户真正发起请求时,再提供服务。

一个典型的近线计算任务是这样的:从事件队列中获取最新的一个或少许几个用户反馈行为,首先将这些用户已经反馈过的物品从离线推荐结果中剔除,进一步,用这几个反馈行为作为样本,以小批量梯度下降的优化方法去更新融合模型的参数。

这两个计算任务都不会也不需要立即对用户做出响应,也不必须在下一次用户请求时就产生效果,就是说当用户实时请求时,不需要去等待近线任务的最新结果,因为两者是异步的。

近线计算任务一个核心的组件就是流计算,因为它要处理的实时数据流。常用的流计算框架有 Storm,Spark Streaming,FLink 等

事件和数据分发系统需要如何处理不同类型的事件和数据

离线作业

离线作业.webp

运行个性化机器学习算法时,进行的大部分计算都可以离线完成。有两种主要类型的任务属于此类别:模型训练和中间或最终结果的批量计算。

在模型训练中,收集相关的现有数据并应用机器学习算法生成一组模型。大多数模型是以批处理模式离线训练,也有一些在线学习技术增量训练。

这两项任务都需要处理精炼数据,这些数据通常是通过运行数据库查询生成的。由于这些查询涉及大量数据,因此以分布式方式运行它们会大有裨益,这使得它们非常适合通过 Hive 在 Hadoop 上运行。查询完成后,需要一种发布结果数据的机制。

信号与模型

信号与模型.webp

无论在进行在线还是离线计算,都需要考虑算法如何处理三种输入:模型、数据和信号。模型通常是之前经过离线训练的参数的小文件。数据是之前处理过的信息,存储在某种数据库。这些数据来自实时服务,可以由用户相关信息组成,例如会员最近观看的内容,也可以由上下文数据(例如会话、设备、日期或时间)组成。

事件与数据分布

事件与发布.webp

区分数据和事件,尽管边界肯定很模糊。

将事件视为需要以尽可能少的延迟进行处理的时间敏感信息的小单元。这些事件被路由以触发后续操作或过程,例如更新近线结果集。

将数据视为更密集的信息单元,可能需要处理和存储以供以后使用。

在这里,延迟并不像信息质量和数量那么重要。当然,有些用户事件可以同时被视为事件和数据,因此可以发送到两个流。

推荐结果

推荐结果.webp

机器学习方法的目标是提供个性化推荐。这些推荐结果可以直接从之前计算的列表中提供,也可以通过在线算法即时生成。可以考虑使用两者的组合,其中大部分推荐都是离线计算的,通过使用实时信号的在线算法对列表进行后处理来增加一些新鲜度。

总结

层级

数据

服务

特点

约束

典型任务

举例

离线

非实时

非实时

1.可以处理大数据量

2.可以运行批量任务

3.低成本尝试多种算法

4.可加机器提升效率

1.无法及时捕获最新的用户兴趣

2.无法给用户最及时的推荐

1.批量机器学习算法

2.批量计算推荐结果

3.挖掘用户标签4.物品的内容分析

1.矩阵分解,学习得到用户隐因子向量和物品隐因子向量;

2.学习500棵GBDT决策树;

3.以GBDT输出作为特征学习了LR模型参数。

近线

实时

非实时

1.能捕捉到用户最新兴趣

2.能运行较复杂的学习算法

3.能比较及时给用户响应

1.能处理的数据量有限

2.部分依赖离线计算结果

3.和离线无缝结合有一定的复杂度

1.用最新事件补充召回推荐结果

2.小批量样本更新模型参数

1.用户新评分的电影计算相似电影补进离线推荐结果;2.根据最新浏览提取新的标签补充到用户标签中。

在线

实时

实时

1.对场景信息敏感

2.立即满足用户

3. 运行简单算法和逻辑

1.响应时间是硬要求

2.要准备降级服务的推荐结果

3.计算复杂度有限

1.过滤逻辑

2. 运营手段

3. 融合排序

4.多样性提升

1.取出近线阶段的推荐电影,及物品的内容特征,用户特征

2.运行GBDT模型得到500个新特征,运行LR模型输出融合排序;

3.过滤掉看过的,过滤掉已被删除的;

4.根据多样性要求去掉高度相似的电影,

5.强插一些当季运营活动需要的到指定位置

6.输出推荐结果。

标签: #flink 1 #spark 1 #clickhouse 1 #kafka 1 #Java 6
相关文章
基于 internlm2 和 LangChain 搭建你的知识库

基于 internlm2 和 LangChain 搭建你的知识库 2025-02-27 14:25

环境配置 internlm2 模型部署 创建虚拟环境 conda create -n deepseek_rag python=3.10 -y conda activate deepseek_rag 并在环境中安装运行 demo 所需要的依赖 # 升级pip python -m pip install

超长文本训练 2025-01-03 14:36

在自然语言处理(NLP)任务中,处理超长文本(通常指长度超过模型最大支持长度的文本)是一个常见的挑战。BERT等预训练模型通常具有固定的最大序列长度限制(例如,BERT-base的最大序列长度为512个标记)。当需要处理超过这个长度的文本时,需要采取特定的策略来确保模型能够有效地处理这些数据。 Be

数据集分类均衡问题及其解决方案 2024-12-26 21:58

数据集的类别均衡性对模型的性能有着至关重要的影响。当数据集中某些类别的样本数量远多于其他类别时,就会出现数据不均衡问题。这种不平衡可能导致模型在训练过程中偏向多数类,从而影响对少数类的预测性能。 问题描述 分类数据集统计 import pandas as pd # 读取CSV文件 csv_file

Quick start of LangChain

Quick start of LangChain 2024-12-24 23:39

本文内容 LangChain(大模型能力封装框架) 的基本使用 基于LangChain探索AGI时代原型 需提前安装环境依赖,以及设置环境变量,如果选择openai开放接口需要会上网 export OPENAI_API_KEY="b233095ff.00gIXhXyE8yNc3Hx" export

Netflix个性化和推荐的系统架构

Netflix个性化和推荐的系统架构 2024-07-16 22:00

离线、近线和在线计算 在线计算可以更好地响应最近的事件和用户交互,但必须实时响应请求。这会限制所采用算法的计算复杂性以及可处理的数据量。这个实时响应的过程中,如果发生意外,比如说这个物品 ID 就没有相关的物品,那么这时候服务就需要降级,所谓的降级就是不能达到最好的效果了,但是不能低于最低要求,这里

信息流架构

信息流架构 2024-07-16 20:15

整体框架 信息流,通常也叫作 feed,传统的信息流产品知识简单按照时间排序,而被推荐系统接管后的信息流逐渐成为主流,按照兴趣排序,也叫作“兴趣 feed”。 这张架构图划分成几个大的模块:日志收集、内容发布、机器学习、信息流服务、监控 日志收集,是所有排序训练的数据来源,要收集的最核心数据就是用户

目录
  • clearwind
  • 微信小程序

导航菜单

  • 首页
  • 分类
Copyright © 2024 your company All Rights Reserved. Powered by clearwind.
皖ICP备19023482号