面经-算法岗位

文章目录

  • 1. 哈步数据(上海)——算法实习生
  • 2. 百融云创(北京)——算法实习生
    • 2.1 一面技术面(90min)
    • 2.2 二面HR面——压力面试
  • 3. 山景智能(北京)——机器学习算法实习生
    • 3.1 笔试——两个编程题
    • 3.2 终面
  • 4. 北邮人工智能学院校企联合实验室(北京)——深度学习算法实习生
  • 5. 快手(北京)——推荐算法实习生
    • 5.1 一面技术面(70min)
    • 5.2 技术二面(90min)
  • 6. 好未来(北京)——广告算法实习生
    • 6.1 技术面(80min)
    • 6.2 HR面
  • 7. 元气森林(北京)——算法实习生
    • 7.1 一面技术面(40min)
  • 8. 汽车之家(北京)——算法实习生
  • 9. 探探科技(北京)——推荐算法实习生
    • 9.1 技术面
  • 10. 水滴(北京)——算法实习生
    • 10.1 技术一面
    • 10.2 技术二面
    • 10.3 HR面
  • 11. 360(北京)——广告算法实习生
    • 11.1 一面
    • 11.2 二面
  • 12 阿里巴巴
    • 12.1 一面
  • 13. 字节跳动(抖音)
    • 13.1 技术一面
  • 14.百度
    • 14.1 一面
    • 14.2 二面
    • 14.3 三面(技术经理面)
    • 14.4 offer call
  • 15. 京东(提前批)
    • 15.1 一面
    • 15.2 二面
    • 15.3 HR面
  • 16 小米
    • 16.1 一面

1. 哈步数据(上海)——算法实习生

Q1:问项目:做完特征工程后feature_importance是什么样的

Q2:XGBoost和LightGBM有什么区别
A2:从LightGBM的单边梯度采样和特征互斥绑定两个角度说

Q3:说一下LSTM原理,怎么讲LSTM应用到你的项目上

其他:聊一下家常

已收到offer,并拒绝


2. 百融云创(北京)——算法实习生

2.1 一面技术面(90min)

Q1 : 概率和阈值能得到什么?(AUC)

Q2:还存在哪些评价指标?(主要想让回答Recall这方面的)
A2:Recall、Precision、accuracy、F1-score

Q3:你的项目中,分类问题为什么不用accuracy作为评价指标,而使用AUC?
A3:accuracy不适合样本不平衡的情况,而AUC适合

Q4:XGBoost和Random Forest有什么区别
A4:从Bagging和boosting的区别去答

Q5:Bagging和Boosting他们的目标分别是什么?
A5:Bagging减少模型方差,boosting减少模型偏差

Q6:XGBoost的基分类器通常是什么?(树模型)

Q7:随机森林可以作为XGBoost的基分类器么?
A7:这个我猜的可以,然后面试官说确实可以,目前代码已经开源有了

Q8:说说你的你项目得到的分数为什么这么高,你的优势在哪?
A8:我从特征工程的角度说的,然后问了一大堆结合我项目的特征工程方法

Q9:如何解决样本不平衡问题?
A9:上采样和下采样;样本加权;SMOTE采样;数据增强

Q10:对XGBoost有过调参经验么?
A10:从过拟合和欠拟合的角度去聊参数的优化

Q11:调节超参数有哪些方法?
A11:这个我只答了网格搜索法,然后面试官补充的让我涨知识了:像网格搜索法它调节的是与模型无关的超参数,也称为model-free parameters。对于像与模型相关的超参数,一般可以采用智能算法,例如梯度下降;或者贝叶斯优化方法

2.2 二面HR面——压力面试

2.26更新,已收到offer.


3. 山景智能(北京)——机器学习算法实习生

3.1 笔试——两个编程题

(1)第一题:

给定两个升序数组ab,且两个数组的交集为空,a的数组长度为mb的数组长度为n,求两个升序数组的全局第k小的数。(m >> k,n >> k)

要求:时间复杂度至少要求为O(k),若为O(logk)则加分

参考答案:两个有序数组中全局第k小的数

(2)第二题:

机器学习回归问题,给了训练集和测试集,RMSE作为评价指标,要求了误差范围。其实本题的主要意图是看你会不会分析数据,会不会使用sklearn建模,以及熟悉哪些可以解决回归问题的模型。

