阿里巴巴算法面经秘籍(上)

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

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


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

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

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

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

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

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

阿里巴巴面经整理:江大白

1 阿里巴巴面经汇总资料

1.1 面经汇总参考资料

① 参考资料:

(1)牛客网:阿里巴巴面经-201篇,网页链接

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

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

面经框架及参考答案:

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

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

1.2 面经涉及招聘岗位

(1)实习岗位类

【蚂蚁金服机器学习实习】、【达摩院研究型实习生】、【达摩院自然语言实习生】、【蚂蚁金服风控算法实习生】、【阿里云实习】

(2)全职岗位类

【机器视觉算法工程师】、【智能事业服务部算法工程师】、【NLP算法工程师】、【达摩院计算机视觉】、 【onsite算法工程师】、【消费者bg的软件算法工程师】、【蚂蚁金服算法工程师】、【机器学习算法工程师】、【大文娱算法工程师】、【阿里UC神马搜索】、【阿里口碑机器学习】、【阿里新零售天猫机器学习】、【阿里搜索部算法工程师】、【新零售技术事业群CCO技术部自然语言处理】、【阿里大文娱机器学习】、【淘宝算法岗】、【阿里优酷用户增长组】、【阿里飞猪算法工程师】、【企业金融工程师】、【达摩院NLP工程师】、【数据分析/机器学习工程师】、【阿里健康算法工程师】、【推荐算法工程师】、【lazada算法工程师】、【蚂蚁金服人工智能部门算法工程师】、【淘宝技术部算法岗】

1.3 面试流程时间安排

其他注意点:

● 有时是2技术+交叉面+HR面、有的也是3技术+交叉+HR

● 第一面也可能是简历面

● 个别部门参照:

达摩院实习生是3面技术+1交叉面+HR面

蚂蚁金服是1笔试+6面试

搜索部是3面+交叉面+HR面

1.4 阿里巴巴面试心得汇总

阿里的面试资料很多,下面大白将很多面试者的心得也提取出来,便于大家在准备面试时,有所倾重:

★ 项目经历很重要,但是一定要对自己项目的每个细节了如指掌,挨个聊项目,每一个都问得非常细,要有一些有深度的思考,这是面试官期待看到的

★ 阿里流程会比较长,需要耐心一些,如果可以的话,大家一定要找一个靠谱的师兄师姐内推,通过他们可以提前知道接下来的流程。

★ 自己的论文,项目一定要讲清楚(背的滚瓜烂熟,阿里还是很重视论文项目的,对算法题要求没有那么高)

★ 每一轮面试都要认真对待,即使是交叉面和hr面也要好好准备 (我就是到了交叉面有点浮躁,面试完感觉要凉凉了), hr面我就老实了(毕竟hr具有一票否决权), 提前准备了好多、常问的问题(你的优点缺点,最近看什么书,对福报的理解,部门的职责,团队的职责,价值观相关,还好问的我问题比较常规)

★ 阿里笔试要认真做(题目灵活性还是很大),然后积极找找师兄内推还是很有机会参加面试的。面试官很看重基本功,和逻辑思考能力。有些项目的问题可能自己也没考虑过,不过也不要担心,重要的是如何去分析和解决那个问题。所以感觉考察的方面还是挺综合的。

★ 对于简历上的知识点,在深挖的同时,注意广度,并且还要注意凸出自己的方向,不能因为广而浅尝辄止,那样容易给面试官留下不好的感受。

★ 阿里的考察非常全面,一二面考察偏重基础,四面考察偏重业务,交叉面比较简短。笔者为通信专业,非科班,这里要提醒非科班的同学一定要重视基础,尤其是数据结构,不能光刷题,要系统的仔细的学习这门课程!!!

★ 面试官的问题更加全局化,站在业务和整体的角度看问题,比起算法细节,更多的问的是一种思维方式,为什么选择这个办法而不选择那个办法?为什么这个方法的结果比那个好?还是要多学习多思考。

★ 阿里的感觉是比较重视工程的能力,你是不是可以应对量级较大的数据,很多模型的存在很依赖于要达到什么样的目的,数据的关注的重点:数据质量,数据你怎么处理,怎么使用,比模型调参更体现了你的能力。

★ 不会的千万不要往简历上放,会的能说的就多说点,阿里的题比较开放,给你大的发挥空间,也可以很快的测出你的能力,阿里的实习给我实践性的启迪很大,就是让我觉得,我是来解决问题的,那解决问题比较重要的点在哪,不能只关注部分环节。

