4.9 中国移动研究院(北京) 研发岗 一面
部门介绍:对用户的行为数据(主要是文本数据)进行处理,做一些推荐的工作。与通信等相关性不大。
1.spark了解多少。(讲到GMM有被打断,需要精简spark这边的内容)
用spark处理过多大规模的数据。
2.介绍一下关于因子分解机的项目,系统有没有上线。
(因为提到自己主要做的是数据处理和评估工作)具体评估结果如何。
协同过滤和因子分解机的效果和区别、优缺点,协同过滤用的是基于用户还是基于物品。
3.内存是如何优化了21%的。(有跟面试官讨论从C语言侧进行优化效果更好)
4.对Python有多熟,Python常用数据类型。
5.想做研发还是算法。
6.对未来工作单位有什么期许,是更向往互联网还是国企。(有提到自己一直是在研究院实习)
自我介绍的时候有提到不会java,对方说没关系,因为看到自己是转专业。
竟然没有问图像处理的项目,看来是部门不做这方面业务。
4.17 中国移动研究院 研发岗 二面领导面
4.23 京东搜索排序部 算法实习生 一面
对机器学习了解多少,熟悉的机器学习算法。常见的优化方法,(面试官介绍了下机器学习就是去找最优解),(答梯度下降法和牛顿迭代法),问什么情况下会出现梯度消失。
spark的熟悉程度。
对深度学习了解多少(答知道反向传播)。
挑一个熟悉的项目聊,挑了推荐系统的项目。手写因子分解机的公式,会不会接下来的推导(没答上来)。因子分解机和协同过滤相比的优缺点。
实习涉及到XGBoost,问XGBoost对于连续特征如何选择分裂点。(答用信息熵分裂,没有答到点上;面试官引导往二分法方向上去想,其实就是用一定方法去定位几个特殊点/桩)。
全程无打断,很好的面试官,可惜最后编程跪了。
11.16 字节Data广告部门 算法工程师 一面
说是偏业务==需要根据广告商需要根据工程输出实际情况写代码= =
凉了...上来一道买卖股票(只能一次买入卖出),兴冲冲拿动态规划写了,结果没注意有初始钱(没注意到买很多股)。
面试官提醒返回的是利润,我说记录下来个循环做个比较,他说对你拿最简单的循环写吧,时间复杂度应该是n方(我知道但是我写的很慢...)
后来拿递归写的他也不太满意。怪自己平时只关注思路了= =
总的来说他要的就是一个bug-free的状态。
接下来说项目,介绍前司干啥的(果然互联网和IT设备绝缘...)和我做的这个项目参与了啥。
说我参与度底,拼命解释;可以看出部门是很重视代码实现能力。
说模型优化的时候他问feature数量,说了下自己遇到模型优化的见解和普遍做法:接下来更多的是深入算法内部进行优化,但是从工程上算法内部优化带来的影响可以忽略不计。拼命解释+1,说不止考虑了样本量问题,确实往算法内部去优化了,并且这个补差最终就是达到了1% 2%这样的差距,呼应了他说小差距可以不用管的说辞...这么看更多时候就是样本量决定效果上限,从他看来这个优化没有意义。
他一直想听我算法层面的理解和比较,说智慧交通这个也是XGBoost相关,那说下LightGBM XGBoost Random Forest GBDT的优缺点吧,大概说了下。
提到GBDT串行XGBoost并行,问XGBoost并行是特征层面上并行还是树层面上并行——这个问题太基础了,我觉得答错可能会被直接终止面试...好在想起来了,是特征粒度上的并行,树还是只能一棵棵迭代的。
问了LightGBM相对XGBoost的优点——个人理解和hist差不多,就这么答的;过拟合可以设置max_depth之类的。
说接下来问工程层面的问题:
Spark编程懂哪些;说用Python,Sparksql,graph之类...项目实现过聚类kmeans,平时作业就用小文件。面试官问如果有个表,你怎么从列、从行做操作;答首先选择是对rdd还是dataframe进行操作,一般列操作是dataframe(面试官:嗯对),然后select和orderby,行没答上来,说不常用,也许可以用graph?面试官说从rdd层面去想。
问你们用Spark很多吗,他说是,因为这个生态比较成熟,像Dask那种库现在都不用了。
问我有啥问题,我说你们是工程实现为主是吗,他们说是,广告商如果投放了广告效果不好,我们告诉他怎么投放,比较偏业务。(程序员说的偏业务我有误解呜呜呜)
问深度学习用的多吗,他说一般都是LR和Deep合作这样(我知道啊呜呜呜)。
感觉总体状态就是“我知道!”但是表达不出来...