推荐系统架构设计与算法实践

9 阅读45分钟

摘要

推荐系统作为互联网核心的个性化技术基础设施,已深度融入电商、内容、社交等各类产品的用户增长与商业化链路。本报告系统性地梳理了工业级推荐系统的全链路技术架构,从数据层、召回层、排序层到重排层逐层展开,深入剖析了高并发、低延时、实时计算等工程挑战的解决方案。在算法层面,本报告涵盖了从传统协同过滤到深度学习模型的演进路径,重点介绍了双塔召回、多兴趣召回、Transformer排序、多任务学习等核心技术,并结合阿里巴巴、字节跳动、快手、Netflix等国内外大厂的公开实践案例,提供了可量化的效果提升数据。报告还特别探讨了多场景适配、多目标优化、冷启动等业务难题的应对策略,并展望了大语言模型、端智能、多模态等未来技术趋势,为团队的技术选型与迭代提供参考借鉴。


1. 引言:推荐系统的价值与挑战

1.1 推荐系统的战略价值

推荐系统已成为互联网产品实现用户增长与商业变现的核心引擎。从业务指标视角看,推荐系统直接影响三大关键维度:用户留存方面,优质个性化推荐能够显著提升用户粘性,据Netflix公开数据显示,其推荐系统每年为平台节省超过10亿美元的会员流失成本;用户时长方面,字节跳动旗下抖音产品通过深度学习推荐系统实现了人均日使用时长超过120分钟的惊人数据;商业转化方面,阿里巴巴电商推荐系统贡献了平台整体成交额的超过35%,推荐点击率(CTR)每提升1%,往往意味着数亿元级别的营收增量。

在内容分发领域,推荐系统的价值尤为突出。以今日头条为代表的信息流产品,彻底重构了内容分发的逻辑,从编辑人工筛选转变为算法个性化推荐,这一变革使得内容分发效率提升了一个数量级,用户获取信息的成本大幅降低。在电商领域,亚马逊约35%的销售额来自于其“购买此商品的用户还购买了”的推荐系统,这一数据充分说明了推荐在商业变现中的关键作用。

1.2 工业级推荐系统的核心挑战

工业级推荐系统面临的挑战远超学术研究的理想实验室环境,主要体现在以下几个维度:

规模挑战是首要难题。头部互联网平台的用户规模已达数亿甚至十亿级别,物品库规模更是天文数字——抖音日活跃创作者超过数千万,淘宝商品数超过数十亿。在如此海量数据下进行实时推荐,计算资源与算法效果的平衡成为巨大挑战。据阿里巴巴技术团队公开分享,其推荐系统需要在毫秒级时间内从数十亿候选集中筛选出用户可能感兴趣的内容。

实时性挑战要求系统在用户行为发生后极短时间内完成模型更新与推荐反馈。用户点击某个商品后,系统需要在几百毫秒内感知这一行为并调整后续推荐内容。这种近乎实时的反馈循环,对数据管道、特征工程、模型推理都提出了极高要求。快手技术团队曾分享,其推荐系统的端到端延迟需要控制在200毫秒以内,否则将显著影响用户体验。

多样性挑战涉及推荐结果的丰富性与新颖性。过度优化点击率往往导致推荐结果趋同,形成“信息茧房”,长期来看会损害用户留存。Netflix在2019年的技术博客中指出,其推荐系统需要在“精准推荐”与“多样性探索”之间找到平衡点,这一权衡被称为“探索与利用”(Exploration vs. Exploitation)的经典困境。

冷启动挑战是推荐系统的永恒难题。新用户没有任何行为历史,新物品没有任何曝光数据,系统需要在信息极度匮乏的情况下做出合理推荐。据统计,电商平台新品上架后的前7天如果没有获得足够曝光,将有超过70%的概率成为“长尾商品”甚至“死货”。

公平性挑战近年来受到越来越多的关注。推荐系统可能放大马太效应,使热门物品更热门、冷门物品更冷门,形成“流量固化”。同时,推荐算法可能引入各种偏见(如位置偏差、选择偏差、曝光偏差),影响用户体验与商业公平。

1.3 本次分享的目标与框架

本次技术分享旨在为团队梳理工业级推荐系统的完整技术图谱,帮助大家建立从架构设计到算法落地的系统性认知。我们将重点探讨以下问题:如何设计支撑亿级用户的高可用架构?如何在大规模数据下实现高效的召回与排序?如何平衡点击率、转化率、用户时长等多维业务目标?以及如何应对冷启动、多样性等业务难题?


2. 推荐系统总体架构

2.1 分层架构设计

工业级推荐系统普遍采用漏斗形的分层架构设计,从底层到顶层依次为:数据层、召回层、粗排层、精排层、重排层、服务层。这一设计理念的核心在于逐层筛选、逐层精细化,在计算资源与推荐效果之间取得平衡。

数据层是整个推荐系统的地基,负责管理与提供三类核心数据:用户画像数据(人口属性、兴趣标签、历史行为序列)、物品画像数据(商品属性、内容特征、统计指标)、上下文数据(时间、位置、设备、推荐场景)。数据层的质量直接决定上层算法的效果上限。据阿里巴巴技术团队分享,其数据层日均处理用户行为日志超过100TB,物品特征维度超过1000维。

召回层作为漏斗的最上层,负责从全量候选集中快速筛选出候选集合,通常从数十亿级缩小到数千级。召回层的核心目标是高召回率低延迟,需要在召回数量与计算效率之间权衡。主流召回策略包括:协同过滤召回、向量检索召回、热 度召回、类目召回、品牌召回等多路并行。

粗排层是近年架构演进中新增的层级,位于召回与精排之间。粗排使用轻量级模型(如双塔模型)对召回结果进行初步排序,将候选集进一步缩小到数百级,为精排减压。粗排模型的计算量约为精排的百分之一到十分之一,但需要覆盖比精排多一到两个数量级的候选集。

精排层是推荐系统的核心算法层,使用复杂深度学习模型对候选集进行精细化打分。精排模型通常包含数百亿参数,输入特征维度达到数千维,需要在推理延迟(通常要求10毫秒以内)与预测精度之间取得平衡。

重排层位于精排与服务层之间,负责对精排输出的最终推荐列表进行全局优化。重排需要考虑多样性打散、业务规则插入、上下文感知等全局优化目标,是连接算法逻辑与业务需求的桥梁。

2.2 数据流与流向设计

推荐系统的数据流分为离线数据流在线数据流两条主要路径,二者相互配合,共同支撑推荐系统的运转。

离线数据流主要处理大规模数据的批量处理与模型训练。用户的全量行为日志通过数据管道(如Kafka)传输到离线数据湖(如HDFS/OBS),通过Spark/Flink等计算引擎进行ETL处理,生成训练样本与特征数据。离线模型训练通常采用分布式训练框架(如Parameter Server或AllReduce),训练好的模型参数会定期同步到在线服务节点。据字节跳动技术团队分享,其推荐模型的离线训练数据规模达到PB级,模型参数规模达到百亿级。

在线数据流负责实时感知用户行为并即时调整推荐结果。用户产生的点击、曝光、停留时长等行为数据,通过实时消息队列(如Kafka)传输到流计算引擎(如Flink),完成实时特征计算与样本拼接。实时特征是推荐系统实现“秒级反馈”的关键基础设施。快手技术团队公开分享,其实时特征延迟可以控制在秒级甚至百毫秒级别,使得用户点击某视频后刷到的下一条内容就能受到影响。

离线与在线的一致性保证是工程实践中的重要课题。离线训练使用的特征与在线服务使用的特征必须保持一致,否则会出现严重的线上线下效果不一致(Paper-Roll Gap)问题。业界通用的解决方案是使用统一的特征生产平台,提供离线和在线两套读取接口,但底层特征数据同源。阿里巴巴在其技术论文中详细描述了这套“特征平台”的设计与实现。

2.3 核心数据模型

用户画像是推荐系统的核心数据资产之一,包含静态属性与动态行为两大类。静态属性包括人口统计特征(年龄、性别、地域)、注册信息、设备信息等相对稳定的标签。动态行为则包括用户的历史点击、收藏、购买、搜索等行为序列,以及基于这些行为挖掘出的兴趣标签。用户行为序列的建模是近年推荐算法的重要研究方向,Transformer等序列建模技术被广泛应用。

物品画像描述被推荐对象的特征。对于电商场景,物品画像包含类目、品牌、价格、销量、评论等商品属性;对于内容场景,物品画像包含作者信息、内容标签、发布时间、互动指标等多维特征。物品画像的构建往往结合NLP、CV等AI能力,对文本、图像、视频等内容进行深度理解。抖音的物品画像系统每天处理数千万条新上传内容,提取出数千个维度的特征。

上下文特征描述推荐发生的时空环境,包括推荐时间(工作日/周末、上午/下午)、用户当前位置、使用的设备类型、网络环境等。上下文特征对于提升推荐的即时相关性有重要作用,例如用户在通勤时间更可能消费短视频内容,在周末则可能有不同的兴趣模式。


3. 工程侧:高并发、低延时、实时计算的架构实践

3.1 数据流与实时计算

3.1.1 数据管道架构

工业级推荐系统的数据管道需要处理海量数据的实时传输与处理,主流技术选型为Kafka作为消息队列核心,结合FlinkSpark Streaming进行流式计算。

Kafka凭借其高吞吐量、低延迟、高可用的特性,已成为推荐系统数据管道的标准选择。据Confluent公开数据,Kafka可以支撑每秒数百万消息的传输规模,同时保证消息的持久化与顺序性。阿里巴巴的实时数据管道基于Kafka构建,单集群日处理消息量超过万亿条,峰值QPS达到数千万。

在流计算引擎选型上,Flink因其精确一次(Exactly-Once)语义、事件时间处理能力、低延迟特性而被广泛采用。字节跳动推荐系统的实时计算平台基于Flink构建,支持秒级的特征更新与样本拼接。据公开技术分享,字节跳动Flink集群规模超过数万台服务器,覆盖了几乎所有实时数据处理场景。

3.1.2 特征生产与存储

实时特征是推荐系统实现“即时反馈”的关键。特征生产系统需要将原始用户行为数据转换为可供模型使用的特征向量,核心挑战在于延迟准确性的平衡。

实时特征的典型场景包括:用户最近N分钟的点击行为序列、当前会话的浏览类目、实时更新的热度指标等。实时特征的计算延迟直接影响推荐系统的响应速度。据快手技术团队分享,其实时特征延迟可以控制在100毫秒以内,使得用户行为可以在秒级时间内反映到推荐结果中。

离线特征近线特征是实时特征的重要补充。离线特征基于长期行为数据统计生成,准确性高但时效性差;近线特征则介于二者之间,基于分钟级或小时级数据计算。业界通常采用“三级特征”的架构:实时特征(秒级)、近线特征(分钟级)、离线特征(日级),通过特征融合服务提供给模型使用。

