
我当年投第四范式的时候其实对这公司了解不算深只知道是做AI平台、AutoML那套的。但拿到建模笔试题那一刻我反倒愣了一下——这考察的并不是什么炫酷的深度学习模型而是一整套关于**如何把业务问题翻译成机器学习问题**的基本功。后来我把它拆开重新做了一遍才发现这套题表面是在考建模实际上是在替公司筛选真正做过活儿的人。这篇内容我围绕这份笔试题做一次完整复盘覆盖考题背后的考察意图、典型的建模思路、那些最容易丢分的技术细节以及用来应对同类笔试的通用方法论。无论你是准备第四范式的校招还是正在刷各类算法/建模岗的笔试题这篇都能给你一些可落地的参考。1. 这份笔试题到底在考什么从一道题看第四范式的筛选逻辑1.1 表面是考核模型实际是在考业务翻译能力第四范式这套2019年的校招笔试题和很多互联网大厂出的算法题有很明显的区别它没有让你手撕GBDT、XGBoost的推导也没有让你在LeetCode式的问题里绕圈子。整套题的核心逻辑始终围绕一条主线——给出一个业务场景让你把它翻译成建模任务并设计完整的技术方案。我印象比较深的是有一类题会给你一个很具体的业务背景比如某金融产品在投放后希望识别出高意愿用户然后让你完成从指标定义、样本选择、特征工程到模型评估的整套方案设计。这类题的真实意图并不在于你是否能写出一个精确到几位的AUC值而是考察你是否具备把模糊业务诉求拆解成数据问题、再拆解成技术动作的能力。这种能力恰恰是传统院校教育里最容易缺失的部分。很多同学可以熟练背诵各种损失函数的公式但遇到这个项目该用什么样本正负样本比怎么定线上指标和离线指标怎么对齐这类问题时就容易卡壳。而第四范式作为一家做AI平台的公司本质上卖的就是把建模能力产品化的能力所以它需要的算法工程师绝不仅仅是会调参的人更要能理解客户业务、能设计完整建模链路。1.2 从考点反推岗位要求这题是给哪种候选人准备的如果你仔细分析这套试题的结构会发现它明显不是针对所有算法岗的通用题而是更偏向于机器学习平台、AutoML、风控/推荐等结构化数据方向的岗位。第四范式的主力产品形态是机器学习平台和自动建模工具它的客户群体里很大比例来自金融、零售这类强业务属性行业。这意味着什么呢意味着你建出来的模型是要真正上线的是要能进入到客户的实际业务流程中产生业务价值的。所以这套笔试题里几乎不太可能让你去做图像识别、NLP那样的开放式任务而是会聚焦在表格数据、分类/回归问题、特征工程、模型评估与选择、以及部署上线的考量。基于这一点我后来复盘时把整套能力要求拆成了四个维度能力维度具体体现典型考察方式业务理解能定义清楚什么是正样本、什么是负样本能设计业务指标给业务场景要求设计建模目标数据工程知道不同数据类型如何处理缺失值、异常值、不平衡样本给出数据字典要求设计方案建模能力掌握常用模型原理、适用场景、调参方向要求选择模型并解释原因评估能力能选择合适的评估指标理解离线在线差异要求设计评估方案分析过拟合我现在回头看这四件事其实就是第四范式这类公司对算法工程师日常工作的核心要求。笔试只不过是把它浓缩在有限时间内的一个体现。2. 具体题型拆解从业务场景到建模方案的完整链路2.1 场景题当提升转化率变成一个建模任务这类题通常是整张卷子的第一道大题也是最容易丢分的题。我记得类似这样某互联网平台希望提升广告投放的点击转化率请你设计一个完整的建模方案。很多同学看到这种题就开始写用XGBoost/LightGBM建一个CTR预估模型然后列一堆特征。但这其实只是拿到了10分里的2分。一套完整的方案设计至少要包含以下环节问题定义把提升转化率转化为监督学习问题。明确预测目标是什么比如用户是否会点击、是否会完成购买、预测的时间窗口是什么比如用户在未来7天内是否购买、模型输出是什么概率值还是排序分数。样本设计确定正负样本的定义、样本的时间范围、采样的逻辑。这步最容易被忽略但面试官只凭这一步就能判断你有没有真实项目经验。比如你需要说明用前30天的用户行为预测未来7天的购买概率训练集和测试集按时间切分避免数据泄漏。特征体系按特征类型拆分——用户基础属性、历史行为统计、上下文特征、交叉特征。说明每一类特征的具体构造逻辑。模型选型与训练为什么选GBDT系列为什么不用深度学习正负样本不平衡如何处理。评估方式离线用AUC还是LogLoss线上如何做AB实验业务指标和技术指标怎么映射。迭代优化哪些特征贡献最大如何做特征重要性分析冷启动用户怎么处理。你看一层层拆下来之后它就不再是一个套模型的问题而是一个完整的系统设计题。我把这种结构称为建模方案七段论在后面几节里会详细展开每一段的细节。2.2 特征工程题老题新考但这一题尤其致命第四范式的笔试题里特征工程的比重相当高而且往往不是让你直接列出5个特征而是会结合具体场景设计一些隐含考点。比如它会给你一个用户行为日志表里面有用户ID、行为类型浏览/点击/加购/支付、行为时间、行为详情等字段让你由此构造特征。表面上是道开放题但高分答案一定包含这几个层次第一层是最基础的统计特征用户在某个时间窗口内的浏览次数、点击次数、支付金额总和、行为天数等。这部分谁都能写几项属于及格线。第二层是比例和转化特征加购到支付的转化率、浏览到点击的转化率、某类行为的占比等。这类特征能体现出你对业务的理解不是单纯数数。第三层是时间衰减特征比如近1天、近3天、近7天的行为量分别统计或者使用时间衰减系数加权求和。这类特征在实际建模中往往效果显著但笔试中能写出来的人明显变少。第四层是序列和上下文特征用户最近一次行为距今天数、最频繁行为时段、行为序列的熵等。这一类已经带有一定的算法含量能体现你的思维深度。我后来在复盘时还发现一个有趣的细节这道题最容易拿分的反而是最基础的统计特征因为阅卷时是按点给分的你每写出一类合理的特征就能拿分。所以答题时不要只盯着高级特征要把基础层次的量给够然后再往上延伸。这个策略在几乎所有特征工程题里都通用。2.3 模型题为什么第四范式总爱考GBDT而不是深度学习卷子里很大概率会出现一类模型选型题比如面对一个中等规模的结构化数据分类问题你会选择什么模型为什么如果换成深度学习模型会怎样这里就牵扯到第四范式这家公司的一个技术底色它的核心产品很大程度建立在GBDTGradient Boosted Decision Tree族模型之上。这不只是因为GBDT在大量结构化数据任务上效果好更因为它的可解释性、训练效率、对特征尺度不敏感等特性让它更适合被产品化。所以这类题目考的不仅是你会不会用而是你懂不懂为什么在这个场景下要用它。我的建议是回答时不要只给结论要学会从三个维度展开对比数据维度表格数据通常包含大量离散特征和数值特征GBDT天然能处理非线性关系不需要做复杂的特征缩放而深度模型需要embedding层处理离散特征对数据量和算力的要求高得多。训练维度GBDT的逐轮训练机制使其在小样本场景下不容易过拟合适当控制树深和叶节点数的情况下深度模型在小数据上容易过拟合且调参空间大训练周期长。部署维度GBDT模型体积相对可控单棵树的预测逻辑简单容易部署到低延迟场景深度模型通常更重对推理性能的挑战更大。我遇到过不少同学一看到模型选型就想着我要展示我懂深度学习于是在结构化数据题里也硬上BERT或者WideDeep。不能说完全不行但在笔试场景里如果你能逻辑清晰地解释为什么GBDT在这里更合适往往比强行抬高技术复杂度更有效。毕竟笔试考察的是你解决问题的判断力而不是你的技术收藏夹。2.4 评估题AUC很高就万事大吉了吗每次我帮同学复盘这套题都会重点强调评估维度的考察。第四范式明显在意候选人是否会质疑模型结果而不是盲目汇报一个好看的指标。假设题目问你模型离线AUC达到0.92是否可以直接上线这个看似简单的题目其实设置了至少三个陷阱陷阱一是数据泄漏风险。离线AUC虚高最常见的原因是特征里包含了未来信息。比如用用户是否收藏预测用户是否购买如果收藏行为发生在购买之后这个特征就泄漏了标签。笔试里不会直接告诉你这个特征有泄漏而是看你能不能主动考虑这个风险。陷阱二是样本偏差。如果训练样本只来自某一渠道、某一时间段模型天然会有偏差。比如你用双11期间的数据训练模型平时场景的预测效果大概率会打折扣。陷阱三是离线在线不一致。这是工业界最经典的问题之一离线指标好不代表线上效果好。因为线上的数据分布会随着策略调整而变化也就是常说的系统效应。你训练时的分布和上线后的分布已经不是同一个分布了。所以回答评估类问题的时候我建议你建立一个条件反射任何效果好的判断都要至少有有效性、稳定性、可靠性三个层面的思考。这不仅是笔试技巧也是你进入工业界后每天都在做的判断。3. 要命的细节那些容易失分的暗坑与临界知识3.1 数据泄漏笔试里的头号隐形杀手如果说这套笔试题里有什么知识点是最值得反复强调的我一定投数据泄漏一票。并不是因为它有多难理解而是因为它太容易被忽略而且一旦踩中你的整套方案在面试官眼里的可信度会大打折扣。举一个最简单的例子题目给你一个数据集里面包含用户ID、注册日期、最后登录日期、是否购买等字段让你预测用户购买概率。很多人的第一反应是最后登录日期离今天越近购买概率越大于是把这个字段做成特征。这在逻辑上没错但需要注意一点如果你的预测目标是用户在未来30天内是否会购买而最后登录日期包含了预测时点之后的信息那就构成泄漏了。这个问题在笔试里往往不会标注清楚它会让你判断这个特征是否可用考验的就是你对时间窗口和数据生成过程的理解。我自己的经验是碰到任何特征都要问三个问题这个特征在预测时点是否已经确定它是否间接包含了标签信息如果换一个时间点重新训练这个特征还能拿到吗第一个问题解决时序泄漏问题第二个问题解决特征与标签的隐含关联问题第三个问题考验的是特征的泛化能力。你能在笔试题里清晰表达这三个判断就已经胜过了很多人。3.2 不平衡样本不只是换个评估指标那么简单另一类常考的点是不平衡样本的处理。典型题长这样在风控场景中坏样本占比不足1%请设计建模方案。很多人的条件反射是用SMOTE过采样或者调整class_weight。这些写在卷面上不算错但如果你只能答出这个层面只能是及格分。面试官真正想听的是你理解不平衡样本问题的本质是什么。本质在于绝大多数机器学习算法是以整体准确率最大化为目标而少数类样本对整体损失的贡献太小导致模型会倾向把所有样本预测为多数类。所以应对不平衡样本的核心思路不是改数据这一个维度而是要三条路径同时考虑第一条是数据层面。除了过采样和降采样还要考虑如何利用半监督或者伪标注的方式扩充少数类样本。如果业务允许甚至可以调整样本定义比如把时间窗口拉长来获得更多的坏样本。第二条是算法层面。使用对不平衡更鲁棒的算法或者修改损失函数。比如在目标函数里给少数类更高的误分类代价或者使用Focal Loss这类可以自动调节样本权重的损失函数。第三条是评估层面。不要只盯着accuracy要关注Precision、Recall、F1、AUC、PR曲线等。特别是在极度不平衡的场景里PR曲线往往比ROC曲线更能反映模型的实际表现。如果你能在笔试中把这三个层面的方案都写出来并且结合场景说明为什么这么设计这道题的高分基本就稳了。3.3 多分类还是回归一个让人纠结的转化问题笔试里还有一类容易让人栽跟头的题就是目标变量定义。举个例子题目说预测用户消费金额看起来是一个回归问题但实际上很多答案会改成多分类。我当时在复盘时发现这个决策的关键不在于标签的数值类型而在于业务决策需要什么。如果你把消费金额作为连续值做回归模型输出的是一个具体的数值。这在业务上看似可用但实践中往往很难做准——用户的消费金额分布通常极其偏斜少数高消费用户会拉高整体误差。这时如果你把它转化为分类问题——比如定义几个档位0元、1-100元、100-500元、500元以上——每一档对应不同的运营策略建模难度会显著降低而且业务可解释性更强。这个案例的核心启示是建模目标不是由数据决定的而是由业务决策决定的。笔试中碰到这个任务该用回归还是分类这类问题时不要直接答看标签而定而是先分析业务需要什么样的输出再反推技术方案。3.4 时间序列的坑用未来预测过去是新手常犯的错误如果这套笔试题里出现了时间序列相关的题目——比如预测某商品的未来30天销量——那大概率会考察时间切分和数据泄漏的交叉点。一个很经典的错误是直接用全部历史数据训练模型然后随机划分训练集和测试集。这在普通表格数据里很常见但在时间序列场景里是致命的。因为时间序列存在自相关性用未来的数据训练然后预测过去模型会偷看答案。正确的做法有两种一种是严格按时间切分训练集用前70%的时间段验证集用后30%的时间段且中间要留出足够长的gap防止短期自相关影响到评估的客观性。另一种是滚动预测比如用t-30到t-1天的数据预测第t天的值然后依次滚动。这种方式更接近业务实际使用场景但计算成本更高。我在答题时会明确写出训练集时间范围、验证集时间范围、gap时间长度这三个要素因为仅仅写按时间划分是不够的面试官想看到你对细节的掌控。4. 从笔试到实战结构化数据建模的通用方法论4.1 让建模方案七段论成为你的肌肉记忆前面我提到建模方案七段论这一节详细展开。这套东西我不仅在笔试里用在后来的实际项目中也一直在用几乎成了我面对任何表格数据建模任务的标准动作。它包含以下七个环节业务目标转技术目标先搞清楚提升转化率到底意味着什么是提升点击率、下单率、还是支付率。业务方说的一句话你得能翻译成精确的数学定义。样本与Ground Truth设计谁是你的样本正样本是什么负样本是什么样本的时间范围怎么确定这一步直接决定后续所有工作的地基。特征工程按用户属性、行为特征、上下文特征、交叉特征四个维度展开。不要一上来就堆积特征先建一个baseline再逐步迭代。模型选择根据数据规模、特征类型、业务场景选择模型。表格数据优先GBDT族模型有大规模稀疏特征时再考虑深度模型。训练与调参设定合理的评估指标做交叉验证关注过拟合信号。调参不是一上来就Grid Search而是先找到明确的问题方向。评估与验证离线评估和线上评估结合。离线看AUC/LogLoss/PR曲线线上看AB实验的业务指标。部署与监控模型上线后要监控特征分布漂移、预测分数分布变化、业务指标波动。这是工业界极其重要但笔试中很少被考察的环节。这套方法论的价值在于它让你面对任何一道建模题时都有章法可循。你不需要在考场上临时想下一步该干什么而是按照这条链路一步步推进。4.2 为什么特征比模型重要是这个领域的共识在我帮很多同学复盘第四范式的笔试题时发现一个普遍现象大家花大量时间在模型原理和调参技巧上但对特征工程的重视程度往往不够。但如果你去看Kaggle这类数据科学竞赛的优胜方案会发现一个朴素的事实绝大多数获胜模型的取胜关键并不是用了多么高级的模型结构而是特征工程质量足够高。XGBoost和LightGBM这类模型本身已经非常强大它们对特征的组合与非线性拟合能力远超传统模型所以喂给它什么特征直接决定了效果的上限。一个简单但有效的经验法则是先花70%的精力做特征工程和样本设计再用30%的精力调模型。这是我用了很多年仍然觉得有效的时间分配比例也是我在做笔试题时的重要策略。笔试里如果给你一个特征工程题你设计出的特征数量和质量基本就决定了这道题的得分区间。能写出20个有逻辑、有层次的特征明显比写出5个看似精妙的特征更稳妥因为前者展示的是你的系统思考能力后者只展示了你的灵感。4.3 关于模型融合不是多多益善还有一个笔试高频考点是模型融合。题目可能会问你为了提高模型效果你打算怎么做——然后有人就开始写用Stacking、Blending、Bagging……。这个问题我的建议是要区分场景。如果是竞赛你可以大胆尝试各种复杂的融合策略因为目标只有一个——刷高分数。但在工业级应用中模型融合会带来两个实际难题第一是维护成本上升。每多一个模型就多一份特征对齐、部署上线、监控告警的工作量。在团队人力有限的情况下一个复杂融合模型可能是技术团队的噩梦。第二是可解释性下降。银行、医疗这类强监管场景你往往需要向业务方解释为什么这个用户被判定为高风险。单一模型还可以用SHAP值、特征重要性来解释但模型融合之后解释难度成倍增加。所以笔试中如果遇到这类问题正确的策略是先回答我会以单个强模型为baseline在效果仍有提升空间的前提下再考虑有限度的融合然后具体说明融合方式、验证方式和预期收益。这个回答比盲目堆砌方法要高级得多。5. 应对笔试的关键策略时间分配与答题框架5.1 拿到卷子先做什么和几乎所有笔试一样时间分配决定了你能拿到的分数上限。第四范式的笔试题量通常不小包含选择题、简答题、设计题等不同类型。我的策略是先花5分钟把所有题目浏览一遍做好两件事第一件事是识别题目类型。哪些是概念题比如什么是过拟合、哪些是计算题比如请计算某个特征的IV值、哪些是设计题比如请为一个营销场景设计建模方案。不同类型的题目需要投入的时间完全不同。第二件事是识别分值权重。设计题通常分值最高也是最容易拉开差距的地方。如果时间有限宁可把设计题写得完整详尽也不要在概念题上反复纠结。5.2 简答题的得分策略分点作答加粗结论简答题是拿分性价比最高的题型但前提是你掌握正确的答题框架。多年看题和做题的经验告诉我简答题最忌讳的是一段话说到底阅卷人很难快速抓取你的重点。我的习惯是采用结论先行、分点展开、关键术语加粗的结构先把核心结论用一句话说清楚比如针对于类别不平衡问题我会从数据、算法、评估三个层面分别处理。然后按逻辑顺序分点展开每一点先给结论再给解释。遇到关键术语比如SMOTEFocal LossAUC-PR时用加粗标出来方便阅卷人快速定位。这个方法在面试中同样适用。面试官一天要面很多人如果你的回答让他三句话内抓到重点他对你的印象分会高很多。5.3 大设计题的时间预算留出20%时间做检查设计题通常占整个卷面的30%-40%分值所以值得你投入更多时间。我的经验是一道完整的设计题至少需要30-40分钟来作答而且要留有检查的时间。这里有一个很实用的小技巧落笔之前先在草稿纸上列出整道题的骨架业务目标、样本设计、特征体系、模型选择、评估方案然后用10分钟把骨架完善成完整方案最后再开始书写。这样做的好处是你不容易在中途因为某个细节卡住而丢失整体思路。有的同学习惯上来就写写到一半发现前面的某个环节有遗漏然后又回头去改既浪费时间又影响卷面整洁度。这个坏习惯一定要改。6. 复盘与反思这套题给后来人的几条经验6.1 学历和竞赛不是简历上最值钱的资产我见过太多同学在准备这类笔试时把大量时间花在刷竞赛和刷论文上却忽略了最基础的能力——如何把一个模糊的业务问题变成一个清晰的建模问题。第四范式的笔试题其实是一个非常诚实的筛选器它不看你的简历上有多少光环只看你在面对实际业务场景时能否用工程化的语言描述出完整的解决路径。这种能力在学校的课程里很难学到但在真实项目中会反复用到。所以我给后来人最重要的建议是早一点开始做完整的项目而不是做碎片化的实验。一个完整的项目意味着你要自己完成数据理解、目标定义、特征工程、模型训练、评估上线的全过程。哪怕只是一个很小的场景也会比做十个只调参的实验有价值得多。6.2 建模能力不是会调包而是会做判断还有一种常见误区是把建模能力等同于熟练使用Sklearn、XGBoost这些库。工具当然要会但笔试考的核心从来不是工具熟练度而是你的判断力面对这个业务场景该做分类还是回归该用什么数据做训练怎么避免数据泄漏特征效果不好是该加特征还是换模型离线效果和线上效果不一致问题出在哪里这些问题都没有标准答案考察的全是你做判断的依据和逻辑。笔试中能把自己的判断依据清清楚楚地写出来的人往往才是最终能通过筛选的人。6.3 平时练习时别只看标准答案多问自己为什么最后一个小建议不管是做第四范式的题还是刷其他公司的笔试题复盘比刷题本身更重要。我自己的习惯是每做完一道题会在旁边写下三个问题这道题背后的业务场景是什么它想考察哪些能力如果换一个条件我的答案需要做哪些调整这个过程刚开始会比较慢但坚持下来之后你会发现面对新题型的适应速度会快很多。真正拉开人与人差距的往往不是你知道多少知识点而是你能在多短的时间内把已有的知识组织成一套有效应对新问题的方案。这也是我从这套笔试题里悟到的最深层的东西。如果你正在准备第四范式的技术笔试或者更广义地在准备任何机器学习相关的校招建议你找一个安静的时间不要看任何参考资料完整地做一套这类笔试题然后对照本文提到的考察点做复盘。你会发现一次认真的模拟比看十篇面经都管用。