Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

作者: Generalized Error

如何把薪资谈高一倍?请看大厂offer拿到手软的ML大神自述

本文作者刚刚博士毕业,在 NIPS、ICML、ICLR 等各大深度学习顶会上都发表过论文,其论文引用量在 500~1500 之间。他花了半年的时间面试了许多大的跨国公司,而且多数都拿到了 offer。在这份「面经」中,他讲述了自己拿到高薪 offer 的秘诀:让给出 offer 的公司「竞标」……

面试必读

根据我的经验,几乎所有与面试软件工程职位相关的经验都适用于机器学习研究职位,因为这些职位都出自同样一批公司。在开始面试之前,我强烈推荐大家阅读以下几篇关于如何谈薪资的博客:

  • https://www.kalzumeus.com/2012/01/23/salary-negotiation/

  • https://medium.freecodecamp.org/ten-rules-for-negotiating-a-job-offer-ee17cccbdab6

  • https://medium.freecodecamp.org/how-not-to-bomb-your-offer-negotiation-c46bb9bc7dea

重要资料读三遍:面试前一遍;谈薪资前一遍;谈薪期间再读一遍。

公司

我只面试过全球大公司的产业研究实验室职位,没有面过初创企业或更小的公司。而且我面试的区域仅限于欧洲,其他地方的薪资、福利可能存在差别。

欧洲有很多大公司招聘 AI 科学家:亚马逊在柏林有一个深度学习研究实验室;苹果在巴黎有深度学习职位;谷歌大脑在阿姆斯特丹、柏林、巴黎、苏黎世都有实验室;Facebook AI 研究院和 DeepMind 在伦敦和巴黎都提供职位……微软、英伟达、Twitter、Uber 等公司在欧洲也有不少 ML 职位。

除此之外,应用领域也有很多有趣的职位,如自动驾驶(大众/奥迪在慕尼黑有实验室)、新药研发(生物科技「独角兽」Benevolent AI 位于伦敦,默克、强生、阿斯利康等公司也都在寻找 ML 人才)、金融(Citadel 和 Jane Street 等在伦敦都有办公室)。

参加学术会议时逛一下招聘区域也能发现一些大公司有趣的研究职位,如彭博社(伦敦)、博世(斯图加特)、迪士尼研究院(苏黎世)。

虽然有一些心仪的公司,但我还是尽可能多申请了几家:如果手里没有颇具竞争力的 offer,你在薪资谈判中就会处于严重的劣势。面试练习也的确给了我很大的帮助。

我第一次面试时的肾上腺素水平堪比在 3000 人注视下演讲,但最后一次就像是午餐时和同事聊天。当然,你的确会毁掉一些面试,你和面试官都有可能心情不好,或者你被问到自己的知识盲点,抑或那个职位不合你的胃口或者其他地方出什么严重问题。

比如,不知道什么原因,英伟达在约好的视频面试时间放了我鸽子,后来也没理会我发的那些邮件,弄得我一头雾水。所以,不要把鸡蛋放在一个篮子里。

然而,多面一些公司还是很有好处的:我了解的公司更多了。居然有那么多不错的工作我都没有考虑过!一些最有趣的职位(以及最好的 offer)来自我最初没有考虑过的公司。

事实证明,我的一些「安全选择」真的非常适合我。虽然大家的情况可能不太一样,但我还是建议多去和一些团队聊聊他们的项目和愿景,你会觉得深受启发。

上面列出的公司或欧洲实验室有一半是我投过简历的,研究科学家和研究工程师的职位都有,而且多数都给了我 offer。我找工作花了挺长时间(从投出第一份简历到接受 offer 大约有半年时间),但我也是精疲力尽:那几个月我基本都是在机场、酒店、面试间度过的,不断接电话、和 HR 谈薪资。

不要指望在这个时期做什么工作。正如一个同事所说:「你的头脑总是被那些招聘反馈占满,没有多余的精力去想 ICML。」但我也收获颇丰:我学到了很多东西,吸收了很多新的观点,也谈到了更高的薪水,如果我接受了第一份「心仪的工作」offer,我的薪水会比现在低得多。

