面试现场

面试现场


(1)为判断题目出现频率及题目难度,保留重复记录;
(2)题目无解析;
(3)部分题目记录来源公司、岗位;
(4)只记录算法相关问题;
(5)项目相关问题占比较大,但这类问题具有特殊性,只保留个别有关项目的典型问题;
(6)不区分一、二面;
(7)只记录技术面,不保留HR面;
(8)有些问题已经忘记了,只记录了一小部分,因此以下问题不代表全部。

快手(数据挖掘算法工程师–日常实习)

1、lgb相对于xgb做了哪些改进?
① 直方图加速;
② 单边梯度采样;
③ 互斥特征合并;
④ 并行计算;
⑤ 支持分类特征处理。

2、了解哪些分类算法?
perceptron, lr, knn, nb, svm, rf, adaboost, gbdt, xgb, lgb, catboost.

3、决策树的节点分裂准则是什么?存在什么问题?
信息增益,偏向选择取值较多的特征

4、L1正则化为什么能够使得系数向量(矩阵)稀疏?
参数的可行域与约束域交在坐标轴上

5、(编程)两个栈实现一个队列。

6、(编程)有序数组实现二分查找。

7、尝试过哪些特征交叉、特征组合方法。

8、特征工程的作用?为什么进行特征选择?
① 减少计算量
② 避免过拟合
③ 提升模型能力上限

9、(编程)查找数组中的主要元素(占比超过一半)。

10、O(1)空间复杂度优化9中的方法。

注:两轮技术面试,每次35分钟左右

字节(推荐算法实习生–日常实习)

1、相似性度量(如欧式距离、曼哈顿距离,余弦相似度)之间的区别?

2、(编程)求四次方根。

注:项目、比赛等问了15个问题左右,共计80分钟左右

滴滴(ETA算法与路况策略)

1、stacking模型融合方法。

2、lstm模型。

3、GBDT中,输入N*M的数据(N特征,M数据量),导数的维度是多少?
N*1

4、XGB、lightGBM分别作了哪些改进工作?
XGB:用进行了二阶梯度展开,提升了准确率和收敛速度;为进行并行训练加速,对数据进行预排序。
lgb见上面

5、树模型的Boosting方法中是怎么解决过拟合问题的?
① 限制树的深度
② 叶子节点数
③ 迭代轮次
④ 增加正则化
⑤ 设定节点分裂的最小阈值
⑥ 限制不纯度

6、深度学习中是怎么解决过拟合的。
① 选择合适的batch size
② 进行batch normal
③ 使用随机优化方法
④ 使用dropout策略
⑤ 施加动量momentum

7、XGB的基模型是什么?
cart回归树

8、缺失值填充方法?
① 0填充
② 均值填充
③ 众数填充
④ knn填充
⑤ 回归填充

9、Boosting和Bagging方法那个解决方差,那个解决偏差?
boosting-偏差,bagging-方差

10、(编程)最大子序和。

11、10中方法的时间复杂度。

注:约40分钟

斯伦贝谢(AI Intern)

1、什么是假设检验?

2、假设检验的流程。
① 选择显著性水平α\alpha
② 确定检验统计量
③ 确定样本量
④ 采样
⑤ 计算临界值
⑥ 和临界值做比较
⑦ 决策

3、什么是t检验?

4、假设检验的p值怎么确定?
常用值:0.1,0.05,0.01

5、如何估计某地区pizza店的数量?
回归问题

6、lightGBM是怎么输出概率值的?
将每轮预测得到的权值相加,然后通过sigmoid运算即得概率值

注:两个面试官同时面,需要英语自我介绍,总计30分钟左右

京东(广告)

1、lightGBM有哪些可以调整的参数?
① 最大深度
② 最大叶子节点数
③ 列采样比例
④ L1正则化系数
⑤ L2正则化系数
⑥ 迭代轮次

2、参数比较多时,你有什么好的调参策略,或则有什么标准可以参考?
固定其他参数,每次调整其中的两个

3、lightgbm中怎么避免过拟合?
① 限制深度
② 限制叶子节点数
③ 调整列抽样比例
④ 施加正则化
⑤ 减少迭代轮次

4、深度学习中怎么避免过拟合?(见前面)

5、CNN,RNN,Transformer。

6、(编程)二分查找。

7、(编程)排序算法(最好快排/堆排/归并)。

8、(编程)SQL开窗函数:一张表(table)中有字段"部门(department)"、“员工名(name)”、“员工薪资(salary)”,查找每个部门中薪资最高的员工的薪资、所在部门以及该员工的姓名。

