作者 | Codle
整理 | NewBeeNLP
面试锦囊之面经分享系列,持续更新中
写在前面
本人情况:双非本末流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 用的 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 函数与导数
梯度爆炸怎么解决
最近在看什么论文
保留节目
【内推公司】 百度
【岗位链接】 https://talent.baidu.com/external/baidu/index.html#/
【内推方式】 发送简历和所投递岗位到邮箱gaokaiyuan@baidu.com
- END -
个人微信:加时请注明 (昵称+公司/学校+方向)
也欢迎小伙伴加入NLP交流群,刚刚创的,想和大家讨论NLP!