面试过程

所有公司的面试过程都非常相似,在收到简历后,公司会先邀请我做一个简单的筛选,看看我是不是一个合格的候选人。通常这种筛选会采用一两个电话面试,且每个面试大概一小时左右。

然后,我经常受邀进行现场面试,这一般是在公司办公室内,与多个专业人员进行一整天的面谈,这个时候我通常会介绍我的博士研究。

随后是每次约 1 小时的个人访谈,访谈的对象是我面试团队的其它成员,或者是其它团队的研究者或工程师。通常情况下,我在每次面试中都会遇到很多不同的人,因此基本上一天下来我能了解到该团队的大部分成员。

几乎所有的面试官都会抽时间询问职位、团队或公司的相关问题,我喜欢询问工作与生活的平衡、工作的难点或他们对工作不太喜欢的地方,大多数人都会诚实坦率地回答这些问题,这会展示未来工作一些尖锐的问题所在。

他们可能会告诉我「也许你在第二年或第三年才能将工作时长减少到 60h / week」、「办公室真的很棒,你会爱上这里」等等。

也有一些研究员对自己的研究成果非常兴奋,从而忘了问我相关的技术问题,他们会将目前的突破及相关概念一股脑地介绍给我。这些都是了解公司和职位的好机会,绝对值得花时间问一些好问题。

面试类型

我曾多次遇到几种不同类型的面试。其中一些面试(如编程或行为面试)准备起来很容易,而另一些则几乎无法提前准备。

所有公司都会有不同的组合面试:一些公司给我发 offer,却不曾核查我是否可以编程(不问编程问题),同时其他公司从不核查我是否了解期望值是什么(不问数学问题)。

一些公司会更多地问我理论问题,而另一些公司更多地问我实际问题;但大多数公司会同时询问理论和实际问题。一般来说,面试人员通常会在我感到困扰时给予提示。

我认为面试人员常常故意不具体说明一些问题,就是想要看看我的反应,并且愿意提供帮助或与我讨论细节。这种面试从不像是一种对抗过程,而更像是同事之间的讨论。

1.「谈谈你的研究」

很多面试只是要求我谈一下过去的论文。面试官通常会从简历中挑选一篇论文,然后让我就此谈一谈。他们有时也会让我选择一个自己愿意谈论的项目。

一些面试官仅仅会问一些浅显的问题,而另一些会深入了解(「你在定理 3 中假设了异方差性(heteroscedasticity),但通篇没有进行验证。你为什么认为这是一个有效假设,它的蕴含是什么呢?」)。

但是,我与面试官从未上升到「数学深度」的讨论:在与他人合著的论文中,有一两个微妙的论证,而这是我害怕提及的;但幸运的是,所有面试官像我一样害怕讨论这些内容。我通常被问及自己是第一作者的论文,但面试官也不介意我讨论与他人合著的论文。

2. 编程面试

谷歌或 Facebook 的典型软件工程面试非常有名:你需要想出实际的方案来解决有关算法性质的一些难题。通常使用你自己选择的编程语言,如 C++或 Python。

每个问题需要反复讨论:首先,你想出一个简单的解决方案并付诸实践,然后面试官提出一些附加限制或者要求你提供另一种更有效的解决方案。之后,面试官通常希望我讨论一下时间或内存复杂性,或者讨论实现中的潜在测试用例。

很多时候,面试官会与我就同一问题进入深度探讨阶段。然后,面试官承认他们自己也不知道如何解决最后一个问题,只是想看一看我是否可以想出一些解决方法,或者我如何就无法解决的问题做出回应。

我发现这些面试准备起来是最容易的:浏览一些诸如 Princton's Algorithms(第一、二部分)的内容以及在 leetcode.com 上做一些习题就足够了。

3. 机器学习面试

一些面试只测试机器学习常识。这些面试也会包含大学正规机器学习课程所讲的内容。这类面试通常分两部分进行。

第一部分是机器学习的常识问题:你如何正则化一个深度网络?随机森林训练中如何提高效率?当预测速度较准确率更重要时,两种合适的分类算法是什么?你如何根据内容对文档进行语义分组?你能谈一下高斯混合模型k-means 聚类算法的联系吗?

