ServiceNow · Primly 社区

ServiceNow data scientist 面试:SQL case 和 stats 轮解析

ds_dmitri (Primly starter) · 4 条回复

上季度走完了 ServiceNow 的 DS 面试流程,岗位是他们产品分析团队的 mid-senior data scientist。分享一下,因为我进去之前几乎在网上找不到任何关于这个 loop 的具体信息。

流程概览: Recruiter screen,technical phone screen(偏 DS),take-home case,onsite(4 轮)

Technical phone screen(45 分钟): 感觉一半是 SQL 小测,一半是产品感觉的热身。SQL 题不刁钻,但确实在测真功夫: Window functions:running totals、分区内 rank、lag/lead 做留存 cohort 一个带 gap-fills 场景的 join 题(找 30 天窗口内没有任何活动的用户) 一个关于 query performance 的问题:同一个 filter 两种写法,哪种更快,为什么(index 使用、subquery vs. CTE 之类)

这一轮没有 Python。

Take-home case: 他们给了我一个假的 ServiceNow 平台事件和用户行为数据集。问题包括:描述 adoption curve、找出客户 churn 的 leading indicators、为某个功能改动提出 A/B test 设计。我有 5 天时间,最后交了一个带注释的 Jupyter notebook。

我大概花了 8 小时。分析不需要很复杂,他们想看你怎么把业务问题框起来、怎么做分析、以及怎么把「所以呢」讲清楚。别去堆一个巨大的模型,很多时候 descriptive stats 加一张好图就能讲清故事。

Onsite DS 轮次: SQL 深挖,45 分钟,比 screen 难。一个多表 join + aggregation 加一个很刁钻的条件,一个关于事件序列的 windowing 题。 统计 / 概率,30 分钟。Bayesian reasoning、A/B test power 计算、一个关于 Simpson's paradox 以及它什么时候会出现的问题。 ML / 建模讨论,45 分钟。不写代码。让我从头到尾讲一个我做过的模型。怎么处理 class imbalance?怎么给非技术 stakeholder 解释模型?你会怎么做得不一样? 跨职能合作轮:模拟对话,我是 DS,他们扮演一个 product manager,让我做一个定义不清的东西。我怎么 scope,需要什么数据,怎么 push back?

Stats 坑点: Simpson's paradox 那题一开始把我绊住了。这个一定要烂熟。他们明显很在意统计严谨性,以及你能不能在东西进 dashboard 之前抓住误导性的 aggregation。

整体:loop 很扎实,感觉他们是真的想要一个靠谱的 data scientist,不是 SQL 苦力,也不是纯 ML engineer。跨职能那轮是分水岭。

由 AI 翻译,查看原文

4 条回复

analyst_ana (Primly starter)

这个 cross-functional partner 轮听起来正是我需要多练的。你大概知道当 PM 的需求描述很不清晰时,一个强回答长什么样吗?比如他们到底想从你这里看到什么?

由 AI 翻译,查看原文

alex_design (Primly starter)

他们想看你在定 scope 之前先问澄清问题。我 mock 里的 PM 让我“分析为什么 feature X 表现不佳”,但没给 baseline、没定义什么叫 underperforming、也没给分群信息。强回答:我先问他们在看哪个指标、对比点是什么(上一周期?竞品 benchmark?目标?),以及这个分析要支持什么决策。弱回答:直接跳到“我去拉 usage logs 然后跑个回归”。他们想要的是在分析之前,先把问题定义得结构化。

由 AI 翻译,查看原文

ml_mike (Primly starter)

class imbalance 这个问题真的是个暗号。你感觉他们想听的是 oversampling/undersampling、调阈值,还是那种「要看 FP 和 FN 的业务成本」的答案?

由 AI 翻译,查看原文

brand_ben (Primly starter)

这就是典型的「it depends」答案,但讲得很落地。我说我会先理解成本比例(false negative 漏掉导致的 churn vs. false positive 浪费的 CSM 时间),然后在上 SMOTE 之类的方法之前,先在阈值调参和 class weights 之间做选择。他们还问我:如果做了 class weighting 之后 minority class 还是表现很差,我会怎么做。那就聊到了 precision-recall 的权衡。这是一次很好的对话,不像在被考题。

由 AI 翻译,查看原文