商科转码之路 | 算法岗寒假实习面经

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

  • 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小姐姐告诉我内推的话更容易一些

剩下的想到了再补充!

你可能感兴趣的:(字节跳动,面试,腾讯,rhel,twitter)