9、(编程)最长回文序列。

注:两轮技术面,每次70分钟左右,编程一般两道middle难度或者一道easy+一道middle。

腾讯(pcg-腾讯新闻-Data Science-应用研究-暑期)

1、第一类错误和第二类错误。

2、p值的含义。
不拒绝原假设的概率。

3、增加样本量减少的是哪类错误的概率?
第二类错误。

4、在A/B test时,怎么处理的自然分布不一致的情况(比如一个自然周期为一周,性别分布,年龄分布,AB测试的周期、人群怎么定)?

5、怎么确定A/B test的用户量?

6、怎么解决用户冷启动问题(新用户没有历史数据特征)?

7、(编程)一枚质地均匀的硬币出现两次正面需要抛掷的次数的期望,编程怎么实现(蒙特卡洛模拟)?

8、手机广告定量投放给1000个用户,怎么找到这1000个用户,需要哪些特征?

9、基于以上1000个用户,又有50张高额优惠券,应该投放给哪些用户,从算法层面上怎么解释?

10、二分类问题中,为什么使用交叉熵损失而不是MSE损失?

11、(编程)对于任意二叉树,怎么计算它的高度?

12、Random Forest 和 Lightgbm有什么区别?

注:三轮技术面试+一轮HR面,每次限制三十分钟之内,问题多偏向统计理论,要求较高(hadoop,spark,hive,scala,git,前、后端知识等),因为时间问题,编程题只问了思路,没让实现,第三轮比较仓促就问了一个问题。

Aibee(机器学习)

1、处理类别不平衡问题的方法。
① under sampling
② over sampling
③ tomek link
④ smote
⑤ class weighting

2、类别加权方法中,怎么分配权值。
1Nclass\frac{1}{N_class}
log(Nclass)\log(N_{class})
rclassδr_{class}^{\delta}

3、当维度m大于数据个数n时,怎么拟合数据的分布,因为参数个数一般也会大于数据点个数,从而导致没办法估计参数。
① 先降维再估计
② 数据过采样
③ smote方法合成新数据

4、对于一个很小的数据集(几十个数据点的样子),在统计检验时效果不太显著,用什么方法处理可以使得结果变得显著?
① 交叉验证
bootstrapbootstrap
jacknifejacknife
smotesmote
⑤ 拟合分布再生成数据等

5、在拟合一个分布之后,怎么检验这个分布拟合的好不好?
① 构造拟和分布的1α1-\alpha置信区间,然后检验真实数据落在这个区间里的概率;
② 依真实数据构造一个验证区间,用拟合的分布生成新数据点,检验新数据点落在验证区间的概率;
概率值越大,拟合的分布效果越好)

6、一枚硬币,正面朝上的概率是0.7,反面朝上的概率是0.3,连续抛掷1000次,求分布?
XB(1000,0.7)X \sim B(1000, 0.7)

7、基于6,记X为正面朝上的次数,求P{X>700}P\{X > 700\}
答:0.5

8、怎么比较当前一个周期的收益和上一个周期的收益的差异。
拟合分布曲线,计算不同周期上的积分值进行比较

9、回归分析中,有些系数可能会非常小,那怎么判断这个系数实际上是不是应该为0?
① 对于一元回归分析,直接进行方程的显著性检验
② 对于多元回归方程来说,对系数进行相应的系数的显著性检验

10、回归分析的显著性检验中使用的统计量是哪个?
① 方程的显著性检验,使用F统计量
② 系数的显著性检验,使用t统计量

11、在推荐系统中,应该选取哪些数据作为基本特征,预测变量为该用户是否有购买该商品的意向?以某4s店为例。
人物画像特征:性别,年龄,画像人群,经济水平等级等
人物行为特征:到店次数,到店时长,是否有试用,试用时长,是否有业务交流,交流时长等
产品特征:产品类型,产品价格,产品热度,产品日期,产品历史评价(销量,好评,拉新等)

12、numpy的ndarray类型为什么比padas的dataframe类型查询速度更快?
numpy的ndarray是随机存储结构,在查询时可以按照索引以O(1)的时间复杂度获取,而pandas的dataframe类型在查询时,会按行进行逐列查询,最坏情况下的时间复杂度为O(m*n)

注:两轮技术面,每次30分钟左右,没有考察编程。

中电达通(算法实习生)

1、了解哪些机器学习算法,他们有什么特点?
perceptron, lr, knn, nb, svm, rf, adaboost, gbdt, xgb, lgb, catboost.

2、floyed算法和dijkstra算法。
计算最短路的算法

注:一轮技术面(约25分钟)+一轮笔试,偏运筹优化、专利申请。

