2018 秋招机器学习 / 算法 / 数据挖掘面经(阿里 / 京东 / 拼多多 / 美丽联合 / 链家...)



转载请注明 AIQ - 最专业的机器学习大数据社区  http://www.6aiq.com

AIQ 机器学习大数据 知乎专栏 点击关注

作者:crazyhoney

链接:https://www.nowcoder.com/discuss/32008?type=0&order=4&pos=14&page=2

职位:机器学习 / 数据挖掘算法工程师

在牛客网得到很多宝贵的面试经验

现我也来开帖,分享一下到目前为止的面试经验 ~~~

本人会一直写到秋招结束,记录下参加的每场面试

如果回答上有什么错误,请不吝赐教哈!!! 谢谢 ~~~~

目前内推面了:阿里、京东、拼多多、美丽联合、链家

目前校招面了:

据说可以攒人品 ~~~~~

更新线 -2017-08-29 14:06—————————————————————————

记录一下链家的面试,本来准备把几面都写完。但发现写完一面,有种精疲力尽的感觉。。。

这是我目前为止经历过时间最长的面试。约 1 个小时多一点点。

后面再写二面、三面吧。一面够长的了。

西安南雷村职业技术学院

—一个散养的没导师的硕。。。

以前玩大数据,现在玩机器学习,刚开始玩。

开八:


2017-08-10- 阿里菜鸟 - 机器学习 - 内推 -1 面 - 电话

没有自我介绍。。。直接略过。。。

1、讲一下你觉得你突出的地方,有亮点的地方。

说了 SVM 和 LR

2、LR 为什么用 sigmoid 函数。这个函数有什么优点和缺点?为什么不用其他函数?

3、SVM 原问题和对偶问题关系?

4、KKT 条件用哪些,完整描述

5、说项目

6、有一堆已经分好的词,如何去发现新的词?

面试官给的提示:用这个词和左右词的关系。互信息 新词的左右比较丰富,有的老词的左右也比较丰富。还要区分出新词和老词。

7、L1 正则为什么可以把系数压缩成 0,坐标下降法的具体实现细节

8、spark 原理

9、spark Executor memory 给 16G executor core 给 2 个。问每个 core 分配多少内存

面试官那边全程嘈杂,不知道在干啥,讨论问题??


2017-08-11- 京东广告数据部 - 机器学习 - 内推 1 面 - 电话

1、自我介绍

2、说一下进程和线程

说一大堆,再就说之间的区别

3、线程安全的理解

4、有哪些线程安全的函数

5、数据库中主键、索引和外键。以及作用

一个表可以没有主键,可以有索引

6、说项目

7、Spark 原理

8、Spark 是多线程模式,怎么退化为多进程模式。

在每个 executor core 设置为 1,即每个 executor 是单线程的。

9、撸代码。实现一个 java 迭代器

数据:

int[][] data = new int[][] {

null,

new int[] {1,2,3,4},

new int[] {},

null,

new int[] {5,6,7},

new int[] {8},

null,

};

要求:遍历是跳过 NULL。依次遍历每个元素:1,2,3,4,5,6,7,8

提示:

hasNext 里面不应该改变迭代器内部状态,hashNext 只判断

next 返回值,并且指向下一个有效元素。

P.S. 面试官很忙,在我写代码的时候。还在跟另一个候选人约时间 ~~~


2017-08-11- 京东广告数据部 - 机器学习 - 内推 2 面 - 电话 一面、二面连着玩 ~~~

1、自我介绍

2、对于机器学习你都学了哪些?讲一个印象深的

说了 SVM 原理,拉格朗日法,对偶问题,以及好处。

3、SVM 怎么防止过拟合

说了 SVM 里面的松弛变量。不知道对不对

4、我主动出击,有另一大类算法决策树,说不管是 LR 还是 SVM 都不能直观的感受到决策依据。而决策树易于理解,能够直观的感受到决策依据。

说了划分依据:信息增益(说了信息熵的来源,等概率时熵最大)、信息增益率、基尼系数。

说了划分方法(基于信息增益的)

说了 C4.5 比较 ID3 的优点。

5、决策树如何防止过拟合

剪枝,前剪枝和后剪枝。说了 REP 剪枝。C4.5 是悲观剪枝

6、项目没问,说从上位面试官了解了。

7、撸代码

求连续子数组最大乘积,还让考虑边界问题(最后问了:连乘有可能导致溢出,存不下了)


2017-08-15- 拼多多 - 算法 - 内推 1 面 - 电话

1、自我介绍

2、介绍项目

3、项目延展题:电商搜索框,每天有 500W 的搜索 query。针对新来的一个 query,给出和它最相似的 100 个 query。

如果用 RNN 分类模型表征,那么向量不应该用最后一层的分类特征。应该用倒数第二层的更纯的特征。

现在假设 500W 的 query 已经是向量了。如何和这一个 query 比较。全部算距离不行,开销太大。

应该怎么办???

4、K-means 聚类个数选择,做什么样的试验来确定 K

