Q1:问项目:做完特征工程后feature_importance是什么样的
Q2:XGBoost和LightGBM有什么区别
A2:从LightGBM的单边梯度采样和特征互斥绑定两个角度说
Q3:说一下LSTM原理,怎么讲LSTM应用到你的项目上
其他:聊一下家常
已收到offer,并拒绝
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.26更新,已收到offer.
(1)第一题:
给定两个升序数组a
和b
,且两个数组的交集为空,a
的数组长度为m
,b
的数组长度为n
,求两个升序数组的全局第k
小的数。(m >> k,n >> k
)
要求:时间复杂度至少要求为O(k),若为O(logk)则加分
参考答案:两个有序数组中全局第k小的数
(2)第二题:
机器学习回归问题,给了训练集和测试集,RMSE作为评价指标,要求了误差范围。其实本题的主要意图是看你会不会分析数据,会不会使用sklearn建模,以及熟悉哪些可以解决回归问题的模型。
自我介绍完之后,问我课题做的啥,讲一讲。我就跟他扯VAEs和GANs的东西,聊了大概30分钟,最后换他介绍公司的情况,主要做AutoML和可解释性的东西。聊完问题不大,最后问我对我们公司感兴趣么。给开的工资也可以。
这是个校企合作的公司,就一面,问了问在校的情况和研究的课题还有关于对tensorflow的使用经验(感觉像在白嫖我),发了offer,已拒绝
理论
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) 优化器你知道的都有哪些,具体讲讲原理?答案看我博客
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一面过了
被虐的体无完肤,有些问题记不太清了,凉了。
理论
Q1:深挖项目,AUC为什么这么高,AUC的计算公式有哪些,具体说说
Q2:XGBoost中有哪些可以防止过拟合的方法
Q3:防止XGBoost过拟合你都调了哪些参数,树最大深度是多少,总共有多少棵树
Q4:聊论文,论文大致思路是什么,有什么优点,用了哪些数据集,输入特征的维度多大
Q5:聊计算广告,说说FM模型的主要思想,谈谈它tensorflow代码怎么实现的;说说wide&deep模型,怎么设计的,为什么这么设计
大概只记得这么多
代码
(1) 合并K个有序链表
(2) 判断一个二叉树是否为二叉搜索树,使用非递归
一些上边有的问题,我就不说了.
Q1:说说GBDT+LR吧,它有什么优点?
Q2:谈谈你的特征工程方法论吧;特征选择有什么方法
Q3:计算广告和推荐系统有什么区别?
Q4:除了CTR预估,你还知道哪些计算广告涉及的算法?
Q5:说一说计算广告的商业化体系吧?
Q6:在比赛中有没有对比其他人的代码,情况怎么样?
代码是重建二叉树和链表每K个一组翻转
Q1:平时喜欢干什么?
Q2:你喜欢和什么样的人去相处,怎么去处理上下级和同事之间的关系?
Q3:当时为什么做这个项目?
Q4:你和上一位面试官聊完有什么收获?
Q5:你觉得你进来公司后能学到什么?
Q6:有没有让你觉得特别困难或者说压力比较大的事情,你是怎么解决的?
Q7:你的期望薪资是多少,多久能到岗,能实习多长时间?
Q8:你还有什么想问的?
反问:公司培养新人的制度大概是什么样的;在公司上班的一天大致是什么样的;多久可以收到反馈。
拿到offer
Q1:样本不平衡有哪些方法,过采样具体有什么方法(复制、SMOTE)
Q2:讲讲RF和XGBoost的区别
Q3:决策树中ID3、C4.5和CART回归树主要的区别
Q4:XGBoost如何分裂结点
Q5:XGBoost和RF的采样过程有什么区别
Q5:抛出一个发散的问题,预测销售量的问题。
面完下午说不符合岗位需求,凉了
面试问题跟上面差不多,已拿到offer
理论
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)
探探凉了
没啥意思,跟上面差不多,面试官的口音有点重(吐槽一下),一面已过,等待二面
Q1:Linux怎么在两个机器之间复制文件
Q2:python中深拷贝和浅拷贝有什么区别
Q3:python中列表和字典有什么区别
Q4:CNN你在实际中怎么用?
还有上面就是上面写过的问题
已收到offer
理论知识:
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
理论知识:
1.问项目
2.XGBoost怎么处理缺失值
3.XGBoost的信息增益是什么,写一下
代码:
1.二叉树的中序遍历非递归 1.判别模型和生成模型有什么区别?(李航书上有) 2.LR属于什么模型、SVM呢?(都属于判别模型) 3.讲讲FM模型原理,他和LR有什么区别? 4.都知道LR在训练模型前需要进行大量的特征工程,FM需要么? 5.假设我们在LR得到的结果比FM模型好,那你认为是什么原因呢? 6.那么接着如果在DeepFM模型上表现又好了呢,这又是什么原因呢? 7.加入训练模型时,我们在训练集上的loss一直不变,什么原因? 8.loss在训练集上有变化,测试集上没变化,什么原因 9.讲讲LightGBM的原理,它和XGBoost有什么区别? 10.XGBoost为什么使用泰勒展开,为什么只展开到2阶导数,为什么不展开到3阶? 项目部分 1.LR与SVM的区别 代码:LC673. 最长递增子序列的个数 1.线性回归和逻辑回归的损失函数是什么?,收敛么 8.项目 整体感觉三面半HR半技术,技术方面不深,主要问业务的东西居多,比如你怎么理解“增长”和“广告”之间的联系(因为我面的是百度的增长与风控技术部门),还有“如果我不能给你发校招offer,但是能给你实习offer,你接受么?”,这句话其实在问你,能不能提前来实习 第一部分:面试官介绍自己项目组的情况 第二部分:介绍自己的实习情况 第三部分:反问阶段 4天后收到测评,2天后oc,后续发意向书 上面的问题都包含了 代码:连续子数组的最大和 上面的问题都包含了 代码: 先自我介绍 1.你遇到的最大的困难是什么 1.上面的都差不多 代码:
2.数组中找一个 pair对, i12 阿里巴巴
12.1 一面
13. 字节跳动(抖音)
13.1 技术一面
ocpc和cpc的区别?
fm、FFM、DeepFM、Wide&Deep区别
线上CTR预测怎么做的14.百度
14.1 一面
2.XGB和RF的区别
3.CNN为什么适合图像?
4.FM和FFM和DeepFM区别?
5.讲讲DIN模型
6.项目14.2 二面
2.什么是鞍点,如何跳出鞍点,写一下Adam优化器的伪代码
3.写出SVM的优化目标
4.写出XGB的优化目标
5.用tf写一个图片二分类的代码
6.用Spark写一个word_count代码
7.XGB和RF的区别,他们对基本分类器的要求有什么区别(RF要求的高一点)14.3 三面(技术经理面)
14.4 offer call
15. 京东(提前批)
15.1 一面
15.2 二面
1.一个数组,求重复元素最多的k个,要求时间复杂度优于O(nlogn)
2.快速排序15.3 HR面
2.当你和同事或者leader意见不合时,你怎么处理
3.你对自己的定位是什么,执行者 or 管理者
4.目前手头上有offer么
5.你有什么学习方法
6.你觉得你的缺点是什么
7.你对我们部门有什么了解16 小米
16.1 一面
1.给定数组,求两个数字之和满足target的所有组合
2.二叉树,求最长路径(可以从根节点,也可以从叶子节点出发)