⾯经-推荐算法
1、⾃我介绍
⼀、机器学习基础题
1、LSTM的公式
随机梯度下降:来⼀个样本,更新梯度 ; 全量梯度下降; miniBatch
2、RNN为什么出现梯度消失及BPTT的推导
卷积:局部相关性;
RNN 梯度消失 每⼀步只受前⼀步的影响;梯度爆炸 ==》LSTM好多门;
3、DQN的基本原理么
4、GBDT和随机森林有什么区别
5、GBDT的原理,如何做分类和回归
6、随机森林的随机体现在哪⽅⾯
7、Wide &Deep的原理
8、GBDT+LR是怎么做的?
9、DQN模型为什么要做经验回放
10、数据之间如果不是独⽴同分布的会怎样
11、AUC的原理介绍⼀下
12、XGBOOst和GBDT的区别。
13、强化学习和监督学习的区别
14、神经⽹络⾥⾯的损失函数有哪些
15、机器学习中常见的激活函数有哪些?为什么通常需要零均值?
16、DeepFM介绍
go和java后端开发劣势
17、FM推导
18、boosting和bagging的区别?
19、bagging为什么能减⼩⽅差?
20、交叉熵损失函数,0-1分类的交叉熵损失函数的形式。什么是凸函数?0-1分类如果⽤平⽅损失为什么⽤交叉熵⽽不是平⽅损失?
21、L1和L2有什么区别,从数学⾓度解释L2为什么能提升模型的泛化能⼒。
22、深度学习中,L2和dropout有哪些区别?
23、L1正则化有哪些好处
24、如果有⼀万个地理坐标,转换成1-10000的数,可以⽤决策树么?
25、CART分类树和ID3以及C4.5有什么区别?
26、树集成模型有哪⼏种实现⽅式:Bagging和Boosting,回答过程中⼜问到了很多细节。随即森林的随机体现在哪些⽅⾯,AdaBoost是如何
改变样本权重,GBDT分类树拟合的是什么?
27、Dueling DQN和DQN有什么区别
28、early stop对参数有什么影响?
⼆、数据结构算法题
1、K个有序数组,⼀个长度最⼩的区间,在这个区间⾥⾄少包含每个数组各⼀个数
2、n个[0,n)的数,求每个数的出现次数(不能开辟额外空间)
3、数组的全排列(空间复杂度O(1))
4、⼀堆钞票,尽可能均分(利⽤背包问题的思想)
5、⽆向⽆环图中,最短路径的最⼤值(Floyd算法)
6、层次遍历⼆叉树
7、字符串的最长公共⼦序列(动态规划)
8、树的前序遍历和zigzag遍历(⾮递归)
9、⼀个数组,所有数组都出现了两次,只有⼀个数出现了⼀次,返回这个数(位运算)
10、⼀个数组,⼀个数出现了超过⼀半次数,返回这个数
11、将除法的结果⽤字符串返回,如果能够除尽,则返回相除的结果,如果不能除尽,则⽆限循环部分⽤[]标记。
12、数组排序,假设数组排序后的位次和排序前的位次绝对值差值⼩于K,有什么⽐快排好的算法?
13、树中两个节点的第⼀个的公共祖先。
14、判断是否是回⽂链表
15、判断两个链表中是否有相同节点
三、实践题
1、如果你想往模型中加⼊⼀个特征,如何判定这个特征是否有效?
2、LR和FM的区别?FM需要进⾏交叉特征的选择么?如果在LR选了⼀部分特征做交叉之后,取得了⽐FM更好的效果,这是为什么?如果FM变成DeepFM之后,效果超过了LR,这⼜是为什么?
3、如果逻辑回归的所有样本的都是正样本, 那么它学出来的超平⾯是怎样的?
4、哪些场景下的分类问题不适⽤于交叉熵损失函数?
5、推荐系统中你认为最重要的环节是什么?
6、多臂⽼虎机中,有许多⽅法,⽐如e-greedy,timponson采样,UCB,这些⽅法都有哪些适⽤场景?
7、如何预测⼀家店分品类的销量
8、信息流采样,有n份数据,但是n的长度并不知道,设计⼀个采样算法,使得每份被选择的概率是相同的。
9、模型在线下评估和线上使⽤时,往往出现线上实际效果不如线下效果的情况,请分析可能的原因。
10、在CTR预估问题中,假设训练数据的正负样本数为1:4,测试数据中的正负样本数也为1:4,那么此时模型对测试集,学到的平均点击率为
1/(1+4),假设此时采取了⽋采样策略,使正负样本数为1:1,对同样的测试集进⾏预测,平均点击率应该是多少?(样本量很⼤,初始总样本数为10亿)
2、协同过滤
思想 优缺点 LFM 降维&回归
3、SVD & MF
SVD⽤户隐式反馈;
BiasSVD细粒度建模 增加偏置项捕获细粒度影响;
MF
4、简历中项⽬细节思想
DKN word2vec; CBOW Skip-gram 使⽤场景;
优化技术: Negative Sampling; Hierarchical Softmax;多分类->⼆分⼆⾥;哈夫曼树将⾼频词距离根节点近;
5、MF&深度学习结合
6、常见机器学习算法 LR;
7、常⽤的排序算法;
O(n^2):冒泡,选择、插⼊
O(nlogn):快速排序、堆排序、归并排序
8、快速排序的过程以及最好和最坏情况
分⽽治之
9、JVM
10、协程
11、进程&线程区别
进程可以由多个线程组成,另外线程间可以进⾏资源的共享,进程间不⾏。cpu调⽤的是线程。
12、TopK问题; 数组、关键字 下标返回;
13、常⽤的数据结构:hashmap以及如何解决冲突,红⿊树以及平衡搜索树;
14、说⼀下推荐系统常⽤的召回策略...
15、介绍⼀下深度学习常⽤来缓解过拟合的⼿段(⾄少5个)...
16、推导逻辑回归的损失函数以及推导梯度更新公式...
17、利⽤队列来实现栈的功能...
2与2
18、⽐较e e的⼤⼩...
19、机器学习不只是离线训练模型 还要有部署能⼒ ⽐如说说要熟悉 配置环境 Docker Microservice Kubernetes
Cloud Servies(AWS, Azure, etc.) 但是这些经验新⼿⽐较难有。
20、算法⼯程师真正在公司⼯作,很多时间可能是花在普通的软件开发上,尤其⼤数据与后端的开发能⼒,这些要求掌
握的语⾔⼀般有Java,go(专门有协程),Scala等等,会写接⼝,也要求对各种关系型或⾮关系型数据库进⾏操作,另外还有分布式计算,建议⾄少掌握hive,spark(尤其⾥⾯的mllib)的常见⽤法,有余⼒还有flink。以上这些东西没有算法理论那么难理解,但是得花很多时间去实践,才能较好地掌握。
21、要求算法⼯程师不仅对于机器学习算法需要了如指掌,我们更需要将算法部署到真实环境中,因此不是简单的⽤
python训练个模型就好了,还需要将之部署到服务器上,我们更加注重计算机基础相关的东西,同学你还得加强基础训练啊。希望⼤家在学好理论的同时,能够把编程基础打好,养成好的习惯,⽐如每天刷⼀道算法题,每天看⼀下相关的知识点等。
22、项⽬经历、实习经历、机器学习理论以及⼿撕算法;偏业务的东西或者⼯业界独有的东西;
———————————————————————
1、说说矩阵分解
2、围绕LLE来问:LLE全称是什么;简述LLE和PCA的特点和区别;LLE⾥⾯涉及的图拉普拉斯有没有了解(应该问的是LE:Laplace Eigenmaps)(⼀定要了解相近的⼀类对⽐算法)
3、整体代码的实现(⼀定要有条理地说清楚啊);deepwalk是⼿写还是⼯具包,有没有⽤numpy;图嵌⼊的训练集是什么,矩阵分解的训练集是什么
4、简述word2vec;说说滑动窗⼝⼤⼩以及负采样个数的参数设置以及设置的⽐例;怎么衡量学到的embedding的好坏
5、是否了解图卷积
6、说说推荐系统算法⼤概可以分为哪些种类:(1)基于内容;(2)基于协同过滤:基于内存(UB IB);基于模型(MF)——————————————————
1、推导LR
2、图结构是怎么存储的?利⽤你所做的这个图结构实现深度/⼴度优先遍历,格式是:
def find_path(graph, root, destination)
深度优先遍历⽤栈结构实现;⼴度优先遍历⽤队列结构实现
3、聊到了宏观会问到的业务上的问题:
如果图表只存储了学校这⽚区域的中⼼点,但是我们下单的宿舍地址不在中⼼点附近,怎么去确定这个具体位置?说:可以遍历⾛过该地址的外卖员的轨迹,⼤量相交的交点⼤概率是具体位置;
还问,如果要给外卖员分配订单,怎么去分配?从外卖员到下单地址的距离远近,下单的紧急程度,外卖员正在派送的位置与下⼀个要派送的位置是否顺路(不可以时东时西)
——————————————————
1、详细描述⼯作,画出来整体框架
2、⼯作最⼤创新点,在代码实现⽅⾯遇到的难点
3、看你对⽐的都是传统的或者是基于图的推荐算法,有没有尝试过对⽐⼀下或者有没有了解其他不同数据源的深度学习算法?
4、说到上⾯提到了attention机制,问了怎么看待attention机制,为什么有这么多⼯作去使⽤它
5、除了优化模型,还可以从什么⽅⾯去取得更好的性能:说了特征⼯程的处理,GBDT得到feature importance取topk贡献较⼤的特征作为模型输⼊
6、上⾯说到的特征处理,提到了会筛选出来特别的节⽇来单独处理,问:为什么要把平常⽇、周末、节假⽇分开处理
7、怎么去规划⼯作⼏年中的⼩⽬标
1、推导SVM公式,挨个步骤说清楚,我说错了y的取值范围,应该是{ 1,-1};没说清楚函数间隔和⼏何间隔的物理含义
2、问了满⼆叉树和完全⼆叉树,⼤概画了⼀下;问了红⿊树,说没学过,没有接着问了
3、问了随机森林有了解吗?知道⾥⾯的有放回的采样⽅法吗?后⾯问了个数学问题:
给定n个⼩球,有放回地采样。当n趋向于⽆穷的时候,某⼩球不被取到的概率是多少?
Auc怎么计算,auc的含义
roc曲线怎么画(本来意思让我写代码,我说我跟你说说思想吧...),复杂度分析
xgboost原理,推导,调参,(由于kaggle项⽬⾥⽤到过)
基于商品的协同过滤,公式实现,类似于TF-IDF的思想从⽽惩罚热门商品
深度学习的东西,防⽌过拟合
分类算法知道哪些
GBDT的推导,原理。实际项⽬有⽤过吗?没有。。。
GBDT第⼆棵树的输⼊是什么?梯度是⼏阶的?⼀阶的,xgboost?是⼆阶的,两者之间的对⽐等聊了蛮多
GBDT构造单棵决策树的过程?
分类模型的评价指标有哪些?。。。准确率,召回率,auc,roc。auc的含义是什么,横纵轴代表什么?
xgboost⽤过吗?它有很⼤改进,有哪些改进?答了特征抽样,是模拟随机森林,防⽌过拟合;⽀持线性分类器;可以⾃定义损失函数,并且可以⽤⼆阶偏导;加⼊了正则化项:叶节点数、每个叶节点输出score的L2-norm在⼀定情况下⽀持并⾏,只有在建树的阶段才会⽤到,每个节点可以并⾏的寻分裂特征。
分类算法防⽌过拟合的⽅法?
深度学习防⽌过拟合?
关于⾃⼰的项⽬或论⽂,⾃⼰掌握的⾮常好(这点必须的吧),并且与⾯试⼯作领域较为切合,与⾯试官互动很好,你来我往;
关于算法,有的答的很好,其他⾄少能⼤概答出来关键点,不⾄于完全不知道,没有硬伤;
3、介绍⾃⼰做过的项⽬以及详细的产出(⾃已谈到⽤户画像 所以针对于⽤户画像有详细展开)
3、觉得在哪个公司成长最⼤,为什么?是做了什么事情吗?
4、介绍⼀个⾃⼰觉得⽐较重要的项⽬以及详细产出
5、开放题:a) 预估⼀下某某地铁站的⼈流量 b) 疫情期间,该如何控制控制⼈流量
6、针对于该职位,有什么想要了解的?
2、介绍⾃⼰做的项⽬(按照背景 分析⽅向 具体产出 难点 收获 这个流程来进⾏说明)
4、由于字节是服务客户的全⽣命周期,问我如果⼀个客户如果被两个部门接触,应该怎么进⾏成本核算(我最开始脑残的答平分,明显感觉答案不对。后来我说按获客成本的⾼低,渠道之前的优先级来
区分)
头条的⾯试特点基本就是⼀个套路:【⾃我介绍】->【项⽬介绍】->【⼿撕算法】->【基础知识】,屡试不爽。
⾃我介绍:我是xxx,来⾃xxx,毕业后在xxx⼏年,期间负责xxx。
项⽬介绍:xxxxx。项⽬的时候⾯试官会问你难点和解决⽅案,同时会给你提出场景,问你更优化的思路。
⼿撕算法:多刷题,也可以看看别⼈⾯过的算法题,可能会重复。
基础知识:针对简历写的东西问,我被问的较多的是⼀些中间价,Redis、MySQL、Kafka、ElasticSearch,Java基本没问,因为头条这边使⽤Go。
MySQL集。假如集出现延迟怎么处理。
Redis的zset实现延时任务
设计题:如何设计tiny url
为什么要四次挥⼿
HTTPS
K Group反转链表。写了栈和迭代两种实现⽅式,链表的题写起来真痛苦,很容易边界出错。
Redis的持久化机制
MySQL的隔离级别
MySQL索引,聚簇索引和⼆级索引
Redis⾼可⽤⽅案
介绍⼀些Kafka的⼀些概念
Kafka如何保证消息有序
第K⼤的数
设计题:秒杀系统

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。