5、两个 4G 的文件(每个文件可能有重复),里面全都是数字。现有内存 1G,求这两个文件的交集。

2 个 4G 的文件,分别 hash 成 10 个子文件,一个 400M。

把一个子文件存储到 hash 表中,作为 key。遍历另一个文件,看这个数字是否存在于刚才的 hash 表中。存在即可输出。


2017-08-23- 美丽联合 - 算法 - 内推 1 面 - 电话

1、自我介绍

2、介绍项目

3、说了 SVM

4、为什么要把原问题转换为对偶问题?

因为原问题是凸二次规划问题,转换为对偶问题更加高效。

5、为什么求解对偶问题更加高效?

我答了,因为只用求解 alpha 系数,而 alpha 系数只有支持向量才非 0,其他全部为 0.

6、alpha 系数有多少个?

我答了:样本点的个数

7、避免过拟合的方法

答了:决策树剪枝、L2 正则和 L1 正则

8、为什么 L1 正则可以实现参数稀疏,而 L2 正则不可以?

答了:L1 正则因为是绝对值形式,很多系数被压缩为 0,。而 L2 正则是很多系数被压迫到接近于 0,而不是 0

9、为什么 L1 很多系数可以被压缩为 0,L2 是被压缩至接近于 0?

答了:图像上,L1 正则是正方形,L2 正则是圆形。

L1 正则的往往取到正方形顶点,即有很多参数为 0

L2 正则往往去不到圆形和参数线的交点,即很多分量被压缩到接近于 0

哪位大佬知道哪里有 L1、L2 的实现代码???,求告知 ~~~~~~~

10、问平时用啥语言比较多?

说了之前用 java、scala 多。现在用 python 较多。

11、问 jvm 啥啥啥(没听清)。。。

答:不会

12、python…直接问你个开发中的实际问题吧,如果写的程序跑的非常慢,多方面分析这个问题?

答了: 1、检查程序是否有多层嵌套循环,优化

2、检查程序是否有很耗时的操作,看能否优化为多线程并行执行

3、检查数据量是否非常大,考虑是否可以用分布式计算模型。

求大佬补充 ~~~~~~~~~~

13、SQL 中 inner join 和 outer join 的区别?

14、试图给他说说 SPARK,结果被严词拒绝(开玩笑的)。。。说时间紧迫,还是他来问吧。。。

15、Kmeans 中,现在给你 n 个样本点不在欧式空间中,无法度量距离。现在给了一个函数 F,可以衡量任意两个样本点的相似度。请问 Kmeans 如何操作?

答:想了一会,比如 K=4 的聚类。

1、首先,随机去 4 个点,作为初始类簇中心。

2、计算所有样本点与这 4 个点的 F 相似度。根据相似程度,把所有样本点分到 4 个类中。

3、在这 4 个类中,计算每一个样本点 i 到该类其他样本点的相似度和 Si。取 Si 最大的那个点作为这个类的中心。

4、重复 2、3 步骤,直到类中心不再变化或者循环次数达到目标。


2017-08-27- 链家 - 算法 - 内推 1 面 - 现场

来了之后先做 1 个小时的题,5 道算法题

因为比较长,所以采用 A:面试官 B:本人

B 自我介绍

A 你自己学机器学习,怎么学的?

B 自己看书,周志华的西瓜书、机器学习实战。先找着撸代码,然后去深究里面的理论。

A 西瓜书看到什么程度?

B 刚开始看,看不太懂,然后就以机器学习实战为主,先照着撸代码,然后去西瓜书里深究里面的理论。

B 我给您说说 SVM 吧,自学的时候留下很深的印象(试图抓住主动权 ~)

SVM 是基于。。。说着手动起来写 SVM 的损失函数

A (打断)为什么样本点到决策面是 1/||w||

B 手推向量点到决策面的表达式(麻蛋,竟然一时紧张忘了。。。没推出来)

A 点到直线距离公式记得吧?

B 嗯嗯,又没写出来。只能说之前推过,现在一紧张忘了。。。

A 这个也无关紧要,继续

B 继续说 SVM

A (打断)知道 LR 吧,知道 LR 和 SVM 有什么不同吗?

B 知道,首先这两个算法的分类思想不同,LR 是基于概率推导的,SVM 是基于最大化几何间隔的

A (打断)写一下,LR 的损失函数

B 手写出来。其实这个 sigmoid 函数由那个什么族分布(真的忘了名字,其实是:指数族分布),加上二项分布导出来的。损失函数是由最大似然估计求出的。

A 怎么由最大似然估计导出的?推导一下

B 最大似然估计就是求让已知事件发生的概率最大的参数。

假设有 5 个样本,每一个的类别是 yi,由 LR 计算出的概率是 h(x)。那么每一个样本预测正确的概率为:

(H(x)yi)*((1-h(x))(1-yi)) —-

(刚开始一紧张,把 h(x) 和 yi 写反了)面试官说是这样吗?你这样全为 0,我感觉你在背公式。。。你再看看

我一看,卧槽这竟然写错了。赶紧改过来,然后表明是自己紧张了。

