- 作者:宝石
- 校对&整理:lucifer
vivo(已拿 offer)
技术面(30min)
- 自我介绍
- 讲实习
- 讲比赛
- 问了些大数据的问题
- spark transform 和 action 的区别
- 手撕了个归并排序
hr 面(30min,技术只有一面)
- 自我介绍
- 家庭情况
- 讲一下实习亮点
- 有女朋友么
- 父母同意你去深圳么
- 讲一下优缺点
- 常规问题等等
昆仑万维(已拿 offer)
一面(1h):
- 上来自我介绍
- 讲一下判断回文链表的思路,多方法
- 用纸写一下反转链表
- 说说 python shuffle 怎么实现的,O(N)时间,O(1)空间
- 看你计算机专业,知道哈夫曼树吧,w2v 有用,你能说说么(我就记得分层 softmax 了,实在是不会)
- 说说传统机器学习你都了解哪些?推一下 LR,说一下原理
- 知道 kmeans 吧,说下迭代过程,簇心随机不好,怎么才能更稳定(类 kmeans++)
- 说说深度学习你都知道哪些模型?我说了 LSTM RNN,还没等说推荐的模型。。。
- 讲一下 LSTM 吧,门都是怎么迭代的
- 各个激活函数的优缺点,sigmoid relu leaklyrelu tanh,又说了下梯度消失
- Sigmoid 求导是什么?
- 了解推荐么,说说都知道啥,嘴贱说了个 CF
- 讲一下 Item-CF,怎么计算相似度(用交并,也就是 Jaccard 距离,速度比 cos 快),用什么优化呢(倒排索引)
- 讲讲数据倾斜怎么处理吧?(用 key+随机前后缀)
- 聊一下你这个项目里 LDA 吧?我直接说这个我用过没细研究(他也认同,说数学原理很复杂)
- 聊一下你这个项目 query title 统计特征都提了啥,跟他聊了一下,他和我说了一下他的业务理解
- 反问
- 做什么的(啥都做,业务很广。。。)
- 用哪些技术(啥都用,技术栈很广。。。)
昆仑万维二面(就是确认时间 不算面试)
- 和一面面试官聊的如何
- 知道他们部门做什么的么
- 接下来约一下 boss 面,确认时间
- 结束
昆仑万维三面(不到二十分钟,压力面):
- 上来就问比赛,两个比赛都问了,和第一差距在哪
- 下面问题都是快问快答,都没深问,问题可能记不全了:
- 说下你实习吧,没说几句。。
- 你怎么解决样本不均衡的
- kmeans 适用于什么情况
- python dict 怎么用
- 为什么会产生哈希冲突
- python set dict list 啥场景用
- 过拟合有哪些解决方法
- 牛顿法和拟牛顿法
- 200w 不重复单词一口气放内存中,怎么放最省内存(不会)
- 你除了学习之外还做什么项目
- 平常刷算法题么,刷多少了
- 另一个面试官的问题不是压力测试
- 你希望做什么种类的工作(大概就是这个意思)
- 没得反问
京东
一面(40min)
很好的年轻女面试官
- 自我介绍
- 跟我聊了一下,然后说看你挺直率,我就直接说了,你想找推荐,我们是机器学习+组合优化,偏向运筹学,考虑么,(我说只要不是 cvnlp,我全要)
- 考虑那就开始问些问题吧:
- 你讲讲你的实习,最亮点,给他分析了一波我采样策略。
- 你知道 gbdt 和 xgboost 吧,给我讲讲(疯狂吹逼 xgboost)
- 你知道最大似然估计和最大后验概率估计么,或者挑一个你熟悉的说下(闭着眼睛推 LR,啥伯努利分布,似然函数,疯狂扯)
- 来做个题吧,1000w 个数,数范围[-1000, 1000],写个排序(闭着眼睛桶排)
- 你能提前来实习么
- 反问(京东零售部的,技术栈 balabala)
- 复试待安排
二面(30min)
- 自我介绍
- 找个比赛说说创新点,你主要做了哪些创新,最后模型为什么用 CNN 系不用 RNN 系
- 由于上面我说我工作有训练词向量了,让我讲 word2vec 的架构,和一些细节问题
- 为什么 w2v 向量在语义空间内有很好的数学性质,比如相加减
- 数学问题:M 个样本有放回采样 N 次,问某条样本一次没被采中概率
- 给你均值方差,让你利用正态分布随机生成 1000 个点(不能用库,说的不是很好)
- 反问:哪个部门哪个组(零售-技术中台下)
- 为什么选择京东,京东有什么核心竞争力(疯狂扯,我说我不太看好那些不能落地的,因为 jd 是电商,整个算法流程系统化工程化一定很健全,也有实际落地,带来实际效益,面试官非常赞同)
- 最后手里有啥 offer 啊
- 没了
hr 面(20min)
- 小姐姐人很好,迟到了四分钟,上来道歉一波
- 自我介绍
- 遇到压力大的时候,比如在实习问题解决不了了,你会怎么办
- 与 mentor 产生意见分歧要怎么做
- 未来如果入职京东,对领导有什么要求呢
- 你平常有什么学习习惯么
- 你平常会定期做总结么
- 反问
- 当时问应届生入职需要做出啥改变,给小姐姐问懵了,我又补充说比如思想啥的需要有啥改变么,她给我讲了五六分钟,说的很直白,没啥官腔,说在学校如何如何,你来公司了又会如何如何
- 啥时候有结果:她也不知道,她拿到的是乱序的面试名单,可能后面会统一安排通知
一点资讯
一面(不到 40min)
- 自我介绍
- 讲你的论文,这块一直问,问得特别细节,也问了好久,估计面试官比较清楚这块东西。
- 讲实习,都怎么做的,遇到啥问题,怎么解决。
- 讲一下 FM,DeepFM 这一系列(我从 LR,POLY2,FM,FFM,Wide&Deep,DeepFm 说了个遍)
- 做了个算法题,A 了
- 反问:
- 部门:算法部信息流,和我微博实习的比较类似
- 技术:做推荐 Java 和 Scala 用的多一些
- 个人感觉像不招人。。。
大华
一面 - 大数据工程师(数据挖掘)(不到 40min)
- 面试官很有礼貌
- 自我介绍
- 着重问了好久实习
- 着重问了好久比赛
- linux 查指定文件前缀有哪些命令
- 讲一下 hive 和 hadoop 关系
- hadoop mapreduce 执行流程
- java 类和对象关系
百度
一面(1h)
- 自我介绍
- 介绍实习,然后疯狂挖实习,问的很深
- 问如果模型区分不开一些样本,要怎么采样?业界有哪些常用采样策略。我真是懵了。。
- 问了一堆 fm,比如表达式,复杂度,改进复杂度的推导
- 了解深度学习么,从 wide&deep 出发疯狂问,有的是真不会,要再复习一下
- 面试官说了个 DCN(深度交叉网络),我还以为深度卷积神经网络。。。,结果深度交叉网络的细节也给忘了
- 我主动给介绍了下阿里的 DIN 和 DIEN,他问这模型可以用在新闻推荐场景么(答不可以,因为新闻类实时性比较强 balabala。。。不知道对不对)
- 如果想让你加入一个用户短期兴趣,比如刚发布的新闻打分低,要怎么改,(我记得在 YouTube 有个说了关于这个,我说加了个时间维度特征,或者时间衰减)
- 让我讲 BN,为什么提出 BN(好久没看 nn 的东西了,直说了个表象,容易收敛,面试官说为了解决输入分布不一致,bn 可以拉回来分布,我把这个忘了)
- 从 LR 出发问了我 sgd,如何改进,说了个 momentum,再怎么改进,我说我了解个 FTRL
- 说一下 boosting bagging ,lgb 为什么并行化效率高(答单边梯度抽样+直方图计算+互斥特征捆绑)
- 怎么分析并解过拟合问题的
- 算法题:三数之和
- 反问
- 部门是推荐策略部
- 主要场景是百度直播和贴吧推荐
- 用 Python 和 C++,不用 Java
触宝
一面(1h)
- 自我介绍
- 数据结构基础
- 数组和链表区别,应用场景
- 疯狂问排序算法,最优最坏平均复杂度,稳定排序有哪些(好长时间没复习这个了,答得比较差)
- 一个剪枝题,口述算法过程,分析时空复杂度
- 说说面向过程、对象、切片编程的区别(我。。。。。。)
- 机器学习基础
- 讲一下你了解哪些分类模型
- 说说 SVM
- 讲讲 id3 和 c4.5
- 讲讲 xgboost 和 gbdt
- 讲讲怎么判断 kmeans 的 k,聚类效果的好坏
- k 可以用肘部法则 SSE(误差平方和)和轮廓系数
- 讲讲分类,回归,推荐,搜索的评价指标
- 讲讲 lr 和 fm,fm 的后续(ffm)
- 讲讲你知道的各种损失函数
- 讲讲 l1 l2 正则,各自的特点
- 深度学习基础
- 说说 deepfm,说说 fm 在 nn 中还有哪些(FNN,NFM,AFM)
- 说说类似 l1,l2 正则化降低模型过拟合,还有什么别的方法
- 说一下 sgd→adam 的过程(下面是面试后简单复盘,本身答的一般)
- sgd
- momentum 利用了历史信息,意味着参数更新方向不仅由当前的梯度决定,也与此前累积的下降方向有关。这使得参数中那些梯度方向变化不大的维度可以加速更新,并减少梯度方向变化较大的维度上的更新幅度。由此产生了加速收敛和减小震荡的效果。
- rmsprop 在 Adagrad 中, 问题是学习率逐渐递减至 0,可能导致训练过程提前结束。为了改进这一缺点,可以考虑在计算二阶动量时不累积全部历史梯度,而只关注最近某一时间窗口内的下降梯度。根据此思想有了 RMSprop,采用的指数移动平均公式计算
- adam 可以认为是 RMSprop 和 Momentum 结合并加了偏差校正,因为初始化是 0,有一个向初值的偏移(过多的偏向了 0)。因此,可以对一阶和二阶动量做偏置校正 (bias correction),
- 介绍下梯度消失和梯度爆炸
- 都有哪些方法解决这两个问题
- 你了解多目标优化,迁移学习么(不知道)
场景问题
- 让你加一个兴趣类型特征 你要怎么做
- 如何处理年龄类特征
- 你了解相似向量快速计算的方法吗(就记得个啥哈希分桶,没做过)
- 局部哈希计算,高维相近的点低维也相近,但是高维较远的点低维可能也相近,将 embedding 应设成 1 维,若担心把远的也算进来可以多设置几个 hash 函数等等。
- 如何判断你模型上线的好坏
- 给你个 nn 模型,如何调参,如何修改架构
- 如何解决冷启动问题 用户侧,物品侧
- 推荐系统的整体架构
- 线上推断这部分再具体点怎么实现的
反问
- 触宝内容推荐(小说)
- 主要用 python
- 等后续 hr 通知吧
二面(45min)
面试官人很好,和善可亲
- 自我介绍
- 讲下实习做了哪些优化,问了些问题(我都没介绍实习,面试官已经直接点破我每一点实际都在做什么)
- 讨论了一下抽样,作为一个算法工程师如何将抽样导致的得分分布变化给拉回来?
- 因为实习模型是 FM,详细讲了下 FM,讨论了下 FM 的泛化性
- 用的什么优化算法,顺便介绍下 sgd 后续的优化,sgd→momentun→rmsprop→adam,一面问过的,复盘过
- 实习有没有除错过导致线上有点问题(还真有。。。)
- hadoop shuffle 干啥的,为啥 key 相同的要放在一起
- python 深拷贝和浅拷贝的区别
- linux 替换文件中所有的 a,我说的 awk 或者 tr
- 算法题:给两个字符串 S 和 T,计算 S 的子序列中 T 出现的次数(dfs A 了)
- 反问:竟然和一面面试官不是一个部门。。。二面面试官给我介绍了算法在他们公司都有哪些应用。。。
- 总之要有工程师顶层思维,不能局限于模型优化啥的。
大家可以访问我的 LeetCode 题解仓库:https://github.com/azl397985856/leetcode 。 目前已经 35K star 啦。
关注公众号力扣加加,努力用清晰直白的语言还原解题思路,并且有大量图解,手把手教你识别套路,高效刷题。