个性化推荐系统 - 01简述

article/2025/7/1 8:12:37

前言

在互联网发展的早期,内容比较匮乏,不论在资讯,电商,还是广告行业。那个阶段诞生了搜索引擎。解决了信息查找的问题。随着互联网迅速发展起来,互联网上面的内容几何式增长。用户获取信息的途径不再困难。怎么样在海量的信息中找到用户感兴趣的内容,就是我们现在要解决的问题了。推荐系统就应运而生了。从最早的千篇一律。然后到物以类聚,人以群分的推荐。到现在的千人千面,实时推荐。本文主要介绍了电商推荐系统的一些基础架构和基础概念。本文主要介绍的推荐系统的系统工程。其他依赖模块都简略概括

总架构图

推荐系统是基于大数据系统之上的。需要使用到用户的行为数据,训练模型。

推荐系统总架构图

应用入口

目前电商中,基本每个场景都有推荐系统的功能。比如:首页,商品详情页,分类,搜索,活动,购物车等等。
虽然每个场景都有推荐模块,但是各个场景又是不一样的。

  • 首页场景的推荐比较综合,新品推荐,爆款推荐,品牌推荐等等。
  • 商品详情页推荐,偏向于以商品推荐商品。推荐相似商品,相关商品,看了又看等等
  • 分类场景,向用户推荐偏好的分类,品牌等等
  • 搜索场景,向用户推荐搜索词,在搜索的基础上做推荐
  • 购物车场景,也是基于商品推商品。

目前电商平台一般都有APP,PC,H5,微信小程序等多种接入方式,不同的接入方式在推荐内容上面也会有一些差别。

推荐系统

本文介绍的推荐系统是一个分布式推荐系统。支持各种类型的推荐业务。系统主要由七个子系统构成。
接入层,调度层,abtest,召回层,粗排层,精排层以及规则层。不同的推荐业务。
根据业务需求,选择走其中的N层。
本系统对外提供HTTP接口。方便各类前端业务接入。系统内部使用基于tcp长连接的内部协议。提高性能。

接入层

接入层是整个分布式推荐系统的入口网关,是整个推荐系统的对外门户,也是整个系统最坚实的后盾,主要工作简介:

  • 安全校验,屏蔽非法请求
  • 容灾,当下游内部系统超时或者处理失败。返回容灾结果
  • 限流,按照场景,调用方,业务进行限流。
  • 协议转换,将外部HTTP请求转成内部协议,以及将内部返回的响应转换成HTTP协议

接入层是整个系统种要求稳定性最高的系统。自身绝对不允许有问题。就算下游系统全部挂掉。也依然需要提供对外的容灾服务。一般情况下,对于核心场景。都会去准备一些核心的容灾数据,如果下游请求失败。走核心的容灾数据返回。非核心场景会利用之前的成功请求来容灾。

调度层

调度层负责协调内部各子系统的运行。当系统流量突增时(双十一)并对下游系统进行保护。其主要工作简介:

  • 请求ABTEST系统,获取当前流量需要执行的路径。如果ABTEST挂掉了,需要对ABTEST进行容灾
  • 请求召回层,根据ABTEST返回的参数,选择对应的具体召回层子域进行请求,获取推荐的候选集。
  • 请求粗排层,将上一步的结果,根据ABTEST返回的参数,选择对应的具体粗排层子域进行请求,将推荐的候选集快速排序,取出TopN。
  • 请求精排层,将上一步的结果,根据ABTEST返回的参数,选择对应的具体精排层子域进行请求,将推荐的候选集进行精细排序。
  • 请求规则层,将上一步的结果,根据ABTEST返回的参数,选择对应的具体规则层子域进行请求,将推荐的候选集进行规则处理。

其中针对召回层做了更精细的保护逻辑。如果一个场景需要走召回层。那么这个场景的输入一般都是一些简单的条件,比如用户信息,商品信息,品牌信息。需要通过这些信息,取召回相应业务的商品列表。如果这一步失败的话。那就意味着,整个请求失败。所以针对召回层做了容灾处理。保证每个流量都尽可能有返回。

ABTEST

