推荐算法之粗排

一、概念

粗排(粗粒度排序)是推荐系统中连接召回与精排的核心环节,其核心目标是在召回阶段返回的海量候选集中筛选出高潜力候选,同时满足严苛的计算效率要求。

二、定位

推荐系统的典型链路为 召回 → 粗排 → 精排 → 重排。粗排介于召回与精排之间,其输入是召回阶段返回的候选集,输出是精排所需的候选集。至于粗排返回的候选集大小,则并没有严格的限制,需综合考虑召回数据量、应用场景等。

推荐系统的这种级联设计的本质是效率与效果的平衡:召回追求候选集的多样性和覆盖度,粗排通过初步筛选减少精排的计算压力,精排则聚焦精细化排序。粗排的作用主要可以归纳为下面几点:

  • 降低计算成本 :精排模型(如深度神经网络)对单个候选的计算耗时通常为毫秒级,若直接处理召回的万级候选,总耗时将超过线上服务的时延限制(通常要求<50ms)。粗排通过过滤低价值候选,将精排的计算量压缩至可接受范围。
  • 提升排序效果 :粗排并非简单的 "数量裁剪",而是通过模型预估用户偏好,保留高潜力候选,为精排提供更优质的输入。例如,电商场景中粗排可优先保留高点击率、高转化率的商品,避免精排被低质候选干扰。
  • 缓解样本选择偏差 :召回阶段的候选集可能存在严重的曝光偏差(仅包含历史曝光商品),粗排通过引入精排的后验信息(如点击率、转化率),可部分修正这种偏差,提升候选集的全域覆盖能力。

历史上,粗排的发展大致经历了四个阶段:

  • 规则驱动阶段(第一代):基于人工规则(如商品销量、类目热度)进行筛选,缺乏个性化且实时性差。
  • 线性模型阶段(第二代):采用逻辑回归(LR)、梯度提升树(GBDT)等模型,通过特征工程实现初步个性化,但表达能力有限。
  • 双塔模型阶段(第三代):基于深度神经网络的双塔结构(用户塔 + 物品塔),通过向量内积快速计算相似度,成为工业界主流方案。
  • 全连接模型阶段(第四代):以COLD模型为代表,通过轻量级全连接网络支持特征交叉,结合工程优化(如特征筛选、量化)实现效果与效率的突破。

三、主流技术

要理解粗排模型的设计逻辑,核心需紧扣其 "高吞吐量、低延迟、轻量级" 的核心诉求 ------ 既要快速筛选掉绝大多数不相关候选,又要避免漏过潜在优质候选。

1.机器学习模型

机器学习类模型的核心优势是**"极致轻量化"**:参数少、推理仅需简单线性/低阶计算,延迟可低至微秒级,能轻松支撑每秒百万级候选的筛选。缺点是泛化能力有限,难以捕捉复杂特征交互,但对粗排的 "快速过滤" 需求适配度极高。

1.1 逻辑回归LR

LR是最简单的线性分类模型,通过对特征向量做线性加权,再经sigmoid函数映射为[0,1]的推荐分数。其中,x是输入特征向量(如用户年龄、物品类别、历史点击次数等),w是特征权重,b是偏置项。模型本质是学习"哪些特征对推荐有效"(通过权重w体现)。

1.2 因子分解机FM

LR无法捕捉特征间的交互(如"用户年龄 = 25"与"物品类别=游戏"的组合效应),FM通过隐向量(Latent Vector) 解决这一问题。泛化能力优于LR,计算复杂度可控(若在粗排阶段使用FM,一般会设计轻量化的FM模型结构),训练成本低。

2.深度学习模型

深度学习类模型的核心优势是**"强泛化能力"**:能自动捕捉高阶非线性交互、甚至协同过滤信号(如用户-物品交互关系),筛选精度高于机器学习模型。但需严格控制模型复杂度(如浅层网络、简化结构),避免突破粗排的延迟上限。

2.1 MLP

MLP(仅包含 1~2 个隐藏层)输入为拼接后的特征向量(如用户特征 + 物品特征 + 上下文特征),通过线性变换 + 激活函数(如 ReLU)捕捉高阶非线性交互,输出推荐分数。泛化能力强于机器学习模型推理延迟可控

2.2 Wide&Deep

Wide & Deep的核心是"记忆(Memorization)+ 泛化(Generalization)"双路径,粗排场景中需对其简化以降低延迟。Deep路径 :用浅层MLP(1层隐藏层,64~128维),输入"泛化性特征"(如用户兴趣隐向量、物品embedding),负责捕捉 "用户潜在兴趣"(如用户喜欢篮球鞋,可能也喜欢运动袜)。兼顾"不漏选"和"精准筛" :Wide路径保证用户明确感兴趣的候选不被过滤(避免粗排"误杀"优质候选),Deep路径提升对长尾候选的泛化能力(避免只保留热门候选)。模型适配全量候选场景,无论是热门候选(依赖 Wide 路径)还是长尾候选(依赖 Deep 路径),均能有效覆盖。

2.3 GCN

LightGCN是GCN(图卷积网络)的简化版,针对"用户 - 物品交互图"设计,核心是通过1~2 层图卷积学习用户/物品的嵌入向量,无需非线性激活和特征变换。

  • 图结构:节点为"用户"和"物品",边为"用户 - 物品交互"(如点击、购买);
  • 图卷积操作:每个节点的嵌入向量 = 自身嵌入 + 邻域节点嵌入的平均(如用户嵌入 = 初始用户嵌入 + 其点击物品嵌入的平均);
  • 推荐分数:用户嵌入与物品嵌入的余弦相似度,作为推荐分数。

