百度算法面经秘籍(上)

《AI未来星球》陪伴成长的人工智能社群,价值过万的各种内部资源及活动,限时特惠中,点击查看。

求职跳槽福利:为了便于大家求职、跳槽的准备,大白将45家大厂的面经,按照知识框架,整理成700多页的《人工智能算法岗江湖武林秘籍》,限时开放下载,点击查看下载。


面经整理历程:经过一年多的努力,大白整理了超过3500篇,各类大厂的算法面经资料。

并将涉及到的知识点,按照知识框架,分类汇总,每个公司整理成一篇,比如本文的百度面经

大家对照面经,可以了解心仪的公司,会根据你的简历,问哪些知识点?便于大家对掌握的知识,进行回顾梳理。

希望为大家在求职或者跳槽的道路上,提供一些帮助,为大家取得心仪的offer助力。

面经整理心得:大白也将整理所有面经的心得,写成了一篇文章,点击查看心得

其他大厂面经:国内其他大厂的面经汇总,点击查看目录

百度面经整理:江大白

1 百度面经汇总资料

1.1 面经汇总参考资料

① 参考资料:

(1)牛客网:百度面经-218篇,网页链接

(2)知乎面经:点击进入查看

(3)面试圈:点击进入查看

面经框架及参考答案:

(1)面经知识框架:点击进入查看

(2)面经参考答案:点击进入查看

1.2 面经涉及招聘岗位

(1)实习岗位类

【NLP实习工程师】、【视觉技术部算法实习岗】、【百度健康业务部算法实习岗】

(2)全职岗位类

【计算机视觉算法工程师】、【无人驾驶算法工程师】、【凤巢算法工程师】、【展示广告部机器学习/数据挖掘/自然语言处理工程师】、【自动驾驶车联网部门工程师】、【百度推荐平台算法工程师】、【百度搜索岗视频内容搜索算法】、【百度原声商业推广部算法】、【百度SRE工程师】、【百度度秘推荐算法】、【百度地图算法岗位】、【nlp算法工程师】、【百度大搜实习算法工程师】、【推荐策略部算法工程师】、【feed推荐算法工程师】、【搜索团队机器学习工程师】、【度秘算法工程师】、【语音部门算法工程师】、【百度大搜算法工程师】

1.3 面试流程时间安排

PS以上流程为大白总结归纳所得,以供参考。

其他注意点:

● 二面面试官经常是以后的直系领导,主要是问项目还有一些临场发挥的其它问题

● 有的第三面后,还会增加性格面试,不过算是加面,有可能给SP级别。

1.4 百度面试心得汇总

★ 百度的面试过程还是挺有水平的。基础知识+项目+发散性的问题都有涉及,还是挺考验基本功与反应能力的。

★ 百度的笔试就令人印象深刻:选择题啥都考,很杂,操作系统,数据库,c++,python,机器学习,深度学习啥都考

★ 百度面试很注重计算机基础和数学原理,而且比较注重论文发表情况或者项目经历,虽然问的比较难,但是面试官会给提示,逐步引导你走向正确答案,如果回答不上了面试官会做出讲解。

★ 偏好C++,直接让你敲c++也反映出他们的工程需求比较大,内部的需求也是项目落地,而不是模型的建模。

★ 面试时,会循序渐进,不断挖掘自己知识库中知识储备以及灵活应用能力,引导你发散思维,大胆进行业务处理,总结来说,技术方向对求职者的考量确实很到位

★ 面试官建议:夯实基本功,算法原理、数据结构、代码功底线上C++线下python,hadoop等工具,tf等框架的使用等,第二提高系统思维,从解决问题角度从头至尾分析,第三,了解业务方面。

★ 无论是找算法还是开发,代码能力都很重要,刷题必备。

★ 目标公司最好能加到HR或者面试官的联系方式,不然面完就失联很被动。

★ 百度的面试非常重视基础,问得很细。

