sgr-interview-300

300 题漫游指南:从损失函数到系统设计——搜广推的一天

文中所有可点击的链接都会跳转到对应面试题的详解。

建议边读边点,像翻地图一样逛完 300 个知识点。

「单页 + 目录 + 搜索」:本地 study.html;在线 Pages(勿用 Raw)。内容由 build_study_html.py 生成,改稿后请重新运行脚本并提交 study.html


序章:明天要面「搜广推」,今晚只有一夜

你收到 HR 的消息:面试范围是 搜索 / 广告 / 推荐算法,请系统准备。

「搜广推」三个字背后,是从损失函数与优化评估指标特征与模型(FM/DeepFM/序列/图/多任务)、召回与排序(双塔、向量检索、精排)、到工程与系统(实时、存储、Serving)、再到大模型与开放设计的整条链路。所以范围特别大。

你打开那份 300 题 清单——从 交叉熵与类别不平衡简化版 Spark RDD,从 Focal LossTikTok/淘宝/YouTube 系统设计——密密麻麻,像一张从「损失与优化」画到「编程与算法」的长卷。

说白了:前面是「模型怎么训、怎么评估」,中间是「特征怎么交互、序列怎么建、图怎么用、多任务怎么拆」,后面是「怎么召回、怎么排序、怎么上工程、怎么接大模型」。你心想:这哪是 300 题,这是 300 个「推导一下」「和某某有什么区别」「你们怎么做的」的连环拷问。光背题号容易忘,不如把整条链路串成一条线,记故事比记列表轻松。

与其对着题号硬啃,不如换一种玩法:按「一天搞懂搜广推」的顺序,从早晨的损失与优化,到上午的评估与特征模型,中午的召回与排序,傍晚的工程与系统,入夜的大模型与开放设计,最后收尾于编程与算法。

三百个知识点,都藏在这条线里;读到哪,点到哪,跳过去就是那道题的详解。不用一次看完,当闲书翻也行。

准备好了?我们开始。


一、早晨:地基——损失与优化、正则与泛化

搜广推的模型训练,离不开损失函数优化。CTR/CVR 用交叉熵、排序用 Pairwise/Listwise、对比用 InfoNCE;类别不平衡上 Focal Loss、校准用温度缩放、训练稳定用梯度裁剪。你想想:面试官问「你们正样本很少怎么训」,答 Focal Loss / 样本加权 / 重采样,都要能讲清梯度层面的区别。

交叉熵与类别不平衡Focal Loss 推导与 γInfoNCE 与互信息RankNet 与 PairwiseListNet vs ListMLE标签平滑温度缩放与蒸馏样本权重与损失加权梯度裁剪L-BFGS 在推荐中:这一串是损失与优化的必考池,建议至少把交叉熵梯度、Focal Loss、InfoNCE、RankNet 讲顺。

正则化与泛化决定模型会不会过拟合、能不能泛化到线上。L1/L2 与贝叶斯先验Dropout 在 Wide&Deep 中早停与 L2 等价性BN 在推荐中的陷阱与 Layer Norm权重衰减与 Adam数据增强与蒸馏知识蒸馏软硬标签自监督与 MLM 在推荐中:推荐里稀疏特征多,BN 容易踩坑,LN 更常用;面试会问「你们怎么防过拟合」。

早晨结束,地基打好了;下一步是 怎么评估、指标怎么选


二、上午(上):标准——评估与指标

评估与指标要回答:离线看什么、线上看什么、离线-在线为什么不一致。AUC/GAUC、LogLoss、NDCG、校准、延迟反馈、位置偏置、LTV、多目标帕累托,都是高频题。

AUC 与线上收益GAUC 计算与意义LogLoss 与 AUC 冲突NDCG 归一化因子点击率校准延迟反馈 ES-DFM位置偏置评估LTV 与因果离线-在线不一致:用人话说,GAUC 按用户/组算 AUC 再平均,比全局 AUC 更反映真实排序能力;延迟反馈是「转化晚到」要专门建模。面试一句「你们离线看什么、线上看什么」就能扯出一串,建议把 AUC/GAUC、校准、延迟反馈讲顺。


三、上午(下):模型——特征交互、序列、图、多任务

特征交互网络是精排的基础:FM/FFM、DeepFM、xDeepFM、DCN、AutoInt、FiBiNET、MaskNet 等,核心都是「怎么显式/隐式建模二阶和高阶交叉」。FM 二阶分解 O(kn)DeepFM 共享 EmbeddingDCN Cross NetworkxDeepFM CIN:面试常考「DeepFM 和 DCN 区别」「CIN 怎么做的」。

序列与时序:DIN、DIEN、DSIN、BST、SIM、ETA、多行为序列——从「注意力加权历史」到「兴趣演化」「Session 分割」「长序列线性复杂度」。DIN 注意力与 AUDIEN 兴趣演化SIM Hard/Soft Search多行为融合:用人话说,DIN 是「当前候选和历史的注意力」;SIM 解决长序列,先搜再精。

图神经网络:GCN、GraphSAGE、PinSage、LightGCN、NGCF、KGAT、归纳能力。GCN 谱卷积与空间域GraphSAGE 采样LightGCN 简化冷启动与归纳:推荐里常用空间域或采样式 GNN,面试会问「过度平滑」「新节点怎么嵌」。

多任务与多场景:Shared-Bottom 负迁移、MMOE/PLE 门控、ESMM 样本空间、STAR 星型、多任务损失加权。MMOE 门控PLE 层分离ESMM CTR-CVRUncertainty Weighting:ESMM 是「曝光→点击→转化」共享空间、解决 CVR 样本少,面试必问。