金科览智(NLP)

1、贝叶斯估计。

2、什么是共轭分布?

3、(编程)排序问题(topk)。

注:一轮技术面,约20分钟。

格灵深瞳(CV)

1、numpy的ndarray类型为什么比padas的dataframe类型查询速度更快?
见前面

2、常用的聚类方法,以及他们的适用场景?
① k-means
② dbscan
③ mean-shift
④ canopy
⑤ gauss mix model

3、(编程)并查集。

4、(编程)查找最佳切分点,使得MSE最小。

中电金信(NLP)

1、词嵌入方法。
① one-hot
② tf-idf
③ word2vec
\cdots

2、lightgbm是怎么输出概率值的?
见前面

3、(编程)链表是否有环

龙湖集团(机器学习-校招)

1、ROC-AUC计算原理
ROC曲线:横轴为FPR(假阳率),纵轴为TPR(真阳率)。
AUC为ROC曲线下方围成的面积

记负样本量为N,正样本数量为P,则
$ FPR = FP / N $
$ TPR = TP / P$
通过调整判为正例的阈值(例如取每个样本被预测为正例的概率值,从小到大排列后依次作为判别阈值),来获得一系列的(FPR,TPR)的数值对,然后将其绘制在图上,将各点连接,这个图就是ROC曲线图。

关于ROC-AUC的一些补充:
① ROC曲线中的4个点和1条线:
第一个点(0,1),即FPR=0, TPR=1,这意味着FN=0,并且FP=0。这是一个完美的分类器,它将所有的样本都正确分类。
第二个点,(1,0),即FPR=1,TPR=0,所有正例都被预测为负例,即所有正例都没被预测出来,这是一个最糟糕的分类器,因为它成功避开了所有的正确答案。
第三个点,(0,0),即FPR=TPR=0,即FP =TP =0,可以发现该分类器预测所有的样本都为负样本。
第四个点(1,1),分类器实际上预测所有的样本都为正样本。
虚线y=x:这条对角线上的点其实表示的是一个采用随机猜测策略的分类器的结果。例如(0.5,0.5),表示该分类器随机对于一半的样本猜测其为正样本,另外一半的样本为负样本。出现在右下角三角形中的任何分类器都比随机猜测更糟糕。

② 为什么使用ROC曲线,而不是其他什么指标?
ROC曲线有个很好的特性:当测试集中的正负样本的分布变化的时候,ROC曲线能够保持不变。在实际的数据集中经常会出现类不平衡现象,即负样本比正样本多很多(或者相反),而且测试数据中的正负样本的分布也可能随着时间变化。而在这种情况下,ROC曲线能够保持不变

2、Macro-F1,Micro-F1的差别
混淆矩阵

真实情况 预测结果
正例 反例
正例 TP(真正例) FN(假反例)
反例 FP(假正例) TN(真反例)

F1-Score的计算公式:F1=2PRP+RF1 = \frac{2PR}{P+R}
其中,P是查准率(precision),R是查全率(Recall),计算公式为:
P=TPTP+FP,R=TPTP+FNP = \frac{TP}{TP+FP}, R = \frac{TP}{TP+FN}

F1-Score、Macro-F1、Micro-F1的区别:
使用场景:
① 对于多分类任务,我们需要对每个类别分别计算一个混淆矩阵;由于F1只针对二分类的任务,要考虑多分类问题的F1-Score,就要用到macro-F1与micro-F1。
② 当数据分布不平衡时(类别不平衡),适合使用micro-F1,它考虑每个类别的样例数量;同时,因为它考虑了每个类别的样例数量,样例数量较多的类多较大的影响micro-F1的值;
③ macro-F1不考虑每个类别中样例的数量,将每个类别同等看待,如果一个类别的precision和recall较高,那么这个类将会对macro-F1的值产生较大影响。

3、fpr计算原理

4、常用的分类评价指标
ROC-AUC,Cross-Entropy,Recall,Precision,F1-Score,Macro-F1,Micro-F1

5、XGB怎么处理多分类问题
将多分类问题分成多个二分类问题,对每个二分类问题进行预测,然后对每个类别的预测结果进行softmax,取概率最大的类别作为最终预测结果

6、随机森林和XGB的区别
① 随机森林是bagging集成方法(并行运算),XGB是boosting集成方法(串行运算);
② 随机森林不会过拟合,因为同时采用了行采样、列采样和投票决策,XGB相对而言容易过拟合,需要调整训练的轮次、树的深度、叶子节点数、L1/L2正则化系数;
③ 随机森林拟合方差,XGB拟合偏差;
④ 随机森林鲁棒性更强,XGB鲁棒性相较而言较弱