★ 简历首先最好有点能了解透彻的项目,简历上涉及的基础算法都要搞懂,面试有一定技巧性所以可以先去面几家练练手,算法题肯定要刷的,统计学习方法要看的,深度学习模型调优什么的。

★ 既要深度也要广度,发散性的问题,常常会问,为什么要这样?为什么不要那样?有什么好处?

★ 简洁。不要扯东扯西,不要发散思维,这样会妨碍面试官了解到他想得到的信息。当然,如果你知道他想问什么,往那方面发散是最好不过的了。但是一开始最好还是让面试官引导,自己先摸清面试官的意图,面试官的技术栈。

★ 蚂蚁非常看重的是你对于自己研究领域的思考和实践,比较注重你是否具有较高的学习热情和个人潜力

★ 阿里巴巴在编程语言上甚至落地分布式的问题都可能问的很深。。一个学弟搞图像检测的,都聊到分布式负载均衡和反向代理了。

★ 深挖你的项目经历,首先让你概括性描述一下你的项目主要内容,以及你在里边儿承担的具体工作,然后开始一点一点扣项目经历。(真的要好好准备,而且还要思考一下为什么这么做,以及还有其他什么方法,各种不同方法之间的对比,问的特别细致反正,但感觉这也看面试官吧)

★ 阿里的HR权利很大,即使面到了最后一面HR面还是有很大可能会被挂掉,一句话夸张的概括一下阿里HR的存在吧,阿里技术部的面试官是在给HR部门招人,而不是HR再给技术部招人。

2 阿里巴巴面经涉及基础知识点

2.1 图像处理基础

2.1.1 讲解相关原理

● 计算连通域的个数?算法复杂度?

● 如何求边缘,45°边缘,高斯滤波喝双边滤波?

2.1.2 手写算法代码

● 灰度图求直方图

● 给你个0 1 二维矩阵,寻找1的连通域有几个?算法复杂度?怎么优化加速呢?

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

2.2.1 讲解相关原理

2.2.1.1 卷积方面

● 卷积的作用,以及局限

● 比较VGG和LeNet,VGG使用3*3的卷积核最大的优势是什么?

● CNN,CNN的核心是什么?卷积操作是怎样进行的?卷积反向传播过程?Tensorflow中卷积操作是怎样实现的?(感觉这种问题是逃不掉的),池化又是怎样操作的,反向传播过程中池化层怎么接受后面传过来的损失的?

● CNN参数共享什么意思?

● 反卷积和上采样什么意思?

● Dropout 跟浅层网络区别,dropout后验证集如何处理?

2.2.1.2 池化方面

● 池化层的作用?

● max pooling 和 ave pooling 有啥区别,说一下?

● pooling层为什么用max pool?有哪些pooling层技术?各自对比、使用场合等等?

● Max Pooling 是如何反向传递梯度的?

2.2.1.3 网络结构方面

● ResNet,让我介绍了一下ResNet主要解决的问题是什么,然后又问我对看完ResNet有什么看法

● Alexnet的问题,大概是什么结构,和LeNet比有什么改进的地方,问了Relu比sigmoid好在哪?

● skip connection有什么好处?

● mobileNet、shufflenet的原理?说了下原理

● 为什么mobileNet在理论上速度很快,工程上并没有特别大的提升? 先说了卷积源码上的实现,两个超大矩阵相乘,可能是group操作,是一些零散的卷积操作,速度会慢。

● 说下VGG ResNet网络结构?

● 介绍一下各种轻量级网络?

● 讲一下MobileNet的原理?深度可分离卷积,从参数数量以及计算量角度与传统卷积对比分析。

● MobileNet与Xception以及ShuffleNet的对比?是否测试过MobileNet在不同计算设备上的运行速度?

2.2.1.4 其他方面

● 简单谈了一下对梯度消失和如何防止过拟合的看法?

● CNN为什么比DNN在图像识别上更好?.

● 神经网络的反向传播机制?pooling和卷积。

● 解释一下BN?为什么用BN?BN层,归一化后的操作?

● 梯度爆炸和梯度消失的原因?

● 神经网络为什么要加sigmod函数?

● 如何防止过拟合?

● 初始学习率怎么设?这个没有总结过,只是说一般使用0.01~0.1

