记录一下面试的内容吧,以前一直不想记,发现没有这样的整理过程,以后遇到问过的题目还是不能很好的应对,所以还是走出这一步吧,只要走了,强迫症地我就自动走上笔记完善之路了。
要体现自己实践解决问题的能力,清晰的思维逻辑,扎实的基本功,有条理的陈述交流方式等。
一、腾讯
腾讯视频的数据挖掘工程师
去希格码大厦面试,连续面了两面。
一面
- 为什么在论文中使用了 Triple loss?具体原理是啥?
- PCA 的具体原理?PCA 求的是什么?
二面
- 基本上问了下项目的问题。
二、阿里
推荐算法工程师
一面
- 流程:电话面试,因为方向不是很对口,就大概聊了下一些基础算法。
三、百度
3.1 机器学习算法工程师
一面
- 编程
- 一个一维数组,人在 p 点,猫在 q 点,猫不动,人追猫。人每步的步长有三种可以选择,实现一个函数返回最小步数
- 每次向前走一步
- 每次向后走一步
- 当前位置 double
- 实现一个快速的容器(大小最大为 K),流数据一直往这个容器里放,要求尽量在常数时间和空间下实现下面三种操作
- push,如果当前大小为 K,则 pop 最早 push 进来的文章
- pop,弹出最早进来的文章
- sample(N),采样第 N 个样本
- 一个一维数组,人在 p 点,猫在 q 点,猫不动,人追猫。人每步的步长有三种可以选择,实现一个函数返回最小步数
- 机器学习算法
- 卷积神经网络中哪些起到正则化的作用?
- L1 正则,L2 正则具体为什么服从拉普拉斯分布和正态分布?
- 贝叶斯原理解释具体细节。
- CNN 的感受野是啥?如何通过上层的感受野,输入层还有 Kernel 推算出下一层的感受野?也就是计算公式
- SVM 的原理是什么?为什么用到了 KKT 条件,其中最大化、最小化的变换如何变?
- 点到直线的公式
3.2 算法工程师——搜索业务
一面
- 流程:上来先自我介绍一下,然后问了问算法,后来写了两道题,感觉面试官就交差了……
- 算法
- 首先问了对传统机器学习的了解程度,我就挨个说了下分类的,回归的模型有哪些
- 具体让我介绍了下 SVM,口述的时候到 min max 转 max min 的时候又卡壳了,还得回顾一下
- 点到超平面的距离公式有点儿忘记了!
- 评价指标:精度,查准率,查全率,AUC
- 编程
- 二分查找
- 找二分查找树比指定元素小的最大元素
- 项目没问……
二面
- 流程:上来看了下一面的时候写的代码……很清奇,然后拿着简历问了问项目,后
- 项目:
- 问了些项目,先找自己感觉做的比较好的项目,然后找了一些项目问了些关键点
- 算法没问……放弃了嘛🙃
- 编程:
- 改进二叉树,使得子节点能够连到它右边的兄弟节点上
- 编辑距离的计算,字符串增删改,从一个字符串到达第二个字符串的最小步数,这个没搞定
- 然后结束……
四、今日头条
1. 数据分析岗位
一面
- 流程:自我介绍
- 算法:决策树
- 编程:sql 语句,找到最大的
二面
- 流程:自我介绍,机器学习算法问一些
- 算法:
- LightGBM 为什么快?
- 编程:
- 给你一个正整数,找到最小的平方和等于这个数的最小组合,比如 $1^2+2^2=5$,$1^2+1^2+1^2+1^2+1^2=5$,我们选第一种,最少数目的组合。
- Hash 表怎么实现?
三面
- 流程:上来拿着简历就问一些比较核心的问题
- 算法:
- SVM 训练为什么慢?底层用什么实现的?
- SMO 怎么实现?
- XGBoost 介绍一下,原理都没说清楚。
- 随机森林介绍下;如何更新权重?
- Adaboost 介绍下;损失函数是什么?
- SVM 训练为什么慢?底层用什么实现的?
五、360
1. 奇安信——机器学习/深度学习研发工程师
一面
- 流程:了解情况,为什么离职?为什么想做算法?
- 算法:
- 如何判断一个数据集是否能够线性可分?比如说就用 SVM 的话,如果只用线性模型,会发现什么现象才能觉察到线性不可分?
- PCA 的思想是什么?
二面
- 流程:了解情况,TensorFlow 熟练程度怎么样?
- 算法:问的少。
- 代码:
- 写树的深度遍历。如果不用递归实现呢?
- 递归有什么缺点?
两面技术面就过了,HR 直接通知了通过和薪酬,感觉太低直接忽略了。
2. 360 QA——机器学习/深度学习研发工程师
一面
- 流程:没写代码……问了一堆算法问题
- 算法:
- SVM 满足什么条件才能从 Primal 转到 Dual
- L1、L2 正则
- 1x1 卷积的意义
- 如果在训练集上效果好,测试集上效果不好,过拟合修改了之后再训练集上效果又差了
- SVR
- 为什么要用 fine-tuning?
二面
- 流程:没有怎么介绍,上来就是问了一些技术问题,主要考察了一下 Python 的掌握熟练度,然后就闲聊了一下,关于我目前的薪资,住所等情况。
- 编程:
- Python 的多变量
- Call_back 函数
- Spark 和 Strom 的熟练使用情况,ZooKeeper 的使用情况等。
- 算法:
- XGBoost、LightGBM 的理解
六、京东
1. 京东物流——机器学习算法工程师
一面
- 流程:采用了电话面试,问了比较细致的项目问题,然后问了些机器学习的算法和编程
- 算法:
- AAAI 展开、KTT 如何推导
- 怎么判断一个函数是凸函数
- 如果加了 L1 正则不可导要怎么办?
- 编程:
- 平衡二叉树的概念,如何遍历,特点。
- 打印平衡二叉树每层的最右节点。
二面
- 流程:二面到六面都是在一起面完
- 算法:
- Triplet Loss 公式
- 编程:
- 找到二叉树中的最近公共父节点
三面
- 流程:主要问了项目
四面
- 算法:
- GBDT 的流程,与 XGBoost 的区别
- XGboost 如何实现防止过拟合
- AAAI 做法会不会出现过拟合现象
五面
- 流程:应该 HR,问了些中规中矩的 HR 问题吧
六面
- 流程:领导面试,瞎扯淡。
2. 京东商城——推荐算法工程师
一面
- 算法:
- 如何在 LR 实现降维?
- 编程:
- 实现快排
二面:
- 算法:
- LSTM 的基本原理
- 编程:
- MR 思想,超大的 HDFS 上的数据,一行是类似(A, BCDE)的记录,利用 MR找出二度人脉
3. 京东数科——图像识别算法工程师
一面
- 流程:了解基本情况,三个项目做了大概的展开,没有将技术细节。
二面
- 算法:
- 怎么尽量减少 pooling 层丢失的信息?
- 在后面多加入一些卷积核提取一些特征
- 使用较小的 pooling 大小
- 尽量少避免使用 pooling,使用新型的 CapNet
- 迁移学习的了解?五个例子。
- Segmentation 有无了解?
- 相机的前置处理,有没有遇到需要做的问题?
- 激活函数的特性和区别?
- 对于深度学习中二分类和多分类的情况,如果在设计网络时做对应的设定?
- 说是对目标函数做一定的修改
- 具体场景是,比如说检测猫和狗的二分类,
- 边缘检测有了解嘛?
- BN 层了解过吗?具体实现细节是什么?
- IOU 应对一定问题下的操作,比如值相同,但是重叠的方式有较大差别,怎么进行区分?
- GIOU
- NMP 怎么找到那些簇?
- Faster RCNN
- Attention 机制
- 怎么尽量减少 pooling 层丢失的信息?
4. 京东商城——搜索算法工程师
突然说年底 HC 特别多,于是叫我去我也就去了,没想着现在跳。两轮面试活活面了三个半小时,真棒!
一面:
- 流程:
- 问项目,问算法,写代码。
- 算法:
- 手推逻辑斯特回归
- 问了 SSD 算法实现思想
- 编程:
- 分段有序的数组,做搜索
二面:
- 流程:
- 上来就怼代码
- 代码:
- 给你京东搜索的一堆候选词,要求每隔五个候选词中不能出现三个以上相同品牌的候选词,编程实现思路
- 算法:
- 决策树 ID3
- XGBoost 问得很细,我有点儿忘记后拿出论文让我对着论文讲解,也是神奇……让我感觉有点儿套思路和方案的嫌疑
5. 京东商城——推荐算法工程师
问的还是比较专业的,学习到了不少东西,还蛮有意思!而且面试官都蛮 nice,没有接触过得关于推荐算法的部分,还耐心跟我说。
一面:
- 流程:
- 问项目,问算法细节,此面试官还是比较有经验的
- 算法:
- 真阳率,假阳率
- PR 曲线、ROC 曲线区别,为什么 PR 对付不了不平衡问题
- XGBoost 多分类,权重加在哪儿
- DMatrix 上?
- RF 和 GBDT 哪个树可以比较深
- 对于机器学习来说,泛化误差可以理解为两部分,分别是偏差(bias)和方差(variance);偏差指的是算法的期望预测与真实预测之间的偏差程度,反应了模型本身的拟合能力;方差度量了同等大小的训练集的变动导致学习性能的变化,刻画了数据扰动所导致的影响。当模型越复杂时,拟合的程度就越高,模型的训练偏差就越小;但此时如果换一组数据可能模型的变化就会很大,即模型的方差很大,所以模型过于复杂的时候会导致过拟合。
- 对于RF来说由于并行训练很多不同的分类器的目的就是降低这个方差(variance)。所以对于每个基分类器来说,目标就是如何降低这个偏差(bias),所以我们会采用深度很深甚至不剪枝的决策树。
- 而对于GBDT来说由于利用的是残差逼近的方式,即在上一轮的基础上更加拟合原数据,所以可以保证偏差(bias),所以对于每个基分类器来说,问题就在于如何选择 variance 更小的分类器,即更简单的分类器,所以我们选择了深度很浅的决策树。
- RNN 了解
二面:
- PCA 原理,LDA 区别
- XGBoost 如何分特征,如何优化的
- Libucb
面试
- 小米
- MR 中的 Shuffle
- LFBS 和另外一个,与梯度下降的区别
- 华为
- MR 思维训练 K-Means
- 尽量利用 CPU 资源
- 多线程,多进程,尽量用矩阵乘法,不要用 for
- 如何把 SVM 并行拆分有效利用
- LightGBM 的优化在哪里,为什么快?!
- 阿里口碑
- 优化器的对比!
- 手写 SVM 和 LR
- 为什么数据或者特征要符合正态分布?
- 正则化有什么优势,有什么作用?防止过拟合,特征选择
- 池化层有什么用?非线性
- 正态分布是对均值还是方差做了限定
- tanh 激活函数!各个激活函数!!!
- 如果出现了梯度弥散要怎么办?换
- NN 里如果选择合适的初始值?
- CNN 的卷积有什么作用?大小有什么影响?
- 在浅层中加入 BN 是否有帮助?如果是换用 tanh 激活函数呢?
- 阈值设定除了显示还有什么其他考虑
- BN 除了减少过拟合还有什么作用?
- 归一化之后的数据,能够减少计算复杂度,加快神经网络收敛
- 避免造成梯度过饱和
- 还将数据归一化到以 0 为中心,激活函数的输出是以“零为中心”,便于后续迭代优化
- 在线学习了解嘛?
- 紧凑度
- Embedding 的作用?NLP
- 池化层的作用有哪些?
- 特征化成离散特征的好处?
- 代码是找到日志信息中第 44% 的 CTR 数据
不要一上来就讲原理,先将每个算法的思想,怎么用。
- 腾讯
- C++ 的堆栈
- Python 深拷贝浅拷贝
- 直接复制,传递引用
- 浅拷贝只拷贝对象,对象中的元素依然是原始的引用
- 深拷贝不光拷贝对象,同时拷贝了对象中的元素
- 业务场景
- 王者荣耀的挂机和送人头的建模
- 百度
- 优化器
- 激活层
- 卷积的优势
- 池化层的优点
- 编程:
- 排序数组的旋转,然后找到对应的数
- 智力题:
- 面百度有这样的题,一个草原上有100只狼和1只羊,狼可以吃草也可以吃羊,狼吃了羊会变成羊,假设狼都足够聪明,请问这只羊会不会被吃?😂😂