第二部分通常会包含「机器学习编码」,这时我必须实现一些标准机器学习算法。例如,我记得实现决策树的推理/剪枝、k-means 和 k-NN。面试官通常给我 30-45 分钟来实现这些(并再次讨论效率或者可能的测试用例)。

4.「我们有这个问题...」

在一些面试中,面试官只告诉我他们当前正在进行的项目,然后问我如何解决。

比如:「我们试图找出视频数据库中的重复视频」、「我们需要根据一些模糊指定的标准对数百万的实体进行排序,并以亚秒级(sub-second)延迟来实现」、「我们的标签数据很少,同时想要使用 GAN 来扩大数据集,哪种方法最好呢?」...

这类面试确实没有很好的方式去准备,但我认为面试官主要是想了解我的思维过程。所以,这类面试并不是想出完美的算法就可以了,更多地是进行头脑风暴或讨论权衡利弊,即使你连最初设想都没有。

5. 行为面试

每当我被告知将被某位 HR 面试时,随之而来的几乎总是行为面试(Behavioral Interview)。幸运的是,问题也几乎总是一样的,所以你可以提前做好准备。有个公司甚至给我发了一本关于他们公司价值观的小册子,并告诉我面试中会问我如何在生活中反映这些价值观。

只要用谷歌搜索一下「行为面试」,你就可以找到很多相关资源。总之,这种面试我遇到的不多,大概三四次。

6. 其它

有些公司的面试会出一些我在其它公司没有遇到过的题。比如数学谜题,或「论文讨论」面试——提前给我一篇论文让我阅读(通常是来自我不太熟悉的领域)。还有关于统计基本原理、概率和优化理论的几小时笔试。

薪资谈判

面试结束后,公司的招聘人员会联系我,然后告诉我「好消息」。我总是会直截了当地告诉招聘方我还在参加其他面试,而招聘人员一般都能够理解。

只有当我收到所有公司的回复后,我才会准备讨论下一步。然后开始了薪资谈判。关于这个话题,已经有很多人讨论过了。如果要了解更多相关信息,一定要查看文章开头给出的博客链接。

当然,不同的领域薪资水平不同。机器学习领域的薪资水平紧紧跟在软件工程师之后,所以 levels.fyi 和 GlassDoor 可以给你提供很好的薪资参考。Blind 网站上也有很多关于薪资和面试过程的信息。

但是,你在这些网站看到的薪资水平严重偏向硅谷和整个美国。我的确可以从这些网站上找到关于欧洲薪资水平的信息,但是不太好找。即使是在欧洲,不同国家之间的薪资水平也存在很大差异:比如,英国和瑞士提供的薪资水平要比其它国家高得多。

当面试公司问我对薪资的看法时,我总是告诉他们 10 万欧元是开始谈判的数字。即使在我面试之前,根据我在网上的研究、我之前的实习以及与朋友和同事的交谈中所了解到的情况,我也知道这个数字在现实中是一个薪资下限。

英国或瑞士肯定有公司愿意支付这么多,虽然这个数字对欧洲其他地区来说相当高。但是,我认为先提出一个较高的数字总比笨拙地回避这个问题要好。

多数公司最初给出的薪资为 8~12 万欧元/年。请注意,这通常是年薪总额,所以它包括了基本薪资、预期奖金以及任何股票期权或额外的养老保险。我把我收到的最高报价报给了所有招聘人员。

总的来说,我觉得美国公司(即总部在美国)都能接受我提出的薪资要求,愿意和我谈判,但大部分欧洲公司表示它们无法接受(顺便提一下,没有一家欧洲公司最终在整个过程中给出超过 10 万欧元的年薪)。

接下来,我选择了一些值得接着往上谈的公司。有些公司在面试过程中给我留下了很差的印象,而另一些公司则是我不需要再考虑的「保底」公司。我会感谢他们抽出时间,然后告诉他们我没兴趣了。