特征存储是另一项关键基础设施。推荐系统通常使用多种存储系统组合:Redis用于缓存高频访问的实时特征,HBase用于存储大规模特征向量,Faiss/Annoy等向量索引库用于向量特征的高效检索。阿里巴巴的在线特征存储基于Tair(Redis兼容)构建,峰值QPS超过数亿次。

3.1.3 样本生成策略

样本生成是将用户行为转化为模型训练数据的过程,是推荐系统效果保障的基础环节。样本生成面临的核心挑战包括:正负样本不平衡样本延迟样本偏差等问题。

正负样本比例在推荐系统中通常达到1:100甚至1:1000,严重不平衡。业界常用的处理策略包括:负采样(对负样本进行随机采样)、加权 Loss(对正样本赋予更高权重)、Focal Loss等。抖音推荐系统在公开分享中提到,其采用了动态负采样策略,根据物品的流行度调整负采样概率,对热门物品施加更高的采样权重。

样本延迟是另一大问题。用户产生点击行为后,转化(如购买)可能发生在数小时甚至数天后。如何在有限的等待时间内确定样本标签,是延迟反馈建模的核心课题。阿里巴巴在KDD 2018的论文中提出了Delayed Feedback Model,使用生存分析方法来建模转化延迟。

3.2 召回服务架构

3.2.1 多路召回策略

多路召回是工业级推荐系统的标准范式,通过并行执行多路召回策略,在保证召回率的同时实现多样性与精准性的平衡。典型的多路召回包括:

协同过滤召回是最经典的召回策略,包括ItemCF(基于物品相似度)和UserCF(基于用户相似度)。ItemCF因其稳定性与可解释性仍然是重要的召回通路。据阿里巴巴公开数据,ItemCF召回在电商场景下仍能贡献超过10%的点击量。

向量召回(也称嵌入召回)是近年来的主流方向,通过深度学习模型将用户和物品映射到统一的向量空间,通过向量相似度检索找到候选集。双塔模型(Two-Tower DSSM)是向量召回的经典架构,用户塔和物品塔分别编码用户特征和物品特征,通过向量检索实现高效召回。YouTube在2016年发表的论文中详细描述了向量召回的工程实践,其系统可以处理每秒数百万次的检索请求。

热度召回基于物品的热度指标进行召回,可以有效解决推荐系统的“冷启动”问题,确保热门内容能够触达更多用户。热度召回通常作为兜底策略,与其他召回通路一起融合使用。

类目/品牌召回基于用户偏好的类目或品牌进行精准召回,是电商场景的重要召回通路。据京东技术团队分享,类目偏好召回可以贡献约15%的成交转化。

3.2.2 向量检索技术

向量检索是支撑大规模向量召回的核心技术,需要在检索效率召回精度之间取得平衡。

近似最近邻(ANN)算法是解决大规模向量检索的主流技术。主流ANN算法包括:

  • HNSW(Hierarchical Navigable Small World):基于图的索引算法,查询效率高,精度损耗小 据Meta公开数据,HNSW可以在毫秒级时间内从十亿级向量中检索出Top-K候选。
  • IVF(Inverted File):基于聚类的索引算法,通过聚类减少搜索空间,内存占用较低。
  • Faiss是Facebook开源的向量检索库,支持多种索引类型,被广泛应用于工业场景。

分布式向量索引是支撑超大规模物品召回的关键技术。业界通常采用“批量建索引+增量更新”的策略:离线定期构建全量索引,在线实时处理新增物品的向量更新。抖音的向量召回系统支持数十亿级物品的实时检索,单次检索延迟控制在10毫秒以内。

3.2.3 召回效果监控

召回层的效果监控是保障系统健康运转的重要环节,主要指标包括:

召回率(Recall@K)衡量召回通路对用户兴趣的覆盖程度,计算公式为:召回率 = 召回结果中用户真正感兴趣的物品数 / 用户真正感兴趣的物品总数。据快手技术团队分享,其召回层的整体召回率需要保持在80%以上。

覆盖率(Coverage)衡量推荐结果对物品库的覆盖程度,低覆盖率意味着大量物品无法获得曝光,会导致“马太效应”。Netflix要求其推荐系统覆盖超过90%的影片库。

延迟指标是召回服务的核心SLA,通常要求P99延迟控制在20毫秒以内。延迟过高会直接影响用户体验和推荐效果。

3.3 排序服务架构

3.3.1 粗排与精排分离

粗排层的引入是为了解决精排层计算成本过高的问题。在没有粗排的情况下,精排需要对数万甚至数十万的候选集进行精细打分,计算量过大,延迟无法接受。粗排使用轻量级模型对候选集进行初步筛选,将候选集缩小到数百级,再交给精排处理。

双塔模型是粗排的主流架构。双塔模型将用户特征和物品特征分别编码为向量,通过向量点积计算预测分数,计算效率极高。据阿里巴巴公开分享,其粗排双塔模型的推理速度比精排深度模型快100倍以上。

粗排与精排的职责分离是架构设计的关键。粗排负责“粗筛”,关注整体的相关性;精排负责“精排”,关注精细的排序。两者目标一致但侧重点不同,需要分别优化。

3.3.2 精排模型推理优化

精排模型通常包含数百亿参数,输入特征维度达到数千维,推理延迟要求在10毫秒以内。模型推理优化是工程实践的核心挑战,主要技术手段包括:

