面灵AI→

敦煌网 推荐算法面经:特征评估、MMoE、SID 构建与传统推荐链路

时间
2026-09
来源
牛客网

《面试题目》

  1. 实习业务场景
  2. 特征好坏怎么判断?
  3. MMoE 介绍
  4. SID 构建流程
  5. SFT 流程
  6. 传统推荐链路介绍

算法:

  1. 手写最大子数组和

《参考解析》

  1. 特征与推荐链路要放在一起讲:判特征好坏有四条可验证的判据——覆盖率与缺失率、区分度(单特征 AUC、IV、分组后目标均值是否单调)、稳定性(按天分桶后分布是否漂移、线上线下是否一致)、可解释与可复现(口径在训练与推理两侧是否一致)。而链路按瀑布流讲更顺:召回(多路并行、覆盖全、算力省)→ 粗排(打分量级降下来、保持排序相关性)→ 精排(多目标、精细特征、算力最重)→ 重排(多样性、打散、业务规则),每一层都说清输入输出、样本怎么构造、离线与线上指标是否对齐,再补冷启动与探索机制。特征的价值最终要能在链路的某一层体现出来,这样两问就串成了一条线。

  2. MMoE 讲结构更要讲它解决什么问题:底层是共享的专家网络,每个任务有自己的门控网络对各专家输出加权求和,再各自接塔网络出分。它相对硬共享(一套底层多个塔)的好处是让不同任务按需选择专家、缓解任务冲突,相对多模型独立训练的好处是省参数、能共享样本。要能接住追问:专家数怎么定(一般 4~8,看任务多少和样本量)、门控会不会塌缩成只选一个专家、任务相关性差时为什么还要共享底层、以及和 PLE 这类改进结构的差别。

  3. SID 构建与 SFT 是生成式推荐链路的两段:SID 的做法是先拿到物品的内容或协同 embedding,再对 embedding 空间做层次聚类或量化(RQ-VAE、层次 K-means 等),得到若干层码本,每个物品用长度固定的若干层码字表示,码字组合就是它的语义 ID,推荐于是变成按 token 的生成任务;设计取舍要说清码本层数与每层大小怎么权衡、码字冲突怎么处理、新物品与长尾怎么分配。SFT 则按「数据 → 训练 → 评测 → 上线」四段答:样本构造与模板、基座选择与 LoRA 还是全参、离线指标加人工或模型打分、推理加速与效果回滚。两段要连起来讲——SID 决定了词表,词表又约束了 SFT 的解码空间。

  4. 手撕最大子数组和的关键是初始值:这题最容易错的地方就是初始值——如果答案允许全负,初始值必须取数组第一个元素(或负无穷),取 0 会把「全是负数」的用例判成 0;同时讲清状态定义(以 i 结尾的最大和)和转移(继续累加还是从当前元素重开)。面试时先确认数组是否可能为空、是否允许全负,再写 Kadane 的 O(n) 解法,写完主动说清时间空间复杂度,并给出分治或线段树维护区间最大子段和作为扩展。