ABTEST是用来做AB实验的分流系统。同时也提供配置服务器的功能。为算法,业务场景提供丰富的实验功能,其主要工作简介:

  • 提供稳定的实验分流。同一个设备(不是每个请求都有用户id),在实验周期内稳定的落到一个分支中
  • 提供分层实验支持。在推荐系统中,一次请求需要经过召回层,粗排层,精排层,规则层中的一层或多层
  • 提供人群分流。某些推荐场景可能需要区分新客和老客,男性和女性等,对精准的人群是做实验
  • 提供实验对齐功能。在多个不同场景的实验中,有写场景需要确保同一个用户落到的分支对齐
  • 提供实验洗牌功能。实验组按照某个周期洗牌按天,周,月等等。防止因为长时间不洗牌造成马太效应
  • 提供条件分流功能。支持自定义条件参数进行分流。比如终端,省份等等。
  • 提供配置服务功能。在不同的分支中提供不同的参数。支持自定义灵活配置。

ABTEST是推荐系统中的核心基础服务。为推荐效果的优化方向提供指导。摒弃拍脑袋决定,用数据说话。万物皆可ABT。算法迭代升级的过程中。一个新算法上线不知道是正向还是负向。需要用ABTEST,分出一个小分支作为实验组。和现有的基线版本对比。如果效果好(点击率,转化率,人均UV金额等等),就把实验组的流量放大。如果效果不好就需要减少流量或者关闭实验。ABTEST的作用就是保证每次优化迭代,都至少不能比当前差。

粗排层

粗排层,是将召回层的返回或者请求中的海量商品。进行粗选。选出用户可能感兴趣的TopN商品,然后给精排层排序,其主要工作简介:

  • 提供简单的过滤筛选功能。比如库存打压(无库存商品需要打压),商品去重(去掉一些重复的商品)等
  • 提供按照运维规则粗选功能。根据运营需求,将一些主推商品前置,保证能进入到精排中等等
  • 提供按照算法模型粗排功能。使用一些高性能的算法模型,对大量进行粗排

粗排层的作用从大量商品中,将用户可能感兴趣的商品前置。并且将其中一些不合适的商品打压掉。提供一些简单的运营需求的支持。为精排商品做截断。粗排层一般需要处理的商品列表在5000+。而精排层处理能力有限只能处理2500+左右的商品。因此需要粗排层做前置筛选。

精排层

精排层,对上游传下来的商品列表进行精排。使用的算法也是多种多样的有机器学习的也有深度学习的。比如LR,SVM,GBDT,CNN,DIN等等。其主要工作简介:

  • 提供效果更好的算法排序模型(相对于粗排层)
  • 针对不同场景,提供不同类型的算法模型排序
  • 针对不同人群,提供不同类型的算法模型排序

精排层的作用是依靠各种机器学习和深度学习的算法模型。去精排商品。好卖热卖的商品。未必是每个人都喜欢的商品。把最合适的商品展示给用户,同时也能解决大量商品无法得到曝光和售卖的机会。

规则层

规则层,针对上游返回的商品列表进行一些规则调整。其主要工作简介:

  • 执行商务的运营规则,比如固定(将指定的商品,品牌固定到指定位置)
  • 执行打压规则,比如曝光打压(同一个商品对同一个用户曝光很多次,但是用户没有行为的需要打压)。库存打压(无库存的商品,或者库存低于一定程度的商品需要适度打压等)
  • 执行用户已购商品的打压。针对不同的商品类型和购买周期打压。
  • 执行打散功能。比如品牌打散,类目打散。然结果看起来比较自然
  • 执行紧急的一些过滤置顶功能。比如快速下架某些品牌等

规则层主要作用就是解决一些精排层(机器学习和深度学习)不是很好解决或者解决不好的问题。让最终呈现给用户看的商品看起来更舒适(不会都是一个品牌或者一个分类,特定场景除外)。当一些紧急突发事故出现的时候。可以通过规则层来做一些调整解决。比如紧急下线某品牌。在某些情况下需要出来的商品没有出来。但是短时间内又找不到问题等等。

数据层

数据层,存放大数据系统处理后的各类供推荐使用的数据。推荐系统的各子系统需要对其进行读写。算法模型进行预估排序时,需要实时获取商品和用户的属性信息。接入层,调度层需要对召回层的返回进行剪枝缓存。以供容灾使用。大数据实时和离线处理的结果,会按照算法和推荐业务的需求存储在数据层。数据层是推荐系统的基石。没有数据无从推荐。怎么样做稳定,跨机房容灾,防止断电,断网就是数据层需要保证的。一般推荐系统的数据层使用最多的是nosql。

离线平台

离线平台负责日常处理的海量数据。将不同类型,不同格式的数据通过ETL入仓。落到hdfs,数据库,nosql,数据仓库。为大数据数据产品提供数据支持。相对实时平台来说。离线的任务处理的耗时比周期都比较长。时效性比较差一点。推荐算法平台训练模型,需要使用到离线平台的用户行为相关的数据

实时平台

