暑期实习面经(NLP 方向)达摩院、腾讯、微软、美团、百度
本人情况:双非本末流985研二,爱奇艺 NLP 日常实习经历,无论文,投的都是 NLP 算法岗。
目前到手:微软、腾讯,应该是选微软了吧
阿里达摩院(挂)
一面(45分钟)
上来面试官介绍他们组情况,问我有什么想问的?我有点懵逼,这不是一般最后的环节吗。
- 问研究生期间的研究方向;
- 研究内容有提到 DSSM,询问是否知道现在对 DSSM 的改进模型,回答不知,现在更多做的生成模型,因此问题转到生成模型;
- 询问对生成模型的了解,发展情况,询问项目中的难点,回答解码策略,谈到了 Beam Search 和 Random Sample 策略。
- CNN 模型中池化层的作用,Max Pooling 是如何反向传递梯度的。
- 机器学习中正则化做什么的?约束模型参数,防止过拟合。
- 正则化有 L1 和 L2 正则化,区别是什么?扯了一下解空间什么的,这一部分参看《百面机器学习》中 【L1 正则化与稀疏性】部分的内容,基本就是我遇到的问题了,我没回答上。
- 问深度学习,Transformer 模型架构说一下?按照图结构 balabala 说下。
- Dropout 有什么作用?类似于 Bagging 。在 Transformer 模型中 dropout 主要用在哪里?dropout 在每个子层之间,设置为 0.1。看过源码吗?看过源码,看的哈佛实现的那一版本。(面试官应该也看过这个版本,说写的很好)
- Transformer 和 BERT 的位置编码有什么区别?
- Transformer 用的 Layer Normalize 还是 Batch Normalize?Layer,有什么区别?...
- 传统机器学习会哪些?决策树和 GBDT 区别说下。
- Sigmoid 和 ReLU 区别,ReLU 解决了什么问题。
- 怎么学统计机器学习的?看视频...
- Python、C++、Java 哪个用的多一点?值传递和引用传递区别。
- Python 垃圾回收了解吗?用过,细节不清楚。
- 进程和线程区别
- Linux 多个进程如何通信的?socket 和管道
- 贪心和 DP 区别?
- DP 的一般做法流程?
- 开放问题,海量商家和海量语料,语料不平衡,语料对商家 group by 后按照时间排序,怎么解决。先扯了下哈希分桶,不平衡用归并排序。
结束,他觉得还 OK,问了下有啥改进的?他说问机器学习这部分可以多看看,因为一方面部门有发论文要求,另一部分可以看出一个人的求知欲。。。
二面(80 分钟)
面试官是个学术大佬,全程项目细节+前沿模型理论+项目落地实践,谈的多的主要包括有:
- DSSM 语义匹配模型及其变种
- 预训练模型:Transformer、BERT、UniLM 等等模型细节,区别,模型中的 Attention 使用、Mask 使用
- 文本生成任务实际问题:一对多训练如何训练(从数据角度、模型角度创建一对一条件)、如何创造无监督标签、如何提高生成文本的信息含量避免安全回复生成。
卒
腾讯
投的 WXG,打电话问了下时间就再也没后续了,被 PCG 捞了,难受。
QQ 看点 一面(60分钟,挂)
- 自我介绍
- 个人研究内容,做法模型细节
- 爱奇艺实习内容,细节
- 做道题,输出全排列,递归做法
非做题部分大概有 50 分钟,做题给了 15 分钟,实际可能 5 分钟。
不知为何挂了。。。
腾讯新闻 一面(80 分钟)
面试官感觉没看过简历,非常不耐烦什么的,语气也不是很好
- 谈下你做过项目(就是问简历),说了下研究内容与实习
- 研究内容的流程细节
- 实习经历简要掠过
- Dropout 了解吗,说下作用,白板编码实现一下?
- 梯度爆炸梯度消失了解吗?
- 一堆恶意文本 case,怎么检测去除(一些网页上的广告评论),传统方法、AI 方法
- 最长重复子序列,我自己实现了个暴力,又写了个动态规划。
- 有序含重复值数组找某个值第一次出现的位置。
腾讯新闻 二面(80 分钟)
- 研究内容,并画出 Seq2Seq 模型结构;
- 实习工作细节,如何引入知识图谱(不会,随便说了下);
- 天池比赛细节,思路来源;
- Python 列表合并方法有哪些:加法、extend,区别,旧内存如何处理;
- 概率题:甲乙扔骰子,获胜概率相同,投 10 次,已经 5 次了,甲已经赢了 3 次,问甲获胜概率。
腾讯新闻 HR 面
起床前来了个电话大概五分钟,谈了下实习时间、地点,实习不一定能转正什么的。官网状态变成了已完成,说本周或者下周一二给 Offer。
微软
一面 IC1(50 分钟)
- 问研究方向与实习工作内容
- Transformer 结构,BERT 有几种 Embedding 编码,分词方法?
- 能否实现下 Word Piece ?忘了步骤了,换成实现一下从若干文件中生成一个词典,即 word2idx 和 idx2word
- 算法题:给一个数组
A = [2, 4, 8, 3]
输出一个数组 B,其中B[i]
值为 A 中小于A[i]
的元素值之和,B 应该为[0, 5, 9, 2]
(小于 2 的有 [0],小于 4 的有 [2, 3] ...) - 上述题目用到了 sort 能否自己写一下 sort 函数,写了个快排
二面 Lead(60 分钟)
微软有 IC1 和 IC2 平行两轮,任意一轮通过则进入 Lead 面,后续可选可能存在 AA 面。
- 自我介绍
- 问研究方向和实习工作内容(30分钟左右),主要还是研究方向的背景和任务、实习期间的工作,遇到什么问题,怎么解决的
- 算法题 1:原地移动数组,使得元素对应顺序不变,0 值移动到末尾,LeetCode 283
- 算法题 2:二叉树直径,LeetCode 543
美团
一面(40 分钟)
- 研究方向和实习
- 开放性问题:如何根据美团的商品评论,生成商品的描述。传统抽取方法,语料大后上深度模型。采用类似于 TF-IDF 的思想避免抽取的描述太大众化没有特点。
- 算法题:打印 N 个数组整体最大的 Top K:有 N 个长度不一的数组,所有的数组都是有序的,请从大到小打印这 N 个数组整体最大的前 K 个数。
二面(60 分钟)
- 研究方向与实习经历
- 天池比赛怎么做的(唯一一个问我比赛的)
- 算法题 1:牛妹在练习打字,现在按照时间顺序给出牛妹按下的键(以字符串形式给出, '<' 代表回退 backspace,其余字符均是牛妹打的字符,字符只包含小写字母与 '<'),牛妹想知道最后在屏幕上显示的文本内容是什么。(用个栈即可)
- 算法题 2:在这个特殊的假期里,由于牛牛在家特别无聊,于是他发明了一个小游戏,游戏规则为:将字符串数字中为偶数位的数字进行翻转,将翻转后的结果进行输出。(头尾双指针)
- 算法题 3:牛牛有一个 n 个数字的序列,现在牛牛想把这个序列分成 k 段连续段,牛牛想知道分出来的 k 个连续段的段内数字和的最小值最大可以是多少?(我用的递归,似乎大数据过不了,应该考虑尾递归或者用个 Map 存一下已经计算过的片段值)
三面(50 分钟)
- 自我介绍
- 研究内容细节,实现方法,准备如何使用 BERT,BERT 这一块问的很多,包括对 BERT 怎么理解的等等。
- 实习经历细节
- 算法题:最长公共子串
- 提问环节:问了下对方工作内容与现行技术,基本以 BERT 为主的各种文本任务。
百度
官网投递,笔试两道编程都没 AC,其他倒是写了很多
一面 (50 分钟)
- 项目研究内容,粗谈一下,没问细节;
- 概率题,三个硬币,一个硬币两面人头,一个硬币一面人头一面数字,一个硬币两面数字,问随机拿去一个硬币,其中人头向上,问另一面人头也向上概率;
- 编程题:升序倒序数组找 target,做题有点久,其他很短
二面(40 分钟)
- 数组 Top K 数
- 个人研究怎么做的
- 谈谈 Transformer、BERT、GPT2
- Sigmoid、Tanh 函数与导数
- 梯度爆炸怎么解决
- 最近在看什么论文
二面没了应该挂了
网易(挂)
投的网易有道 NLP 岗位,笔试编程感觉做的还凑合来着:100,90,60,10,最后却笔试挂了。
字节跳动(挂)
AI Lab 算法岗,内推简历挂,挂的莫名其妙,可能是官方简历没填内容只添加了附件。
#阿里巴巴##腾讯##微软##美团##实习##算法工程师##面经#