百度算法面经秘籍(上)
《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
百度算法面经秘籍(下):点击查看
本文由 大白智能 作者:凯哲 发表,其版权均为 大白智能 所有,文章内容系作者个人观点,不代表 大白智能 对观点赞同或支持。如需转载,请注明文章来源。