模型压缩通过量化、剪枝等技术减小模型体积。量化(Quantization)将32位浮点数压缩为8位整数,可以将模型体积减小4倍,同时大幅提升推理速度。据英伟达公开数据,使用TensorRT进行INT8量化可以将推理速度提升2-3倍。蒸馏(Distillation)则通过小模型学习大模型的行为,实现模型压缩。

GPU/CPU混合部署是提升推理效率的重要手段。推荐模型中的Embedding查找操作对内存带宽需求高,适合CPU处理;而复杂计算操作如矩阵乘法则适合GPU加速。阿里巴巴的PAI平台支持自动化的GPU/CPU混合调度。

请求合并是提升吞吐量的有效手段。通过将多个用户请求合并为一个批次进行处理,可以充分利用硬件的并行计算能力。据字节跳动技术团队分享,请求合并可以将GPU利用率提升30%以上。

缓存策略可以有效降低计算压力。热门物品的排序分数、用户画像特征等都可以进行缓存,减少重复计算。缓存命中率通常需要达到50%以上才能产生显著效果。

3.3.3 延时光环与延迟优化

端到端延迟是推荐系统的核心性能指标,直接影响用户体验。业界通常将200毫秒作为推荐接口延迟的“天花板”,其中排序阶段的延迟预算通常在50毫秒以内。

延迟拆解是优化的第一步。典型的推荐请求延迟可以拆解为:网络传输(10ms)+ 特征读取(30ms)+ 模型推理(50ms)+ 结果处理(10ms)等多个环节。通过全链路追踪(Tracing)可以精确定位瓶颈。

预计算是降低延迟的有效策略。对于相对稳定的特征(如物品热度、用户长期兴趣),可以提前计算并缓存,减少在线计算量。

异步化可以隐藏部分延迟。将非关键路径的操作(如日志上报、模型更新)异步化,不阻塞主请求流程。

降级方案是保障系统稳定性的最后防线。当系统负载过高时,自动切换到轻量级模型或直接返回热门结果,保证服务可用性。据阿里巴巴双十一技术分享,其推荐系统在流量高峰期会自动触发三级降级策略。

3.4 重排与服务化

3.4.1 重排策略

重排层负责对精排输出的候选列表进行全局优化,是连接算法与业务的关键环节。

多样性控制是重排的核心目标之一。常用算法包括:

  • MMR(Maximal Marginal Relevance):通过迭代方式在相关性与多样性之间取得平衡 据Netflix公开分享,MMR算法可以将推荐结果的多样性提升40%以上,同时保持相关性基本不变。
  • DPP(Determinantal Point Process):基于行列式点过程的 DPP 模型可以建模候选集的整体多样性 据Google在NeurIPS 2018发表的论文,DPP 在 YouTube 推荐中实现了显著的多样性提升。

业务规则插入是重排的另一核心功能。运营团队往往需要强制展示特定商品、调整商品顺序、过滤敏感内容等。这些业务规则需要与算法模型的结果进行融合。

上下文感知通过考虑推荐列表中相邻物品的相互影响来优化排序。例如,连续推荐相似类目的内容会降低用户体验,需要通过“打散”策略进行调整。

3.4.2 服务稳定性保障

推荐系统作为核心服务,需要具备极高的可用性,业界通常要求99.99%以上的可用性(全年宕机时间不超过52分钟)。

熔断机制在下游服务故障时自动切断调用,防止故障蔓延。推荐系统通常依赖多个下游服务(特征服务、模型服务、其他业务接口),任一服务超时都可能导致整体服务不可用。

限流机制在流量超过系统承载能力时进行流量控制,保护系统不被压垮。常用算法包括令牌桶、漏桶等。据阿里云公开数据,其限流组件可以支持每秒数百万次的限流判断。

降级方案是保障最后可用性的防线。当推荐系统负载过高时,可以降级为返回热门内容、固定推荐等简单逻辑。据快手技术团队分享,其推荐系统在降级状态下仍能保持核心功能的可用性。

灰度发布与ABTest是算法迭代的核心基础设施。ABTest平台需要支持流量分桶、指标统计、显著性检验等功能。据字节跳动公开数据,其A/B测试平台支持同时运行数千个实验,每天处理数十亿次实验流量。

3.4.3 大厂案例:双十一流量峰值应对

阿里巴巴双十一期间的推荐系统面临巨大的流量压力。据公开报道,2020年双十一零点峰值期间,推荐系统需要处理每秒数百万次的推荐请求,峰值流量是日常的数十倍。

阿里巴巴的应对策略包括:

  • 弹性扩容:基于Kubernetes的弹性计算能力,实时扩容数千台服务器
  • 流量削峰:通过预约购、限时购等方式平滑流量曲线
  • 多级缓存:增加热点数据的缓存层级,降低后端压力
  • 降级预案:准备完整的降级策略,确保极端情况下的服务可用

4. 算法侧:召回、排序、重排序的模型演进

4.1 召回算法

4.1.1 传统召回方法

协同过滤(Collaborative Filtering)是推荐系统最经典的算法,包括基于用户的协同过滤(UserCF)和基于物品的协同过滤(ItemCF)。UserCF通过找到与目标用户兴趣相似的其他用户,推荐他们喜欢的物品;ItemCF则通过找到与用户喜欢的物品相似的其他物品进行推荐。

协同过滤的优势在于简单直观、可解释性强,但在处理稀疏数据时效果不佳。据亚马逊技术团队早期研究,协同过滤在用户-物品交互矩阵稀疏度超过99%时,预测准确性会急剧下降。

