NewBeeNLP出品
作者 | 李可
香港中文大学(深圳) · 强化学习
写在前面
寒假前本着试试的心态,投了几家大厂的实习岗,商科转码er前端后端都不会,头铁全投了nlp算法岗(因为之前跟着清华研究院的老师做过相关的工作,所以了解一些)。今天收到了字节跳动的寒假实习offer,nlp算法岗,base北京,来写写面经,一是还愿,二是回馈之前在各网站上看到的经验帖。祝各位顺利!
个人情况
香港中文大学(深圳),大三,计算机科学与技术专业,大一是商院的,大二因为兴趣和擅长转到理工学院,在统计学和CS之间犹豫了一下,确定了后者。这里真的很感谢学校的宽松政策和高自由的选课制度~ 大二暑假在清华深圳研究院跟着Yang Li老师做了一点nlp算法相关的工程项目,学习了一些主流算法,开学后转到强化学习的方向做research。之前没有计算机基础,这学期刚开始学操作系统、数据结构、C++这些课程。
因为寒假实习比较折腾,所以只投了大厂,基本都经历了二面,情况如下
腾讯wesure nlp算法实习
一面
把数字转换成中文汉字给定输入”28024“,输出”两万八千零二十四“ ,这个没有什么算法知识,但有一些比较tricky的处理技巧。
找出第k个最大的数 这个CSC3100课上讲过
间隔反转列表,要求时间复杂度为O(n)
二面
只记录了答的不好的题目
给定文本分类的任务,人工打好了分类标签,想要利用classification建模,描述流程;如果最后准确率不高,怎么排查问题原因?
如何判断变量之间的相关性?除了相关系数之外还有吗?相关系数判断的是线性相关还是非线性相关?(线性)那怎么判断非线性相关?
分类和聚类的区别与联系; HMM和CRF的区别 (判别模型和生成模型的区别)
SVM 现场推导
一些个性向的问题,(自己/朋友)如何评价自己;最大的优缺点
如果给你3天时间快速上手一门新语言,你会怎么做? 如果只给1天呢?
处理上亿条数据时,内存不够load文件怎么办?
总的来说,腾讯这个面的实在不难,主要围绕简历上的经历,扣的很细,会追问很深,比如遇到这样的问题怎么去处理,怎么去排查原因。
但是腾讯结果出的太慢,一面二面结束后,隔了一星期才问我(估计是进备胎池然后被捞),什么时候有空约个部门高级经理面,但这个时候我已经拿到了字节的口头offer,就跟对方终止了流程。
货拉拉 定位算法实习
HMM讲了一遍
二分查找写了一下,分析时间复杂度 (靠,可能当时觉得太简单,十分窃喜,导致脑子抽了!!!写成了 T(n)= c+2T(n/2)… 很无语
青蛙跳n阶台阶问题 (Cn = Cn-1 + Cn-2),变体:如果不能连跳两级呢?如果可以跳1,2,3,…, n阶呢?
给定前序+中序或者中序+后序,恢复一棵二叉树(这个CSC3100讲了,但我期中以后就没听课,所以当时不会,面试官小姐姐很热心的提醒了一些思路,最后写出来了,有惊无险)
总体上很顺利,问的算法都是和面试官聊的不错,发现对方是Georgia tech的,扯了十分钟闲话。但因为实习时间原因放弃了。
百度 自然语言处理部 nlp实习
一面
Transformer/BERT/LSTM算法简述
LSTM和传统的RNN区别?
找两个字符串的最长公共字串 (暴力求解;然后用动态规划优化)
十进制小数(0到1之间)转化成b进制数(1<b<10)
HMM和CRF的区别 (判别模型和生成模型的区别)?CRF的损失函数长啥样?HMM三种问题的具体解法?
简历分词为啥不直接用命名实体做?
二面
SVM和logistics regression的区别
L1正则和L2正则的区别
什么时候要归一化(normalization)
BERT/Transformer
准确率 召回率计算公式 表示含义
还问了特别多特别多简历项目上的细节处理问题,答的特别不好,但是不记得了……
百度二面的时候也已经拿到字节的口头offer了,所以当时去面试是比较勉强的,本着增加经验+防止字节仙人跳的心态,对方面试官不知道为啥语气也有点严格,可能是晚上八点面试加班很不爽吧,总之这个面试我俩语气都不太好。。很奇妙哈哈哈哈 但还是聊了一个多小时(确切的说是被质问/逼问/压力面了一个多小时
字节跳动 nlp/搜索算法实习生
面字节是特别深刻的经历。12.6上午我去赛格考托福,中午出来十二点多,来不及赶回学校,就在附近找了个网吧等面试。第一次去网吧,充了一个小时,以为够了,结果面试途中两次打断面试官,“不好意思,我去前台再充一个小时回来继续面!"
网费好贵,30r/h
网吧很嘈杂,网络也断断续续,经常卡,所幸面试官贼好,后来直接挂了视频打电话过来面。
字节跳动总体感受
两个面试官都很年轻,一面面试官还有点帅;二面打电话的,没看见脸
两个面试官都不好糊弄(比如他们虽然是nlp部门的,但也很懂我简历上的强化学习,貌似对学界paper也看得比较多),挺厉害的。特别是一面面试官,对于我现在导师做的东西竟然很懂,比如Q-learning和Policy Gradient,还问了一些学术最前沿的东西,我不会,他就说了几篇paper,说感兴趣可以回去了解一下。
面试效率极高,当天连着两面,面了两个多小时,当天出结果,第二天约hr面,字节牛逼!
网吧的键盘手感好棒啊……以后的梦想是自己配一套台式机,买个好显卡,好屏幕,好键盘,周末就可以玩游戏了
笔试题
实现函数 int sqrt(int x). 要求复杂度O(lgn)
用dfs找到无向图的所有连通分量
输入一个矩阵,找出所有的connected components。我当时用了stack,思路有点像CSC3100课上讲的用stack解决迷宫问题
技术性问题:
AUC/ROC曲线意义
BERT/LSTM
训练集正负比例严重失调怎么处理?
准确率 精确率 召回率
强化学习最新的算法
强化学习流派 deepmind/openAI Sutton/Berkeley
HMM过程讲述
这几天总结下来的感受
数据结构和算法是门好课(这学期shen kaiming老师的补充材料都很有用,面试常考的)
机器学习的传统算法要熟悉,也要稍微关注学术界最新的动态,不然会被cue
cs岗面试太累了,动辄1-2小时
尽量找内推吧。这次我都是第三方投的,后来HR小姐姐告诉我内推的话更容易一些
剩下的想到了再补充!