共计 13442 个字符,预计需要花费 34 分钟才能阅读完成。
之前在筹备秋招的时候,每次看到牛客网上那些大神手握七八个大厂的 offer,就艳羡到不行,那会儿本人的机器学习算法程度还没法搬上台面,顶多也就是看了几个课程、做了两个较量的程度,而后较量还没失去任何的名次,就真的开始焦虑到不行,四周好多小伙伴都在大厂开始实习了,而我真的扪心自问,简直零实习经验,算法也没系统性的推导过,leetcode 也才偶然刷一刷,大略刷了二十来题吧,用劫难来形容那时候的状态也不为过,我开始慌了,而后就开始静下心来各种找教训贴,牛客堪称是大佬星散,大略在这里看了十来篇,知乎上也看了好几篇,总结出了我感觉秋招算法岗的几个重点考查方向:自我介绍、我的项目介绍、算法细节、数据结构与算法题,接下来我一一来说一下这四个方向的细节。
- 自我介绍
自我介绍说得好,肯定会给面试官留下粗浅的好印象,而且这一块全是本人来措辞,要突出的重点也是你本人来把控,所以从你的叙述中,面试官是能够听得出你对这个我的项目的相熟水平以及你的思考深度的,所以,提前准备就尤为重要了,面试的时候要把每一个我的项目依照肯定的逻辑叙述出来,在算法我的项目外面最为重要的当然是数据、特色、模型、成果,依照这个框架给讲清楚了,面试官听得轻松,接下来的面试阶段也会更晦涩一些,因为面试官是会捕获你的自我介绍外面的关键词的,以待之后的问答环节向你连环发问,这就暗含了一个 tip,就是你所讲进去的,肯定要做到比面试官更懂,那些做的含混的货色就不要搬进来了,否则迟早会露馅。
- 我的项目介绍
这是重中之重,我的项目会体现一个面试者的综合素质。那咱们这种没有实习经验的该咋办呢?好办,去加入较量,争取拿较量的名次,而后把较量里用到的算法搞的滚瓜烂熟的,面试官必然会对你我的项目中的细节开展,让你解剖一些他有疑难的点,比方正负样本的选取、特色解决、模型的细节,再比方你的较量中用到了树模型,就得晓得所有树模型相干的知识点,我轻易举几个例子:XGBoost 为什么对缺失值不敏感?相比一般的 GBDT,XGBoost 怎么解决缺失值?为什么 xgboost/gbdt 在调参时为什么树的深度很少就能达到很高的精度?等等这种细节式的发问,一旦你答复的含糊其辞,面试官就必然会扣分的,所以千万不要怀着侥幸心理,感觉面试官不会问到,墨菲定理通知咱们,但凡可能出错的事就肯定会产生,这些都是能够筹备的,明明简直是开卷考试了,为啥不提前去想好怎么答复,而要去考场上搜索枯肠想个四不像的答复进去呢。较量平台的话,大家必定晓得,像阿里天池、kaggle 等等都是大家常加入较量的平台。
- 算法细节
面试官除了考查在我的项目中呈现的算法的细节之外,还会就你的机器学习算法根底进行发问,我这里大略总结下比拟重要的一些,传统算法: 逻辑回归、奢侈贝叶斯、树模型(random forest/Adaboost/xgboost/lightgbm)、SVM、PageRank、聚类;一些机器学习的实践,非均衡问题、过拟合问题,穿插验证问题,模型抉择问题;举荐零碎: 协同过滤、FM/FFM、LS-PLM、Wide&Deep、DeepFM、DIN、DIEN、ESMM、Embedding、召回、EE、性能评估;这些算是算法岗的外围,此外,一些代码语言的考查,也会是有一些面试官很看重的,比方 C ++/python/Spark 等,过后为了筹备这一项,我把我能想到的题都转化为了问答的模式,自问自答地去做筹备,我在文章的最初把所有的题都列了进去。大家能够依照这个去筹备,或者抉择其中的一些。因为我面的是举荐算法岗位,所以会比拟并重这方面,前期如果我有工夫,能够拓展到其余的畛域,比方自然语言解决、计算机视觉等等。举荐的书的话,也是牛客上大神的一些教训,李航《统计学习办法》、《百面机器学习》、《百面深度学习》、《深度学习举荐零碎》、周志华的《机器学习》。当然看完这些书是相对不够的,看了不等于你把握了,你循着我给你列出来的问题清单去过一遍,本人心里答复一遍,或者间接写进去,这样成果相对顶,我在秋招的时候,真的简直能够秒答,尽在本人的把握之中。我也会在我的公众号陆续公布这些问题的解答,基本上曾经写完了,大家也能够看我的网站,网站、公众号介绍在上面中有,欢送大家一起交换。
- 数据结构与算法题
这个也相当要害,有的公司甚至会依据你在这个方面的体现优劣决定你的去留,像头条是出了名的动静布局巨匠,老喜爱考一些中等或者 hard 的题,让人头疼。很多非计算机出身的因为自身没有根底,练习的不到位,就可能当场思路不清晰。我的倡议是先依照专题来刷,比方像动静布局、滑动窗口专题、双指针、快慢指针、topK 等等,刷个 200 题左右,而后就能够随机去刷了,肯定要多刷题,这是强调一百遍都不为过的面试法令。举荐的书的话有《剑指 offer》,网站的话能够找 leetcode 中文网。
好了废话少说,种一棵树最好的工夫是十年前,其次是当初,如果感觉你的算法功底不够在秋招过程中斩获 offer 的话,那就从当初开始一一攻克,没什么难的。我也会陆陆续续在我的网站和公众号更新对于算法相干的问答、面试教训、内推等等内容,如果有趣味的话能够关注一波,这个号我的预期是长期做,也会用心去做,心愿能够给算法的同学带来切切实实的帮忙。
- 网站:http://ml-union.cn
- 公众号:阿药算法
- 公众号二维码:如下
以下就是下面提到的我整顿的问题,我还会继续更新这个列表,前期次要的写作领地就在公众号了,预计牛客也不会常来,欢送大家来加我的微信,一起交换。
- 集体微信:ayao-algo
机器学习百问百答
逻辑回归
- 推导一下逻辑回归的损失函数,并解释其含意。
- 在广告 LR 模型中,为什么要做特色组合?
- 为什么 LR 模型要应用 sigmoid 函数,背地的数学原理是什么?为什么不必其余函数?
- 为什么 LR 能够用来做点击率预估?
- 满足什么样条件的数据用 LR 最好?换句话说,为了 LR 工作的更好,要对数据做一些什么解决?
- 逻辑斯蒂回归是否解决非线性分类问题?
- 给一个有 m 个样本 n 维特色的数据集,LR 算法中梯度的维度是多少?
- 逻辑回归损失函数为什么应用最大似然预计而不必最小二乘法?
- 如何求解逻辑回归的参数?
- SVM 和 LR 有什么异同?别离在什么状况下应用?
- 为什么 LR 不适宜用 MSE?
- 为什么逻辑回归须要先对特色离散化?
- 并行 LR 的实现
- 逻辑回归(Logistic regression)在金融畛域有什么利用呢?
奢侈贝叶斯
- 什么是贝叶斯决策论?
- 你晓得什么叫做奢侈贝叶斯吗?
- 公司外面男性有 60 人,女性有 40 人,男性穿皮鞋的人数有 25 人,穿运动鞋的人数有 35 人,女性穿皮鞋的人数有 10 人,穿高跟鞋的人数有 30 人。当初你只晓得有一个人穿了皮鞋,这时候你就须要揣测他的性别是什么。如果揣测出他是男性的概率大于女性,那么就认为他是男性,否则认为他是女性。
- 你能给我说说奢侈贝叶斯有什么优缺点吗?
- “奢侈”是奢侈贝叶斯在进行预测时候的毛病,那么有这么一个显著的假如毛病在,为什么奢侈贝叶斯的预测依然能够获得较好的成果?
- 什么是拉普拉斯平滑法?
- 奢侈贝叶斯中有没有超参数能够调?
- 奢侈贝叶斯中有多少种模型?
- 你晓得奢侈贝叶斯有哪些利用吗?
- 奢侈贝叶斯是高方差还是低方差模型?
- 奢侈贝叶斯的假如条件是什么?优缺点别离是什么?
- 奢侈贝叶斯是如何进行参数估计的?
- 贝叶斯学派与频率学派有何不同?
- 逻辑回归与奢侈贝叶斯有什么区别?
树模型
- 谈谈你对熵、信息增益和信息增益比的了解?
- ID3 算法的划分规范是什么?
- ID3 算法有什么缺点?C4.5 算法是如何解决 ID3 的缺点的?ID3 和 C4.5 存在什么缺点?
- C4.5 是如何解决缺失值的?
- C4.5 的划分规范是什么?
- C4.5 算法的缺点是什么?
- 基尼系数的的定义及其劣势是什么?
- CART 是如何在特征值缺失的状况下进行划分特色的抉择?
- 选定该划分特色,CART 模型对于缺失该特征值的样本该进行怎么解决?
- 决策树呈现过拟合的起因及其解决办法?
- 决策树剪枝有哪些策略?其优缺点别离是什么?
- C4.5 采纳的剪枝办法是什么?
- CART 是如何解决类别不均衡问题的?
- CART 是如何对间断值解决的?
- 请你说一下 ID3、C4.5 和 CART 三者之间的差别。
- CART 算法为什么选用 gini 指数?
- C4.5 算法是如何解决间断值的?
- 决策树是如何解决缺失值的?
- 如何计算决策树的各特色重要水平?
- 如果特色很多,决策树中最初没有用到的特色肯定是无用吗?
- 决策树须要进行归一化解决吗?
- 既然应用神经网络也能够解决分类问题,那 SVM、决策树这些算法还有什么意义呢?
- 决策树和条件概率分布的关系?
- CART 的剪枝策略是什么?
- 如果由异样值或者数据分布不平均,会对决策树有什么影响?
- 决策树和其余模型相比有什么长处?
- 决策树与逻辑回归的区别?
- 分类树和回归树的区别是什么?
- 如何了解决策树的损失函数?
- sklearn 中的决策树是否应该用 one-hot 编码?
- 简述随机森林的步骤
- 随机森林是否会呈现过拟合?
- 随机森林为什么不必分训练集和测试集?
- 随机森林是如何解决缺失值的?
- 随机森林与 GBDT 之间的区别
- 随机森林与 SVM 的比拟
- 说一说随机森林的优缺点
- 简述一下 Adaboost 的权值更新办法
- 推导一下 Adaboost 的样本权重更新公式
- 训练过程中,为何每轮训练始终存在分类谬误的问题,整个 Adaboost 却能疾速收敛?
- Adaboost 的优缺点?
- AdaBoost 与 GBDT 比照有什么异同?
- 请简述一下 GBDT 的原理
- 为什么回归树能够作为 GBDT 的迭代学习器?
- GBDT 是如何用于分类问题的?
- 为什么 GBDT 将 CART 回归树树分成 m 棵二叉树(每棵树只有两个叶子节点),而不是求一棵 m + 1 层的二叉树(最多有 2m 个叶子节点)?
- GBDT 是如何进行正则化的?
- gbdt 的残差为什么用负梯度代替?
- GBDT 的劣势有哪些?
- GBDT 中的缩减的作用是什么?
- 为什么基于残差的 GBDT 不是一个好的抉择?
- 梯度晋升树中为什么说指标函数对于以后模型的负梯度是残差的近似值?
- 为什么 xgboost/gbdt 在调参时为什么树的深度很少就能达到很高的精度?
- 为什么在理论的 kaggle 较量中,GBDT 和 Random Forest 成果十分好?
- GBDT 怎么用在点击率预测中?
- GBDT 中的梯度怎么计算的?是谁对谁的梯度?
- m×n 数据集,如果用 GBDT,那么梯度是几维?或者是与树的深度无关?或者与树的叶子节点的个数无关?
- 随机森林和 GBDT 的异同点
- 机器学习算法中 GBDT 与 Adaboost 的区别与分割是什么?
- 介绍一下 XGBoost 的原理
- XGBoost 与 GBDT 有什么不同
- RF 和 GBDT 的异同点
- XGBoost 为什么应用泰勒二阶开展
- XGBoost 的并行化局部是如何实现的?
- XGBoost 为什么快?
- XGBoost 中叶子结点的权重如何计算出来?为什么叶子节点得分能够用来掂量树的复杂度?
- XGBoost 中的一棵树的进行成长条件
- 请推导一下 Xgboost
- XGBoost 算法避免过拟合的办法有哪些?
- XGBoost 如何解决不均衡数据
- 比拟 LR 和 GBDT,说说什么情景下 GBDT 不如 LR
- XGBoost 中如何对树进行剪枝
- 应用 XGBoost 训练模型时,如果过拟合了怎么调参?
- XGBoost 如何抉择最佳决裂点?
- XGBoost 的 Scalable 性如何体现
- XGBoost 如何评估特色的重要性
- XGBooost 参数调优的个别步骤
- XGBoost 模型如果过拟合了怎么解决
- XGBoost 为什么对缺失值不敏感?相比一般的 GBDT,XGBoost 怎么解决缺失值?
- XGBoost 的正则化是如何实现的?
- XGBoost 和 LightGBM 的区别
- XGBoost 是如何求 Hessian 矩阵逆的?
- xgboost 算法中应用近似算法求取宰割点如何了解?
- LightGBM 相较于 XGBoost 有什么优缺点?
- 请介绍下常见的几种集成学习框架:boosting/bagging/stacking
- 为什么集成学习会好于单个学习器?
- 请简述下模型的方差与偏差的含意?
- 集成学习中的基模型肯定是弱模型吗?
- 请计算一下模型的总体冀望和总体方差
- 为什么 Bagging 中的基模型肯定要为强模型?
- 为什么 Boosting 框架中的基模型必须为弱模型?
特色工程
- 机器学习中,有哪些特征选择的工程办法?
- 广告点击率模型中,LR, GBDT+LR, FM, DNN 等模型的长处和毛病?实际效果如何?
- 多标签(multi-label)数据的学习问题,罕用的分类器或者分类策略有哪些?
SVM
- 对于 SVM 中,对常数 C 的了解?
- 机器学习 SVM 中对于函数距离为什么能够设置为 1?
- 机器学习有很多对于核函数的说法,核函数的定义和作用是什么?
优化算法
- 优化算法
- 什么是梯度降落法?
- 用梯度降落训练 SVM 会有什么问题?
- 最小二乘、极大似然、梯度降落有何区别?
- 最优化问题中,牛顿法为什么比梯度降落法求解须要的迭代次数更少?
- 为什么 nn 的较大问题是会陷入部分最优时,不选用凸函数作为激活函数?
损失函数
- 请解释一下损失函数的定义
- 请说说你对逻辑回归损失函数的了解
- 请说说你对平方损失函数的了解。
- 请谈谈你对指数损失函数的理解。
- 请谈谈你对 Hinge 合页损失函数的理解。
- 请你对逻辑斯谛回归和 SVM 的损失函数进行一下比照。
- 对于逻辑回归,为什么说平方损失函数是非凸的?
- 如何把 SVM 的推导和损失函数分割起来?
- 神经网络如何设计本人的 loss function,如果须要批改或设计本人的 loss,须要遵循什么规定?
- softmax 和 cross-entropy 是什么关系?
- 神经网络的损失函数为什么是非凸的?
- 深度学习中有哪些罕用损失函数 (优化指标函数)?
- 神经网络中,设计 loss function 有哪些技巧?
- 神经网络中,为何不间接对损失函数求偏导后令其等于零,求出最优权重,而要应用梯度降落法(迭代)计算权重?
- 在用穿插熵损失函数时,只心愿惩办 0.4~0.6 这样含糊的值,应该怎么改?
正则化
- 请解释正则化的含意。
- 正则化与数据的先验散布有什么关系?
- L1 相比于 L2 为什么容易取得稠密解?
- L1 正则为什么能让系数变为 0?L1 正则怎么解决 0 点不可导的情景?
- 深度学习怎么避免过拟合?
- 指标函数中同时应用多个 L1 和 L2 正则化项的状况,应该怎么求解?
AUC
- 请解释一下 AUC。
- AUC 和准确率肯定是正相干的吗?有什么外在关系吗?
- 准确率、召回率、F1 值、ROC、AUC 各自的优缺点是什么?
- 为什么 accuracy、precision、f1-score、recall 得分都很高然而 AUC 得分低?
- 机器学习中,F1 和 ROC/AUC,对于多分类如何做指标评估?
- 如何解决离线和线上 auc 和线上点击率不统一的问题?
- 为什么 AUC 对正负样本比例不敏感
- AUC 要到多少才算好?
- AUC 的概率解释。
非均衡数据
- 机器学习中有哪些非均衡数据集的解决办法?
- 请简述一下 SMOTE 采样办法是如何来解决非均衡数据的?
- 原始的 SMOTE 算法存在什么问题?如何改良?
- 请简述一下 Tomek Links 欠采样办法。
- 请简述一下 NearMiss 办法
- EasyEnsemble 算法是如何解决非均衡数据的问题的?
- BalanceCascade 算法是如何解决非均衡数据的问题的?
- SMOTE 过采样和 Tomek Links 欠采样算法是否能够联合起来?
举荐零碎百问百答
浅层模型
- 请简述基于用户的协同过滤 UserCF 的举荐过程。
- 在基于用户的协同过滤中,如何计算用户的类似度?
- 基于用户的协同过滤 UserCF 存在哪些缺点?
- 请简述基于物品的协同过滤 ItemCF 的举荐过程。
- 请简述一下基于物品的协同过滤算法的离线工程实现(spark)
- 协同过滤算法计算过程中的大规模稠密矩阵相乘在 spark 中的现有计划(multiply)有什么缺点?如何改良?
- 请简述协同过滤算法的优缺点
- 理论业务中,为了让协同过滤对业务产生更大的价值,咱们在应用该算法时须要留神哪些问题?
- 协同过滤算法会存在冷启动的问题,次要体现在哪里?
- 协同过滤算法能够用于哪些举荐业务场景?
- 请简述近实时协同过滤算法的工程实现
- 矩阵合成的原理是什么?求解的次要办法有哪些?
- 如何从深度学习模型的角度来意识矩阵合成模型
- 矩阵合成算法中,隐向量的长度 k 的取值是如何影响成果和工程开销的?
- 请简述奇怪值合成的过程。奇怪值合成存在什么缺点?为什么不适用于互联网场景下的求解?
- 请简述梯度降落法求解用户 - 物品隐向量的过程。
- 如何解决矩阵合成中用户和物品打分偏差的问题?
- 逻辑回归模型预估相较于协同过滤,最大的劣势是什么?其举荐过程是怎么样的?
- 请推导逻辑回归的数学模式。
- 请推导梯度降落法求解逻辑回归参数更新的过程。
- 逻辑回归作为 CTR 预估模型的劣势与缺点是什么?
- 在工业界,很少将间断值作为 LR 模型的特色输出,而是将间断特色离散化为一系列 0、1 特色,劣势是什么?
- CTR 预估中所有的特色进行两两穿插,并对所有的的组合赋予权重的办法存在什么缺点?
- FM 的原理是什么?与矩阵合成有什么分割?
- FM 相较于 POLY2 为什么泛化能力更好?在工程上有什么劣势?
- FFM 相较于 FM 有什么改良?
- FM 的训练复杂度是多少?怎么推导?FFM 的训练复杂度是多少?
- 为什么 GBDT 可用于特征选择和特色组合?
- GBDT+LR 组合模型中,GBDT 是如何生成特征向量的?
- GBDT+LR 有什么长处和缺点?
- 请简述阿里妈妈提出的 LS-PLM 模型的原理与数学模式。
- LS-PLM 模型的劣势有哪些?
LS-PLM 模型与深度学习模型有什么分割?
深度模型
- 请简述 Deep Crossing 的网络结构。
- Deep Crossing 中的残差单元有什么作用?
- NeuralCF 在矩阵合成模型的根底上, 做了哪些改良?
- PNN 相较 NeuralCF 和 Deep Crossing 有哪些改良?劣势是什么?
- PNN 中特色穿插有哪些形式?别离是怎么样的?
- PNN 模型的劣势和局限性是什么?
- 如何了解 Wide&Deep 模型的 Memorization?
- Wide&Deep 中的 Memorization 存在哪些毛病?
- 如何了解 Wide&Deep 模型的 Generalization?
- Wide&Deep 中的 Generalization 存在哪些毛病?
- 请简述 Wide&Deep 的模型构造。
- Wide&Deep 在训练的时候采纳了 Joint Training,有什么益处?
- wide&deep 论文中作者是如何利用 wide&deep 来做举荐的?
- 为什么 wide&deep 模型用 ftrl 和 adagrad 两种优化办法?
- Wide&Deep 模型的翻新和劣势是什么?
- 在利用场景中,哪些特色适宜放在 Wide 侧,哪些特色适宜放在 Deep 侧,为什么?
- wide&deep 模型中为什么要将间断特色离散化?
- Deep&Cross 相比 Wide&Deep 作了哪些改良?Deep&Cross 模型的 Cross 网络是怎么操作的?
- FNN 模型的提出次要是为了解决什么问题?它是如何解决的?
- FNN 的模型构造是什么样的?
- FNN 模型中是如何应用 FM 来初始化 Embeddiing 层参数的?
- DeepFM 提出的动机是什么?
- DeepFM 中 FM 层与 NN 层是共享特色 Embedding 的益处是什么?
- DeepFM 相较于 Wide&Deep 有什么改良?为什么这么改良?
- NFM 相比 Wide&Deep 有什么改良?为什么这么改?
- 用户对于商品的趣味有哪些特点?DIN 是如何去捕获用户趣味的这些特点的?
- 对于用户趣味的捕获,咱们个别有哪些办法?
- DIN 的输出是怎么解决的?
- DIN 的激活单元是如何设计的?
- 为什么减少叉乘作为输出?
- 为什么应用简略的 MLP 实现 AU 呢?
- DIN 中应用激活函数 Dice 代替经典的 PReLU 激活函数,劣势是什么?
- DIN 应用了一种自适应正则,它的动机是什么?
- DIN 论文中应用了 GAUC 作为评估指标,它的益处是什么?
- DIEN 引入序列信息的动机是什么?
- 请绘制 DIEN 各层的构造?趣味抽取层和趣味进化层。
- CVR 预估到底要预估什么?
- 与 CTR 预估不同,cvr 预估中面临的数据稠密和样本抉择偏差别离指的是什么?
- ESMM 是如何解决样本抉择偏差问题的?
- ESMM 是如何解决数据稠密问题的?
- ESMM 的构造基于“乘”的关系设计而不是基于除的起因是什么?
- 解释一下 ESMM 的指标函数
Embedding
- Embedding 技术为何对深度学习举荐零碎来说十分重要?
- 请简述 Word2Vec 的原理和构造。
- 为了放慢 Word2Vec 的训练,采取了什么办法?
- 谈谈你对 Item2Vec 的了解,它的局限是什么?
- 请简述双塔模型的构造,其中物品塔的作用是什么?
- 模型构造越简单越好吗?特色越多越好吗?
- DeepWalk 的次要思维是什么?说出算法步骤
- Node2Vec 中的同质性和结构性指的是什么?他们与 DFS 和 BFS 的对应关系如何?
- 请写出 Node2Vec 的节点间跳转概率公式。
- 举例说明 Node2Vec 的同质性和结构性在举荐零碎中的直观解释。
- EGES 的提出次要是为了补救 DeepWalk 的缺点的,怎么补救的?
- 请简述 EGES 模型的构造,并简述每一层的做法。
- Embedding 在深度学习举荐零碎中有哪些利用?列举三个方向。
- Embedding 作为深度学习模型的训练会存在什么问题?
- Embedding 有哪些预训练方法,别离介绍一下.
- 请简述 Embedding 作为召回层的过程。
- 请简述部分敏感哈希的原理及其在举荐零碎中的作用。
召回
- 假如物品库数量达到百万级别,如何设计办法从这个数量级别的物品中举荐给用户 top10 的物品,同时能够缩小计算的压力?
- 排序为什么比召回更受关注?
- 召回模型有什么显著区别于排序模型的特点?
- 为什么不能只拿 ” 曝光未点击 ” 做召回模型的负样本?
- 召回模型是如何对负样本进行随机采样的?
- 应用随机采样样本做负样本有什么缺点?如何解决?
- 举荐零碎中为什么要有召回?在举荐零碎中召回和排序有什么异同?
- 举荐零碎召回是怎么实现热门 item 的打压?
- CTR 预估与举荐零碎的指标存在什么 gap?
- 事实举荐零碎只按 ” 预估 CTR” 排序吗?
- 为什么 CTR 预估只实用于具备“真负”样本的场景?
- 举荐零碎中有哪些场景是无奈取得真负样本的?如何解决?
- 请简述基于 embedding 的召回办法,劣势是什么?
- Airbnb 召回算法中的 listing embedding 召回是如何抉择正负样本的?
- Airbnb 召回算法中的 user/listing-type embedding 召回是如何抉择正负样本的?
- Facebook 的 EBR 算法是如何抉择正负样本的?
- 召回为什么要求具备隔离 user 与 item 特色的解耦性?具体怎么解耦?
- 在召回场景下,为什么往往采纳 Pairwise LearningToRank 来构建排序的绝对准确性?
- 优化召回 Pairwise LearningToRank 应用的损失函数能够有哪几种模式?
- Pinterest 的 PinSAGE 是如何构建正样本的?
- 请简述 DSSM 模型的原理
- DSSM 的输出层将文本映射到低维向量空间转化成向量 会存在什么问题?
- 请简要形容 DSSM 是如何利用于召回的?构造是怎么的?
- 请简述一下 DSSM 的优缺点
- DSSM 中的负样本为什么是随机采样失去的,而不必“曝光未点击”当负样本?
- 请简述百度的双塔模型
- 请简述 YoutubeDNN 的构造和其原理
- 请简述用户多趣味网络 MIND 的出发点是什么,形容其构造?
- SDM 是如何联合用户长期和短期趣味建模的?其构造如何?
特色工程
- 让你设计一个举荐零碎的特色工程,你会怎么去设计?包含用户侧、物品侧和上下文特色。
- 在进行特色解决时,对连续型特色怎么解决?
- 在进行特色解决时,对类别型特色怎么解决?
摸索与利用
- 当新用户注册或新物品入库的时候,该怎么给用户提供称心的举荐服务,以及怎么将新物品举荐进来,举荐给喜爱他的用户?
- 简述摸索与利用的含意。
- Greedy 算法的原理是什么?有什么缺点?
- 请简述 Thompson Sampling 办法的原理和步骤。
- 请问 UCB 办法是如何解决冷启动中的摸索和利用问题的?
- 简述 LinUCB 的原理与具体的做法。
特色评估
- 模型的实时性是如何影响举荐零碎的成果的?
- 客户端是如何做到对于实时特色进行实时举荐的?
- 流计算平台是如何进行准实时特色解决的?
- 分布式存储系统 HDFS 和分布式批处理平台在举荐中的作用有哪些?
- 请简述 offline/nearline/online 训练方法和步骤。
- 请说出几种离线评估的指标。
- 请说出 P - R 曲线、ROC 曲线和 AUC 的含意和关系。
- 如何奇妙地绘制 ROC 曲线?
- 线下 AUC 晋升,肯定会带来线上指标的晋升吗?为什么?
- 为什么要进行 AB 测试?相比离线评估的劣势是什么?
- AB 测试是如何设计分层和分流机制的?
深度学习
- 请写出罕用的损失函数,平方损失、穿插熵损失、softmax 损失函数和 hinge 损失函数。
- 为什么深层神经网络的训练的难度很大?次要有哪几方面的起因。
- 请你用实例阐明一下前向流传和反向流传
- 在深度学习中引入非线性激活函数的作用是什么?
- 请说出罕用的激活函数,并画出他们相应的图像。
- 如何抉择激活函数?请阐明各种激活函数的特点。
- Relu 激活函数的长处是什么?
- 请阐明 Softmax 激活函数的定义及其作用?Softmax 激活函数如何利用于多分类?
- 在深度模型训练时,为什么须要 batch size? 如何抉择适合的 batch size,对后果有和影响?
- 请阐明 BN 的原理,为什么要进行批归一化?
- 什么是模型微调 fine tuning?请阐明 fine-tuning 模型的三种状态,各自的特点是什么?
- 为什么无监督预训练能够帮忙深度学习?
- 权重偏差初始化有哪些办法?别离阐明他们的特点。
- 设置学习率的作用是什么?罕用的学习率衰减办法有哪些?阐明他们各自的特点
- 深度学习中有哪些避免过拟合的办法?
- 请说出几种罕用的优化算法,以及他们各自的特点。
- 深度学习中如何均衡方差与偏差?如果偏差过大咱们应该怎么做?方差过大呢?
- 请阐明 Dropout 的原理,在训练与测试的时候 dropout 会有什么区别?
- 深度学习中罕用的数据加强办法?
- 如何了解 Internal Covariate Shift?
C++ 百问百答
根底
- 变量的作用是什么?创立变量的语法是什么?
- C++ 中常量的作用是什么?请写出定义常量的两种形式。
- 请举几个 C ++ 中事后保留的关键字的例子
- short 类型、int 类型、long 类型和 long long 类型所占用的内存空间别离是多少?
- sizeof 关键字的作用是什么?
- 字符型变量所占的内存空间为多少?它在存储的时候有什么特点?
- 请举几个你罕用的 C ++ 中的转义字符?
- C++ 中前置递增和后置递增的区别是?
- 写一个三目运算符的例子?并解释一下。
- switch case 语句中 break 的作用是什么?
- 一个 for 循环语句中的起始表达式、条件表达式、开端循环体和循环语句的执行程序是什么?
- break 语句和 continue 语句的作用是什么?
数组
- 数组的特点是什么?如何定义数组?
- 一维数组的名称和其内存地址的关系是什么?
- 如何定义二维数组?二维数组的名称和其内存地址的关系是什么?
函数
- 阐明形参加实参的含意。
- 值传递的含意是什么?对形参和实参的影响是什么?
- 函数申明的作用是什么?
指针
- 指针的作用是什么?指针变量和一般变量的区别是什么?
- 指针所占内存空间有多大?
- 常量指针、指针常量有什么区别?
- 值传递和地址传递有什么区别?
构造体
- 如何创立一个构造体?请写出两种办法。
- 如何创立构造体数组?
- 构造体指针如何拜访构造体的成员?
- 构造体如何嵌套构造体?举个实例
- 构造体能够作为参数向函数传参吗?
内存
- 请简述 C ++ 程序在执行时各个内存区块(代码区、全局区、栈区、堆区)的性能特点。
- new 操作符的作用是什么?怎么应用?
援用
- 援用的作用是什么?其本质是什么?
- 援用在作为函数参数时,和值传递、地址传递有什么区别?
- 常量援用的作用和写法别离是什么?
在写函数默认参数时,有什么须要留神的?
重载
- 函数重载须要满足什么条件?
封装
- 封装的意义是什么?
- 类的成员和行为的拜访权限有哪些?别离是什么样的?
- 类和构造体的区别是什么?
- 将成员属性设置为公有的长处是什么?
初始化与清理
- 构造函数和析构函数的作用是什么?
- 构造函数语法是什么?构造函数有什么特点?
- 析构函数语法是什么?析构函数有什么特点?
- 结构函数调用规定是什么?
- 请解释 C ++ 中的深拷贝与浅拷贝?
- C++ 中初始化列表语法是什么?
- B 类中有对象 A 作为成员,A 为对象成员,当创立 B 对象时,A 与 B 的结构和析构的程序是谁先谁后?
- 动态成员的特点是什么?
- 类内的成员变量和成员函数是离开存储的吗?非动态成员变量占用对象空间吗?
- this 指针的作用是什么?
- const 润饰成员函数会起到什么成果?关键字 mutable 的作用是什么?
- C++ 中友元的作用是什么?全局函数、类、成员函数作为友元别离是怎么实现的?
- 继承的形式有哪几种?其权限是什么样的?
- 子类能够继承父类的公有成员吗?
- 父类和子类的构造函数和析构程序是什么样的?
- 当子类与父类呈现同名的成员,如何通过子类对象,拜访到子类或父类中同名的数据?
- 菱形继承会带来什么问题?C++ 中是怎么解决的?
- 动态多态和动静多态有什么区别?
- 多态的满足条件和应用条件是什么?
- 多态有什么长处?
- 纯虚函数的意义是什么?语法是什么样的?他和抽象类有什么关系?
- 解释虚析构和纯虚析构的含意、语法及其区别?
- 如何建设函数模板?其作用是什么?须要留神什么?
- 一般函数与函数模板有什么区别?其调用规定是什么?
- 具体化函数模板是为了解决什么问题?
- 类模板的作用是什么?语法是什么样的?与函数模板区别有什么区别?
- 类模板中成员函数创立机会是什么
- 请解释 STL 中的容器、算法和迭代器。
python 百问百答
- python 中 list、tuple、dict、set 等类型有什么区别?
- 函数传参有哪些模式?别离有什么特点?
- 请解释 python 的默认参数陷阱问题。
- 请举例说明浅拷贝和深拷贝的区别
- 生成器与迭代器的概念别离是什么?
- 请简述内置函数 zip 的用法。迭代器的长度不统一时,是如何解决的,有什么代替计划吗?
- 高阶函数 map/reduce/filter/sorted 的用法别离是怎么的?举例说明。
- 闭包的概念是什么?举例说明。
- 匿名函数有什么益处?请举一个例子阐明其用法。
- 装璜器的概念是什么?如何应用?
- 偏函数的概念是什么?如何应用?
- enumerate 相比 range 有什么劣势?
- 什么是工厂函数?举例说明。
- 举例说明类属性和实例属性的区别。
- 请实例解释继承和多态的概念。
- 如何设置类内属性的拜访限度?
- 如何应用__slots__?
- 定制类__str__,__iter__,__getitem__,__getattr__,__call__别离有什么作用?
- 静态方法、类办法和成员办法有什么区别
- @classmethod, @staticmethod, @property 这些都是什么?
- __init__和__new__的区别是什么?
- 什么是 Python 自省?
- python 是如何进行内存治理的?
- 什么是 GIL?
- 请简述 python 的异样解决机制。
- 你是如何如何定位 python 程序的 bug 的?在 python 中如何实现单步执行?
- assert 断言有什么用途?
- 类有哪些内置的属性?
- 元素为字符串的列表如何转变为空格分隔的字符串?
- python 中的 is 操作符是如何进行比照的?
- 请写出匹配邮箱地址的正则表达式。
- python 如何传递命令行参数的?
- 如何了解 python 中的线程?
- 请简述 python 中的多过程。
Spark 百问百答
- 请简述 RDD 的概念,如何创立 RDD?
- RDD 反对哪些操作?
- RDD 反对哪些操作?别离有什么特点?
- 请举例说明 RDD 转化操作和口头操作
- 阐明 RDD 的惰性求值机制
- 别离阐明转换操作 map、flatMap、filter、distinct 的作用和用法
- 别离阐明转化操作 union、intersection、subtract、cartesian 的作用和用法
- 别离阐明口头操作 reduce、fold、aggregate 的用法及其区别
- 为什么要对 RDD 进行长久化,请简述不同级别的缓存机制。
- 请简述 reduceByKey、groupByKey、combineByKey 的作用与区别。
- RDD 之间的依赖关系宽依赖和窄依赖的含意与区别
- RDD 中 Client、Master、Worker、Driver、Executor 的含意别离是什么
- DataFrame 与 RDD 的次要区别在于?
- 为什么 Spark 快于 mapreduce?
- Spark 有那些组件?
- Spark Streaming 的基本原理
- 如何解决 Spark 中数据歪斜的问题
- 请阐明 SparkSQL 中三种 join 1.Broadcast Join 2.Shuffle Hash Join 3.Sort Merge Join 的含意与区别
- spark 能代替 hadoop 吗?
- Executor 的作用?
- Driver 的作用?
- spark Rdd 的缓存?
- spark spark-submit 脚本的参数有哪些?
- 宽依赖和窄依赖
- 总结 Rdd 算子(30 个以上)
- coalesce 和 repartition 的区别?
- reduceByKey 和 groupByKey 的区别?
- union 和 intersection 的区别?
- 罕用的宽依赖算子和窄依赖算子有哪些?
- DAG 如何划分 stage?
- 如何划分 job?
- Spark 长久化的抉择?
- 长久化和容错的利用场景?
- 什么是累加器?
- 什么是播送变量?
- 节点和 task 执行的关系?
- cluster 模式如何查看日志
- Spark 优化?
- 什么是 DataFrame?
- Rdd,DataFrame,DataSet 的区别?
- spark 底层外围 RDD 的缓存机制、利用场景、如何应用、如何革除缓存
- DAG 有向无环图和划分 stage
欢送大家关注我的公众号
- 网站:http://ml-union.cn
- 公众号:阿药算法
- 公众号二维码:
也欢送大家增加我的微信,一起交换。
- 集体微信:ayao-algo