算法面试 / 01
项目介绍怎么讲
项目介绍是算法面试里最重要的入口。讲得散,后面的追问会失去主线;讲得清楚,面试官会自然顺着你的设计继续问。
不要从模型开始
很多同学一开口就是:
我这个项目用了 Transformer / DeepFM / XGBoost。
这不是好的开场。面试官首先想知道的是你解决了什么问题,而不是你用了什么模型。
更好的开场是:
这个项目解决的是某业务场景下的某个核心问题,目标是提升某指标,同时不能伤害某些护栏指标。我先分析了数据和现有策略的问题,再设计了模型和策略方案,最后通过离线评估和实验验证收益。
项目讲述框架
建议固定使用:
背景 -> 问题 -> 指标 -> 数据 -> 方案 -> 实验 -> 收益 -> 复盘
背景
说明业务场景和为什么这个问题重要。
例如:
在推荐场景里,新内容因为缺少历史交互,很难进入排序系统,导致曝光不足,影响内容生态。
问题
把业务问题转成算法问题。
我把它拆成两个问题:第一是如何识别有潜力的新内容,第二是如何在不伤害整体体验的前提下给新内容探索流量。
指标
说明主指标和护栏指标。
主指标是新内容有效消费和长期留存,护栏指标是整体点击率、用户负反馈和老内容消费。
数据
说明样本、标签、特征和偏差。
样本来自历史曝光日志,标签是曝光后一定时间窗口内的有效消费。因为新内容曝光少,所以存在曝光选择偏差,我用分桶采样和探索流量日志缓解。
方案
讲清为什么这么设计,而不是堆技术名。
我先训练内容质量预估模型,再把模型分数作为探索优先级,同时在重排层加入流量预算和多样性约束。
实验
说明离线和线上如何验证。
离线看 AUC、NDCG 和分桶校准;线上做小流量 A/B,看新内容有效消费、整体点击和负反馈。
收益
讲数字时要带上下文。
实验中新内容有效消费提升 3.2%,整体点击基本持平,负反馈无显著变化。分场景看,收益主要来自冷启动前 24 小时内容。
复盘
说明不足和下一步。
当前方案对突发热点识别还不够及时,下一步会引入实时互动特征和更细的流量预算控制。
面试官常见追问
这个问题为什么重要?
不要说“因为老师要求”或“因为比赛题”。要从业务价值讲:提升转化、降低成本、改善体验、减少风险、提高效率。
你的方案和 baseline 比有什么不同?
回答要指出机制差异:
- baseline 用规则,你用了模型。
- baseline 只看短期点击,你加入长期指标。
- baseline 只做预测,你加入策略约束。
- baseline 全局统一策略,你做了分人群或分场景。
收益来自哪里?
按链路拆:
- 数据更好。
- 特征更有效。
- 模型表达更强。
- 策略目标更贴近业务。
- 实验覆盖了关键场景。
如果上线后效果下降怎么办?
回答排查链路:
- 数据和特征是否异常。
- 模型输出分布是否漂移。
- 策略是否真正生效。
- 实验分流是否正确。
- 外部环境是否变化。
- 哪些人群或场景下降最明显。
项目介绍的常见错误
第一,讲太多实现细节。开场不是代码 walkthrough,先讲主线。
第二,没有指标。没有指标就无法证明项目价值。
第三,没有 baseline。没有对比就不知道方案是否有效。
第四,没有复盘。只讲成功不讲不足,会显得不真实。
第五,无法解释数据。算法项目的关键常常在样本和标签,不是模型。
一段可复用模板
我这个项目解决的是 [业务场景] 下的 [具体问题]。当时的核心痛点是 [现有方案问题],所以我把目标定义为提升 [主指标],同时控制 [护栏指标]。数据上,我使用 [样本来源],标签定义为 [标签],并处理了 [偏差或噪声]。方案上,我先做 [模型或策略],再通过 [约束或重排] 接入业务链路。离线看 [模型指标],线上通过 [实验方式] 验证,最终 [收益]。复盘看,方案主要收益来自 [原因],不足是 [问题],下一步会 [迭代方向]。
下一篇建议继续看: