小红书算法岗面经合集:PLE 与多目标建模、广告算法与排序手撕
- 轮次
- 多轮面试合集
- 时间
- 2026-10
- 来源
- 牛客网
《面试题目》
面经 01 · 小红书 算法岗(2026-02-05)
- 怎么做的特征处理,怎么设计的分数权重?
- 怎么想到调整位置编码?和常规 Transformer 里的位置编码有什么不同之处?
- 哪一个方法是项目拔点的关键?你能否解释一下原因?
- 行为序列中的噪声有哪些过滤或处理手段?
- 手撕:最长公共子序列
面经 02 · 小红书 算法岗(2026-01-11)
- 如果新增一个收藏的指标,应该如何加在 PLE 模型中?
- 介绍一下 ESMM(包括后续改进)。
- 如何做 Dropout?
- 其他归一化的方式还了解哪些?
- 介绍一下 PLE,比 MMoE 好在哪?
- 了解广告算法吗?
- 介绍一下广告算法的利益均衡。
- 了解广告算法计费方式吗?
- 介绍一下广告算法的其他链路。
- 介绍一下双塔模型的结构和样本。
- 讲一遍你知道的所有排序算法。
- 讲解一下快速排序最优和最差的情况。
- 如果遇到最差情况,更换哪一种排序算法可以解决?
- 手撕:快速排序
面经 03 · 小红书 算法岗(2026-01-11)
- PLE 模型怎么做迭代?
- PLE 对于门控优化有很多 trick,能不能谈谈你的理解?
- 是否了解最新的特征交叉的工作?
- 介绍 RankMixer。
- 怎么看待 RankMixer 的 ROI?
- 评估一下 OneRec 的 ROI 和 RankMixer 的 ROI,为什么后者更优?
- 生成式推荐的 ROI 问题怎么评估?
- 讲一下职业规划。
面经 04 · 小红书 算法岗(2026-01-07)
- 谈谈你对传统搜索算法和 RAG 的理解。
- 了解 ReAct 架构吗?
- 介绍一下 self attention。
- 介绍一下 MHA。
- 了解 KV 缓存吗?
- 了解 MHA 的变体吗?
- 了解 MLA 吗?
- 为什么大模型结合 RAG 会出现 AI 幻觉的现象?你怎么看?怎么解决?
- 了解 PE 优化吗?
- 了解 DPO 和 PPO 吗?
- 开放场景:如果你有一个待优化的模型和一堆 query,你怎么利用 PPO 来优化模型?
面经 05 · 小红书 算法岗(2026-01-06)
- PLE 模型怎么做迭代?
- PLE 对于门控优化有很多 trick,能不能谈谈你的理解?
- 是否了解最新的特征交叉的工作?
- 介绍 RankMixer。
- 怎么看待 RankMixer 的 ROI?
- 评估一下 OneRec 的 ROI 和 RankMixer 的 ROI,为什么后者更优?
- 介绍一下双塔模型的结构和样本。
- 讲解一下快速排序最优和最差的情况。
- 生成式推荐的 ROI 问题怎么评估?
面经 06 · 小红书 算法岗(2026-01-06)
- 如果新增一个收藏的指标,应该如何加在 PLE 模型中?
- 介绍一下 ESMM(包括后续改进)。
- 如何做 Dropout?
- 其他归一化的方式还了解哪些?
- 介绍一下 PLE,比 MMoE 好在哪?
- 了解广告算法吗?
- 介绍一下广告算法的利益均衡。
- 了解广告算法计费方式吗?
- 介绍一下广告算法的其他链路。
- 讲一遍你知道的所有排序算法。
- 如果遇到最差情况,更换哪一种排序算法可以解决?
- 手撕:快速排序
面经 07 · 小红书 算法岗(2026-01-01)
- 介绍推荐系统,为什么有召回?召回和排序的区别是什么?
- AUC 是什么,怎么算?
- 解决过拟合的方法有哪些?
- L1 和 L2 的区别是什么?为什么会有稀疏化?
- 特征相关性如何选取?具体是如何算的?
- 多目标模型如何建模?
- logloss 是什么?为什么要用 logloss?
- 介绍一下业务可能遇到的挑战和困难,以及入职前能做的事情。
面经 08 · 小红书 算法岗(2025-12-31)
- MMoE 是怎么解决负迁移现象的?
- 还有哪些解决负迁移的办法?
- 怎么解决跷跷板问题?
- MMoE 极化现象怎么解决?
- 模型加特征进去怎么判断特征的好坏?
- BN 的原理是什么?BN 可以用到特征筛选吗?
- DIN、SIM 的具体实现原理是什么?
- 手撕:LC3(LeetCode 第 3 题)
- 手撕:最长递增子序列
面经 09 · 小红书 算法岗(2025-12-29)
- Reward Function 的设计怎么做?
- PPO 的 Advantage Function 是什么?
- PPO 和 GRPO 的区别是什么?
- 全参微调和 LoRA 怎么选?
- DeepSeek V3 的训练流程是怎样的?
- CVR 样本稀疏的解决方法有哪些?
- 偏置特征处理方法有哪些?
- 生成式推荐和常规推荐的区别是什么?
《参考解析》
PLE 与 MMoE:多目标建模的三种病和对应的药
MMoE 让每个任务有自己的塔、共享一组专家,再由任务专属的门控决定专家的加权组合,用「门控学得不同」解释软共享;但门控在训练中容易被强势任务主导、专家趋同,弱任务拿不到有效信号。PLE 把专家显式分层:每个任务一组专属专家加一组共享专家,先按任务聚合再喂给下一层门控,把共享与专属在结构上隔开,因此更抗负迁移。三种病要对症下药:负迁移靠结构隔离(专属专家、CGC)、梯度冲突处理(GradNorm、梯度手术)与任务分组;跷跷板仍是任务冲突,还要判断业务目标本身是否矛盾,能否改成约束优化权衡,而不是靠调权重凑;极化指门控退化成 one-hot、共享专家被闲置,缓解靠门控加熵正则或温度、加负载均衡损失。门控的 trick 还可以谈门控输入拼上任务与场景特征、用 softmax 还是 sigmoid 归一化、以及专家数量与维度的缩放关系。新增收藏指标怎么加,思路是「先判断相关性再决定共享方式」:相关性高的走共享专家,相关性低或量级差异大的走专属专家并单独做对照实验,同时处理新目标正样本少与量级归一。
ESMM、CVR 样本稀疏与广告链路
ESMM 的核心洞察是「CVR 只能在点击样本上定义,但模型要服务曝光空间」,所以它不直接训 CVR,而是训 CTR 与 CTCVR 两个全空间任务,让 pCVR = pCTCVR / pCTR 间接得到:CVR 塔因此能用上曝光空间的样本量,缓解稀疏,也自动缓解了样本选择偏差。后续改进方向一般是补上点击与转化的时间间隔、多值转化、多任务共享底层,以及与不确定性建模结合的加权。CVR 稀疏的其他手段包括负采样与样本加权、把 CVR 拆成是否转化与转化金额分阶段建模、引入长期行为序列与跨域迁移、以及延迟反馈建模(未回流样本按预估转化率加权或建模观察窗口)。偏置特征分两类:位置与展示偏置用「训练带位置、推理置零」或单独训一个偏置塔,选择偏置用 ESMM 或逆倾向加权。广告链路要能串起来:检索 → 粗排 → 精排(预估 CTR、CVR 并算 eCPM)→ 计费与排位 → 预算与出价控制 → 归因结算。OCPC、OCPM 的本质是把广告主的转化出价用预估转化率折算成点击出价参与排序(pCTR 乘 pCVR 乘出价),所以预估偏差直接决定广告主成本,才需要校准与成本控制。利益均衡问的是平台、广告主、用户三方博弈,落点是相关性与质量门槛、频控与多样性,而不是只看 eCPM 排序。
双塔、AUC 与 logloss:排序模型的基本功
双塔是用户塔与物品塔两条独立网络,各自把特征压成定长向量再用内积或余弦算相似度;召回的样本用曝光点击为正、随机或按热度采样为负,特征只保留服务端能瞬间拿到的,因为物品向量要能离线预计算并灌进向量索引。它的取舍是「解耦换来可离线与近邻检索的效率,代价是无法建模两塔之间的交叉特征」,所以精排要用能建模交叉的结构。AUC 的定义与算法要一起给出:随机取一个正样本和一个负样本、模型给正样本打更高分的概率;计算上按预测分排序后统计正负样本对的逆序对,用正样本排序位置之和可在 O(n log n) 内算完;它是全局排序指标,只关心头部排序时不如 GAUC 或 NDCG 贴切。logloss 是交叉熵损失,loss = -[y·log(p) + (1-y)·log(1-p)],梯度是 p - y 这种简洁形式,天然惩罚过度自信的错误。两者的区别要讲清:logloss 衡量概率校准、AUC 只衡量排序,广告计费要用概率绝对值所以必须看 logloss 与校准曲线。特征相关性用皮尔逊或斯皮尔曼、卡方或互信息、IV 或信息增益来算,但线上的最终判据仍是「加进去之后离线与线上指标有没有变化」。
排序算法与三道手撕
排序算法的层次:比较排序下界是 O(n log n),快排、归并、堆排都能达到,但常数与稳定性不同(归并稳定、堆排原地、快排平均最快但最坏 O(n²));非比较排序在数据范围有限时能到线性。快速排序最优是每次划分接近均分,递归深度 O(log n)、总复杂度 O(n log n);最差是每次 pivot 都是极值(已排好序且固定取首元素就会这样),一边长度为 0、深度退化到 O(n),总复杂度 O(n²) 还容易爆栈。应对办法有三类:随机化或三数取中让最坏情况概率极低、三路划分处理大量重复元素、递归深度超阈值时切换到堆排序(introsort 的做法);被问「换哪种排序算法」,标准答案是堆排序或归并排序,它们最坏都是 O(n log n)。手撕快排要注意用双指针或挖坑法写划分、把 pivot 先换到边界、处理相等元素。最长公共子序列用二维 DP:相等时取左上角加一、不等时取上或左的较大值,滚动数组可把空间压到 O(min(n,m)),顺口区分「子序列可以不连续、子串必须连续」。最长递增子序列的 O(n log n) 做法是维护「长度为 i 的递增子序列的最小结尾」数组并二分替换,数组长度即答案;注意这个数组本身不是某个合法的 LIS。
生成式推荐:OneRec、RankMixer 与 ROI 的评估
OneRec 与 RankMixer 代表「用大模型重写推荐链路」的两条路径:OneRec 把召回与排序合成一个生成式模型,用语义 ID 把物品离散成 token 序列、自回归生成推荐列表,好处是链路统一、端到端优化、弱化了多阶段级联的目标不一致,代价是训练与线上算力成本高、可控性差、对冷启动与库存约束不友好;RankMixer 走「保留级联、把排序层的特征交叉换成更省算力的结构」这条路,用低成本的交叉与混合模块提效果,算力增量小、改造风险低。所以「RankMixer 的 ROI 为什么更优」落在「单位算力换来的线上收益」:RankMixer 的收益来自结构替换、增量算力是常数级;OneRec 可能要重训整套模型、加推理集群,还引入新的失败模式(生成出不存在或不合适的物品)。评估 ROI 必须给出公式与口径:增量收益(GMV、时长、CTR 的相对提升)除以增量成本(训练与推理的 GPU 时、工程人天、迭代周期),并说明是离线还是线上实验、置信区间多大;还要记得生成式方案的可解释性与可控性下降、不利于业务强插。
Transformer 变体、KV 缓存与 RL 训练
MHA 的变体都是为了压缩 KV 缓存:MQA 让所有查询头共享一份 K、V,缓存降到 1/h,但表达力下降、训练不稳;GQA 分组共享(每 g 个头共享一份),在几乎不掉点的前提下把缓存降到 g/h,是当前主流;MLA 把 KV 压成低维潜向量、用时可上投影重建,缓存更低而效果不降。KV 缓存的必要性在于自回归每一步都要用历史所有位置的 K、V,缓存把每步复杂度从 O(n²) 降到 O(n),代价是显存随层数、头数、序列长度线性增长,于是才有分页缓存与量化缓存。位置编码的调整常见做法是 RoPE 基频外推、NTK 或 YaRN 插值、ALiBi 线性偏置,追问点通常是「原来那套为什么在长序列上不行」——训练长度之外没见过相对距离,注意力分布会崩。Reward Function 的设计要谈数据来源(人工偏好、规则校验、模型裁判)、奖励的稠密与稀疏、长度与格式等 shaping 项,以及 reward hacking 的防范(留出集检验、定期人工抽检)。PPO 的优势函数回答「用 GAE 估计优势」:用 TD 残差的指数加权和在同一套公式里调节偏差与方差,λ 接近 1 偏小偏差高方差、接近 0 相反。PPO 与 GRPO 的区别是有没有 critic:PPO 用价值网络估基线、成本高,GRPO 用同一 prompt 下多次采样的组内归一化得分当优势、省掉价值网络。全参与 LoRA 按「分布差多远、多少数据、多少卡」选。DeepSeek V3 的训练流程按阶段串:大规模预训练 → 长上下文扩展 → 监督微调 → 强化学习,并点出关键工程选择(MLA 省缓存、多 token 预测、FP8 训练、专家并行),不必逐层背参数。
过拟合、归一化与行为序列建模
正则化按「数据、模型、训练」三层答:数据侧扩样本、加噪声、做增强;模型侧降容量、加 Dropout、权重衰减、早停、特征选择;训练侧调小学习率、用集成与多任务共享。L1 与 L2 的区别从惩罚项与几何解释讲:L1 惩罚绝对值之和、等值线是菱形,最优解容易落在坐标轴上因此产生稀疏解,可用于特征选择;L2 惩罚平方和、等值线是圆形,倾向把权重均匀压小但不为零,抗共线性、优化更平滑。稀疏化有用是因为它自动筛特征、降低推理成本,并让模型只依赖少数强特征。归一化方式要横向铺开:BN 在 batch 维、LN 在样本内特征维、IN 单样本单通道、GN 按通道分组(小 batch 友好),以及 RMSNorm。BN 能否用于特征筛选——可以当启发式:通道缩放参数 γ 的绝对值能粗略反映网络对该特征的依赖,但后续层可以补偿,正规做法仍是置换重要性或消融。DIN 的核心是「注意力加激活单元」:以候选物品为 query、用户历史行为为 key 与 value 做注意力池化,把兴趣建模成随候选变化的动态表示;DIEN 引入兴趣演化,SIM 用轻量检索从长序列里搜出 top-K 相关行为。行为序列在训练时要不要补齐,答案是口径必须统一:训练与线上用同一套截断与填充规则(按时间取最近 N 条、不足补零并加 mask),否则训练看到完整历史、线上只有短历史,会出现严重的训练服务不一致;还要保证特征的时间正确性、避免标签泄漏,并用去重截断、剔除异常点击、时间衰减加权、清洗刷单等手段处理噪声。
传统搜索、RAG 与幻觉
传统搜索与 RAG 按「召回、排序、生成」三段对齐:搜索是倒排索引加词项匹配再叠学习排序、返回文档列表;RAG 多一步生成,用模型把片段组织成答案。评测也随之不同:搜索看 Recall、NDCG、MRR 与点击,RAG 看答案正确性、忠实度与引用质量。搜索的优势是精确匹配、可解释、工程成熟,短板是语义泛化;向量检索强在语义但会丢精确匹配,所以工程上常见「倒排加向量」的混合召回再统一重排。RAG 幻觉的成因要分层:检索层没召回或召回错误文档、上下文里证据相互矛盾、模型对长上下文中间位置的注意力衰减、以及模型先验压倒上下文。解法同样分层:检索侧提高召回与重排质量、控制上下文长度与排布;生成侧要求逐句引用来源、给出「证据不足就拒答」的出口、降低温度、做多采样一致性校验;工程侧加事后校验(用规则或另一个模型核对答案里的数字与实体是否真在证据里)并保留原文链接。ReAct 在这条链路里的价值是检索不够时让模型自己决定再检索一轮或换查询式,从而少编。