● 迁移学习是什么?怎么迁移?怎么选择迁移的模型?

● softmax、多个logistic的各自的优势?

● 深度学习里面解决梯度消失的办法?

● CV中做数据增强的方法?

● 工程上如何对卷积操作进行优化?

● 样本不均衡怎么处理?一个batch类别均等采样,修改loss对不同样本的权重。

● 学习率过大会出现什么问题,怎么解决?

2.2.2 数学计算

● 卷积时间复杂度?CNN的卷积计算,参数计算?

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

2.3.1 讲解相关原理

● LSTM的原理大概说一下,解决RNN的哪些问题。

● 对于深度学习,例如LSTM等的理解,还有它的改进GRU,还有梯度消失、梯度爆炸等等

● BN细节,有什么好处,能不能在RNN中用?

● LSTM为什么可以缓解梯度消失

● 讲一下LSTM各个门?

● LSTM原理,其中的参数是否相同?

● LSTM的原理知道吗?LSTM与传统RNN相比有什么优势?

● 为什么LSTM可以解决梯度消失的问题?LSTM可以解决梯度爆炸吗?

● GRU原理(几乎是要手写公式了)

● GRU两个gate的作用分别是什么?

● GRU 和 transformer 各自的优势?

● LSTM/Bert的结构,优劣势?

● 序列标注时数据量太少的时候怎么办?

● LSTM相比RNN优点缺点?

● 讲一下LSTM,LSTM相对于RNN有哪些改进?LSTM为什么可以解决长期问题,相对与RNN改进在哪,原因是?梯度消失和梯度爆炸?LSTM如何解决梯度消失的问题?

2.4 深度学习:CNN&RNN常问通用知识点

2.4.1 基础知识点

● 解释下CNN与RNN的区别?

● 对比讲了cnn,rnn和lstm,并讲了transformer相对于他们的优点,transformer有啥缺点,transformer里面的两种mask操作,反正问了很多transformer里面具体的实现细节?

● 为什么要用CNN,Bi-LSTM?如何用Attention?

● Attention原理?

主要讲的是Transformer中Multi-Head Scaled Dot-Product Attention。注意,这里有一个Mask Attention机制,它对于Transformer Decoder和XLNet的实现原理非常重要,同学们如果了解相关知识点,一定要对这个Mask Attention知识点进行深入的理解。

● Multi-Head Attention中如何优化Muti-Head的计算?

没有相关底层优化经验,所以回答:借助CNN底层计算原理,将多头变换展开为二维矩阵(填充大量0),将多头变换转为矩阵乘法运算。

2.4.2 模型评价

● logloss和auc的区别、为什么业务中喜欢用auc?

● 二分类的评价指标都有哪些?

● acc与auc的选择?

● 如果线下auc很高,线上各项指标都不好,可能是因为什么,怎么解决

● AUC的计算?

● 准确率和召回率的概念

● 了解统计学的指标吗?AUC,ROC,F1都是干嘛的

● 混淆矩阵角度解读召回率和准确率

2.5 机器学习方面

2.5.1 讲解相关原理

2.5.1.1 数据准备

● 常用采样的方法?

● MCMC采样?

2.5.1.2 特征工程

① 特征降维

● PCA的主成分是怎么得到的?

● 特征变换做什么?特征处理?

● svd怎么实现图像降维,怎么确定不会影响训练效果?

● LDA知道不?说一下LDA的原理?

● PCA原理及涉及的公式?

② 特征选择

● 特征相关怎么处理?好几个特征都相关怎么处理?

● 高维数据,其中有一维是时间,有缺失,如何处理?

● 如果选出好特征,去掉不好的特征?

● 特征工程中具体衍生出来的特征进行了详细的询问,为什么要生成这样的特征,依据是什么,为什么要使用PCA进行降维,如何存在多个特征高度共线会有什么问题?

● 机器学习中的特征,是选择重要的特征,还是特征的相互关联?

● 对相似度的理解?如何进行特征筛选?如何衡量特征之间的相关性?

● 如果要用树模型的话,可以做哪些特征工程?(n-gram,tf-idf,w2v)

● 假如说句子长度差别很大的话,tf-idf这个指标会有什么问题?one-hot encoding这个指标又会有什么问题?

● 树模型怎么分裂?怎么理解信息增益?

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

① 分类回归树

● 集成学习分为几大类,rf和bagging的区别?

● 从方差和偏差角度比较bagging和boosting?

