2026 年 Q1 走完了 Visa 的 DS 面试 loop,岗位是 risk analytics 团队的 data scientist。OA 之后一共三轮。下面是实际拆解。
SQL 轮。 比我预期更复杂。不只是 window functions 和 CTE,而是真正多步骤的分析型查询。给的场景是:你有一张 transactions 表、一张 merchants 表、一张 cards 表。写一个 query,找出最近 30 天 declined transactions 相对过去 90 天 baseline 异常飙升的 merchants。这是很真实、很落地的问题。你需要 window functions、日期计算,可能还要一两个 CTE。aggregation 和 partitioning 一定要非常熟。如果可以,尽量用带 fintech 味道的数据集练。
统计与概率。 他们问了一个关于 fraud detection 的贝叶斯题。给定某类交易的 fraud 先验概率,模型 sensitivity 是 X、specificity 是 Y,问这个被标记的交易实际上是 fraud 的后验概率是多少。经典 confusion matrix + Bayes theorem。然后问你会怎么选模型的 decision threshold。准备好聊 precision/recall 的权衡,以及业务成本不对称(大多数场景下,fraud 的 false negative 比 false positive 更贵)。
Case/业务问题。 很开放:「Visa 发现 Mexico 某个 issuer 的 authorization rates 在过去 60 天里下降了 2%。讲讲你会怎么调查。」不写代码,纯分析推理。我先问了澄清问题,然后按 card type、transaction type、一天中的时间、merchant category 去分段。他们想看的是结构化的诊断思路。
Behavioral。 一场。主要围绕我怎么把发现讲给非技术 stakeholder,以及一次我根据反馈调整分析的经历。
整体难度:非常应用,不是 LeetCode-DS。如果你在 fintech 做过真实数据问题,或者在交易型数据上做过比较硬的 SQL,这一套会比较吃香。