实时平台通过Storm,Spark,Flink等实时处理平台,实时处理日志数据。推荐系统中需要使用的数据都是比较实时的。比如在做曝光打压中,就需要比较实时的知道。当前这个用户曝光和点击过的商品。模型训练也是一样。需要实时获取当前一段时间比如5分钟内的用户行为增量。然后去训练模型迭代。用户画像方面也需要实时的生成。比如一个新客购买了一个商品之后,就需要马上变成老客表示。下次推荐的时候就需要用老客的方式推荐或者展示老客的价格等等。数据越实时。推荐的效果相对来说会越好

机器学习平台

机器学习平台,包含了目前通用的一些机器学习和深度学习框架。算法同学通过在机器学习平台上,调整和优化算法模型和参数。算法模型依赖于离线平台和实时平台的数据。当模型实时生成出来之后。就会按照模型的使用场景,推送到推荐系统里面的对应的子系统中。动态加载。

运维平台

运维平台,为推荐系统提供发布,监控,运维支持。实时监控推荐场景流量。及时发现和解决问题。对线上各子域进行监控。对容量进行评估。对线上异常(流量,硬件,效果,容量)进行实时告警。针对ABTEST实验系统进行效果统计,提供不同实验的效果对比,让算法迭代升级更安全可控。同时还需要对离线和实时的数据进行监控。不仅仅是监控数据任务的执行成功与否,同时还需要对数据质量进行监控。

其他

本人从事互联网分布式系统开发10年。精力了某大型电商平台的推荐系统从无到有。从单机应用到分布式应用的,从单一的推荐排序,到搜索,分类,推荐排序一体化的构建过程。后续会将推荐系统各模块逐一详解。也会陆续更新一些代码在github。更新文章在自己的个人博客中。欢迎大家关注互粉

作者:sylar-yin
个人主页: https://www.sylar.top
github: https://github.com/sylar-yin/sylar
微信公众号: sylar技术博客
sylar技术博客


http://chatgpt.dhexx.cn/article/JExfEQgY.shtml

相关文章

4个方面,系统总结个性化推荐系统

作者:Placeless 全文共 7393 字 13 图,阅读需要 16 分钟 ———— / BEGIN / ———— 现在的人们面对信息过载问题日益严重,好的个性化推荐将能够很好的提升用户体验,提高用户使用产品完成任务的效率,更好的留住用户&…

推荐系统基础(2):个性化推荐系统简述

1.推荐系统含义、目标 推荐系统根据用户的历史、社交、上下文环境等信息去判断用户当前感兴趣的内容。 推荐系统的业务: 物料组装:生产广告,实现文案、图片等内容的个性化物料召回:在大量内容中召回一个子集作为推荐的内容物料…

CSDN个性化推荐系统-负反馈测试

文章目录 前言一、uc不感兴趣标签过滤测试1.uc不感兴趣标签获取(uc_unlike_tag_list)1.1个人中心界面1.2从标签中可以发现什么?1.3与研发确认点1.4设计开发1.5接口获取结果 2.推荐流文章标签获取(tag_list)2.1部分代码2.2基本标签校验2.3基本标签校验结果 3.推荐流u…

个性化推荐系统设计(2.1)——推荐算法介绍

协同过滤算法 协同过滤(Collaborative filtering, CF)算法是目前个性化推荐系统比较流行的算法之一。 协同算法分为两个基本算法:基于用户的协同过滤(UserCF)和基于项目的协同过滤(ItemCF)。 基于属性的推荐算法 基于…

[推荐系统]基于个性化推荐系统研究与实现(1)

目 录 一、搜索引擎与推荐系统 二、推荐系统原理与算法 2.1 Jaccard系数 2.2 余弦相似度 三、数据定向爬取及电影数据集 3.1 爬取近七日天气预报数据存入DB数据库,分为五步完成。 3.2 爬取豆瓣电影数据集存入CSV文件,分四步。 3.3 电影&#xf…

如何支持研发对CSDN个性化推荐系统重构

目录 大地图工具构建数据治理保持发布重视测试小结引用 一个以内容服务为主的软件,它的推荐系统在数据侧对软件产生着举足轻重的作用。数据的三个方面决定了这个内容软件的档次。 数据的质量好坏数据和用户需求的相关性好坏数据的层次体系好坏 通常,我…

智能个性化推荐系统设计

推荐系统构成 * 召回层 - 对海量的数据进行召回 * 排序层 - 对召回后的数据进行排序,排序结果返回给用户 推荐系统架构 基于物品的推荐系统架构 基于用户的推荐系统架构

个性化推荐系统设计(4.1)——案例分析