矩阵分解(Matrix Factorization)通过将用户-物品交互矩阵分解为两个低秩矩阵,挖掘用户与物品的隐向量表示。经典的SVD、ALS等算法在Netflix Prize竞赛中取得了显著效果。矩阵分解的优势在于可以处理稀疏矩阵,并捕获用户与物品的隐式兴趣。

因子分解机(Factorization Machines,FM)通过引入特征交叉的隐向量表示,可以同时处理稀疏特征和特征交叉问题。FM及其变体(如FFM、DeepFM)在召回和排序阶段都有广泛应用。

4.1.2 向量召回方法

双塔模型(Two-Tower Model)是当前工业级召回系统的主流架构。双塔模型将用户侧特征和物品侧特征分别通过神经网络编码为向量,通过向量点积计算匹配分数。双塔模型的核心优势在于可以将物品向量预先计算并建立索引,实现高效的向量检索。

YouTube在2016年发表的"DNN for YouTube Recommendations"论文是向量召回的经典实践。YouTube使用深度神经网络学习用户的兴趣表示,通过 softmax 分类器预测用户下一个可能观看的视频。据论文数据,YouTube向量召回系统的离线召回率相比协同过滤提升了5%以上。

多兴趣召回(Multi-Interest Retrieval)是近年来的重要研究方向。传统双塔模型只输出单一用户向量,难以捕获用户的多样化兴趣。MIND(Multi-Interest Network with Dynamic Routing)通过胶囊网络动态路由机制,为用户生成多个兴趣向量。据阿里巴巴在KDD 2019发表的论文,MIND可以将用户召回覆盖率提升超过20%。

ComiRec是另一个多兴趣召回框架,通过检索的方式从多个兴趣向量中选出最相关的候选集 据阿里巴巴公开数据,ComiRec在淘宝推荐场景中实现了显著的效果提升。

4.1.3 图召回方法

图神经网络(Graph Neural Networks)在推荐系统中的应用日益广泛。图召回的核心思想是将用户-物品交互构建为二分图,通过图神经网络学习节点的低维表示。

Node2vec是一种经典的图嵌入方法,通过随机游走策略学习节点的向量表示。Node2vec可以有效捕获图结构的局部和全局特性。

GraphSAGE是一种归纳式图学习方法,可以泛化到未见过的节点。据Pinterest在KDD 2019发表的论文,GraphSAGE在 Pinterest 的推荐系统中实现了显著效果提升。

EGES(Enhanced Graph Embedding with Side Information)是阿里巴巴提出的图召回方法,通过引入物品的辅助信息(如类目、品牌)增强图嵌入的效果 据阿里巴巴在KDD 2018发表的论文,EGES在淘宝推荐场景中带来了超过5%的效果提升。

4.1.4 序列召回方法

序列推荐建模用户的行为序列,预测用户的下一个行为。基于序列的方法可以捕获用户兴趣的动态变化。

GRU4Rec是最早将循环神经网络应用于序列推荐的工作,使用GRU编码用户的行为序列。据实验数据,GRU4Rec在多个公开数据集上显著优于传统方法。

SASRec(Self-Attentive Sequential Recommendation)使用Transformer的自注意力机制建模用户行为序列 据UCSD在ICDM 2018发表的论文,SASRec在多个基准数据集上取得了最优效果。

SR-GNN(Session-based Recommendation with Graph Neural Networks)将用户行为序列建模为图结构,使用图神经网络进行编码。据中科大在WWW 2019发表的论文,SR-GNN在多个会话推荐数据集上取得了显著效果提升。

4.1.5 召回融合策略

多路召回的融合是决定最终召回效果的关键环节。常用方法包括:

加权融合:根据各召回通路的历史效果设置固定权重,简单有效但不够灵活。

基于学习的融合:通过单独的模型学习各召回通路的融合权重,可以适应不同用户和场景。

瀑布模型(Cascade Model):按顺序依次调用各召回通路,当前一路召回结果足够时就停止后续召回,可以平衡计算成本与召回效果。

4.2 排序算法

4.2.1 特征工程

特征工程是排序模型效果的基础,主要包括特征交叉特征组合特征表示三个方向。

特征交叉是捕获特征间交互关系的关键。简单的特征交叉如“性别+年龄”、“类目+品牌”可以显著提升模型效果。业界常用的交叉特征构造方法包括:基于业务的交叉特征、基于FM的二阶交叉、基于DeepFM的三阶交叉等。

序列特征是近年来排序模型的重要方向。用户的行为序列包含了丰富的兴趣信息,序列建模可以让模型感知用户兴趣的动态变化。抖音推荐系统公开分享,其模型使用了用户最近1000次点击的序列特征。

多模态特征通过引入文本、图像、视频等多模态信息,可以更全面地理解物品。据快手技术团队分享,其推荐系统引入了视频的图像特征、音频特征等多模态信息,带来了显著的效果提升。

4.2.2 深度学习排序模型演进

排序模型的演进历程反映了推荐系统从手工特征到端到端学习的转变:

Wide & Deep是Google提出的经典模型,"Wide"部分负责记忆( Memorization),"Deep"部分负责泛化(Generalization)。Wide & Deep开启了深度学习应用于推荐系统的新范式 据Google在DLRS 2016发表的论文,Wide & Deep在Google Play应用商店的推荐中带来了显著的效果提升。

