提早批算法工程师面试之路

  • 做者:宝石
  • 校对&整理: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产生意见分歧要怎么作
  • 将来若是入职京东,对领导有什么要求呢
  • 你日常有什么学习习惯么
  • 你日常会按期作总结么
  • 反问java

    • 当时问应届生入职须要作出啥改变,给小姐姐问懵了,我又补充说好比思想啥的须要有啥改变么,她给我讲了五六分钟,说的很直白,没啥官腔,说在学校如何如何,你来公司了又会如何如何
    • 啥时候有结果:她也不知道,她拿到的是乱序的面试名单,可能后面会统一安排通知

一点资讯

一面(不到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

    • 部门是推荐策略部
    • 主要场景是百度直播和贴吧推荐
    • 用Python和C++,不用Java

触宝

一面(1h)

  • 自我介绍
  • 数据结构基础linux

    • 数组和链表区别,应用场景
    • 疯狂问排序算法,最优最坏平均复杂度,稳定排序有哪些(好长时间没复习这个了,答得比较差)
    • 一个剪枝题,口述算法过程,分析时空复杂度
    • 说说面向过程、对象、切片编程的区别(我。。。。。。)
  • 机器学习基础面试

    • 讲一下你了解哪些分类模型
    • 说说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了)
  • 反问:居然和一面面试官不是一个部门。。。二面面试官给我介绍了算法在他们公司都有哪些应用。。。
  • 总之要有工程师顶层思惟,不能局限于模型优化啥的。

关注公众号力扣加加,努力用清晰直白的语言还原解题思路,而且有大量图解,手把手教你识别套路,高效刷题。

公众号【 力扣加加
知乎专栏【 Lucifer - 知乎

点关注,不迷路!

相关文章
相关标签/搜索