3.2 终面

自我介绍完之后,问我课题做的啥,讲一讲。我就跟他扯VAEs和GANs的东西,聊了大概30分钟,最后换他介绍公司的情况,主要做AutoML和可解释性的东西。聊完问题不大,最后问我对我们公司感兴趣么。给开的工资也可以。


4. 北邮人工智能学院校企联合实验室(北京)——深度学习算法实习生

这是个校企合作的公司,就一面,问了问在校的情况和研究的课题还有关于对tensorflow的使用经验(感觉像在白嫖我),发了offer,已拒绝


5. 快手(北京)——推荐算法实习生

5.1 一面技术面(70min)

理论

Q1: 介绍一下课题相关得情况

A1:主要说VAE和GANs和disentanglement问题,说了一大堆。

Q2:问细节,你对高斯混合模型有什么见解,EM算法是怎么样得,还有哪些模型使用了EM算法?

Q2:介绍一下SVM得求解过程;为什么引入拉格朗日对偶问题;讲讲SMO算法;在具体代码中,你调节过哪些参数,使用的什么方法,效果怎么样?

Q3:
(1) XBGoost原理介绍一下;
(2) XGBoost怎么进行分裂的;
(3) 你觉得叶子结点代表什么含义;
(4) XGBoost使用了哪些算法进行优化;
(5) XGBoost是如何填补缺失值的;
(6) XGBoost和Lightgbm的区别是什么;
(7) 在代码中,你调节过哪些XGBoost的参数,使用哪些方法,效果怎么样;
(8) 你认为XGBoost和现在的深度学习模型之间有什么联系和区别,具体讲一讲?
(9) 随机森林你是如何调参的,需要交叉验证么?

Q4:处理样本不平衡的方法有哪些;遇到缺失值有哪些处理方法

Q5:
(1) CNN中卷积和池化的作用;1*1卷积核的作用?
(2) 说说LSTM的原理,每个门介绍一下,说一说里边激活函数的作用;LSTM和GRU有什么区别
(3) 你知道哪些正则化技术,具体讲讲(L1,L2,Dropout,early_stopping);early_stopping终止迭代的条件是什么?
(4) 优化器你知道的都有哪些,具体讲讲原理?答案看我博客

coding
Leetcode55跳跃游戏I
面经-算法岗位_第1张图片

class Solution:
    def canJump(self, nums: List[int]) -> bool:
        max_step = 0 # 当前能到达的最远位置
        N = len(nums)
        for i in range(N):# i为当前位置
            # 如果当前位置能到达,并且当前位置+条数 > 最远位置
            if max_step >= i and i+nums[i] > max_step: 
                max_step = i + nums[i] # 更新最远能到达的位置
        return (max_step >= i)

2.26一面过了

5.2 技术二面(90min)

被虐的体无完肤,有些问题记不太清了,凉了。

理论

Q1:深挖项目,AUC为什么这么高,AUC的计算公式有哪些,具体说说

Q2:XGBoost中有哪些可以防止过拟合的方法

Q3:防止XGBoost过拟合你都调了哪些参数,树最大深度是多少,总共有多少棵树

Q4:聊论文,论文大致思路是什么,有什么优点,用了哪些数据集,输入特征的维度多大

Q5:聊计算广告,说说FM模型的主要思想,谈谈它tensorflow代码怎么实现的;说说wide&deep模型,怎么设计的,为什么这么设计

大概只记得这么多

代码

(1) 合并K个有序链表

(2) 判断一个二叉树是否为二叉搜索树,使用非递归


6. 好未来(北京)——广告算法实习生

6.1 技术面(80min)

一些上边有的问题,我就不说了.

Q1:说说GBDT+LR吧,它有什么优点?

Q2:谈谈你的特征工程方法论吧;特征选择有什么方法

Q3:计算广告和推荐系统有什么区别?

Q4:除了CTR预估,你还知道哪些计算广告涉及的算法?

Q5:说一说计算广告的商业化体系吧?

Q6:在比赛中有没有对比其他人的代码,情况怎么样?

代码是重建二叉树和链表每K个一组翻转

6.2 HR面

Q1:平时喜欢干什么?

Q2:你喜欢和什么样的人去相处,怎么去处理上下级和同事之间的关系?

Q3:当时为什么做这个项目?

