文中所有可点击的链接都会跳转到对应面试题的详解。
建议边读边点,像翻地图一样逛完 300 个知识点。
「单页 + 目录 + 搜索」:本地 study.html;在线 Pages(勿用 Raw)。内容由
build_study_html.py生成,改稿后请重新运行脚本并提交study.html。
你收到 HR 的消息:面试范围是 搜索 / 广告 / 推荐算法,请系统准备。
「搜广推」三个字背后,是从损失函数与优化、评估指标、特征与模型(FM/DeepFM/序列/图/多任务)、召回与排序(双塔、向量检索、精排)、到工程与系统(实时、存储、Serving)、再到大模型与开放设计的整条链路。所以范围特别大。
你打开那份 300 题 清单——从 交叉熵与类别不平衡 到 简化版 Spark RDD,从 Focal Loss 到 TikTok/淘宝/YouTube 系统设计——密密麻麻,像一张从「损失与优化」画到「编程与算法」的长卷。
说白了:前面是「模型怎么训、怎么评估」,中间是「特征怎么交互、序列怎么建、图怎么用、多任务怎么拆」,后面是「怎么召回、怎么排序、怎么上工程、怎么接大模型」。你心想:这哪是 300 题,这是 300 个「推导一下」「和某某有什么区别」「你们怎么做的」的连环拷问。光背题号容易忘,不如把整条链路串成一条线,记故事比记列表轻松。
与其对着题号硬啃,不如换一种玩法:按「一天搞懂搜广推」的顺序,从早晨的损失与优化,到上午的评估与特征模型,中午的召回与排序,傍晚的工程与系统,入夜的大模型与开放设计,最后收尾于编程与算法。
三百个知识点,都藏在这条线里;读到哪,点到哪,跳过去就是那道题的详解。不用一次看完,当闲书翻也行。
准备好了?我们开始。
搜广推的模型训练,离不开损失函数和优化。CTR/CVR 用交叉熵、排序用 Pairwise/Listwise、对比用 InfoNCE;类别不平衡上 Focal Loss、校准用温度缩放、训练稳定用梯度裁剪。你想想:面试官问「你们正样本很少怎么训」,答 Focal Loss / 样本加权 / 重采样,都要能讲清梯度层面的区别。
交叉熵与类别不平衡、Focal Loss 推导与 γ、InfoNCE 与互信息、RankNet 与 Pairwise、ListNet 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 共享 Embedding、DCN Cross Network、xDeepFM CIN:面试常考「DeepFM 和 DCN 区别」「CIN 怎么做的」。
序列与时序:DIN、DIEN、DSIN、BST、SIM、ETA、多行为序列——从「注意力加权历史」到「兴趣演化」「Session 分割」「长序列线性复杂度」。DIN 注意力与 AU、DIEN 兴趣演化、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-CVR、Uncertainty 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/Node2Vec、LINE、TransE 知识图谱。向量检索:ANN/LSH/PQ/OPQ/HNSW/IVF、增量更新、多模态与过滤:HNSW、IVF、PQ 是常考索引,面试会问「你们向量检索用啥、为什么」。
特征工程:分桶与交叉、哈希与嵌入、实时特征、文本/图像特征。深度排序:Wide&Deep/DeepFM/NFM/DCN/xDeepFM、FinalMLP。上下文:位置偏置与 PAL、时间/设备/地理。多目标:ESMM 联合建模、帕累托与约束、LTV 与因果。
中午过完,召回和精排的主线都齐了;下午是 广告、策略、安全、实时与 Serving。
拍卖理论(161–170):GSP、VCG、pacing、RTB、频控、品牌安全、增量价值——广告主必考。GSP 纳什均衡、VCG 激励相容、pacing 控制、RTB 100ms、Incrementality PSM。
推荐策略(171–180):多臂老虎机、LinUCB、多样性/新颖性/覆盖率、公平性、负反馈。UCB 与 Thompson Sampling、LinUCB、MMR 多样性、公平性。
内容安全与治理(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/ALS、DIN 注意力实现、负采样与修正、AB 分流、压测方案、Raft、Spark RDD。
从 交叉熵与类别不平衡 到 简化版 Spark RDD,这一日漫游把 300 题 的关键词都串进了一条线:损失与优化 → 评估与指标 → 特征/序列/图/多任务 → 双塔/召回/向量/排序/多目标 → 拍卖/策略/安全/实时/存储/Serving → 大模型与推荐 → 开放设计 → 编程与算法。你不用一次记完,可以当故事读;每条线底下,都挂着一串可点的链接。
两样配合用,效果更好。祝面试顺利,早日上岸。
本文为「搜广推算法工程师面经(300 题版)」漫游导读,所有链接指向本仓库内对应题目的 Markdown 文章。