记录一下面试的内容吧,以前一直不想记,发现没有这样的整理过程,以后遇到问过的题目还是不能很好的应对,所以还是走出这一步吧,只要走了,强迫症地我就自动走上笔记完善之路了。

  要体现自己实践解决问题的能力,清晰的思维逻辑,扎实的基本功,有条理的陈述交流方式等。

一、腾讯

腾讯视频的数据挖掘工程师

  去希格码大厦面试,连续面了两面。

一面

  • 为什么在论文中使用了 Triple loss?具体原理是啥?
  • PCA 的具体原理?PCA 求的是什么?

二面

  • 基本上问了下项目的问题。

二、阿里

推荐算法工程师

一面

  • 流程:电话面试,因为方向不是很对口,就大概聊了下一些基础算法。

三、百度

3.1 机器学习算法工程师

一面

  • 编程
    • 一个一维数组,人在 p 点,猫在 q 点,猫不动,人追猫。人每步的步长有三种可以选择,实现一个函数返回最小步数
      • 每次向前走一步
      • 每次向后走一步
      • 当前位置 double
    • 实现一个快速的容器(大小最大为 K),流数据一直往这个容器里放,要求尽量在常数时间和空间下实现下面三种操作
      • push,如果当前大小为 K,则 pop 最早 push 进来的文章
      • pop,弹出最早进来的文章
      • sample(N),采样第 N 个样本
  • 机器学习算法
    • 卷积神经网络中哪些起到正则化的作用?
    • 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 介绍下;损失函数是什么?

五、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 机制

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只羊,狼可以吃草也可以吃羊,狼吃了羊会变成羊,假设狼都足够聪明,请问这只羊会不会被吃?😂😂