今年更早些时候在 McLean 面了 capital one 的 MLE loop,对的是他们的 fraud/risk ML team。下面是完整复盘。发出来是因为那边的 ML loop 资料比 SWE loop 少太多了,我只能从零散帖子里拼出来。
先说结论:capital one 在金融服务里算是真正做 ML 的那一类。他们在规模化场景下有真实的模型 ownership,不是那种「用个供应商模型就叫 AI」的团队。这会直接影响面试到底在考什么。
loop 结构。 一共五轮:intro/recruiter,ML fundamentals,ML 的 system design,coding,behavioral。对 senior MLE 来说,还经常会加一轮 research 或 paper discussion,取决于 hiring manager。
ML fundamentals 这一轮。 这是最有意思的一轮。他们问了 gradient boosting 的内部细节(比如你怎么在 XGBoost 里控制 overfitting,L1 和 L2 的 regularization 有什么区别,什么时候各自更重要)。然后是一个 case:"you have a class imbalance problem in a fraud detection model, how do you handle it?"(你在欺诈检测模型里遇到类别不平衡问题,会怎么处理?)我讲了 SMOTE、class weights、threshold tuning,以及 precision-recall 的权衡。他们很在意你能说清楚在欺诈场景下该看哪个指标(在大多数欺诈场景里,recall/false negative cost >> precision/false positive cost)。这种 framing 他们听得很认可。
他们还问了一个特征工程题:给你原始交易日志,你会为实时欺诈模型做哪些特征?我说了 velocity features(过去 N 分钟用户、商户、卡的交易次数)、距离/位置异常、device fingerprinting、time-of-day 编码。他们追问:"how do you compute velocity features in real time without hitting the database on every transaction?"(你怎么在不每笔交易都查数据库的情况下,实时计算 velocity 特征?)
ML system design。 经典题:设计一个实时欺诈打分系统。要考虑:模型服务延迟(每笔交易 sub-100ms)、feature store(online vs. offline)、模型版本管理和回滚、监控(data drift、model drift、shadow mode 部署)。我按 pipeline 来讲:transaction event -> 从 online store(类似 redis)取特征 -> scoring service -> 带兜底规则的 decision engine。他们最感兴趣的是监控:你怎么在模型导致损失上百万之前,就发现它在变差?
coding。 这轮更像 SWE,而不是我之前做过的一些偏轻的 ML coding。一个题是实现 sliding window counter(对应 velocity features),另一个题是不用 sklearn 写一个简单的 train/test split function(也就是要你证明你知道 stratified sampling 是什么,并且能写出来)。不算特别难,但要熟练,不能生。
behavioral。 很强调 ownership 和 ambiguity。我印象最深的一题是:"tell me about a model you owned that underperformed expectations and what you did about it."(讲一个你负责的模型表现不及预期的例子,以及你怎么处理的。)
comp。 senior MLE 的 offer 大概在 $190-215k TC(base + bonus)。听说 staff-level 能更高,但他们似乎只会把这个留给在 risk 领域特别深的人。
总体感受:如果你是从非 fintech 来的 MLE,也完全能过 bar,但要花时间理解为什么 fraud ML 的 trade-off 和推荐系统之类的很不一样。这一点讲出来就很加分。