★ 基础知识复习复习好(包括机器学习、深度学习还有最重要的刷题),尽量提早做,说实话这些事我也是到春招末和秋招中才做得比较好,因此错失了很多机会。

★ 简历上的内容一定要很熟悉,这个不解释;

★ 准备一个漂亮的简历,所以春招找实习很重要!拿到一个大中厂的实习,你会发现事事都会顺利很多;

★ 平时学习模型的时候还是应该再深入一些,了解模型的细节,以及做法的原因。还有一些主流推荐模型的优缺点和适用场景、改进方法等等。

★ 因为机器学习和深度学习项目,大家很容易盲目的去做,经常是随便试好几个模型,哪个好就用哪个。 但是面试官更希望你能了解模型的细节和原理,有针对性地有充分理由地使用模型、调整参数。我觉得大家在面试之前可以多准备这方面,就算面试官没有问也可以主动地说出来项目中一些做法的原因。这样可以让面试官觉得你是有独立思考的,而不是随便调包。不过最好是有深度一点,像 “我发现了过拟合,用了dropout,最后缓解了过拟合“ 这种比较普通的说出来可能也没什么帮助。

★ 面试官会对项目问的超级细,甚至问了当时结果具体数字是多少?从侧面反映他其实是想看你是不是真的做了这个项目,是不是熟悉!

★ 很多问题是发散思维的,没有标准的答案,网上都难搜到,就是看平时有木有思考的习惯。

★ 百度是纯粹的C++厂,code能用C++别用python,当然事先最好准备一些C++的常见问题。

★ 百度的面试除了考察基础知识之外,更重要的是知识的运用。考察题目灵活且仔细,所以没有一些运用经验或者较为细致全面的学习很难答得理想。算法题以及代码能力较为被看中,有想法的同学可以多多注意一下。

★ 有一个面试官说,主要从四个方面来考量候选人:是否有ACM奖项,是否有CCF-B级别的论文,是否参与过实验室的省级、国家级项目,是否参与过Kaggle竞赛。

2 百度面经涉及基础知识点

2.1 图像处理基础

2.1.1 讲解相关原理

● 边缘检测算法用过哪些?

● SIFT算子的原理讲一下?

● 介绍canny边缘检测?

● 描述一下ORB特征?

2.1.2 手写算法代码

● OpenCV,截取Mat矩阵的一部分区域的数据的具体实现,以及Mat内存管理的机制?

● 对M*N图像实现均值滤波(k*k)?

2.2 深度学习:CNN卷积神经网络方面

2.2.1 讲解相关原理

2.2.1.1 卷积方面

● CNN的原理,3DCNN的原理?

● CNN padding的原理?

● CNN中的平移不变性是什么意思?

● CNN权重的初始化方法?CNN权重如果全部初始化为0,1等任意常数可以么,为什么?

● Dropout原理和实现方式?有什么优点?

● Dropout的工作原理,以及在预测的时候他的作用是什么?怎么操作的?

● CNN为什么能提特征?

● 卷积神经网络是怎样工作的?

● CNN了解么?CNN在模型并行和数据并行上有什么差别?

2.2.1.2 池化方面

● Pooling原理和实现方式?

2.2.1.3 网络结构方面

● 讲一下Resnet的Bottelneck结构?

● Incepetion的结构?

● 画了下googlenet的结构?讲了下googlenet跟之前的网络的不同。

● googlenet中为什么采用小的卷积核?

● Xception网络参数减少量?

● Vgg,Resnet,Densenet了解吗?

2.2.1.4 其他方面

● 什么是一个端到端的学习?

● BN的全称,BN的作用,BN一般放在哪里?为什么能解决梯度爆炸?

● Batch_Normal为什么需要还原?

● 为什么DNN跟传统的机器学习方法有什么不同,为什么?

● 如何解决梯度消失和梯度爆炸?怎么解决过拟合(首先可以从数据角度下手,比如数据增强。其次有dropout l1 l2正则,另外还可以根据实际场景考虑减小模型大小,更换损失函数,例如triplelet loss focal loss等,面试官表示很满意)。