上午结束,评估和主模型线都齐了;中午是 召回与精排的完整链路


四、中午:召回与精排——双塔、序列、图、向量、排序

模型压缩与高效推理(71–80)、双塔模型(81–90)、序列召回(91–100)、图召回(101–110)、向量检索(111–120)、特征工程(121–130)、深度排序模型(131–140)、上下文感知(141–150)、多目标优化(151–160)——这一整块是「怎么召回、怎么精排、怎么多目标」。

双塔:DSSM 语义匹配负采样与 In-batch Negative温度系数难负样本挖掘MIND/ComiRec 多兴趣088:面试会问「双塔负采样怎么做的」「有没有难负样本」「多兴趣怎么建」。

序列召回:SASRec/BERT4Rec/S3-Rec长序列切片实时兴趣;图召回:DeepWalk/Node2VecLINETransE 知识图谱。向量检索:ANN/LSH/PQ/OPQ/HNSW/IVF增量更新多模态与过滤:HNSW、IVF、PQ 是常考索引,面试会问「你们向量检索用啥、为什么」。

特征工程:分桶与交叉哈希与嵌入实时特征文本/图像特征。深度排序:Wide&Deep/DeepFM/NFM/DCN/xDeepFMFinalMLP。上下文:位置偏置与 PAL时间/设备/地理。多目标:ESMM 联合建模帕累托与约束LTV 与因果

中午过完,召回和精排的主线都齐了;下午是 广告、策略、安全、实时与 Serving


五、下午:广告、策略、安全、实时与 Serving

拍卖理论(161–170):GSP、VCG、pacing、RTB、频控、品牌安全、增量价值——广告主必考。GSP 纳什均衡VCG 激励相容pacing 控制RTB 100msIncrementality PSM

推荐策略(171–180):多臂老虎机、LinUCB、多样性/新颖性/覆盖率、公平性、负反馈。UCB 与 Thompson SamplingLinUCBMMR 多样性公平性

内容安全与治理(181–190):有害内容、虚假信息、版权、未成年人、偏见审计、可解释性、用户控制。

实时计算(191–200):Flink Checkpoint、状态后端、窗口与反压、流批一体、实时特征、状态 TTL。Exactly-Once反压流批一体

存储与检索(201–210):特征存储、向量库 Milvus/Faiss、倒排压缩、冷热分层、缓存一致性、分布式事务。特征存储选型Embedding 向量库缓存一致性

模型 Serving(211–220):TF Serving、Triton、量化部署、A/B 测试、降级、全链路监控。版本与金丝雀动态批处理A/B 与正交

下午结束,工程与业务线都齐了;入夜是 大模型与推荐、开放设计


六、入夜:大模型与推荐、开放设计与实战

大模型与推荐(221–250):LLM 当推荐器、Prompt 设计、生成式推荐、RAG、幻觉、多模态、微调/LoRA、推理加速、与传统模型级联、评估;指令微调、RLHF、世界模型、多智能体、可解释性、跨语言、个性化、流式、安全对齐、成本优化;推荐 Agent、对话式推荐、长期记忆、涌现与偏见、联邦、持续学习、预训练任务、多目标输出、评估基准。用人话说:大模型能当生成式推荐、当 Agent 做多轮与工具调用,但要解决幻觉、延迟和成本;面试会问「你们有没有用 LLM 做推荐」「和传统模型怎么配合」。

LLM 推荐器 Prompt生成式推荐RAG 与知识库幻觉与事实性LoRA 微调推荐 Agent评估基准

开放设计与实战(251–270):TikTok/YouTube/淘宝/Google 广告/Facebook/Uber/Netflix/Spotify/Airbnb/LinkedIn 等系统设计;从 0 到 1、效果停滞破局、多团队协同、伦理审查、国际化、增长与成本、专利与团队、趋势判断。面试官一句「设计一个某某推荐系统」就能扯出一套,建议按「召回→粗排→精排→重排→策略」+「实时/存储/Serving」准备一个通用框架,再套到具体业务。

TikTok 推荐设计淘宝爆款与长尾从 0 到 1趋势判断


七、收尾:编程与算法

编程与算法(271–300):实现 AUC、TopK、矩阵分解、DIN 注意力、负采样、LSH、UCB、图采样、Beam Search;特征存储、负载均衡、流式指标、AB 分流、缓存、Embedding 增量、剪枝、分布式同步、压测;自动微分、稀疏注意力、TransE、REINFORCE、PSM、PageRank、Count-Min Sketch、Raft、B+ 树、Spark RDD。既有「手写一个某某」的代码题,也有「设计数据结构/方案」的设计题。

AUC 流式TopK 堆与快选矩阵分解 SGD/ALSDIN 注意力实现负采样与修正AB 分流压测方案RaftSpark RDD


尾声:一日终了,300 题都在这里

交叉熵与类别不平衡简化版 Spark RDD,这一日漫游把 300 题 的关键词都串进了一条线:损失与优化 → 评估与指标 → 特征/序列/图/多任务 → 双塔/召回/向量/排序/多目标 → 拍卖/策略/安全/实时/存储/Serving → 大模型与推荐 → 开放设计 → 编程与算法。你不用一次记完,可以当故事读;每条线底下,都挂着一串可点的链接。

两样配合用,效果更好。祝面试顺利,早日上岸。


本文为「搜广推算法工程师面经(300 题版)」漫游导读,所有链接指向本仓库内对应题目的 Markdown 文章。