7、bagging是有放回还是无放回?为什么?
有放回。
首先我们假设无放回,看看会发生什么:
① 候选样本逐渐减少,基分类器数量受限,因为样本总量 = 每个基分类器的训练样本数 * 基分类器数量;即若要增加基分类器数量,那么每个基分类器的训练样本就会减少,导致分类器欠拟合;而如果要增加每个基分类器的训练样本数,那么基分类器数量就会减少,投票结果的可信度就会降低;
② 训练的基分类器可能并不能正常地进行预测,例如,前几个基分类器已经将具有代表性的样本全部选取,那么剩余的基分类器所使用的样本代表性较低;从而导致在投票时,结果偏差较大,集成的分类器效果较差;

8、lightgbm怎么处理类别不平衡
正样本权重=负样本数量/正样本数量
负样本权重=正样本数量/负样本数量

9、常用的类别不平衡处理方法

10、怎么防止XGB过拟合

11、XGB叶子节点数和树深度的关系,依据是什么?
二叉树

海尔(数据挖掘分析师-校招)

1、ROC-AUC的纵、横轴分别是什么
FPR,TPR

2、lightgbm比较重要的参数是什么
树的深度,叶子节点数,节点分裂的最小增益值,叶子节点的最小样本树,L1正则化系数,L2正则化系数,列抽样比例,训练的轮次

3、不结合业务怎么选择合理的特征
特征选择的方法大体可以分为三类:
(1) Filter
① 按照特征和响应变量之间相关性进行排序,选择相关性最高的部分特征;
② 用每个特征对响应变量进行预测,依评价指标的好坏进行排序,选择评价指标较高的部分特征;
③ 低方差过滤,计算每个特征的方差,如果一个特征的方差特别低,一般认为这个特征的贡献不大,可以剔除;
④ 缺失数据过滤,如果一个特征的缺失率非常高(比如达到90%),那么可以直接剔除;

经典的方法如简建立多个一元回归方程进行评价,使用χ2\chi^{2}统计量进行选择等。

(2) Wrapper
构造一系列的特征子集,然后确定一个评价指标,用这一系列的特征分别建立模型去拟合响应变量,取评价指标的值最高的模型对应的特征子集作为选择结果。

典型的方法如回归分析中的向前特征选择、向后特征选择,逐步回归等。

(3) Embedded
即在建立模型的时候,同步进行特征选择,当模型训练完成时,特征选择的过程也完成。

典型的方法如:Lasso,决策树等

4、在业务中是怎么处理类别型特征的
label encoder,one-hot encoder

牧原(数据挖掘分析师-校招)

1、你了解或者常用的机器学习算法有哪些?

2、GBDT、XGBoost、Lightgbm分别有什么特点?他们之间的关系是什么样的?你对他们有什么认识?

3、你认为一个完整的项目流程应该是什么样子的?
拆解需求 \rightarrow 确定所需数据 \rightarrow 数据清洗 \rightarrow 特征工程 \rightarrow 构建标签/选择响应变量 \rightarrow 选择模型 \rightarrow 模型训练和调优 \rightarrow 重复特征工程和模型训练的过程进行迭代优化 \rightarrow 前后端联调 \rightarrow 模型部署 \rightarrow A/B test

4、怎么处理数据不平衡问题?

5、怎么处理过拟合问题?

6、知识图谱怎么做子图谱的融合的?

7、介绍EGES算法的原理。

8、EGES算法有什么不足?
不能考虑节点类型和关系类型

9、GCN和GNN有什么差异?

10、知识图谱的可落地场景?
u2u召回、u2i召回、i2i召回、用户扩散、知识问答、广告投放等

注:一面为群面,两个面试官为综合面试和技术面试的面试官,和投递同一个岗位的竞争者一起面试!总耗时约一个半小时。二面面试官由HR和技术面试官一起面,总计一小时左右。

海信(校招)

1、uplift模型是怎么发现敏感人群的?
参考营销敏感四象限人群

2、s-learner、t-learner、x-learner之间有什么区别?
s-learner 只训练一个模型,t-learner对treatment组和control组分别训练一个模型

3、怎么评估uplift模型给出的结果?
Qini AUC(AUUC),uplift柱状图,cuplift

4、在因果推断的项目中使用了哪些工具?工程的具体实现分为哪几个部分?
工具:主要使用HiveSQL,Spark,Causalml

工程:选择混淆变量、数据清洗、确定treatment、划分treatment和control组、模型训练和调优、确定敏感人群、模型验证(与业务侧对齐)