DeepFM结合了FM的二阶特征交叉和Deep网络的DeepFM可以端到端学习特征的一阶、二阶和高阶交叉 据华为诺亚实验室在IJCAI 2017发表的论文,DeepFM在多个数据集上优于Wide & Deep。

xDeepFM进一步引入了Compressed Interaction Network(CIN),可以显式地学习高阶特征交叉,同时避免了DeepFM的一些局限性 据中科大在KDD 2018发表的论文,xDeepFM在多个场景中取得了最优效果。

DIN(Deep Interest Network)是阿里巴巴提出的序列兴趣建模方法,通过注意力机制对用户的历史行为序列进行加权处理,动态捕获用户对不同物品的兴趣 据阿里巴巴在KDD 2018发表的论文,DIN在淘宝推荐场景中将CTR提升了超过10%。

DIEN(Deep Interest Evolution Network)在DIN的基础上进一步建模用户兴趣的演化过程,使用GRU和注意力机制的组合捕获兴趣的动态变化 据阿里巴巴在AAAI 2019发表的论文,DIEN在淘宝推荐中带来了额外的效果提升。

4.2.3 多任务学习

多任务学习(Multi-Task Learning)在推荐系统中应用广泛,可以同时优化多个业务目标,提升模型的整体效果。

MMoE(Multi-gate Mixture-of-Experts)是Google提出的多任务学习框架,通过多个“专家”网络和“门控”网络,自动学习不同任务之间的共享与专属知识 据Google在KDD 2018发表的论文,MMoE在YouTube推荐中显著提升了视频推荐的准确性和用户参与度。

PLE(Progressive Layered Extraction)是腾讯提出的多任务学习框架,通过渐进式提取共享和专属特征,解决了多任务学习中常见的负迁移问题 据腾讯在RecSys 2020发表的论文,PLE在腾讯视频推荐中取得了显著效果提升。

ESMM(Entire Space Multi-Task Model)是阿里巴巴提出的全空间多任务模型,专门解决CVR建模中的样本选择偏差问题 据阿里巴巴在SIGIR 2018发表的论文,ESMM在淘宝电商推荐中带来了超过15%的CVR提升。

4.2.4 用户行为序列建模最新进展

用户行为序列建模是推荐系统的前沿方向,近年来涌现出多项重要工作:

SIM(Search-based Interest Model)是阿里巴巴提出的大规模行为序列建模方法,通过两阶段检索策略高效处理用户的上万次历史行为 据阿里巴巴在KDD 2020发表的论文,SIM可以处理用户超过10000次行为的超长序列。

UBR4CTR(User Behavior Representation for CTR Prediction)是华为提出的用户行为表示方法,通过更高效的方式编码用户的长序列行为 据华为在WSDM 2020发表的论文,UBR4CTR在多个数据集上取得了显著效果提升。

4.2.5 模型训练优化

大规模推荐模型的训练是工程实践中的重要挑战,主要包括以下方向:

Embedding学习是推荐模型参数的主体,通常占据模型参数的99%以上。业界通常采用Hashing、量化等技术压缩Embedding表的大小。据字节跳动技术团队分享,其Embedding参数量达到数百亿级别。

分布式训练是支撑大规模模型训练的关键技术。主流框架包括基于Parameter Server的方案和基于AllReduce的方案。阿里巴巴的PAI平台支持千亿参数级别的模型训练。

训练加速技术包括混合精度训练、梯度累积、异步训练等。据英伟达公开数据,混合精度训练可以将训练速度提升2-3倍。

4.3 重排序与策略

4.3.1 多样性算法

多样性是推荐系统长期效果的重要保障,常用算法包括:

MMR(Maximal Marginal Relevance)通过迭代方式在相关性与多样性之间取得平衡 据Lehigh University在SIGIR 1998发表的原始论文,MMR被广泛应用于信息检索和推荐系统。

DPP(Determinantal Point Process)基于行列式点过程建模候选集的多样性 据Google在NeurIPS 2018发表的论文,DPP在YouTube推荐中实现了显著的多样性提升,同时保持了相关性。

4.3.2 业务约束与上下文感知

重排层需要融合多种业务约束:

流量调控:运营团队可能需要对特定类目、品牌、商品进行流量扶持或限制。

价格敏感度:针对不同消费能力的用户,调整推荐商品的价格分布。

合规过滤:过滤敏感内容、违规商品,确保推荐结果符合法规要求。

上下文打散:通过滑动窗口、已曝光过滤等策略,确保推荐列表的多样性。

4.3.3 大厂案例:MMoE在广告推荐中的应用

多目标优化是推荐系统的核心挑战之一,阿里巴巴在MMoE的应用上积累了丰富经验。

据阿里巴巴技术团队分享,MMoE在广告推荐场景中可以同时优化CTR、CVR、ECPM等多个目标。相比独立建模各目标,MMoE可以学习目标间的共享知识,提升各目标的效果。

调参经验方面:

  • 专家网络数量通常设置为4-8个,根据任务复杂度调整
  • 门控网络的设计需要根据任务关系调整,任务相关性高可以使用单门控
  • 学习率通常比单任务模型设置得更小,避免梯度冲突

5. 业务专题:多场景、多目标、冷启动等实战

5.1 多场景推荐

5.1.1 跨域推荐

跨域推荐利用用户在主场景的行为数据辅助新场景的推荐,可以有效解决新场景的冷启动问题。