● 了解图模型吗?了解Graph Embedding吗?

● autoML中知道什么算法?

2.2.2 公式推导

● 手推BP前向传播

● 手写BN公式

● 卷积维度变换的公式推导?

2.2.3 手写算法代码

● Softmax的梯度公式推导和代码实现?

● 卷积是如何编程实现的?

2.2.4 激活函数类

● Softmax层的label 是什么?我回答one-hot向量。

2.3 深度学习:RNN递归神经网络方面

2.3.1 讲解相关原理

● RNN,LSTM,GRU各种的都介绍了一遍?

● RNN求导,与线性层有什么区别?

● Transformer跟RNN相比有哪些优势?

● LSTM和RNN相比的区别有哪些?RNN有哪些缺点?

● 知道哪些RNN模型?了解GRU不,了解LSTM不?LSTM参数有几个矩阵,它们的维度分别是多少?

● LSTM网络参数数量,计算公式的推导?

● 项目中用到了LSTM,为什么可以用LSTM,它的主要用处是什么,以及LSTM的梯度消失问题?

● LSTM为什么要用Tanh?

● LSTM的优点,记忆单元是怎么工作的,他为什么可以克服梯度消失?

● 为什么把CNN结构放到LSTM之前,效果为什么比单独使用LSTM差,为什么不考虑CNN+LSTM+CNN,论文里提到CNN对单字特征提取效果较好?

● CNN与RNN有什么区别?RNN为什么难以训练,LSTM又做了什么改进?

● CNN,RNN,LSTM,Transformer之间的优缺点?

● LSTM为什么能捕获长期依赖关系?

● LSTM中的Attention是怎么操作的?

● LSTM结构,输入门,输出门,遗忘门怎么计算的,他们的作用分别是什么?

● CNN/RNN是如何提取特征的,LSTM和RNN之间的区别?

● LSTM有几个门,GRU呢?

● 介绍LSTM结构,为什么这么设计?为什么三个门的激活函数是sigmod?生成候选记忆的时候为什么用Tanh?

● 度秘部门:LR,GBDT的使用率要远远高于NN,需有所准备。NN的重点也应该放在LSTM,transformer,BERT上。度秘的核心是对话系统,建议了解意图识别及常见做法,比如基本的LSTM+CRF模型。

2.3.2 手绘网络原理

● 画LSTM原理图?

● 画GRU的图,公式,与LSTM的区别。

● 手推GRU

2.4 深度学习:CNN&RNN通用的问题

2.4.1 基础知识点

● 数据增强有哪些方法?

● self-attention机制原理?

● multi-attention 多头注意力机制的原理?

● attention的概念,attention的本质是什么?

● attention里面的QKV都是什么,怎么计算的

● 讲一下对深度学习的理解,从CNN、RNN等多个方面介绍自己掌握的?

● 网络初始化有哪些方式,他们的公式,初始化过程?

● 神经网络初始化方法,我回答了随机初始化和He 初始化,面试官问我随机初始化有什么问题,He初始化解决了什么问题?

● 训练时样本不平衡问题如何解决;小样本问题如何解决

2.4.2 模型评价

● 评估指标,P、R、F1,还有哪些(ROC曲线,AUC值),为什么不平衡时用AUC,怎么算,代表含义,F值的公式,还有没有其他的F值?

● 分类问题的评价方法,F1score,ROC,AUC,准确率和召回率?

● AUC相关概念,是怎么做指标评价的?

● 常用的模型评估指标有哪些,也问到了对AUC的理解?

● 分类的评价指标,准确率,精准率、召回率是什么?

● AUC原理介绍一下?

● AUC评价指标具体意义,比如auc=0.85一个正例一个负例那这个0.85表示什么?

2.5 传统机器学习方面

2.5.1 讲解相关原理