5、随机试验是怎么划分实验组和对照组?
依据一定的相似性计算规则,选择最相似的样本构成一个个的样本对,然后将推断变量值高的放入treatment组,推断变量值低的放入control组。

6、划分实验组、对照组时,尝试过哪些相似性指标?最终选择了哪一个?
欧氏距离,余弦相似度,马氏距离,曼哈顿距离

7、怎么确定的使用uplift模型?

歌尔(校招)

1、pr和roc的适用范围
pr更关注正样本,当正负样本数量差别不大的时候,使用pr和roc都可以。

2、roc曲线怎么绘制的
使用每一个预测概率作为划分阈值,分别计算一个(fpr,tpr)数据对。
用所有的(fpr,tpr)数据拟合一条曲线,这个曲线就是roc曲线,曲线下的面积就是auc。

3、常用的防止过拟合的方法

4、怎么处理类别不平衡问题

5、常用的激活函数

6、sigmoid函数的缺陷时什么?
容易出现梯度消失

7、决策树模型节点分裂的准则

8、怎么优化lightgbm的性能?

9、xgb和lightgbm的区别?

10、常用的多元统计学习方法?

11、PCA原理

12、k-means原理

薪人薪事

1、metapath怎么处理不同类型节点的

2、怎么在异质图中表示节点的类型

3、uplift的原理和流程

4、uplift值得计算公式

5、怎么区分共现和因果(啤酒尿布案例)

6、特征选择方法

7、判断多重共线性的方法

8、(编程):有向图的pagerank实现

面试问题合集

注:以下问题记不清是来自哪次面试了,含海尔、京东、百度、Aibee、格灵深瞳、中电达通、直引科技、中电金信、金科览智、微芯研究院、智源研究院(30分钟),零犀科技,国双(GridSum,55分钟)等。

1、(编程)topk。

2、ndarray为什么比dataframe的查询效率高?

3、(编程)快速排序。

4、autoML(自动机器学习,19、20年巨火,目前依然有很多公司在用)。

5、因子分解机(MF)/隐语义模型(LFM)。

6、神经网络中是怎么实现矩阵分解、特征交叉的?

7、(编程)二分查找。

8、推荐系统的冷启动策略(用户冷启动、物料冷启动、系统冷启动)。

9、怎么解决欠拟合问题?
① 过采样,增大样本量
② smote方法合成新样本
③ 通过特征交叉、特征组合方式,增加特征数量
④ 集成方法中可以增加基模型数量,增加迭代轮次

10、(编程)快速排序

11、常用的降维方法。
特征选择:
(1)Filter方法:
① 通过χ2\chi^{2}统计量检验;
② 通过方差选择变量;
③ 通过单变量对因变量的拟合效果进行选择(如拟合多个一元回归模型);
\cdots

(2)Wrapper方法:
① 特征子集法;
② 逐步回归;
③ 向前回归;
④ 向后回归;
⑤ Relif;
\cdots

(3)Embedded方法:
① LASSO;
② Ridge;
③ elastic-net;
④ Decision Tree;
\cdots

特征提取:
① PCA;
② MDS;
③ LPP;
④ LLE;
⑤ t-sne;
\cdots

12、什么情况下适合用1\ell_{1}正则化,什么时候适合用2\ell_{2}正则化,什么时候需要同时使用它们?
1\ell_{1}正则化:当变量之间不存在相关性或变量之间的相关性比较低时,适合使用1\ell_{1}正则化;
2\ell_{2}正则化:当变量之间存在多重共线性,或存在多个变量同时发挥作用的情况时(即只选入单个特征时,不发挥作用,同时将他们选入时,发挥明显作用),适合使用2\ell_{2}正则化;
③ 如果不确定变量之间是否存在相关性、是否有多个变量同时发挥作用时可以同时使用1\ell_{1}2\ell_{2}正则化;或,当变量中既有大量相互独立的变量,又有大量相互作用同时发挥作用的变量时,可以同时使用1\ell_{1}2\ell_{2}正则化。

13、ROC曲线的横轴和纵轴分别代表什么?
ROC空间将伪阳性率(FPR)定义为 X 轴,真阳性率(TPR)定义为 Y 轴。

14、异常点检验方法
①3 σ\sigma 法则;
②箱线图(中位数 ±\pm 1.5R之外的数据即为异常点,R为四分位距);
③dbscan聚类可以识别异常点;
④孤立森林;


面试现场
https://www.lihaibao.cn/2023/04/04/面试现场/
Author
Seal Li
Posted on
April 4, 2023
Licensed under