● boosting和bagging的差异?两者的思想说一下?bagging里面树的深度和boosting里面的不同,为什么?

A.基于bagging:随机森林

● bagging的思想是什么,本质是什么;

● 随机森林里面的两个随机,随机森林为什么是减小方差 ?和Adaboost的区别?

● 随机森林与决策树关系,防止过拟合的原理,随机性的体现。

● 随机森林如何选择feature?

● 从方差偏差的角度解释bagging?为什么随机森林泛化能力强?

● dropout是否了解?随机森林是否也可以用dropout?

● 随机森林的随机体现在哪里?样本/特征随机采样的目的是什么?

● 随机森林和GBDT的区别和联系

● 什么样的数据你会选择使用随机森林

● 随机森林相比决策树的优点有什么

● 随机森林怎么提高泛化能力的?

● 随机森林原理,和决策树有什么区别,追问投票是怎么投票的?

B.基于boosting:Adaboost、GDBT、XGBoost

● 用到了哪些模型(LGB+XGB的bagging),为何?有什么好处?LGB里面你用到了哪些参数?你怎么调的参数?

● GBDT、XGBoost、LightGBM三个算法的原理和区别?XGBoost和GBDT哪个模型性能好,为什么?

● RF、GBDT、XGBoost、AdaBoost的区别?

● GBDT+LR原理

● 讲一下boosting算法?说一下adaboost是怎么更新的?

● 介绍XGB对GBDT的提升,LGB对XGB的提升,以及既然使用了LGB为什么还要使用XGB?

● XGB如何处理缺失值,LGB的差加速和直方图算法的底层代码是否有过了解

● XGBoost的优化点,与传统GDBT的区别?

● GBDT的特征组合原理?

● 问了gbdt在分类时节点输出是什么?怎么拟合残差?

● XGB为什么要做泰勒展开?正则项的内容?为什么要拟合二阶梯度?

● XGboost的底层算法是什么(CART树)

● Xgboost的应该着重调哪些参数?

● 介绍随机森林和GBDT的区别,为什么Bagging降方差,Boosting降偏差

● 讲一下GBDT,Gradient 代表什么?

② 线性回归

● 线性回归和逻辑回归关系,区别?

③ K近邻(KNN)

● KNN 复杂度高,怎么解决?

④ 逻辑回归LR

● LR的原理,LR参数的意义?LR的损失函数,怎么求解.

● 为什么LR的目标函数是最大化似然函数?

● LR加上正则化项后怎么求解?

● LR如何引入非线性?

● LR的损失函数是什么?lr为什么不用min square loss?它的导数是啥?加了正则化之后它的导数又是啥?

● LR里面,损失函数能不能把交叉熵换成MSE?

● LR和SVM的时间代价比较过没有。

● 问我逻辑回归中sigmoid函数的好处?以及为什么用极大似然?

● 逻辑回归的思想和过程,损失函数是什么,如何训练得到最优参数

● 说说逻辑回归吧,适用于什么场景呢,和knn区别?

⑤ SVM(支持向量机)

● 详细说一下LR,SVM和DT的原理

● 讲一下LR、SVM、XGBoost模型的区别

● 讲一下SVM的原理,核函数,以及和LR的区别,哪个是参数模型?

● SVM目标函数,为什么转为对偶,SVM的核函数的本质是什么?

● SVM对偶问题介绍一下,从函数间隔,几何间隔开始介绍。

● SVM优化的目标是啥?问了SVM推导以及拉格朗日对偶法,从数学角度来说明

● SVM当线性不可分的时候怎么办?(楼主答用核函数升维)

● 说一下SVM适合什么场景?或者说有什么限制?

● SVM的KTT条件?

● 知道哪几种核函数?介绍一下高斯核函数?

● 核函数的作用,核函数为什么有用?从数学角度说明

⑥ 朴素贝叶斯(Naive Bayes)

● 朴素贝叶斯的原理?

● 最大似然估计和贝叶斯估计的联系和区别

● 贝叶斯估计和似然估计的区别

⑦ 决策树(DT)

● 决策树的原理,前后剪枝,评价指标。

● 决策树分裂节点的选择?

● 各种决策树:id3 c4.5 cart

● 朴素贝叶斯和决策树的差别,各有什么缺点?再加上SVM呢?

● rf和gbdt基分类器区别,里面的决策树分别长啥样,怎么剪枝