2.5.1.1 数据准备

● N个样本,N很大,怎么做抽样?

2.5.1.2 特征工程

① 特征降维

● 知道哪些降维的方法,具体讲讲?

● 是否了解降维方法,我说了PCA,他接着问我SVD?

● PCA推导?

● PLSA、LDA有啥差别?

● LDA和PCA的区别?

● 聚类pca懂么,讲一下,怎么操作的,为什么要算特征值?SVD懂么(不懂),LDA讲一下,跟PCA有什么异同。

② 特征选择

2.5.1.3 有监督学习-分类和回归方面

① 分类回归树(集成学习)

● Boosting和Bagging的概念和区别?

● Bagging和Boosting分别改善了偏差和方差的哪一个?偏差和过拟合的关系?

● XGboost、lightgbm、Catboost三者介绍?

● RF和XGBoost的区别?

● 问GBDT和RF的区别,我讲了以下bagging和boosting,然后详细的说了以下个自的特点?

● 接着问了一下这两个个自的应用场景,我一下子答不上来,我感觉GBDT好像哪里都能用。RF的话应该是用在特征不多的地方,然后我嘴欠说了特征不多,样本少,回头才发现RF只能用在大样本,小样本不适用

A.基于bagging:随机森林

● 随机森林讲一下,随机森林的优点?

● 随机森林的随机性怎么体现?

B.基于boosting:Adaboost、GDBT、XGBoost

● GBDT不擅长处理离散特征,你在应用的时候是怎么处理的?

● 讲一下GBDT的原理?GBDT在回归和多分类当中有什么不同,在预测的时候的流程是怎样的?

● GBDT是否只能用CART树,GBDT中残差计算公式?

● GBDT跟stacking的区别?stacking的流程

● GBDT的实现、前向后向怎么做的,loss怎么算的,梯度下降怎么求得。

● XGB和GBDT的区别?

● GBDT原理,树的权重,损失函数(分类树和回归树)

● GBDT为什么用负梯度去拟合新的树?GBDT的基分类器是什么?

● 结合项目,讲下怎么进行特征选择,特征工程方面,比如说非数值型怎么处理,one-hot后维度高怎么。问你用的xgboost也许要对特征进行标准化吗?这里也考得xgboost吧,我感觉xgboost其实对特征的的预处理要求不是那么高,讲了下原理。

● 根据项目问了XGBoost,LightGBM原理上的区别,应用中的区别,遇到的难点,为什么会出现这样的情况?

● 传统的机器学习算法了解吗,xgboost原理,为什么训练快?

● xgboost和gbdt的区别?这方面问的很细,比如说xgboost可以并行加速是怎么进行的,每次分裂叶子节点是怎么决定特征和分裂点的。

● 为什么xgboost效果不如随机森林?

● xgboost和lightgbm的区别?

xgboost如何处理缺失数据?

● xgboost如何防止过拟合,预剪枝和后剪枝?

● 介绍下xgb是如何调参的,哪一个先调,哪一个后调,为什么?哪几个单独调,哪几个放在一组调,为什么?哪些是处理过拟合的,哪些是增加模型复杂程度的,为什么?

● xgb分裂节点的依据?xgb如何处理离散值、连续值?

● 如果相邻的连续值比较接近,比如只有小数点后三位的差距,xgb会遇到什么问题吗?

● 问了lightgbm有什么优势。我就把gdbt,xgboost,lightgbm从头到尾讲了一遍

● 简历写了集成学习,是项目中的xgboost吗?gbdt讲一下,xgboost、gbdt比较,为什么gbdt用负梯度不用残差。

② 线性回归

● 线性回归的共线性,如何解决,为什么深度学习不强调?

③ K近邻(KNN)

● KNN原理,kd树的构建与搜索,讲原理,还有没有其他的树结构能实现kd树的效果

④ 逻辑回归LR

● LR和SVM的区别,从Loss func来说,LR和数据分布有没有关系?