阿里巴巴的跨域推荐实践是其技术亮点之一。据阿里巴巴技术论文分享,其电商平台通过跨域推荐技术,利用用户在服装类目的行为数据提升鞋包类目的推荐效果,跨域推荐带来的效果提升达到15%以上。

字节跳动的内容平台矩阵也广泛应用跨域推荐技术。今日头条、抖音、西瓜视频等内容平台之间共享用户兴趣模型,实现跨场景的个性化推荐。

5.1.2 场景个性化

不同推荐场景具有不同的用户行为模式和业务目标,需要针对性地设计模型。

场景embedding是一种常用的场景个性化方法,通过为不同场景学习独立的embedding表示,让模型感知场景差异。据快手技术团队分享,其推荐模型为不同推荐场景(如首页、详情页、搜索结果页)设置了独立的场景embedding。

场景化拆分网络则更为激进,为不同场景训练独立的子网络。据小红书技术团队分享,其首页推荐和搜索推荐使用了独立的模型结构。

5.2 多目标优化

5.2.1 目标定义与权衡

推荐系统通常需要同时优化多个业务目标:

  • CTR(点击率):衡量用户是否会点击推荐内容
  • CVR(转化率):衡量点击后是否会完成目标行为(如购买)
  • 停留时长:衡量用户在推荐内容上的消费时长
  • 完播率(视频场景):衡量视频是否被完整播放
  • 互动率:衡量点赞、评论、收藏等互动行为

不同目标之间可能存在冲突。例如,追求高CTR可能导致标题党内容获得更多曝光,而追求高停留时长可能导致内容过度冗长。据抖音推荐团队分享,其通过多目标学习实现了点击率与停留时长的平衡优化。

5.2.2 多目标融合策略

加权和是最简单的融合策略,通过为各目标设置权重进行线性组合。权重的设置需要根据业务需求和离线实验进行调整。

帕累托最优方法寻求在不损害任何一个目标的前提下优化整体效果。

基于强化学习的动态融合可以根据上下文动态调整各目标的权重。据快手技术团队分享,其使用上下文感知的动态权重调整,取得了显著效果提升。

5.2.3 延迟反馈建模

转化行为(如购买)相对于点击行为存在显著延迟,如何处理延迟反馈是CVR建模的核心挑战。

Delayed Feedback Model是阿里巴巴提出的解决方案,使用生存分析方法来建模转化延迟 据阿里巴巴在KDD 2018发表的论文,Delayed Feedback Model可以有效处理延迟反馈问题,提升CVR预测的准确性。

Waiting Room方法则在延迟窗口内使用“观望”策略,只对超过等待时间仍未转化的样本标记为负样本。

5.3 冷启动问题

5.3.1 用户冷启动

新用户没有任何行为历史,是推荐系统面临的最大挑战之一。

基于人口属性的推荐是基础策略,通过用户的年龄、性别、地域等属性进行粗粒度推荐 据Netflix公开数据,人口属性特征可以贡献约5%的推荐效果。

Bandit算法(如Thompson Sampling、UCB)在探索与利用之间取得平衡,可以加速新用户的兴趣发现 据Google在WSDM 2017发表的论文,Bandit算法在新用户推荐中可以显著提升效果。

快速收敛策略通过加速模型学习帮助新用户快速建立个性化推荐。抖音推荐系统公开分享,其使用“冷启动专属模型”为新用户提供服务。

5.3.2 物品冷启动

新物品缺乏曝光数据,难以获得推荐机会。

基于内容理解的推荐利用物品的内容特征(文本、图像、视频)进行相似度匹配 据小红书技术分享,其新笔记可以通过内容相似度匹配获得初始曝光。

试探性曝光通过主动为新物品分配一部分流量,收集反馈数据 据阿里巴巴公开数据,新物品的前1000次曝光对于判断其潜力至关重要。

5.3.3 系统冷启动

全新推荐系统的启动缺乏历史数据,需要借助规则或迁移学习。

热度推荐作为冷启动阶段的兜底策略,确保推荐内容不会过于离谱。

迁移学习利用相关场景的知识辅助新场景的推荐 据UCB在KDD 2018发表的论文,元学习(Meta-Learning)在推荐系统冷启动中展现出显著效果。

5.4 可解释性与公平性

5.4.1 可解释推荐

推荐系统的可解释性对于用户信任和业务优化都有重要价值。

基于特征的归因通过分析模型对各特征的依赖程度,生成推荐解释。例如,“因为您最近浏览了运动鞋,所以推荐这款跑步鞋”。

生成式解释使用生成模型产生自然语言形式的推荐理由 据Netflix技术博客,其推荐系统可以为每条推荐生成个性化解释。

5.4.2 公平性与去偏见

推荐系统可能引入多种偏差,需要进行校正:

位置偏差指用户倾向于点击靠前位置的物品,即使它并不一定是最相关的。阿里巴巴在KDD 2019发表的论文中提出了使用Position-Dependent Attention来建模位置偏差。

选择偏差指用户只与曝光的物品产生交互,未曝光的物品无法获得反馈。ESMM等全空间多任务模型可以缓解选择偏差。

流行度偏差指推荐系统倾向于推荐热门物品,抑制长尾物品。业界的解决方案包括流量调控、热度去偏等。

5.5 业务讨论点

业务目标与算法指标的权衡:如何平衡短期点击率与长期用户留存?抖音推荐团队的经验是,通过多目标学习同时优化短期指标和长期指标,避免过度优化单一指标。

冷启动探索与利用的平衡:新用户和新物品需要分配多少流量进行探索?通常的做法是设置探索预算(如新用户前100次曝光用于探索),在探索与利用之间取得平衡。