● 决策树的一下细节,GBDT,各种熵的计算,

● 决策树相比其他算法有什么优势?

● 决策树中有哪些参数,如何避免决策树的过拟合

● 决策树具体讲讲,原理,如何选取特征的,怎么进行分类预测的?

⑧ 其他

● 说一下生成式模型?生成式模型和判别式模型有什么特点?

● 生成式和判别式模型哪个使用极大似然估计?

2.5.1.4 无监督学习-聚类方面

● 非监督学习有哪些? 介绍了Kmeans,k-means的时间复杂度

● 怎么选取K值? 手肘法

● K-means的缺点?

● 如果没有先验知识,如何确定K-means的参数

● 衡量K-means效果好坏的方法

● kmeans原理,优化目标是什么?

● k-means和knn有什么关系,区别?

● k-means聚类效果会不会因为初始选取点不同,聚类效果完全不一样?k-means聚类效果和k的大小有什么关系?

● 简述kmeans算法,有什么缺点,如何改进,kmeans++是如何改进的?

2.5.1.5 模型评价

● 如何选择模型?从数据量,特征量方面分析了一遍

2.5.2 手写算法及代码

2.5.2.1 手写公式

● 贝叶斯公式知道吗,什么含义?

● LR是否知道,讲一下数学原理(公式层面)

● 推导一下SVM?

2.5.2.2 手写代码

● 手写一个kmeans

● 求两个点的欧几里得距离?并实现一个kmeans?

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

2.6.1 损失函数方面

● 讲一下交叉熵的公式和意义

● 为什么分类问题的损失函数用交叉熵?

2.6.2 激活函数方面

● 激活函数作用,有哪些,都怎么改进?

● ReLu函数所有背景、原理、应用?

● RELU和Sigmoid相比,优点有哪些?ReLU 解决了什么问题?

2.6.3 网络优化梯度下降方面

● 梯度下降、牛顿法优缺点?

● 梯度下降和随机梯度下降讲一下?

● SGD,ADAM区别

● SGD和BGD区别,还知道哪些优化算法?动量的作用是什么?

● 梯度下降过程中如果不按正确的方向进行怎么办?

● 用什么优化方法,梯度下降的种类,各有什么优点

● 梯度下降法和牛顿法是如何实现的。优化问题分哪些种,无约束的优化问题怎么处理,有约束的优化问题怎么处理。

● 凸优化了解吗? 牛顿法、SGD、最小二乘法,各自的优势,牛顿法与SGD的区别?牛顿法能用于非凸函数吗?拟牛顿法能说说吗?

● 说一下牛顿法,为什么深度学习很少用牛顿法?牛顿法一般应用于什么场景,有什么好处?

2.6.4 正则化方面

● L1,L2正则化的原理讲一下?

● L1和L2的区别,数学上解释(等高线)

● L1正则不是连续可导的,那么还能用梯度下降么,如果不能的话如何优化求解?

● 正则化有哪几种,分别有什么作用?

● L1和L2的区别?从贝叶斯估计的角度看?它们的先验分布是什么?

● 问了l1正则 产生稀疏解的原因(一画图准备扯拉普拉斯分布0点值就把我打住了,知道我想说什么),不可导点的处理(说了三种方法,问了不了解针对大规模数据的方法,这些实际都不常用)

● L1、L2正则化的区别和应用场景?你知道哪些激活函数?简单说说区别?为什么需要激活函数,它解决了一些什么问题?为什么ReLU比sigmoid更能解决梯度消失的问题?

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

● 剪枝与正则化的联系,笔者从结构化剪枝与非结构化剪枝分别对应Lasso和Group Lasso的角度来回答

● 结构化剪枝和非结构化剪枝

● 三大角度:蒸馏,剪枝,量化。笔者分别介绍了三大角度的基本原理。

2.6.6 过拟合&欠拟合方面

● 如何检验过拟合,数据量很小怎么办?

就项目中数据处理方式做了详细的询问,生成的多张数据集如何使用,缺失值的处理需要考察到哪些问题,均值填充是否科学等

● 如何防止过拟合?为什么会过拟合?(从数据、模型、指标三个角度,提到了dropout、正则,后面正好顺着问。)

● dropout是否了解?讲一下dropout原理,为什么能防止过拟合?对训练数据和预测数据有什么区别?

● 神经网络怎么避免过拟合?

2.6.7 其他方面