2.4 双塔模型

双塔模型是推荐系统粗排阶段的经典架构,其核心设计理念是将用户特征与物品特征解耦编码 ,通过低维向量的相似度快速筛选候选集,特别适合处理亿级规模的实时推荐场景。关于模型的原理和实现,可以参考这里,此处不再赘述。

2.5 COLD模型

COLD(Computing Power Cost-Aware Online and Lightweight Deep Pre-Ranking System)是阿里巴巴提出的第四代粗排模型,核心解决算力成本与模型复杂度的平衡问题,允许在粗排阶段使用复杂深度模型(如多层全连接网络),同时通过算法与系统协同设计将延迟控制在 10~20ms 以内,突破了传统双塔模型的表达瓶颈,实现了复杂深度模型在粗排阶段的落地。架构上,COLD模型的核心创新点主要有:

  • 引入 SE Block 动态计算特征重要性权重,结合 Top-K 特征选择策略,过滤噪声特征并保留关键交叉特征(如 "用户年龄 × 商品价格"),同时支持7层全连接网络捕捉高阶非线性交互;
  • 通过多级并行计算(查询分割 + 多线程特征拉取)、列计算结合SIMD指令提升缓存利用率,以及FP16低精度GPU加速(速度较FP32提升8倍),将复杂模型延迟控制在10~20ms。

四、评估指标

在推荐系统的粗排阶段,评估指标的核心设计目标是平衡"筛选准确性"与"推理效率"------ 既要确保粗排能从万级 / 十万级召回候选中高效筛选出尽可能多的优质样本(避免 "漏选" 优质候选,否则精排无法补救),又要保证模型推理速度足够快(支撑高吞吐场景),同时需间接对齐业务价值。

1 效果指标

粗排的核心任务是"初步排序 + 筛选",需优先保证"优质候选不被淘汰",因此排序效果指标更侧重"召回能力" 和 "粗排序顺序的合理性"(无需达到精排的极致精度,但需为精排提供高质量输入)。常用指标有精度、召回、F1、MAP和NDCG等。这里展开介绍下后面两个:

1.1 MAP

MAP 是"平均精度(AP)"的均值,其中AP衡量 "在不同召回截断位置(如前 100、前 200 个样本)的精确率的平均值",本质是将"召回顺序"纳入评估------ 即优质样本是否被粗排排在更靠前的位置(靠前的位置被选中的概率更高)。计算逻辑:

  • 对单个用户的候选列表,按粗排分数从高到低排序;
  • 遍历每个正样本的位置k,计算 "前k个样本的精确率";
  • 对所有正样本的 "前k精确率" 取平均,得到该用户的 AP;
  • 对所有用户的 AP 取平均,得到 MAP。

MAP适合粗排 "排序能力" 的对比:尤其当粗排模型从"线性模型"升级为"轻量深度学习模型"时,MAP可有效衡量排序能力的提升。

1.2 NDCG

归一化折损累积增益(NDCG, Normalized Discounted Cumulative Gain),考虑样本"价值差异"。NDCG 衡量"排序结果对用户价值的贡献",核心改进是NDCG中的正样本并非等价:不同正样本的价值不同(如 "下单" 样本价值>"点击" 样本,"完播 30 分钟" 样本价值>"完播 5 分钟" 样本);位置越靠后,价值折损越大(用户更可能关注靠前的推荐结果)。计算逻辑:

  • 折损累积增益DCG:对排序后的列表,按位置 i 计算每个样本的价值分,并按位置折损:,其中,k 为粗排筛选的截断位置。
  • 理想DCG:即IDCG,将样本按照从大到小排序后计算的DCG,即最优排序的最大可能DCG。
  • NDCG:DCG与IDCG的比值,归一化到0和1区间内,

NDCG适合 "样本价值有差异" 的业务场景:如电商推荐中,"高客单价下单" 样本比 "低客单价下单" 样本价值更高,NDCG 可优先保证高价值样本被粗排选中并排在靠前位置。

2 效率指标

粗排的核心定位是 "高效筛选",若推理速度慢、资源占用高,则失去了存在的意义(直接用精排处理所有召回候选即可)。效率类指标直接决定粗排能否支撑 "万级 / 十万级候选" 的高吞吐场景。主要的指标有推理延迟Latency、每秒查询率(QPS, Queries Per Second)、模型参数量与计算量(FLOPs),这里就不展开叙述了。

相关推荐
lucky_syq3 小时前
解锁特征工程:机器学习的秘密武器
人工智能·机器学习
ONE_Gua3 小时前
Wireshark常用过滤规则
前端·后端·数据挖掘
rengang663 小时前
10-支持向量机(SVM):讲解基于最大间隔原则的分类算法
人工智能·算法·机器学习·支持向量机
AndrewHZ4 小时前
【图像处理基石】暗光增强算法入门:从原理到实战(Python+OpenCV)
图像处理·python·opencv·算法·计算机视觉·cv·暗光增强
ccut 第一混4 小时前
c# 使用yolov5模型
人工智能·深度学习
lifallen5 小时前
从Apache Doris 学习 HyperLogLog
java·大数据·数据仓库·算法·apache
七元权5 小时前
论文阅读-FoundationStereo
论文阅读·深度学习·计算机视觉·零样本·基础模型·双目深度估计
智驱力人工智能5 小时前
使用手机检测的智能视觉分析技术与应用 加油站使用手机 玩手机检测
深度学习·算法·目标检测·智能手机·视觉检测·边缘计算
on_pluto_5 小时前
LLaMA: Open and Efficient Foundation Language Models 论文阅读
python·机器学习