微信公众号:衣介书生
有任何问题或建议,欢迎在公众号留言。
欢迎关注该公众号。
如果你觉得文章对你有帮助,欢迎赞赏[1]
我的秋招之路
以下内容主要是我对我参加过的面试的一些个人记录(可能不是那么全面,仅供参考),所有的岗位都是机器学习岗或者深度学习岗。拿到的 offer 从定级上来看基本都是 special offer 或者 super special offer。我会尽最大努力去分享一些专业知识相关的个人笔记供大家参考,如果发现笔记中有任何错误或者不明确的地方也请大家及时指正。
内容目录
美团算法专场(未通过)美团金融美团平台阿里国际事业部(未通过)作业帮提前批(通过)京东广告部寻猎计划(通过)迅雷人工智能研究员提前批(通过)百度提前批(通过)一点资讯提前批(通过)爱奇艺提前批(通过)搜狐算法专场(通过)京东金融寻猎计划(通过)依图(未通过)宜信提前批(通过)腾讯桌面安全事业部(流程中断)猿辅导(通过)
美团算法专场(未通过)
经验教训:简历上的内容都没有准备好,自己做的比赛都没有讲清楚,算法相关的知识也没有做过梳理,面试之前还是要好好梳理一下自己做过的各个项目。毕竟面试时间有限,衡量你能力的硬性指标就是面试官提出的问题你回答得如何。
美团金融
自我介绍
介绍一下商铺定位这个赛题你怎么做的
GBDT的原理
GBDT是如何分裂节点的
如果一个特征有30%的缺失值,怎么处理
LR怎么处理连续值
谈谈你对方差和偏差的理解?过拟合的情况下,方差和偏差是怎样的?
美团平台
自我介绍
大概问了一下简历上的各个比赛和项目
挑一个详述
阿里国际事业部(未通过)
失败的经验教训:面试的时候一定要主动,面试官让我挑一个自己熟悉的算法的时候,由于这是自己人生中第二次求职面试,毫无经验,我竟然让面试官挑一个!面试官选择了考察我CNN。面试官对CNN了解的非常透彻,自然问的很细,自己对CNN并没有这么深入的了解,最后挂在了一个细节问题上。所以一定要主动,面试官给你机会表现就一定要抓住。主动并没有什么不对,短时间内想让面试官对你有个好的评价,必须尽最大的努力让面试官知道你的能力。
项目介绍
CNN相关知识
排序算法以及复杂度分析
手写快排
作业帮提前批(通过)
一面
自我介绍
讲项目
推导LR
推导SVM
手写快排
手写计算矩阵面积的一道算法题
基本思路是空间换时间,时间复杂度O(n),空间复杂度O(n^2)
构造上一题用到的矩阵,时间复杂度O(n^2)
推理证明题,三个连续的数,首先它们都大于6,并且它们有两个质数,证明另一个一定能被6整除
二面
讲项目
大概问了一下GBDT
电梯调度的问题
三面
HR面,对公司印象怎么样,感觉如何,持续时间最长的项目是什么,负责的主要工作是什么,公司福利大概说了一下,HR小姐姐待人跟和善~,到这儿基本就结束了
京东广告部寻猎计划(通过)
一面(应该是推荐我的面试官给我面的)
自我介绍
讲了下项目,面试官就项目问了不少问题,问了改进方案等。
面试官通过对项目的了解省略了对我的算法知识储备的考察~,直接进入做题环节~
说一下堆区和栈区
智能指针
快排
判断一棵树是不是平衡二叉树
堆排序
反问了解公司业务
二面
自我介绍
项目,比较简单的描述,面试官说主要他考察我编程能力
连续子数组的最大乘积
快速排序
三面
自我介绍
项目
LR损失函数,LR损失函数是不是个凸函数
SVM为什么要有对偶形式
SVM中的核函数的作用是什么
核函数是怎么起到作用的
SVM用的优化方法知道么
word2vec的基本原理、层次softmax、为什么建哈夫曼树、负采样、损失函数
简单介绍随机森林、袋外数据占比大概是多少、大致的推导
随机森林和GBDT的异同点
GBDT为什么拟合负梯度不直接拟合残差(在凸函数优化问题中,拟合梯度的负方向就能找到最小值,然后再考虑到过拟合的问题,建树的时候也不是完美的拟合梯度的负方向,而是有一个步长。)
逻辑回归的损失函数是不是凸函数,有没有最优解
讲一下你对过拟合的理解
训练集和测试集的分布会不一样吗(正常来说不会,如果分布不同,那就涉及到数据集划分是否正确的问题了。)
随着迭代次数的增多,loss在训练集、验证集、测试集上的一般情况下是怎样的
四面
给一个字符串,如果字符串中有连续空格,将多个空格替换成一个
指数运算通常比较耗时,但有的时候又是不可避免的,如何提高效率
怎么把用户id之类的特征融合到xgboost模型中
简单问了一下项目
聊天(面试的收获,未来的规划,然后面试官给我讲了一下广告、推荐、搜索的关系,收获很大,这一面面的很不好)
五面
详细的介绍了两个项目,就项目进行提问。
改进方案
大数相乘(整型大数相乘,浮点数大数相乘描述思路,若干大数连乘(结果可能是大数,每个数不是大数,要求能表示出结果就行,可以不那么精确))
聊了一下未来规划,有没有offer
六面(整理的时间有点儿晚,记住的东西不多了)
项目介绍
L1、L2正则
SVM算法推导加上方方面面的介绍
xgboost算法的推导
DNN的一些问题
判断一棵树是不是另一棵树的子树
链表形式的大数相加
迅雷人工智能研究员提前批(通过)
一面
介绍几个项目,项目问的很多,问题也很杂,数据有没有不平衡,怎么处理的,怎么构造的向量,文本怎么做的预处理,怎么训练的词向量等。
推导了lr
推导了xgboost
叙述了随机森林,gbdt的区别
深度学习中的梯度消失,梯度爆炸
深度学习中的优化函数有哪些,adam的特点,有什么作用
讲了word2vec的cbow模型,skip-gram模型,哈夫曼树的建立,层次softmax的执行流程,负采样的方式,最后问了损失函数
推导了lstm画,画了门控结构图
各个门的作用
LSTM的改进版有什么
算法题:实现atoi,面试官有一些新的要求
算法题:3-sum去重
反问
二面
自我介绍
项目
聊了一下项目,人生规划,平常怎么学习
三面
聊了一个项目
SVM损失函数
梯度消失和梯度爆炸的原因,解决办法
知道哪些优化方法
写代码:字符串翻转
其它的记不住了~
聊了一下平常是如何学习的,公司的大体业务
四面
讲项目
给一个业务场景(特征重要程度打分)
过拟合问题产生的原因以及解决办法
C++多态
进程与线程
Linux内存管理机制
知道的Linux命令有哪些
平常怎么学习的
介绍了一下公司业务场景
百度提前批(通过)
一面
自我介绍
讲一个项目
KNN
KNN相关优化算法
特征选择的方法
卡法校验
能不能用朴素贝叶斯某个特征在某一类的概率来选特征(只衡量一个特征在一个类里出现的概率大小并不能用来筛选特征,个人感觉可以参考互信息法来回答)
PCA推导
特征重要性怎么做的,用xgboost怎么做知道么,其它的算法可以做么(随机森林)
详细说明xgboost,部分推导
TextCNN原理以及和CNN的区别
L1和L2正则
LR算法和SVM算法的区别
Word2vec一系列问题,记不清了~
损失函数都有哪些(指数损失、平方损失、绝对值损失、对数损失)
C++的static、多态、虚函数、安全类型转换、智能指针
new、delete、malloc、free的区别(malloc与free是C/C++语言的标准库函数,new/delete是C++的运算符。对于对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加malloc/free。)
C++ 支持多继承(C++支持,Java类不支持,Java接口支持)
C++ 纯虚函数,抽象类能不能被实例化
C++ 构造函数、析构函数(我补充了一下如果有虚基类时,构造函数的调用情况)
算法题:找两个排序数组的交集
算法题:10进制转8进制
二面
自我介绍
KNN
SVM损失函数、原始问题形式、对偶问题形式、引入核函数
SVM怎么解决线性不可分的问题
什么是支持向量(建议直接从KKT条件入手,结合对偶形式给出说明)
LR和SVM异同
C++内存分配问题
C++static变量
C++重载的问题(参数列表不同)
C++返回值不同可不可以重载
C++可不可以在两个函数里定义两个名字相同的静态变量
void func1() {static int a = 10;}
void func2() {static int b = 10;}
多线程了解么
线程通信的方式有哪些(共享内存)
进程通信的方式有哪些
函数不可重入的问题
中断
算法题:topK问题
TextCNN原理
三面
有些问题记不住了~
自我介绍
挑两个项目讲一下,比较仔细的讲完了一个,面试官问了一些相关的问题。
LR详细的推导,并介绍了为什么用sigmoid函数。
LR有哪些优点
出了一道题目,要求给出要给数学表达式,给一个月份,不用比较运算符,结果是这个月份对应的天数,不用考虑闰年,2月按28天处理
你周围人怎么评价你
你怎么评价你自己
反问
一点资讯提前批(通过)
一面
讲项目,数据预处理问的比较细,有什么方法衡量特征重要性?
随机森林和GBDT区别
讲一下xgboost
word2vec的一些相关问题
数组中有一些数,无序,找出所有的满足条件的数,条件是该数比前面的数大,比后面的数小。
判断一个链表是不是回文的。可以改变链表。空间复杂度要求O(1)。
二面
讲了下项目,文本处理的整个流程
GBDT和xgboost
word2vec层次softmax,负采样
word2vec若干比较比较少见的问题。主要关注的点在样本不均衡的处理
二叉树和为某值的所有路径
三面
项目
会的语言
总体介绍所有项目
未来规划
反问
详细介绍了公司业务场景和大致福利情况
爱奇艺提前批(通过)
一面
介绍项目
推导LR
协同过滤
SVD
朴素贝叶斯,先验概率,后验概率,调整因子
激活函数知道哪些
梯度消失问题是怎么产生的
FM算法了解么,跟LR算法相比做了哪些改进
深度学习超参调节的一些技巧
分布式处理了解么(不了解)
了解哪些常用数据结构
new,delete,malloc,free的区别(前两个是关键字,这就意味着这是编译器可控的,比如new一个对象,编译器可以做一些处理,调用对应类的构造函数,沿着这个思路回答了一下)
二面
介绍了一个项目
LR损失函数
推导了GBDT(不完全推导,介绍完前半部分,后半部分简要说了一下,就进去下一个问题了)
为什么拟合负梯度
FM算法(简要补充了FFM)
实现最小堆
搜狐算法专场(通过)
一面
项目介绍
推导SVM(完整推导)
翻转字符串
翻转句子
二面
2-sum 改进版,输入为任意整型数组,返回所有和为给定值的下标对儿
介绍项目
xgboost算法与gbdt算法相比做了哪些改进
xgboost和随机森林的抽样方式有什么不同
随机森林的抽样方式有什么特点
为什么会产生袋外数据
袋外数据有哪些用途
有没有别的offer
HR面
未来规划
有没有其它offer
面的这些公司你比较关注什么(我说工作环境比较重要,部门的主要业务)
业余生活喜欢做什么
京东金融寻猎计划(通过)
一面(两个面试官)
CNN
TextCNN
卷积的计算过程
TextCNN与CNN相比有什么特点
各种pooling方式的对比
项目
xgboost与rf的异同点
推导了SVM
为什么要导出对偶形式
SMO算法
二分查找的一个变形题
另一个比赛的数据处理工作的细节、难点
反问环节,了解了公司业务
二面(两个面试官)
项目
介绍xgboost
xgboost用什么树
xgboost树节点分裂准则
单链表是否有环
单链表有环,找入口节点
topk问题(两种方式,partition和最大最小堆)
分析时间复杂度
实现最小堆的思路
反问环节,了解了公司业务
三面(整理的时间有点晚,记不太清楚了)
主要讲了项目
简单的问了一些DNN的基础知识
HR面
问了手里有没有其它offer
未来规划
依图(未通过)
一面
自我介绍
项目
给一个整型数组(可以有负数)A,另有一个数组B,在集合关系上是A的子集,并且B数组不能为空且A中任意连续的两个数不能同时出现在B中,求数组B能取到的最大值(动态规划)
优化以上题目,要求时间复杂度O(n),空间复杂度O(1)
假设数组A为环形,应如何解决(经过分析可知增加的条件就是数组A中的第一个元素和最后一个元素不能同时出现在集合B中)
计算某一个卷基层的参数数量
卷积的运算过程(多通道)
假设有两面墙成一直角,有一段篱笆长度为1米,求篱笆和墙能围出来的最大面积(以墙角为圆心,画圆)
给出上题的证明过程
二面(面试体验很差,面试官给人一种高高在上的感觉)
项目
一道找规律的算法实现题,要求完整代码,可运行(用数字组成斜对角矩形并打印)
LSTM每一个时间步进行几次矩阵乘法运算,自定义输入、输出以及一切你认为要用到的模型参数,给出每一步矩阵乘法的两个矩阵的尺寸、结果的尺寸,并结合公式介绍每次矩阵运算结果的作用
KNN算法的输入、输出、重要参数和基本执行流程、时间复杂度
KNN的改进类算法kd-tree,最优时间复杂度,基本流程
word2vec和TextCNN的一些基本问题
SQL
三面
自我介绍
项目(主要在问项目特别是现在可提供的进一步的改进方案)
最小栈(我说我见到过这个题,说了一下思路就pass了)
对公司有什么了解,你眼中的依图
你周围的人怎么评价你
自己的未来规划
反问环节
宜信提前批(通过)
一面
二分查找
项目
TF-IDF的计算方式
介绍BM25算法
介绍LSI算法(结合SVD)
介绍LDA算法
推导xgboost
推导LR算法
推导牛顿法
用刚刚推导的牛顿法实际优化一个指定的Loss函数
介绍项目
对特征工程的理解
二面
自我介绍
word2vec层次softmax(详细,包括霍夫曼树的构建、时间复杂度的分析等等)
word2vec负采样方式
xgboost的一系列问题
介绍gbdt算法(基本上是完整的执行过程的介绍)
gbdt算法中用到的各个loss函数及其对应负梯度(分类和回归)
gbdt防止过拟合的方式
gbdt与xgboost的区别
梯度消失产生原因及其解决办法
BN层的具体计算过程(训练、预测)
各种优化算法的计算过程及其是怎么起作用的
LSTM(不完整推导)
介绍TextCNN
Pooling层的作用
神经网络最少需要几个隐藏层单元才能解决线性不可分的问题(可以理解成解决异或问题)
为什么DNN要采用多层的网络结构
多层网络结构,可以怎么做把前面层的输出直接在后面的层中起作用(ResNet)
残差块结构
L1正则与L2正则(分布与简要推导)
介绍了一个项目(讨论了优化方案)
一道概率题
三面
先简单聊了一会儿,暖了下场
面试官对公司目前的状况、定位、人员结构、业务做了个整体的介绍
对我面试的部门的业务做了个整体介绍,并给了几个应用场景(感觉比较复杂,但也很有意思)
介绍项目(边介绍,边讨论)
有没有offer
反问
意见
最后又聊了一会儿,给了口头offer,面试结束
腾讯桌面安全事业部(流程中断)
时间比较久远了,很多问题记不住了,再就是含金量比较重的问题也没有多少。
一面(20-30分钟)
主要问了项目
二面
项目
DNN的一些基础知识
随机森林和xgboost的区别
防止过拟合的方法
L1和L2正则
三面
主要讨论了工作地点的问题,这个事业部只提供深圳的岗位,经过协商,中断了面试流程,该事业部承诺释放简历
猿辅导(通过)
一面
根据前序和中序遍历序列恢复二叉树
最短编辑距离的一个扩展题目
二面
LR
SVM
KNN,kd-tree
朴素贝叶斯,拉普拉斯平滑
线性回归
为什么要用最小平方
LSTM
括号配对
一道回溯算法相关的算法题
总结的很晚,很多已经忘记了,二面面试时常大概在1个小时20分钟左右,面试官还问了很多数学相关的知识,可以说很深入了。
本文分享自微信公众号 - 算法小白学习笔记(gh_aeeb92b73c3c)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
来源:oschina
链接:https://my.oschina.net/u/4662457/blog/4733192