● 监督学习,无监督学习区别,半监督是什么?

● 怎么做数据增强(结构化数据,图像,文本)

● 为什么会产生梯度震荡、学习率是干嘛的

● 怎么处理非平衡问题(除了我说的欠采样过采样,小哥哥说可以对损失函数进行改进,比如令正类的损失函数为1,负类的损失函数为9)

● 数据不平衡问题?

从欠采样过采样等经典解决办法的角度回答。另外回答了一些其他方法:GAN(ICCV 2019 best paper:SinGAN),特征空间增广,改进训练方式(源数据训练特征提取backbone,欠采样或过采样训练分类器),Loss加权,使用AdaGrad优化器等。

● 如何可视化和理解你的模型?(遮挡实验,attention score)

● 问平常训练模型有没有遇到什么问题,说了显存和batch-size,然后面试官一路问到底,就各种问题如何解决,有个地方我说到了静态rnn和dynamic rnn,例如如何提高显存利用率,一个模型如何发现性能瓶颈在哪

● 如何降低模型复杂度

● 如果数据不充足,或者说非常不平均,要怎么解决?从数据增强和建模来讲

● 偏差和方差的区别?

● Graph Embedding和GNN的区别?

3 阿里巴巴面经涉及项目知识点

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

3.1.1 目标检测方面

3.1.1.1 讲解原理

●  faster rcnn的RPN和ROI pooling?

● 单阶段和两阶段的优缺点?

● 非极大值抑制?

● 交通标志检测和识别的关键?

● 基于SSD的,问训练阶段SSD的gt怎么和预测框发生联系。

● 在目标检测的基础上讲了讲跟踪方面的项目,深挖了几个点比如deformable CNN的具体实现,Siamese-RPN的具体实现

● 如何解决小目标检测的问题?

● 为什么要深层、浅层featureMap concat?提了点细节和我踩的坑,需要数量级上的调整,不然深层的feature可能会被压制。

● Cascade的思想? 说了下我的摸索的一个过程。改变样本分布,困难样本挖掘,能达到比较好的效果。

● 介绍网络:Faster-RCNN、YOLO、SSD、YOLOv1、YOLOv2、YOLOv3、Masker-RCNN、GAN

● CenterNet的实现细节(argmax)

● RCNN、Fast RCNN 和 Faster RCNN的区别

● 为什么选择RetinaNet

● 特征金字塔FPN的作用?

3.1.1.2 损失函数

● Focal loss原理?

3.1.2 OCR

● 就实习阶段所做的超分辨率算法工作进行了详细的询问:数据如何生成,从概率的角度解释网络为何能够学到LR和SR的映射关系,如何搭建和训练网络,如何解决模型落地问题

● 了解到答主在做超分时遇到的问题后,对业界前沿的技术做了相关询问,用了哪些GAN模型,GAN模型的loss函数如何设计,为什么这么设计?

3.1.3 图像分类

● 分类器有了解吗?对哪些分类算法有研究?

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

3.2.1 自然语言处理NLP

3.2.3.1 讲解原理

① Bert

● Bert详解?损失函数?bert的mask相对于CBOW有什么相同与不同

● bert当时是用预训练模型还是自己重新训练的?用bert来干嘛了?

● 了解过BERT吗,里面的三种embedding分别是什么,为什么要这样做?

● Bert和Elmo在工程中存在的一些Trick?

② Transformer

● Transformer 模型架构说一下? 为什么用transformer,不用rnn和LSTM、transformer的优势是什么 ?

● Transformer 和 BERT 的位置编码有什么区别?

● Transformer 用的 Layer Normalize 还是 Batch Normalize?Layer,有什么区别?...

● 用python写一个multi-head attention

③ CRF

● CRF的作用?维特比详细过程

④ HMM隐马尔科夫模型

● 隐马原理?如何应用在分词当中的?

⑤ Word2vec

● 讲一下word2vec,word2vec网络模型?怎么训练?讲一下word2vec的霍夫曼树的原理

⑥ CNN方面

● NLP哪个模型最熟悉?Text-CNN,讲一下?

● TextCNN模型背景、原理、应用;当时毕设/美团评论情感分析比赛的数据集、评价体系、任务要求?

● TextCNN当时用了哪些卷积核?数值、尺寸?为什么用这种?

⑦ 其他

● 介绍预训练语言模型

