上个月刚结束 Disney 的 ML engineer 面试 loop,岗位在个性化团队,归在 Disney+ 下面。决定写下来,因为网上现有信息大多是 SWE 岗,这个差别挺大。
快速背景:我做 ML 8 年了,主要是 NLP 和 recsys。面的是 senior 的 IC role。
整个 loop:
先是和一个 hiring manager 的 phone screen,这点挺少见。他让我从头到尾讲一个我做过的 recommender system:feature engineering、模型结构选择、怎么处理 cold start、怎么衡量成功。基本上这就是后面所有面试的模板,所以一定要准备一个讲得很顺的故事。
技术面(共 3 轮):
ML 深度轮:给了一个场景。Disney+ 想提升用户在 Disney、Hulu、以及 ESPN 内容之间的内容发现体验。让我讲你会怎么设计推荐模型。这本质上是披着 ML 外衣的开放式系统设计题。他们想看:你怎么定义问题,会用哪些信号(观看时长、显式评分、缩略图点击),怎么处理多域内容(体育 vs 儿童 vs 大片差异很大),以及你怎么做 offline vs online 评估。我讲了不少 two-tower 模型和 A/B testing 框架。
Coding 轮:不是 Leetcode。他们让我写 Python 代码来处理、聚合用户互动日志。更像 pandas/numpy,不是图算法。从原始 event data 写一个 feature engineering pipeline,很实用。
Research/深度轮:让我讲一篇最近觉得有意思的论文或项目,并解释我会怎么用到他们的业务里。我选了一篇 retrieval-augmented reranking 的论文。这轮更像 seminar,不太像传统面试。
Behavioral:有一轮专门的行为面,带 Disney 的风格。最大的问题是:讲一次你的模型给出的推荐从技术上看没问题,但对用户来说是错的。他们更在意 ML 的人性侧面,不只是指标。
一些突出点:Disney 很重视 cold start,因为内容跨度太大。他们也很看延迟(sub-100ms serving)。另外实验文化很强,所以能聊 A/B test 设计、holdout sets、statistical power 很重要。
定级上最后给的是 senior MLE。LA base 在 $180-200k 区间,RSUs 就……还行。不是 Netflix ML 那种水平。投递后大概 6 周拿到 offer。