首先,题主的background有些特殊:22年硕士毕业后 gap 了一年,申请23 fall美国cs/ee/ece的PhD。23年年初2、3月份的时候算是尘埃落定,拿到几个CS/ECE的全奖offer。想着离8月开学还有近6个月,闲着也是闲着,就怀着试一试的心态去投23年暑假期间的实习。
题主的background如下:
(a) Internship: 推荐算法实习生。因为题主硕士期间的主要研究方向就是推荐模型算法与社会物理学(link prediction)做学科交叉,也涉猎了不少ML。很想有一段相关的工业界经历~
(b) Base: 只投了北京。想去北京玩一玩,就当补偿一下去年的毕业旅行~
(c) 专业: 本科信管(学了不少CS课程,包括数据结构与算法、操作系统、计算机网络、数据库、系统架构设计、C、信安基础等等;硕士理论物理(主要学了一些数学课);博士CS偏ML(当年8月份才入学,所以目前不能严格算在校生)。
(d) 个人硬件: 没有时间刷leetcode、没有时间背八股文、之前也没有intern经历,只有2篇RS相关的SCI (JCR 2区) 的 paper。纯属PhD申请完后紧接着想去试试(好在最后没逝世)...
(e) 途径: Boss直聘、实习僧、少数内推。投了差不多100 ,回复率30%左右,给面试的有6家(接了offer后就没再面试和投)
A厂(知名研究院,研究型实习生,做蛋白质结构预测)
是个研究院,position的研究方向是蛋白质结构预测,和我的研究经历不太match,唯一的交集可能就只是GNN了
Round 1 (2023.2.14, 团队小boss技术面)
- 过去的研究经历?
- 为什么有独立作者的paper?
- 偏向于自己独立开展工作?
- simplex的定义是什么?
- 你知道SO3、李代数这些吗?刚刚听你说从群论来理解和研究网络的高阶结构。
- 如何拆解如何计划如何落实?目前打算进行研究的具体点?
- 算法题:将两个数组合并。
- 时间复杂度?
- 链表和数组的不同?
- 告诉我他们主要做蛋白质结构预测的,因为是健康计算中心。
Round 2 (2023.2.21, 部门负责人非技术面)
- 担忧5个月的时间里如果独立开展工作,而不一定能产出
- 去美团之类的大厂可能更match吧?做推荐的话
- 他说他对可解释性不感冒
- 他说他对GNN不看好
- 问我一定是非要发论文?
- 给你任务你来完成可否?不独立开展,而是参与?
Anyway,二面给我的感觉是纯属劝退...
Round 3 (2023.2.28, hrbp面)
- 描述一下你自己,还有你的研究工作。
- 你在人生中遇到过的挑战?以及如何克服的?
- 团队合作经历?
- 为什么要读博士而不是直接考虑就业?为什么要去美国读博士?
- 你目前拿到了哪些学校的offer?
- 最后说他们希望招进来的实习生能够与他们建立起connection,作为人才储备等等的(这里我就感觉凉了...我不是严格意义上的在校生,而且8月开学就飞去美国了= =)
还有几个问题记不得了。然后最后被pass掉了呜呜~然后最先的那位hr说可以把我的CV transfer给研究院的其他团队重新面试如果有机会的话。
B厂(大厂、NLP 搜索)
Round 1 (2023.2.22, 技术面 应该是个团队小Boss)
- 谈谈你过去两篇论文分别做了啥?
- 你的第二篇文章实际上是只适合小数据的一种zero-shot learning?
- 你对搜索的理解?比如用户输入一个query,你怎么给用户返回他想要的信息?(这个问题没回答好,毕竟之前不是做搜索的。不过还是有收获的,颠覆了我对百度搜索引擎后端模型算法的认知。具体而言,他说:如果用关键词匹配的话那么将会特别复杂,因为文本内容一大串,比如搜一道题,关键词将特别多。百度搜索返回的关键词只是一种解释性的东西返回给用户。实际上我们内部的计算系统不是用的关键词。)
- 为什么会出现梯度爆炸或梯度消失?
- 你对激活函数了解吗?比如ReLu,为什么会出现神经元失效的情况?
- 过拟合和欠拟合是什么?为什么会发生它们?
- 算法题:给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数 你可以对一个单词进行如下三种操作:(1) 插入一个字符; (2) 删除一个字符; (3)替换一个字符
最后G了,一面后就没给通知。最后一个算法题思路不对,他说用动态规划做。没刷leetcode的劣势体现出来了呜呜~
C厂(外企大厂,数据分析)
Round 1 (2023.3.1)
一个实习生面的。反馈说岗位不太match,被劝退。。。
- 建议你在简历中的项目经历中加一些描述
- 你会spark吗?SQL其实我们没怎么用
- 你看还有其他更适合的岗位吗,我可以内推的时候把你转过去
- 面试流程有算法题不知道你能Hold住不 (没刷leetcode真的感到机会渺茫...)
- 你会哪些编程语言?
- 你有去投北京海淀的公司吗?像快手、字节它们做推荐就特别NB(好吧...我投了,但字节我的简历都没过-0-)
- 简历很优秀,但岗位太不匹配了,希望不大
G 1
D厂 (大厂,算法实习生,推荐产品中心)
Round 1 (2023.3.2,业务初面,应该是个团队小leader,多半是来找我刷KPI的= =)
开始自我介绍时就跟他说不要考我算法题,我没时间刷leetcode。。。然后这一场算是面得最轻松感觉最好的,但是...
- 简单介绍一下你自己。
- 你的那篇determinable and interpretable ... 的论文是做什么的?
- 可解释性是什么意思?
- 如何使推荐模型具有可解释性?举个例子?
- 你对最近机器学习推荐模型有过了解吗?
- 你的recommender systems based on graph embedding...这篇文章是做什么的?
- 为什么说是伪人工智能?它和真正的智能有什么区别呢?
- 你觉得如何让伪人工智能更具有真正的智能?
- 我看你本科是信息管理与信息系统,为什么硕士去读物理学了?
- 为什么博士不去申请认知神经科学而是申请计算机?
- 你觉得ChatGPT是真正的人工智能吗?
- 你了解k-means聚类算法吗?写一下它的代码。
- 为什么实习想着来做推荐算法?
给我的感觉就是有点敷衍的一场面试,像是刷KPI的,全程姨母笑。。。虽然一面的问题都答上了,他也说对,但一面后也就没后续了。。。
E厂 (大厂,推荐部,主要做文库、贴吧、词条等方面的推荐任务,也会涉及到一些NLP)
Round 1 (2023.3.3)
同样,自我介绍的时候跟他说,虽然本科期间参加过算法编程比赛,比如蓝桥杯、icpc,得过奖,但硕士三年都没接触,同时之前刚申完PhD没时间刷leetcode,求求他别考我算法题(虽然但是最后还是考了,G!)...
- 简单介绍一下你自己。
- 算法题:有一个循环链表,如何读取它的那么被进入循环的节点?(想了两个方法,可以这么做,但不是标准答案,时空复杂度明显高,代码复杂度明显高。正确答案应该是用双指针,两步快慢指针啥的?反正没答到这个点子上。还是一道简单题)
- 决策树、逻辑回归、bootstrap算法介绍一下?
- 决策树的目标函数有哪些?
- GNN分哪些技术?
除了那道算法题戳中了知识盲区,其他都答上了,但一面后也没后续了。
F厂 (外资中厂,出海电商,推荐策略算法,主打留学生实习)
Round 1 (2023.3.3, 主要是推荐系统相关的业务理解)
我后来的直属leader面的~
- 简单介绍一下自己。(同样,趁这个机会求求别考我算法题。leader最终没考,但也给我解释了一下互联网大厂的面试为什么喜欢考算法题)
- 图嵌入推荐算法是什么?(装作一副不懂的样子来问我。估计他比我懂得多)
- 优化目标函数中有一些terms,分别表示比如用户点击率、购买率、停留时长等。你认为这些terms应该以怎样的方式来组成这个函数?(比如它们是相加还是相乘?)
- 如何提升用户推荐物品的多样性?重排的一些方法有哪些?
- 假设有一款APP,你认为我们在用户他的主页上推荐的物品和另外一个everything下的物品应该分别是怎样的策略?
- 给用户推荐一些刚出来的item,反而用户对APP的使用率等降低了,为什么呢?
- 你觉得有必要牺牲一些用户使用率来让一些曝光度没那么高的物品推荐给用户吗?
- 你可以实习到多久?实习地点希望在哪里?(广州和北京。主要是在北京)
Round 2(2023.3.6,业务面,我们部门的leader面的)
- 如何看待给用户推荐重复的物品?
- 现在很多推荐系统都是双目标,比如ctr和cvr,你是怎么看待的,该怎么办?
Round 3 (2023.3.10,部门leader的leader)
- 两个四川老乡寒暄问暖~
- 申请上了美国哪所大学?哪个program?未来的研究方向是啥呢?
- 我看你研究生学的是物理专业,那和推荐算法有什么联系呢?
- 简历上是科研经历,那挑一个说说吧?
- 你有最近写的代码的sample吗?发一个我看看。给我一下这个github的地址。你的那个AIProbS是啥?就是你的科研论文的吧?
- 你是怎么了解我们公司的?为什么想来申请我们这个岗位?
offer到手~本期实习申请结束!
最后是我在利用每场面试的最后提问机会get到的面试官和公司一般对实习生的能力期望和基本要求:
D厂: 能力需求一方面是research的能力,因为我们部门也有做研究。另一方面是coding的能力,虽然是做研究,但还是需要写代码的。主要用python。
E厂: coding能力,因为做research也要写代码。经典的机器学习模型算法要有一定了解。
F厂:(a) 符合岗位描述。一般来说通过面试就基本上OK啦。(b) 自驱力很强。不局限于仅仅完成交代的工作,而且还有思考、可优化。对于我的情况而言,落地先另说,虽然不一定期望我一定能够发paper,但部门里面也有专门搞模型和算法的同学可以供一起交流。(c) coding能力其实不太care。只要掌握基本的数据结构和算法,比如能够用O(N)复杂度实现的算法就不要写成O(N2)等等。不犯这种低级简单的错误即可。也不一定说非得会JAVA啥的,编程语言仅仅只是一种语言,1-2个月就能上手啦。(d)能够很快且较好地掌握在推荐系统这块的业务框架和流程等。(e) 能够从实习岗位中学习到东西。(f) 同时能够相对较独立地承担一些工作,毕竟相辅相成嘛。
PS: 但是F厂(也就是我现在正在实习的这家)对工程侧那边的实习生的coding能力要求是更高的。leader最近在群里说要加大coding在面试中的占比,因为有太多闭门造车的,写出经典爬坡的工程代码。。。
欢迎干货投稿 论文宣传 合作交流
推荐阅读
LLM-Rec: 基于提示大语言模型的个性化推荐系统
论文周报 | 推荐系统领域最新研究进展
KDD2023 | Pinterest: 召回阶段样本选择偏差问题的实证分析