在过去的十年中,神经网络已经取得了巨大的飞跃。如今,神经网络已经得以广泛应用,并逐渐取代传统的机器学习方法。 接下来,我要介绍一下YouTube如何使用深度学习方法来做个性化推荐。 由于体量庞大、动态库和各种观察不到的外部因素…

141.如何个性化推荐系统设计-1

141.1 什么是个性化推荐系统? 个性化推荐系统就是根据用户的历史,社交关系,兴趣点,上下文环境等信息去判断用户当前需要或潜在感兴趣的内容的一类应用。大数据时代,我们的生活的方方面面都出现了信息过载的问题&#…

下一代个性化推荐系统

本文结合技术及社会需求发展的大背景,讲述了当前推荐系统的价值及所面临的挑战,并指出了下一代个性化推荐系统的设计思路及需要注意的问题。 作为个性化推荐系统核心的协同过滤(Collabora-tive Filtering)算法,是Goldb…

基于大数据的个性化推荐系统

随着互联网时代的发展和大数据时代的到来,人们逐渐从信息匮乏的时代走入了信息过载的时代。为了让用户从海量信息中高效地获取自己所需的信息,推荐系统应运而生。 推荐系统的主要任务就是联系用户和信息,它一方面帮助用户发现对自己有价值的信息,另一方面让信息能够展现在…

CSDN 个性化推荐系统的设计和演进

个性化推荐项目 个性化推荐的设计和演进项目概览项目梳理依赖管理实现代码的重构和改进持续演化 个性化推荐的设计和演进 CSDN 的个性化推荐系统,是从既有的推荐项目中剥离出来的一个子项目,这个项目随后移交到了我们AI组。在近一年的时间内&#xff0c…

【个性化推荐系统】简介

个性化推荐系统-简介 1. 推荐系统简介2. 推荐系统产生背景3. 推荐系统的作用4. 推荐系统和Web项目的区别 1. 推荐系统简介 ​ 个性化推荐 (推荐系统) 经历了多年的发展,已经成为互联网产品的标配,也是AI成功落地的分支之一,在电商(淘宝/京东…

个性化推荐系统研究综述

从最初接触个性化推荐系统已过去六天。今天是第七天,完全可以对前六日的学习做出复盘。推荐系统并没有如同网络上那般盛传的玄秘深晦,而是直白到令人一眼看穿。 本文从六个层面总结个性化推荐系统: 在用户建模上,详细总结了用户…

个性化推荐系统实践应用

个性化推荐已经成为现代人们生活的一部分, “猜你喜欢”、“相关阅读”你一定并不陌生。计算机如何做到对用户投其所好?企业在做个性化推荐时要如何精准把握用户兴趣?如何解决冷启动问题?如何避免推荐结果的单调与重复&#xff1f…

新闻个性化推荐系统

新闻个性化推荐系统 一、绪论及背景1.1、绪论1.2、背景1.3、发展历史 二、需求分析2.1、功能需求2.1.1、用户功能需求2.1.2、运营功能需求2.1.3、算法功能需求 2.2、非功能需求2.2.1、性能需求2.2.2、准确性需求2.2.3、稳定性需求2.2.4、可靠性需求 三、详细设计3.1、系统结构设…

【推荐系统】什么是好的推荐系统?个性化和非个性化推荐

最近在写一些关于推荐系统的介绍,找了不少案例及资料,总觉得不够具体及深入,没有一些可作为基础及科普类,于是萌生自己来写一篇试试。 定义:推荐系统是信息过滤系统的子类,旨在预测用户对产品或服务的“评…

个性推荐①——系统总结个性化推荐系统

个性推荐系列目录: 个性推荐②—基于用户协同过滤算法原及优化方案 个性推荐③—基于物品的协同过滤算法及优化方案 本文是整理于个性推荐经典之作《推荐系统实战》,将会以十个大家最想问的问题,揭开个性化推荐系统的神秘面纱(文…

个性化推荐算法(推荐系统)概要

读者读完本文后,你会知道每类范式常用的算法有哪些、实现的思路是什么、以及常用的应用场景。本文也可以作为读者落地推荐算法到真实推荐场景的参考指南。 一、推荐算法与产品介绍 什么是推荐系统? 在介绍推荐算法之前需要先介绍一下什么是信息过载。…

深度解析京东个性化推荐系统

向AI转型的程序员都关注了这个号👇👇👇 人工智能大数据与深度学习 公众号:datayx 作者简介: fisherman,时任推荐部门推荐系统负责人,负责推荐部门的架构设计及相关研发工作。Davidxiaozhi&…