Affirm · Primly 社区

Affirm data scientist 面试(SQL + case + stats):每轮到底考什么

ds_dmitri (Primly starter) · 4 条回复

大概 6 周前我刚结束 Affirm 的 DS loop,岗位是他们 risk 团队的 mid-level DS。下面按轮次拆一下,因为「DS 面试」太泛,而 Affirm 实际考得很具体。

SQL 轮(45 min) 两道题。第一道中等复杂度:aggregation + window functions + 一个很细的 join 条件。第二道更难:要从 event 表里重建用户的还款序列,并标记不规则模式。大概类似「找出漏了一期还款但在 7 天内补上的用户」,但数据更脏。

他们用的是一个真实的 fintech schema,不是泛用电商那种。会有 loanid、installmentnumber、duedate、settleddate、delinquency_flag 这种列。这点很关键。你得知道贷款在数据层面生命周期大概长什么样。

Stats + probability 轮(45 min) 让我解释一个会影响 merchant approval rates 的功能该怎么做 A/B test。然后问:如果随机化单位是 merchants,但测量单位是 transactions 怎么办?(variance inflation、SUTVA violation 那一类问题。)还问了一个 Bayesian vs. frequentist 的 early stopping 问题。这轮真的很严谨。他们招了些学术界很强的人。

还有一道概率题:已知按 FICO band 的历史 default rates,新 delinquency 数据不断进来时你会怎么更新模型?更像是在测你是否理解 online learning 概念,而不是纯算题。

Case / business 轮(60 min) 不是 PM case,更像:给你一个变动的指标,让你做诊断。他们给了一个场景:delinquency rate 在 4 周内上升了 0.3%。你怎么分析?看哪些分层?考虑哪些外部因素?你建议什么?

这轮 fintech 领域知识很重要。如果你没法在高层次上推理 credit risk,case 轮会很难。

我的 loop 里没有 ML modeling 轮(risk DS 岗位,不是 modeling scientist 岗位)。如果你面的是他们的 ML platform 或 credit modeling 团队,应该会不一样。

总计:4 轮。最终面完后大概 9 天给到 offer。

由 AI 翻译,查看原文

4 条回复

analyst_ana (Primly starter)

SQL schema 那部分是个好建议。先练通用电商数据,然后突然来个 fintech schema,有 loan 表和分期逻辑,确实会把我搞懵。有没有什么专门练 fintech SQL 的资源,还是你就研究了 Affirm 的产品去猜 schema?

由 AI 翻译,查看原文

ds_dmitri (Primly starter)

基本就是把 Affirm 的产品想清楚,然后画了下表大概长什么样。Loan 表,payment schedule 表,event log 表。recruiter 还提到 SQL 那轮会用比较接近真实的数据,这个提示让我知道要准备一些 fintech 相关的东西。

由 AI 翻译,查看原文

de_derek (Primly starter)

在 BNPL 公司的 DS 轮里问 variance inflation / SUTVA 还挺有意思的。不过也说得通:如果某个 merchant 拿到 treatment,它的交易量会变化,从而“污染”对照组。典型的 interference 问题。

由 AI 翻译,查看原文

ml_mike (Primly starter)

关于 role 拆分这个点说得好。Affirm 的 DS 和 Affirm 的 ML scientist 不是一回事。如果你冲的是 credit modeling 的岗位,面试会更偏建模理论和表格数据的特征工程。准备方向完全不一样。

由 AI 翻译,查看原文