最后只留下了一小部分让我感兴趣的公司:我愿意接受其中任何一家公司的 offer!我手里的谈判筹码现在非常强大:我可以要求这些公司开出比当前出价最高的公司更高的薪水,而不必担心吓走任何一家。即使有公司撤回其 offer(或不愿意满足我的要求),我仍然有其它很好的选择。

事情发展到最后:每家公司都报出了比别人更高的价,最后把我的年薪提高到了我做梦也没想到的高度。这是一种非常超现实的感觉。

我在所有公司之间来回做了两轮比较。这期间,我感觉那些招聘人员快要按捺不住了。他们邀请我去他们的城市度周末(包全程所有费用),给我邮寄惊喜的礼物篮、给我开出高额的薪资等等。

在他们都失去耐心之前,我觉得是时候做决定了。值得一提的是,尽管这些公司确实提供了更高的安家费和签约奖金,但它们在提供额外的非货币福利方面不够灵活。例如,没有公司愿意多给假期(这主要由地区标准决定,每年休假 25 至 45 天不等)。

最终,通过这种利用竞争报价的方式,我让最终签约的公司把薪资提高了一倍。我的最终年薪在 16~24 万欧元之间(不包括签约奖金和安家费)。

关于招聘人员

我从没有见过像招聘人员这样将胡萝卜加大棒的把戏玩得如此炉火纯青的一群人。

他们会告诉你「这是我们能给的最高待遇」(一周后就变了),还会跟你强调「他们会为你破例,因为你是一个非常优秀的求职者」(而实际上提供给你的东西和别人相差无几)。

他们还会凭空捏造出严格的 deadline(五分钟之后就会告诉你他们完全接受延期),他们还会告诉你,他们不会重新谈判(但只要你拿出更有竞争力的 offer,他们还是会重新跟你谈),还会说他们在过去两个月内在面试其他候选人(但他们绝对不会放弃跟你谈)。

感觉招聘人员总是想确定我是不是真的想选择另一份 offer 而不是他们的,还是只是利用他们与另一家公司重新谈判。我想这一切都在意料之中,而我最好的建议是始终保持礼貌、耐心和执着。

在我有限的经验中,只要你收到了多份 offer(并且愿意放弃其中任何一个),你就掌握了主动权。所以,努力谈判吧。

  • 原文地址:https://generalizederror.github.io/My-Machine-Learning-Research-Jobhunt/

  • 讨论地址:https://www.reddit.com/r/MachineLearning/comments/bb9umg/d_my_machine_learning_research_job_interview/

产业机器学习技术面试
5
相关数据
来也科技机构

来也科技是中国乃至全球的智能自动化领军品牌,为客户提供变革性的智能自动化解决方案,提升组织生产力和办公效率,释放员工潜力,助力政企实现智能时代的人机协同。 来也科技的产品是一套智能自动化平台,包含机器人流程自动化(RPA)、智能文档处理(IDP)、对话式AI(Conversational AI)等。基于这一平台,能够根据客户需要,构造各种不同类型的数字化劳动力,实现业务流程的自动化,全面提升业务效率。

www.laiye.com/
Amazon机构

亚马逊(英语:Amazon.com Inc.,NASDAQ:AMZN)是一家总部位于美国西雅图的跨国电子商务企业,业务起始于线上书店,不久之后商品走向多元化。目前是全球最大的互联网线上零售商之一,也是美国《财富》杂志2016年评选的全球最大500家公司的排行榜中的第44名。

https://www.amazon.com/
相关技术
DeepMind机构

DeepMind是一家英国的人工智能公司。公司创建于2010年,最初名称是DeepMind科技(DeepMind Technologies Limited),在2014年被谷歌收购。在2010年由杰米斯·哈萨比斯,谢恩·列格和穆斯塔法·苏莱曼成立创业公司。继AlphaGo之后,Google DeepMind首席执行官杰米斯·哈萨比斯表示将研究用人工智能与人类玩其他游戏,例如即时战略游戏《星际争霸II》(StarCraft II)。深度AI如果能直接使用在其他各种不同领域,除了未来能玩不同的游戏外,例如自动驾驶、投资顾问、音乐评论、甚至司法判决等等目前需要人脑才能处理的工作,基本上也可以直接使用相同的神经网上去学而习得与人类相同的思考力。