● LR和SVM,两个算法各自的使用场景以及它们之间的区别。

● GBDT+LR的原理,如果GBDT有有1万颗树,每个树有100个叶子节点,那么输入到LR的特征会是一个高维稀疏的向量,那么应该如何处理,使用PCA降维的话会造成损失,如果不想有损失的话应该怎么办?

● GBDT+LR中LR输入的特征都有哪些,除了GBDT输出的特征 有没有加入原始特征

● 项目中LR用的优化方法是什么,有没有用正则化,有没有调整sgd的步长

● 逻辑回归的特征处理,连续值、离散值,离散化连续特征的好处?

● LR的损失函数,问了先验概率和后验概率的区别,让求了一下交叉熵损失函数的导数?

● 逻辑回归的原理

● 最大似然估计的作用

● 逻辑回归介绍一下?怎么解决过拟合?

● LR最初是怎么提出来的,或者说为什么会出现LR?

● LR的目标函数是怎么得来的?

● 大规模LR参数稀疏解怎么求?

● 实际情况考察:如果LR训练中有100个变量,但是其中有90个变量是高度相似的,会对最终结果有什么影响呢?

⑤ SVM

● SVM的原理?如何用通俗的方式给父母讲SVM?

● SVM多分类怎么做到的(OVR、OVO、层次SVM),分析各自的特点?

● SVM损失函数、原始问题形式、对偶问题形式、引入核函数

● SVM为什么可以处理非线性问题,怎么解决线性不可分的问题?

● SVM为什么二分类效果最好?

● 知道SVM吗,怎么推导的? SVM的目标函数是凸函数吗?有唯一解吗?

● SVM能不能看成一种特殊的神经网络,或者说SVM和神经网络有木有什么联系?

⑥ 朴素贝叶斯(Naive Bayes)

● 能不能用朴素贝叶斯某个特征在某一类的概率来选特征?(只衡量一个特征在一个类里出现的概率大小并不能用来筛选特征,个人感觉可以参考互信息法来回答)

● BPR(贝叶斯个性化排序)的理解?

● 贝叶斯公式,贝叶斯估计和极大似然估计的区别?

● 朴素贝叶斯思想

⑦ 决策树(DT)

● 说一下决策树吧,什么是决策树?节点划分有哪些方法,如何剪枝?

● 决策树深度很深会怎么样,叶子节点很多会怎么样?

● 回归决策树和分类决策树分裂节点的时候怎么处理?

● ID3,C4.5.CART树的区别(一个个讲的, 谁解决了谁不能解决的问题,如何解决的,缺失值如何处理,说了scikit-learn里面的GBDT, 原理上可以处理missing value, 但其实里面并未实现)

● ID3、C4.5、CART(比较具体)

● 决策树有哪些分裂方式,怎么计算的?

● 决策树的叶节点的怎么得到分数的?

● 树模型,ID3,C4.5,CART怎么计算分割点的,信息增益和信息增益率的区别?

● 说一说决策树以及相关算法(gbdt、xgboost),区别以及各自的优势。

● CART树怎么分裂节点?(分类和回归都要说)

⑧ 其他

● 说一下机器学习训练的过程,其中要考虑哪些因素(模型输入、损失函数的选择、优化函数)?

● 最小二乘法在什么条件下与极大似然估计等价?

2.5.1.4 无监督学习-聚类方面

● 简历上写了k-means,面试官问我聚类有哪些具体的应用,聚类还有哪些高级的方法,各方法分别在什么情况下使用

● 改进现有的分类算法、聚类算法等,提出一种新算法,从哪个角度切入?(讲了感知机到SVM的改进,GBDT到xgb的改进,kmeans到结合语义的改进)

● Kmean和GMM原理、区别、应用场景?

● 聚类算法了解程度、kmeans介绍、K值选择、kmeans++算法?kmean如何选择k?

● Kmeans和其他聚类算法有啥优缺点?