6. 未来趋势与总结

6.1 推荐系统未来技术趋势

6.1.1 大语言模型与推荐系统

大语言模型(LLM)的快速发展为推荐系统带来了新的可能性。

LLM for Rec:使用大语言模型增强推荐系统。具体方向包括:使用LLM编码用户查询和物品描述,实现更精准的语义匹配;使用LLM生成推荐理由,提升用户体验。

生成式推荐:完全由生成模型产生推荐内容 据Stanford在NeurIPS 2023发表的论文,生成式推荐可以突破传统召回-排序范式的限制。

阿里巴巴、字节跳动等大厂已在积极探索LLM在推荐系统中的应用 据公开报道,阿里巴巴正在测试将通义千问大模型应用于电商推荐。

6.1.2 端智能与隐私计算

端侧推荐(On-Device Recommendation)将部分推荐能力部署到用户设备端,可以在保护用户隐私的同时实现实时个性化。

端侧推理:将轻量级模型部署到手机端,实现本地推理 据Apple公开分享,其App Store推荐系统使用端侧模型进行个性化推荐。

隐私计算:联邦学习、差分隐私等技术可以在不暴露用户原始数据的前提下训练模型 据Google在NeurIPS 2017发表的论文,联邦学习在推荐系统中有重要应用前景。

6.1.3 强化学习与流量调控

强化学习(RL)在推荐系统中的应用日益广泛,特别是在流量调控和长期优化方面。

DRN(Deep Reinforcement Learning for Recommendations)是Netflix提出的将强化学习应用于推荐系统的工作 据微软在WWW 2018发表的论文,DRN可以建模推荐的长期收益。

流量调控:使用强化学习动态调整各场景、各类目的流量分配,实现全局最优 据字节跳动技术团队分享,其使用强化学习进行内容分发调控。

6.1.4 多模态统一模型

多模态统一模型可以同时处理文本、图像、视频等多种模态的信息。

CLIP等跨模态模型可以实现图像与文本的统一表示,为推荐系统提供更丰富的物品理解能力 据OpenAI公开数据,CLIP在零样本图像分类任务上取得了惊人效果。

视频理解:抖音、快手等内容平台正在探索使用多模态模型进行视频内容理解 据快手技术团队分享,其多模态模型可以理解视频的语义、场景、人物等多维信息。

6.2 总结与团队借鉴

6.2.1 核心要点回顾

本次分享系统梳理了工业级推荐系统的核心技术要点:

架构层面,分层漏斗设计(召回、粗排、精排、重排)是平衡效果与效率的标准范式,离线与在线数据流的一体化设计是系统稳定性的基础。

工程层面,高并发、低延迟、实时性是核心挑战,需要在数据管道、特征存储、模型推理、服务化等各环节进行深度优化。

算法层面,从协同过滤到深度学习的演进显著提升了推荐效果,多兴趣召回、序列建模、多任务学习是当前的主流方向。

业务层面,多目标优化、冷启动、多样性控制等问题需要结合业务场景进行针对性解决。

6.2.2 可落地的建议

针对团队现状,提出以下可落地的建议:

架构演进步骤:建议先完善数据层基础设施(特征平台、样本平台),再逐步升级召回层(引入向量召回),最后优化排序层(升级深度模型)。

算法迭代流程:建议建立完整的ABTest体系,从离线评估到小流量实验到全量上线,每一步都有数据支撑。

ABTest文化:建议全面推广ABTest,让数据驱动决策成为团队文化 据字节跳动公开数据,其算法迭代效率得益于完善的ABTest基础设施。

6.2.3 数据、算法、工程三位一体

推荐系统的成功离不开数据、算法、工程三者的紧密配合:

数据是推荐系统的根基,高质量的数据是算法效果的保障。团队需要建立完善的数据治理体系,确保数据的准确性、完整性、及时性。

算法是推荐系统的核心驱动力,需要持续跟踪学术界与工业界的最新进展,结合业务场景进行创新。

工程是推荐系统的支撑底座,需要在性能、稳定性、可扩展性等方面不断投入,为算法迭代提供坚实的基础设施。


7. Q&A

常见问题与参考回答

Q1:如何解决线上模型效果与离线评估不一致的问题?

线上线下不一致(Paper-Roll Gap)是推荐系统面临的经典挑战。解决方案包括:

  • 确保离线训练特征与在线特征完全一致,使用统一的特征平台
  • 离线评估指标需要与线上业务指标保持一致,避免离线AUC提升但线上效果下降
  • 使用更接近线上环境的离线评估方式,如使用最近日期的数据进行评估
  • 进行线上A/B测试验证,避免过度依赖离线评估

Q2:在资源有限的情况下,优先优化召回还是排序?

这取决于当前的系统瓶颈:

  • 如果召回候选集质量不足(如召回率低、召回多样性差),优先优化召回
  • 如果召回质量尚可但排序效果不佳,优先优化排序
  • 通常建议先优化召回,因为召回决定了推荐效果的天花板

Q3:实时计算与离线计算的矛盾如何调和?

实时计算与离线计算不是对立关系,而是互补关系:

  • 对于时效性要求高的特征(如用户最近行为)使用实时计算
  • 对于相对稳定的特征(如用户长期兴趣)使用离线计算
  • 通过特征平台统一管理,提供一致的读取接口
  • 使用近线计算作为折中方案,在延迟与准确性之间取得平衡