https://deepmind.com/
Microsoft机构

微软是美国一家跨国计算机科技公司,以研发、制造、授权和提供广泛的计算机软件服务为主。总部位于美国华盛顿州的雷德蒙德,最为著名和畅销的产品为Microsoft Windows操作系统和Microsoft Office办公室软件,以及Xbox的游戏业务。微软是美国《财富》杂志2015年评选的世界500强企业排行榜中的第95名。

https://www.microsoft.com/en-us/about
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

自动驾驶技术技术

从 20 世纪 80 年代首次成功演示以来(Dickmanns & Mysliwetz (1992); Dickmanns & Graefe (1988); Thorpe et al. (1988)),自动驾驶汽车领域已经取得了巨大进展。尽管有了这些进展,但在任意复杂环境中实现完全自动驾驶导航仍被认为还需要数十年的发展。原因有两个:首先,在复杂的动态环境中运行的自动驾驶系统需要人工智能归纳不可预测的情境,从而进行实时推论。第二,信息性决策需要准确的感知,目前大部分已有的计算机视觉系统有一定的错误率,这是自动驾驶导航所无法接受的。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

剪枝技术

剪枝顾名思义,就是删去一些不重要的节点,来减小计算或搜索的复杂度。剪枝在很多算法中都有很好的应用,如:决策树,神经网络,搜索算法,数据库的设计等。在决策树和神经网络中,剪枝可以有效缓解过拟合问题并减小计算复杂度;在搜索算法中,可以减小搜索范围,提高搜索效率。

数据库技术

数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。 所谓“数据库”系以一定方式储存在一起、能予多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。

随机森林技术

在机器学习中,随机森林是一个包含多个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数而定。 Leo Breiman和Adele Cutler发展出推论出随机森林的算法。而"Random Forests"是他们的商标。这个术语是1995年由贝尔实验室的Tin Kam Ho所提出的随机决策森林(random decision forests)而来的。这个方法则是结合Breimans的"Bootstrap aggregating"想法和Ho的"random subspace method" 以建造决策树的集合。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

大数据技术技术

大数据,又称为巨量资料,指的是传统数据处理应用软件不足以处理它们的大或复杂的数据集的术语。

高斯混合模型技术

高斯混合模型(Gaussian Mixture Model,GMM)是单一高斯概率密度函数的延伸,就是用多个高斯概率密度函数(正态分布曲线)精确地量化变量分布,是将变量分布分解为若干基于高斯概率密度函数(正态分布曲线)分布的统计模型。

异方差技术

异方差(Heteroscedasticity)指一系列的随机变量其方差不相同。 当我们利用普通最小平方法(Ordinary Least Squares)进行回归估计时,常常做一些基本的假设。其中之一就是误差项(Error term)的方差是不变的。异方差是违反这个假设的。如果普通最小平方法应用于异方差模型,会导致估计出的方差值是真实方差值的偏误估计量(Biased standard error), 但是估计值(estimator)是不偏离的(unbiased)

正则化技术

当模型的复杂度增大时,训练误差会逐渐减小并趋向于0;而测试误差会先减小,达到最小值后又增大。当选择的模型复杂度过大时,过拟合现象就会发生。这样,在学习时就要防止过拟合。进行最优模型的选择,即选择复杂度适当的模型,以达到使测试误差最小的学习目的。

聚类技术

将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类。由聚类所生成的簇是一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其他簇中的对象相异。“物以类聚,人以群分”,在自然科学和社会科学中,存在着大量的分类问题。聚类分析又称群分析,它是研究(样品或指标)分类问题的一种统计分析方法。聚类分析起源于分类学,但是聚类不等于分类。聚类与分类的不同在于,聚类所要求划分的类是未知的。聚类分析内容非常丰富,有系统聚类法、有序样品聚类法、动态聚类法、模糊聚类法、图论聚类法、聚类预报法等。

推荐文章
暂无评论
暂无评论~