● kmeans是有监督还是无监督?

● 你说用聚类,你会怎么选择K-means的K值呢?K-means会分类错吗?错了怎么处理?

● 为什么选择DBSCAN,它的优缺点是什么。还知道那些聚类算法,各有什么优缺点?

2.5.2 手推算法及代码

2.5.2.1 手推公式

● 详细说明xgboost,部分推导?

● 有什么常用机器学习算法,回答了几种,面试官问哪种能推导,回答LR和SVM都行,让推SVM

● 讲解并推导一下SVM?

● LR详细的推导

● 手推SVM, GBDT, Xgboost

2.5.2.2 手写代码

● 写一下kmeans的算法实现

2.6 深度学习&机器学习面经通用知识点

2.6.1 损失函数方面

● 损失函数都有哪些?(指数损失、平方损失、绝对值损失、对数损失等)

● Logistic回归损失函数的公式和含义?

● 知道哪些损失函数?为什么分类问题不能用均方差?

● 谈一下交叉熵吧,公式怎么写的?交叉熵有什么问题?

● 二分类问题为什么不直接用0-1损失函数?

● 常见激活函数有哪些?为什么sigmoid要以这种形式呈现?

● 交叉熵损失为什么有log项?

2.6.2 激活函数方面

● 知道哪些激活函数,它们的优缺点分别是什么?

● 写出常用的激活函数及其导数?

● Relu函数是做什么的,作用是什么?

● 激活函数讲一下,tanh和sigmoid的关系?

● 介绍一下 sigmoid 和 relu,relu有什么缺点?

2.6.3 网络优化梯度下降方面

● 优化方法的比较和选择,为什么Adam比SGD好?

● 不同梯度下降的方法,还有哪些降低损失函数值的方法,有哪些模型不是利用梯度下降迭代● 的?

● 讲一下梯度和导数的区别?

● 随机梯度下降和批量梯度下降的区别?

● 为什么神经网络要用梯度下降法优化,而不用乘子法,牛顿法等优化?

2.6.4 正则化方面

● L1、L2正则化的区别是什么?应用场景?

● L1、L2正则为什么可以防止过拟合?

● L1正则相当于拉普拉斯先验,那么在损失函数为最小二乘法的时候,如何通过拉普拉斯先验推导出L1正则?

● L1正则是不可导的,那么在这种情况下如何优化求解损失函数?

● L1为什么能使得特征变得稀疏?L1解空间为什么长成菱形?

● L1/L2正则化及对损失函数造成影响的区别?

2.6.5 压缩&剪枝&量化&加速

● gru与网络轻量化?叙述了gru结构,网络轻量化提到了sgru中的权值共享,提到了两个3*3的卷积核可以带替一个5*5的卷积核。

2.6.6 过拟合&欠拟合方面

● 过拟合怎么判断,如何解决过拟合?

● 过拟合、欠拟合原因及解决办法?

2.6.7 其他方面

● 代价函数、目标函数、损失函数的区别?

● 怎么计算相似度 ?

● 样本不平衡怎么处理?

● 算距离时余弦相似度和欧式距离,什么情况下两者可以等同?

● 对于不同场景机器学习和深度学习你怎么选择,你更习惯机器学习还是深度学习?

● 在模型训练的时候有什么技巧和经验,比如loss不收敛等情况?

3 百度面经涉及项目知识点

3.1 深度学习-CNN卷积神经网络方面

3.1.1 目标检测方面

3.1.1.1 讲解原理

● 说一下Faster R-CNN,要详细画出图,说一下ROI polling与RPN?

● Rcnn,Fast-Rcnn,Faster-Rcnn,SSD,YOLO,FPN,MASK RCNN,Cascade RCNN,都简单的介绍了一下?

● 讲一下Two-stage和One-stage的异同?

● 目标检测的时候出现一半的物体的处理方式?

● 讲一下近两年比较新的结构上的改进 ?

● 小目标检测怎么解决?