ELMo,BERT,Transforler-XL,XLNET,ERNIE,RoBERTa,ALBERT,ELECTRA。。。笔者从BERT的mask LM以及NSP任务出发讲解了BERT后续各大预训练的改进。

各大预训练语言模型可能不能从头到尾讲起,笔者线是介绍了BERT,然后从BERT的预训练任务出发,比如介绍了ERNIE中对mask LM的改进,ALBERT中将NSP任务替换为SOP任务等。

● CNN,RNN在处理文本上有什么区别?

● CNN在文本分类上的应用与什么比较像?(意思就是卷积核的作用与什么的作用很像,答案是n-gram,没答上来,我说了一下在文本分类中卷积核是怎么运作的)

● Dropout 有什么作用?类似于 Bagging 。在 Transformer 模型中 dropout 主要用在哪里?

● 如何衡量两个句子的相似度,sentence embedding的方法

● 从长文本到短文本的生成 怎么做

● 生成文本或者说生成模型,最主要的因素是什么

● 对NLP的理解,讲了一下文本分类的发展史,主流分类方法的发展

● 说一说nlp的基本预训练模型(说了ELMO、GPT、BERT),然后这些预训练模型有什么特点?

● 说一个熟悉的文字识别模型(CRNN的结构、CTC-Loss)

● 怎么处理非平衡?欠采样的时候其实可以考虑文本相似度,了解怎么做文本相似度吗?

● 讲一下训练词向量的方法(w2v,skip-gram,CBOW,glove)

● 文本里面的“服务”、“食物好吃”等,如何抽取作为特征?(这问题当时理解有歧义,所以了有点久才知道问的,词性关联模板)

● 如何判断一段文字的时效性?

3.3 强化学习方面

3.3.1 讲解原理

● 你觉得强化学习和推荐有那些关联?

● 强化学习模型 和 CTR 预估模型的区别?

● 强化学习有哪些评价指标?

● gan中的转置卷积

● 论文相关,gan的对抗样本对判别器有什么效果, gan生成的样本只考虑了一部分特征,如何考虑业务数据下游的下游特征,他们如何增强?

● gan在淘宝场景中的应用(从数据,样本,模型,评估层面分析)

● 面试官在手淘那边是负责做推荐搜索的,而我的方向是做强化学习的,而用强化学习做推荐搜索很可能是近几年的一个趋势,让我用强化学习对推荐搜索进行建模,包括state、action、agent的选取,reward的设计,以及如何训练。以及和目前现有的推荐搜索技术相比,用强化学习做有什么优势呢。

● 介绍强化学习都有哪些方法?

● off policy 和on policy都有哪些应用场景?区别是什么?

3.3.2 损失函数

● 强化学习loss函数说一下?

3.4 机器学习方面

3.4.1 推荐系统

● 介绍下基本的推荐算法

● CTR比赛中如何做的特征?

● 说一下协同过滤公式,两种协同过滤额应用场景有啥不同?

● user 向量和 item 向量,协同过滤,Neural CF

● user 的嵌入向量怎么得到的?

● 冷启动:用户很少交互怎么解决?商品数目很多训练嵌入向量怎么训练?

● CTR 预估中,如果有两个模型 CTR/CVR, 怎么做最后的 item 排序。猜测是问 ensemble 方法,回答了 bagging,然后让我具体描述一下思路。

召回策略的方法: CF -> Nerual CF -> Youtube DNN

讲一下 CF 的思路,UserCF, ItemCF

● 假如说处理一个多级分类的问题,有没有什么办法只用一个模型?-multitask

如果说multitask的输出y之间互相有制约关系,要怎么处理?(之前还不知道有CRF这个东西,就说了如果输出的y之间冲突了就引入一个loss。面试官说看来你还不知道CRF,下去好好学习一下)

● 问了netflix的电影评分预测 讲了怎么基于矩阵分解求出评分 svd的k值代表什么?怎么确定?

● 问了deepfm,讲了FM的原理,怎么缩减计算量

● point-wise,pair-wise, list-wise的优缺点,对这些loss的常用设计形式了解吗?

● 对召回算法有了解吗?常用的召回算法的优缺点?

● CTR中为什么经常用LR?

● 介绍FM FFM原理

● FM推导

● 召回和精排的区别以及各自的特点?

● 召回和精排的负样本有何不同?

● 精排特征有哪些,点击序列是怎么作为特征放进去的?

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

发表评论

This site is protected by wp-copyrightpro.com