概率连乘后,然后取对数就是 LR 的损失函数了。

A 为什么损失函数有个负号?

B 这是因为要应用梯度下降法,引入的。不加负号也可以,梯度上升法。这都是一样的。

A OK,继续,LR 和 SVM 有什么区别?

B SVM 决策面只由少量的支持向量决定,而 LR 的话是所有样本都会参与决策面的更新。

A 对,所以说 SVM 怎么样?

B SVM 对于异常点不敏感,而 LR 敏感。SVM 更加健壮,决策面不受非支持向量影响。

A OK

A 知道过拟合吧?

B 知道,在训练集表现好,在测试集表现一塌糊涂。举个例子就是:学生平时考试成绩非常棒,但一到实际应用就很烂。

A 说说常见的过拟合的解决办法

B 数据,样本不够,如果现在的训练集只是所有样本空间的一个小小的部分,那么这个模型的泛化能力就非常差(边画图,边说)

A 嗯嗯,还有呢

B 可以加正则项,L1,L2 正则。L1 还可以用来选择特征

A 为什么 L1 可以用来选择特征

B 因为 L1 的话会把某些不重要的特征压缩为 0

A 为什么 L1 可以把某些特征压缩为 0

B 因为(画图)L1 约束是正方形的,经验损失最有可能和 L1 的正方形的顶点相交,L1 比较有棱角。所以可以把某些特征压缩为 0

A 还有什么过拟合的解决方法

B 神经网络中,dropout 方法。就是每层网络的训练,随机的让一半神经元不工作。达到防止过拟合的目的

A 还有吗?

B 决策树中可以用剪枝操作。

B 决策树过拟合,可以用随机森林。。。

A 什么???现在一个决策树已经过拟合了,还要再以它为基准训练随机森林?

B 。。。对,你说的对。我想错了。。。

B 我就知道这些方法了。。。

A OK,挑一个项目给我说说吧

B 说项目(不记得中间有没有再提问了。。。)

B 要不我给您说说 spark 框架吧,之前还用的挺多。

A 嗯(看简历和笔试题中。。。)

B 开始说。。。说到三分之一

A 好了! 你不必说了。(大手一挥 ~)我看你 5 道笔试题都没写思路,现在把第二题代码写出来

注: 第二题就是检测括号是否匹配

B 我写了啊。。。(给他翻到其中一个的背面)

A 哦,(迅速扫过代码,),为什要把字符压栈呢?不压栈也可以的。

B 是吗?{abc()} 这样的也是合法的吗?

A 当然啊(看了一眼题。)

B 好吧,我本来也准备看到字符就丢到,不入栈。但担心这种情况不合法,就给入栈了。

A 嗯,第三题呢?

B 没思路,没写

A 给我说说第四题

第四题:10 分钟内,恶意 IP 访问检测(10 分钟内访问次数超过 1024 即为恶意访问)

B 这是 10 分钟动态检测的,需要时间刻度精确到秒吗?

A 不需要

B 把 10 分钟内的存入 hashmap, 再把 key,value 互换存入 treemap。因为 treemap 是基于 key 有序的,升序。然后直接拿出来最后一个和 1024 比较。

A 怎么实现动态的检测,当前检测 0-10 分钟,那么第 11 分钟怎么办?

B 把 0-10 分钟的摘出来,从 10 分钟内的 hashmap 中减去,再把 10-11 分钟内的加上。

我知道这样实现起来,效率应该不高,但这一会我只想到了这个。。。

A 嗯,其实可以这样,把每分钟的分开存储,动态的向后移动,取这 10 个的总的数据就行。

甚至可以每分钟只存储 TOP200 的,然后 10 个分钟的汇总,取 TOP1

B 嗯,明白了。

A 说说循环依赖这个怎么解决的?

第五题:系统有很多相互依赖的包,怎么检测循环依赖

B 把它当做一个链表。记录当前的名字在 hashset 中。如果某一次遍历的依赖名字存在于这个 hashet 中。就认为有循环依赖。

A 学过数据结构吧?学过图吧?给你一个有向图,怎么检测有环?

B 维护一个访问的数组,记录哪些点被访问过,从一点开始遍历,如果遍历的点被访问过,就说明有环

A 从哪个店开始遍历?

B 从入度为 0 的点开始遍历

A 如果有多个入度为 0 的点呢?

B 嗯。。。都要以它为入口开始遍历。

A show me the code!!!

(我内心是崩溃的。。。)

B 纠结了一会,又给他说了一遍思路。

A 嗯,好吧,我没有什么想问的了。你呢?

B 请问您说的这个图的这个应该怎么。。。算了,我还是下去自己看吧。。。我还是想知道怎么解决。。。

A 你说的对啊,就把思路给我讲了一下,和我的差不多。

B 贵公司这里机器学习、深度学习有什么应用场景呢?

A 房屋估价啊什么的。

B 好的,谢谢。再次感谢,离开。


更多高质资源 尽在AIQ 机器学习大数据 知乎专栏 点击关注

转载请注明 AIQ - 最专业的机器学习大数据社区  http://www.6aiq.com