Q4:你和上一位面试官聊完有什么收获?

Q5:你觉得你进来公司后能学到什么?

Q6:有没有让你觉得特别困难或者说压力比较大的事情,你是怎么解决的?

Q7:你的期望薪资是多少,多久能到岗,能实习多长时间?

Q8:你还有什么想问的?

反问:公司培养新人的制度大概是什么样的;在公司上班的一天大致是什么样的;多久可以收到反馈。

拿到offer


7. 元气森林(北京)——算法实习生

7.1 一面技术面(40min)

Q1:样本不平衡有哪些方法,过采样具体有什么方法(复制、SMOTE)

Q2:讲讲RF和XGBoost的区别

Q3:决策树中ID3、C4.5和CART回归树主要的区别

Q4:XGBoost如何分裂结点

Q5:XGBoost和RF的采样过程有什么区别

Q5:抛出一个发散的问题,预测销售量的问题。

面完下午说不符合岗位需求,凉了


8. 汽车之家(北京)——算法实习生

面试问题跟上面差不多,已拿到offer


9. 探探科技(北京)——推荐算法实习生

9.1 技术面

理论

Q1:聊聊广告系统或者推荐系统大致是什么流程,你会怎么设计一个广告或者推荐系统?

Q2:聊聊FM、FFM、GBDT+LR、wide&deep、XGBoost、Lightgbm他们各自得优缺点,以及适用场景

Q3:说说CNN为什么会出现,他解决了什么难题,有什么特点;我们说CNN虽然减少了计算量但是增加了一些全局误差,你怎么看这个误差是可以接受的?(多局部近似全局)

Q4:面试官给了几个数,让我计算CNN的输出维度(带padding和步长的)、参数量

Q5:CNN中除了卷积还有一个特别之处是什么?池化有哪些方法,最常见的是哪个?为什么是最大值池化而不是最小值池化(从轮廓差去说)

Q6:RNN和CNN有什么不同;LSTM和GRU有什么区别,具体讲讲;

Q7:CNN中梯度消失怎么解决的,有什么方法,谈谈细节公式怎么实现的?

A7:激活函数、BN、ResNet

Q8:关于召回有哪些算法,能讲讲区别么,你都用过哪些?

Q9:对于CTR预估,我们公司现在和广告做的不一样:我们做的架构是双向的推荐,你“滑”别人,别人也“滑”你,我们的评价指标是配对成功率,请问怎么设计这个系统,使得双向推荐work

Q10:对于收集到的数据,你怎么去挖掘数据的信息,有什么思路。

还有好多问细节的,挖的比较深,要知其然也知其所以然

代码

题面:给定一个正整数数组,这个数组的长度至少为3,数组中的数字种类只有3种,例如[3,2,1,3,2,1,3,2,1],请将数组从小到大排序,要求时间复杂度为O(n),空间复杂度为O(1)

探探凉了


10. 水滴(北京)——算法实习生

10.1 技术一面

没啥意思,跟上面差不多,面试官的口音有点重(吐槽一下),一面已过,等待二面

10.2 技术二面

Q1:Linux怎么在两个机器之间复制文件

Q2:python中深拷贝和浅拷贝有什么区别

Q3:python中列表和字典有什么区别

Q4:CNN你在实际中怎么用?

还有上面就是上面写过的问题

10.3 HR面

已收到offer

11. 360(北京)——广告算法实习生

11.1 一面

理论知识:

1.操作系统中进程和线程的区别是什么?
2.Cache机制的作用是什么?
3.python中init方法和new方法的区别?
4.内存机制包括堆区间和栈区间说一说?
4.Hadoop中的MapReduce机制是什么样的,例如shuffle的过程是什么?
5.常见的正则化方法有哪些,dropout与bagging的之间有什么联系?
6.AUC怎么计算的?

代码:
Leetcode415字符串相加(面试官描述的是大数相加)
两个思考点:位数不相等怎么办;怎么进位

class Solution:
    def addStrings(self, num1: str, num2: str) -> str:
        pointer1 = len(num1) - 1
        pointer2 = len(num2) - 1
        carry = 0
        res = ''
        while pointer1 >=0 or pointer2 >= 0:
            n1 = int(num1[pointer1]) if pointer1 >= 0 else 0
            n2 = int(num2[pointer2]) if pointer2 >= 0 else 0

            tmp = n1 + n2 + carry
            carry = tmp // 10
            tmp = tmp % 10
            res = str(tmp) + res
            pointer1 -= 1
            pointer2 -= 1
        return '1' + res if carry else res