● 从yolo v1开始讲一下yolo的历程?因为yolo v3比较熟,能不能从yolo v3开始,被允许。介绍了yolo v3的网络结构,draknet53,多尺度特征图上的预测,损失函数。

● Yolo怎么从Anchor变成具体坐标的?w,h的预测为什么要乘缩放系数?

● 介绍下yolov4相对于yolov3的改进?mosaic有效的原因?

● Anchor free的方法了解多少?讲一篇比较熟悉的

● YOLOV4的改进在哪里?

● 解决难样本问题的方法,ohem与focal loss的相同点和不同点

● ssd对小目标不好的原因

● DCN的原理与实现,感受野的含义

● fpn的实现细节,anhcor在不同层分配方式

● anchor聚类的具体实现与原理

● 介绍自己对整个目标检测领域的看法(不是宏观) 基本上从两阶段讲到一阶段再到anchor-free再到trasformer。

● yolov5的改进工作

● Giou Diou Ciou改进方法

3.1.1.2 损失函数

Focal loss的共识写一下?

3.1.1.3 手写代码

● 写一下非极大值抑制(NMS)

● 手撕SoftNMS

3.1.2 图像分割

● Bisenet网络的改进目的?

● 分类的预训练模型如何应用到语义分割上?

● 语义分割上采样的方法?

● 问了反卷积是怎么做的, unpooling中maxPooling怎么实现?

3.1.3 OCR

● OCR识别有哪些算法模型?

3.1.4 图像分类

● 如果图像分类有百万个class,你会怎么设计模型?

3.2 深度学习:RNN递归神经网络方面

3.2.1 自然语言处理NLP

3.2.1.1 讲解原理

① Bert

● 文本分类,bert了解吗?输入有什么改进?

● 讲一下Bert原理?

● Bert模型结构,分类和句子翻译如何微调?

● Bert的输入,token embedding是怎么得到的?输出是什么,维度是什么?

● Bert里面的mask为什么有效?

● 做两个句子的语义相似度,Bert结构怎么fine-tuning?

● Bert的embedding向量怎么来的?

● Bert细节(mask原理,训练过程的两个任务,输入输出,为什么要遮蔽部分单词,80%和20%等具体问题)

● 怎么用Bert来做搜索?

● 介绍Bert,写attention公式

● Bert怎么做专有名词识别和词重要性识别?

● 问Bert和Xlnet的互相弥补与改进?

● Bert的word piece对于中文词表的一个好处,词表变小也可防止OOV?

● Bert中用的LN,LN和BN有什么区别,为什么Bert用LN?

② Transformer

● Transformer/GPT/BERT 的原理简单讲解?

● GPT/BERT 中分别是怎么用 Transformer 的?

● Transformer?比RNN优越在哪?

③ Attention

● 简单的介绍下注意力机制的原理?

④ CRF

● CRF介绍,CRF是怎么优化的(L-BFGS),L-BFGS是什么,为什么用这个?

● CRF特征函数是什么?输入是什么?和HMM有什么不同?什么原理?怎么训练?

⑤ HMM隐马尔科夫模型

● HMM和CRF的区别以及原因,HMM参数有哪些?

● HMM的原理以及公式?

● HMM了解吗?什么原理?怎么训练?

⑥ Word2vec

● 解释Word2vec原理,两种模型结构,两种改进方案?

● Word2Vec怎么对词向量进行特征的抽取?

● Word2vec怎么训练的,有没有没有得到的词向量,比例多少?

● Word2vec训练方式哪种更好?

●  Word2vec:训练目标是什么,skip-gram ,cbow, 层次softmax, 高频词和低频词训练出的表示有什么特点, 怎么解决 ?

● Word2vec里面为啥要负采样?

● word2vector 如何做负采样?是在全局采样?还是在batch采样?如何实现多batch采样?怎么确保采样不会采到正样本?word2vector负采样时为什么要对频率做3/4次方?

