本文目录
写在前面
面经总结:
- 项目相关提问
- 机器学习基础相关提问
- 排序,操作系统,数据结构,计网
- 编程语言,大数据相关
- 手撕
- 场景题,开放题
写在前面
本人秋招期间,看了许多牛客上的面经,收益匪浅。如今本人秋招已经接近尾声了,在此写一下秋招总结,回馈牛客。
首先说一下本人背景:算法岗,科班,本硕都是某 985。有一段两个半月的大厂非核心部门实习经历,一篇冷门方向的 SCI 一区期刊论文,一个小比赛的 TOP5。(实习比赛论文都有,但每样都一般般,所以秋招也是十分艰难)
秋招结果:投递了大大小小 30 多家公司,目前是拿到一份意向书。
意向书:字节(经历了一次笔试挂,一次三面挂,再被捞三面后上岸的)泡池子:京东物流,华为,360,OPPO(其中 360 和 OPPO 已经开过部分奖了,我应该排序比较靠后或者挂了)终面挂或者排序挂:网易互联网,百度提前批,拼多多拼越计划二面挂:阿里(二面完后很久状态都没改变),百度正式批,腾讯 PCG一面挂:美团,快手进行中:腾讯音乐,网易互娱
还有一些投了之后没消息或者笔试完后没消息,这里就不列出来了。
面经总结
1. 项目相关提问
项目相关提问我只列举一下可能对大家有借鉴意义的问题。
1. 有没有观察单个特征和标签之间的联系2. 每次加入一个特征,如果效果没有提升则不使用该特征。那怎么处理特征组合的问题。(组合后可能变好或者差)3. ID embedding 怎么做4. 项目中 Embedding 学习到的是什么,特征交叉的作用是什么5. 为什么使用 DeepFM 来进行特征交叉6. DeepFM 和 Deep&Wide 区别,写一下 FM 公式,DeepFM 优点7. DeepFM 只是简单的交叉,其他复杂点的对特征进行交叉的网络了解吗8. 你说你发现了训练集和测试集分布不一致的问题。你是怎么发现这个问题的,怎么诊断定位,除了可视化还有没有其他直观的指标
1. 对于一个算法课题,你觉得最重要的几个环节有哪些。2. 项目遇到了什么困难,如何解决?3. 项目取得了啥效果,项目的核心提升是哪些操作
4. 项目中使用了哪些特征?如果要继续改进的话,还可以使用哪些特征?5. 有没有使用其他更好的算法来解决问题6. 你觉得你实习做的项目还有哪些地方可以做优化7. 项目遇到瓶颈,反映在业务上是怎么样的,你要怎么去解决这个问题8. 有没有调研过业界的做法
1. 你的比赛任务,四分类,评估指标用 auc 合理吗
2. 比赛的 LSTM 和 CNN 是怎么用的,为什么可以用。讲一下 RNN 和 CNN 的区别,为啥在你这个比赛中 LSTM 比 CNN 效果好
2. 机器学习基础相关提问
特征相关
1. 讲一下特征工程2. 类别特征编码方式有哪些?如何解决 target encoding 的 target leakage?count encoding 有个缺点:测试集和训练集分布不同,导致特征频率不一样。怎么解决?3. 如何进行特征选择4. 项目中如何做交叉特征,为什么这样交叉,基于业务意义?5. 为什么需要计算特征重要性,计算特征重要性的方法有哪些6. 连续特征怎么分箱,如何判断分箱的结果是好是坏7. 特征平滑方法有哪些8. 怎么处理长尾问题,从样本,模型的角度来看,从优化器的角度来看9. 什么样的 ID 经过 Embedding 后可能有效,如何筛选有效的 ID。有些 ID 数量级很大,怎么处理
神经网络相关
1. 神经网络如何跳出局部最优2. 神经网络如何缓解过拟合,讲一下 dropout,dropout 训练和预测的时候有什么不同,dropout 操作类似于机器学习中的什么操作3. batch normalization 和 layer normalization 区别,写一下 bn 公式4. 优化器了解哪些,adam 相对 sgd 的改进5. 激活函数的作用,各个激活函数的优缺点6. tf 处理特征的类有没有了解(tf.feature_column)7. 讲一下 word2vec,有哪两种形式,词的数量比较多,分类时怎么优化,word2vec 怎么做负采样8. item2vec 有没有了解
9. 多分类如果有 10000 类别,怎么优化10. graph embedding 了解吗,神经网络做 graph embedding 了解吗11. 讲一下图神经网络12. tf embedding_lookup 原理13. 文本分类有了解吗,说一下 textcnn
14. 如何缓解 RNN 的梯度消失15. 讲一下 LSTM。LSTM 为啥能缓解梯度爆炸和梯度消失?LSTM 激活函数可以使用 relu 吗16. 排序算法了解吗?说了快排,归并,冒泡等(后面发现好像问的是 ctr 中的排序算法)17. 了解哪些推荐算法,nlp 的预训练模型了解吗,attention, transformer,bert 了解吗18. CNN 和 RNN 在实际使用中有哪些优缺点?NLP 中,什么情况下使用 CNN,什么情况下使用 RNN?19. 神经网络权重全 0 初始化会有什么问题?应该怎样初始化?讲讲 Xavier 初始化
树模型相关
1. 树模型怎么处理连续特征2. 随机森林的随机性体现在哪里?boosting 和 bagging 区别。随机森林是不是树越多越好。随机森林采样是有放回采样还是无放回采样3. c4.5 用来解决 ID3 什么问题,gbdt 和 rf 分别是集成的什么思想,解决什么误差4. GBDT 怎么生成一个新的树,怎么确定叶子节点的权重5. 随机森林和 xgboost 那个树的深度更深6. XGBoost 和 GBDT 的不同,为啥 XGBoost 选择决策树作为基分类器?7. XGBoost 和 GBDT 分裂叶子节点的不同之处,写一下 XGBoost 计算节点分裂收益的公式8. XGBoost 如果损失函数没有二阶导,该怎么办9. GBDT 和 XGBoost 用什么基分类器,如何分裂叶子节点,处理分类问题和回归问题有啥不同10. Lightgbm 相比于 XGBoost 的改进,LightGBM 为什么比 GBDT 快。LightGBM 怎么做并行11. 看过 XGBoost, Lightgbm 等的源码没?(没有。。)12. 讲一下 bagging,boosting,stacking13. stacking 和 nn 的区别?(nn 也可以搭积木,拼接)
其他
1. 哪些算法需要对特征先进行归一化,这类算法有什么特点,不进行归一化的缺点是?2. 如何解决过拟合,讲一下 L1 和 L2,L1 为啥能得到稀疏解3. 如何处理样本不平衡4. 分类和回归任务有哪些评估指标5. 写 huber loss 公式6. auc 是啥,怎么解释。如果线下 auc 好,线上 auc 变差,有什么可能的原因7. auc 针对的是单个值的排序,那么怎么对 list 进行排序(ndcg ?)8. 多分类 auc 怎么算9. 交叉熵公式
10. LR 的损失函数是啥,怎么来的,手推 LR11. LR 如何优化目标函数12. SVM 和 LR 区别13. 为什么 LR 使用交叉熵而不是 MSE
14. 讲一下先验,后验,最大似然估计,最大后验估计15. 抛一次硬币,正面为上,是啥分布。抛 n 次硬币,正面为上的数目是啥分布16. 广义线性回归了解么
3. 排序,操作系统,数据结构,计网
这方面问得比较少
1. 快排时间复杂度2. 排序算法了解哪些,讲一下快排和堆排,堆排适用于哪些场景3. 讲一下哈希表,哈希表用什么数据结构实现,怎么解决哈希冲突,哈希表数组空间大小怎么确定4. 线程,进程是啥,进程间通信方式,如何保证线程安全5. 多进程和多线程区别,各自的适用场景,线程安全怎么解决,有哪些锁,乐观锁悲观锁了解吗,自旋锁适用于什么场景6. TCP 协议了解吗
4. 编程语言,大数据相关
Hive 相关
1. 了解 Spark,Hadoop,Hive,Scala 吗?(我基本不会,实习时写过一些简单的 Hive SQL)2. Hive SQL 大表 join 小表,可以怎么优化3. Hive sql union 和 union all 区别,行转列和列转行了解吗4. Hive 读取 json 某个 key 对应的值5. Hive 数据倾斜怎么处理
Python 相关
1. 说一下 Python 中的 lambda2. Python copy 和 deepcopy 区别, if a 和 if a is not None 区别3. Python is 和 == 区别,两者分别在比较什么?Python 没有 switch... case.. ,如何优雅地实现4. Python 有哪些对象类型,哪些是可变对象,哪些是不可变对象5. Python 中,li = [0,1,2] ,那么 li[3] 和 li[:3] 分别返回什么6. Python 写过多线程吗
7. 字典有 key, value,按照 value 进行排序
5. 手撕
链表相关
1. 链表翻转
2. 合并两个有序链表
3. 判断链表是否有环,返回环的入口
树相关
1. 无序数组转二叉搜索树
2. 两个树节点的最近公共祖先3. 二叉树先序遍历展开成链表 in-place4. 无序数组转平衡二叉搜索树(不能先对数组进行排序)
5. 给你两颗二叉树 a,b(只有数的结构而没有 value),判断a 是否 b 的子树(只需要 b 的某个子树结构跟 a 一样就行),能否继续优化?
DFS,BFS
1. 打印字符串所有子序列2. 字符串全排列(字符串可能有重复元素)
3. 迷宫问题,迷宫里有多个人处于不同位置,每个人逃出迷宫有最短路径值,求这些最短路径值的最大值
4. 划分为 k 个相等的子集:给定一个整数数组 nums 和一个正整数 k,找出是否有可能把这个数组分成 k 个非空子集,其总和都相等
排序,大小
1. 子数组最大和2. 子矩阵和的最大值3. 两个有序数组的中位数
4. 求数组的第 k 大数,时间复杂度是多少?
5. 读取文本,统计,然后排序(有多个排序因素)6. 一个数组只包含0,1,2三个数,对这个数组进行排序
7. 最大数组合:给定一个非负整数数组,求一个拼接出来的最大数。比如 [2, 32] => 322
DP
1. 股票最大利润(只能交易一次)2. 走楼梯方法数,一次可以走一个台阶或者两个台阶,总共有 n 个台阶3. 01数组,长度为 n,1代表可达,0 代表不可到达,一次可以跳 3 到 5 步。求跨越该数组的最小步数(起点可以看成 index 为 -1,终点可以看成 index 为 n)
其他
1. 顺时针打印二维矩阵2. 升序数组,求不同绝对值个数
3. 二维平面判断一个点是否在三角形以内
4. 给定数组,计算有多少个子数组和为 target
5. 怎么编程求几何平均值,需要考虑什么情况,怎么解决6. 提供东西视图和南北视图,求城市体积最大值,最小值,leetcode 807 变种
7. 正整数数组满足 2 * a[i] < a[i+1],给定数字 K,数组中是否存在两个数 x + y = K8. 协同过滤中,需要计算用户相似度矩阵。给定用户 ID,每个用户的听歌列表(music id 列表)。计算用户相似度矩阵9. 给一个数据表,有两个字段(user, login_time),用 SQL 求连续两天登录的用户占比
6. 场景题,开放题
1. 在搜索框输入文字的时候,会出现搜索提示,比如输入‘腾讯’可能会提示 ‘腾讯视频’。你觉得搜索提示是用什么数据结构来实现的2. 学校门口的十字路口车流量预测,怎么建模?(已有历史车流量数据)3. 年龄预测(范围 10 到 50),目标是最大化准确率,怎么设计损失函数?如果要求预测结果在正负 3 以内就行,怎么设计损失函数,如何优化?4. 有个商品库,商品库记录的车的型号,最低价格,最高价格(没有精准价格)。当前用户在浏览某个商品,要求推荐同个档次的商品,如何建模?假如商品库很大,要推荐相似度最大的 3 个商品,如何解决?5. 定义兄弟字符串如下:若两个字符串存在一样的字符,每个字符次数都一样,但是顺序有可能不同。比如 abbc 和 acbb 是兄弟字符串,abbc 和 acb 不是。现有一个很大的日志文件,每一行是一个单词。问题:给定一个单词,查询日志文件中该单词兄弟字符串有多少个。有多次查询操作。
6. 怎么给 50 w 高考考生成绩排序,要求时间空间复杂度尽可能低7. 一副扑克牌,取出一张,剩下的 53 张给你看,如何判断抽出的是哪一张(要求时间,空间复杂度最优)8. 一个超级大文件,每一行有一个 ip 地址,内存有限,如何找出其中重复次数最多的 ip 地址9. 有一款新游戏,怎么识别出土豪(可能在新游里充大量钱的用户)10. 提供一个包含所有英文单词的字典,为手机的T9输入法设计一个索引,例如输入4能够提示出g、h、i开头的英文单词(greate、hello、……),输入43能够提示出ge、he、id、if (hello……) 等词开通的英文单词,
全部评论
(14) 回帖