11.2 二面

理论知识:

1.问项目
2.XGBoost怎么处理缺失值
3.XGBoost的信息增益是什么,写一下

代码:

1.二叉树的中序遍历非递归
2.数组中找一个 pair对, i

12 阿里巴巴

12.1 一面

1.判别模型和生成模型有什么区别?(李航书上有)

2.LR属于什么模型、SVM呢?(都属于判别模型)

3.讲讲FM模型原理,他和LR有什么区别?

4.都知道LR在训练模型前需要进行大量的特征工程,FM需要么?

  • 是需要的,FM虽然可以捕捉到特征之间的交叉信息,但是能力有限,如果能提前在数据上做一些特征融合,那么效果会更好

5.假设我们在LR得到的结果比FM模型好,那你认为是什么原因呢?

  • 可能FM模型学习到了对模型较大的特征信息,但是这些特征并不是我们想要的,即对实际评价指标有用的。

6.那么接着如果在DeepFM模型上表现又好了呢,这又是什么原因呢?

  • DeepFM引入了DNN,学习到了更高层的特征交叉信息

7.加入训练模型时,我们在训练集上的loss一直不变,什么原因?

  • 梯度消失(不幸的参数初始化、激活函数)、过度正则化

8.loss在训练集上有变化,测试集上没变化,什么原因

  • 过拟合

9.讲讲LightGBM的原理,它和XGBoost有什么区别?

10.XGBoost为什么使用泰勒展开,为什么只展开到2阶导数,为什么不展开到3阶?

  • 使用泰勒展开是为了加快训练速度,只展开到2阶是因为一般来说只要求我们的loss function到二阶可导,对三阶不做要求,当然如果三阶可导数,则可以展开到三阶

13. 字节跳动(抖音)

13.1 技术一面

代码部分
面经-算法岗位_第2张图片
coding代码

项目部分
ocpc和cpc的区别?
fm、FFM、DeepFM、Wide&Deep区别
线上CTR预测怎么做的

14.百度

14.1 一面

1.LR与SVM的区别
2.XGB和RF的区别
3.CNN为什么适合图像?
4.FM和FFM和DeepFM区别?
5.讲讲DIN模型
6.项目

代码:LC673. 最长递增子序列的个数

14.2 二面

1.线性回归和逻辑回归的损失函数是什么?,收敛么
2.什么是鞍点,如何跳出鞍点,写一下Adam优化器的伪代码
3.写出SVM的优化目标
4.写出XGB的优化目标
5.用tf写一个图片二分类的代码
6.用Spark写一个word_count代码
7.XGB和RF的区别,他们对基本分类器的要求有什么区别(RF要求的高一点)

8.项目

14.3 三面(技术经理面)

整体感觉三面半HR半技术,技术方面不深,主要问业务的东西居多,比如你怎么理解“增长”和“广告”之间的联系(因为我面的是百度的增长与风控技术部门),还有“如果我不能给你发校招offer,但是能给你实习offer,你接受么?”,这句话其实在问你,能不能提前来实习

第一部分:面试官介绍自己项目组的情况

第二部分:介绍自己的实习情况

第三部分:反问阶段

14.4 offer call

4天后收到测评,2天后oc,后续发意向书

15. 京东(提前批)

15.1 一面

上面的问题都包含了

代码:连续子数组的最大和

15.2 二面

上面的问题都包含了

代码:
1.一个数组,求重复元素最多的k个,要求时间复杂度优于O(nlogn)
2.快速排序

15.3 HR面

先自我介绍

1.你遇到的最大的困难是什么
2.当你和同事或者leader意见不合时,你怎么处理
3.你对自己的定位是什么,执行者 or 管理者
4.目前手头上有offer么
5.你有什么学习方法
6.你觉得你的缺点是什么
7.你对我们部门有什么了解

16 小米

16.1 一面

1.上面的都差不多

代码:
1.给定数组,求两个数字之和满足target的所有组合
2.二叉树,求最长路径(可以从根节点,也可以从叶子节点出发)

你可能感兴趣的:(面试工作,算法,机器学习,深度学习)