● Word2Vec的输出是什么?损失函数是什么?怎么训练?怎么优化?

⑦ 其他

● 关键词提取的方法,TF-IDF会不会?TF-IDF公式?

● TF-在提取关键字的时候有没有遇到问题?

● tf-idf公式是什么,对于低频词和高频词有处理么,高频词算出来的tf-idf的值会更大还是更小?

● fasttext原理,有什么好处?为什么可以解决未登录词?

● TextCNN原理以及和CNN的区别?

● 问了不了解graph embedding?讲了deepwalk,node2vec区别和具体细节。

● Node2vec中分别以BFS和DFS的方式游走会对最终的推荐结果产生什么影响?

● 稀疏词向量,用skip-gram还是cbow训练好?

● NLP怎么处理文本特征?

● n-gram模型原理,有什么作用?使用中有哪些缺点?

● 实体抽取的相关算法(bilstm+crf),(面试官补充现在最新的是bert+crf)

● fasttext和word2vec的区别(项目中涉及fasttext)

● 如果关键词和所有商品全部用Dense Vector来表征,如何快速匹配最相似的?

● 如果商品可以标注,你会标注什么信息?

● 商品的什么特征是最重要的,你如何提取这些特征来做关键词匹配?

● 对话系统中,DST的作用,DST和NLU的区别是什么?

3.3 强化学习

3.3.1 讲解原理

● 结合项目,用GAN网络去噪,解释了下conditional gan的原理。损失函数的创新点?

3.3.2 损失函数

● GAN网络的Loss讲一下?

3.4 机器学习方面

3.4.1 推荐系统

3.4.1.1 讲解原理

● CTR和CVR怎么实现?

● 不定长文本数据如何输入deepFM,如果不截断补齐又该如何输入?

● FM、ffm、DeepFM、wide&deep的区别和联系,然后让我用TensorFlow实现DeepFM?

● UserCF在现实场景中实现遇到的问题,如何解决?

● 介绍了一些经典的推荐系统算法,再介绍了一些基于深度学习的推荐算法

● 协同过滤(基于用户,基于内容),矩阵分解及其后续改进

● 异质信息网络中的异质信息是什么,如何构建异质信息网络

● 如何从异质信息网络中提取user,item的Embedding

● BPR(贝叶斯个性化排序)系列,CDL(基于MF架构引入自编码器提取item特征),CML(度量学习范畴),NCF,RRN(基于RNN建模用户历史偏好),基于强化学习的推荐算法等算法的了解?

● 协同过滤了解吗?

● 基于用户和基于item的协同过滤讲一下

● 用户冷启动和item冷启动应该用什么策略?

● widedeep与deepfm区别?

● FM相比于LR的优势(自交叉、稀疏特征不太影响训练、可以得到embedding,进行高维交叉,推理未出现过的特征组合)

● 介绍一下DIN 和DIEN?

● 知道哪些推荐算法?(提了很多,后来点了一下百度比较出名的双塔模型)

● 双塔模型有什么问题?(我说不能实时反应客户的行为?)

● 如何改进双塔模型?

● 10个字以内关键词搜索,如何从 一千万个商品(只有标题和长文叙述)中快速检索Top10?

● 推荐系统如何解决马太效应? 除了挖掘长尾

● 离散、连续特征如何拼接?多模态特征怎么融合?多路召回怎么融合?

● 如何解决广告位置bias?单点预估(无位置信息)怎么预测ctr?

● 如何在不降低总体指标的情况下增强ctr模型实时性?除了增量学习

● 如何填充曝光未点击样本的点击率?

● 如何evaluate 新feature 是否work带来提升?除了abtest

百度算法面经秘籍(下):点击查看

本文由 大白智能 作者:凯哲 发表,其版权均为 大白智能 所有,文章内容系作者个人观点,不代表 大白智能 对观点赞同或支持。如需转载,请注明文章来源。

发表评论

This site is protected by wp-copyrightpro.com