Awesome!涵盖ML/DL/NLP/推荐/风控/数学等知识点大列表

Awesome!涵盖ML/DL/NLP/推荐/风控/数学等知识点大列表

作者 | SladeSal & tcandzq

原文 | 文末『阅读原文』处

编辑 | NewBeeNLP公众号

继续来分享超赞的github项目,作者是滴滴出行的员工 @SladeSal 及其实习生 @tcandzq,分别从面试官以及面试者两个角度为大家整理了一份算法岗知识点必知必会小手册。主要涵盖了以下几大方向:

  • 基础概念

  • 数学

  • 数据预处理

  • 机器学习

  • 深度学习

  • 自然语言处理

  • 推荐

  • 风控

  • 评价指标

附上github地址:https://github.com/sladesha/Reflection_Summary

以下内容来自作者本人:

  1. 以下内容为我作为面试管的提问,以及陪伴实习生同学@tcandzq参加2020届校招面试各类算法问题及个人理解的汇总,另外,恭喜tcandzq收割到腾讯UGC,阿里算法中台,头条广告推荐offer,????

  2. 部分内容为手记pdf内容,因为公式实在太多,手写比较快,笔记潦草,见谅,内容部分会引用第三方的观点,但是一定会结合自己的感受和体会,一定有存疑和不完善的地方,欢迎大家补充和质疑打脸

  3. 现在算法工程师的面试以下内容都不会直接提问,而是以项目交流的方式去挖掘在一个问题上的理论理解的深度,建议大家结合实际工作中的case去思考

基础概念

方差和偏差

  • 解释方差

  • 解释偏差

  • 模型训练为什么要引入偏差和方差?请理论论证

  • 什么情况下引发高方差

  • 如何解决高方差问题

  • 以上方法是否一定有效

  • 如何解决高偏差问题

  • 以上方法是否一定有效

  • 遇到过的机器学习中的偏差与方差问题

  • 就理论角度论证Bagging、Boosting的方差偏差问题

  • 遇到过的深度学习中的偏差与方差问题

  • 方差、偏差与模型的复杂度之间的关系

生成与判别模型

  • 什么叫生成模型

  • 什么叫判别模型

  • 什么时候会选择生成/判别模型

  • CRF/朴素贝叶斯/EM/最大熵模型/马尔科夫随机场/混合高斯模型

  • 我的理解

先验概率和后验概率

  • 写出全概率公式&贝叶斯公式

  • 说说你怎么理解为什么有全概率公式&贝叶斯公式

  • 什么是先验概率

  • 什么是后验概率

  • 经典概率题

频率概率

  • 极大似然估计 - MLE

  • 最大后验估计 - MAP

  • 极大似然估计与最大后验概率的区别

  • 到底什么是似然什么是概率估计

AutoML

  • AutoML问题构成

  • 特征工程选择思路

  • 模型相关的选择思路

  • 常见梯度处理思路

  • AutoML参数选择所使用的方法

  • 讲讲贝叶斯优化如何在automl上应用

  • 以高斯过程为例,超参搜索的f的最优解求解acquisition function有哪些

  • 高斯过程回归手记

  • AutoSklearn详解手记

  • AutoML常规思路手记

数学

数据质量

  • 期望

  • 方差

  • 标准差

  • 协方差

  • 相关系数

最大公约数问题

  • 辗转相除法

  • 其他方法

牛顿法

  • 迭代公式推导

  • 实现它

  • 拟牛顿法

概率密度分布

  • 均匀分布

  • 伯努利分布

  • 二项分布

  • 高斯分布

  • 拉普拉斯分布

  • 泊松分布

  • 平面曲线的切线和法线

  • 平面曲线的切线

  • 平面曲线的法线

导数

  • 四则运算

  • 常见导数

  • 复合函数的运算法则

  • 莱布尼兹公式

微分中值定理

  • 费马定理

  • 拉格朗日中值定理

  • 柯西中值定理

泰勒公式

  • 泰勒公式

欧拉公式

  • 欧拉公式

矩阵

  • 范数

  • 特征值分解,特征向量

  • 正定性

概率论

  • 条件概率

  • 独立

  • 概率基础公式

  • 全概率

  • 贝叶斯

  • 切比雪夫不等式

  • 抽球

  • 纸牌问题

  • 棍子/绳子问题

  • 贝叶斯题

  • 选择时间问题

  • 0~1均匀分布的随机器如何变化成均值为0,方差为1的随机器

  • 抽红蓝球球

数据预处理

数据平衡

  • 为什么要对数据进行采样

  • 是否一定需要对原始数据进行采样平衡

  • 有哪些常见的采样方法

  • 能否避免采样

  • 你平时怎么用采样方法

异常点处理

  • 统计方法

  • 矩阵分解方法

  • 特征值和特征向量的本质是什么

  • 矩阵乘法的实际意义

  • 密度的离群点检测

  • 聚类的离群点检测

  • 如何处理异常点

缺失值处理

  • 是不是一定需要对缺失值处理

  • 直接填充方法有哪些

  • 模型插值方法有哪些?及方法的问题

  • 如何直接离散化

  • hold位填充方法有哪些

  • 怎么理解分布补全

  • random方法使用前提

  • 总结

特征选择

  • 为什么要做特征选择

  • 从哪些方面可以做特征选择

  • 既然说了两个方向,分别介绍一些吧

特征提取

  • 为什么需要对数据进行变换

  • 归一化和标准化之间的关系

  • 连续特征常用方法

  • 离散特征常用方法

  • 文本特征

  • 画一个最简单的最快速能实现的框架

机器学习

聚类

  • 请问从EM角度理解kmeans

  • 为什么kmeans一定会收敛

  • kmeans初始点除了随机选取之外的方法

线性回归

  • 损失函数是啥

  • 最小二乘/梯度下降手推

  • 介绍一下岭回归

  • 什么时候使用岭回归

  • 什么时候用Lasso回归

逻辑回归

  • logistic分布函数和密度函数,手绘大概的图像

  • LR推导,基础5连问

  • 梯度下降如何并行化

  • LR明明是分类模型为什么叫回归

  • 为什么LR可以用来做CTR预估

  • 满足什么样条件的数据用LR最好

  • LR为什么使用sigmoid函数作为**函数?其他函数不行吗

  • 利用几率odds的意义在哪

  • Sigmoid函数到底起了什么作用

  • LR为什么要使用极大似然函数,交互熵作为损失函数?那为什么不选平方损失函数的呢

  • LR中若标签为+1和-1,损失函数如何推导?

  • 如果有很多的特征高度相关或者说有一个特征重复了100遍,会造成怎样的影响

  • 为什么要避免共线性

  • LR可以用核么?可以怎么用

  • LR中的L1/L2正则项是啥

  • lr加l1还是l2好

  • 正则化是依据什么理论实现模型优化

  • LR可以用来处理非线性问题么

  • 为什么LR需要归一化或者取对数

  • 为什么LR把特征离散化后效果更好?离散化的好处有哪些

  • 逻辑回归估计参数时的目标函数逻辑回归的值表示概率吗

  • LR对比万物

  • LR梯度下降方法

  • LR的优缺点

  • 除了做分类,你还会用LR做什么

  • 你有用过sklearn中的lr么?你用的是哪个包

  • 看过源码么?为什么去看

  • 谈一下sklearn.linear_model.LogisticRegression中的penalty和solver的选择

  • 谈一下sklearn.linear_model.LogisticRegression中对多分类是怎么处理的

  • 我的总结

决策树

  • 常见决策树

  • 简述决策树构建过程

  • 详述信息熵计算方法及存在问题

  • 详述信息增益计算方法

  • 详述信息增益率计算方法

  • 解释Gini系数

  • ID3存在的问题

  • C4.5相对于ID3的改进点

  • CART的连续特征改进点

  • CART分类树建立算法的具体流程

  • CART回归树建立算法的具体流程

  • CART输出结果的逻辑

  • CART树算法的剪枝过程是怎么样的

  • 树形结构为何不需要归一化

  • 决策树的优缺点

贝叶斯

  • 解释一下朴素贝叶斯中考虑到的条件独立假设

  • 讲一讲你眼中的贝叶斯公式和朴素贝叶斯分类差别

  • 朴素贝叶斯中出现的常见模型有哪些

  • 出现估计概率值为 0 怎么处理

  • 朴素贝叶斯的优缺点

  • 朴素贝叶斯与 LR 区别

随机森林

  • 解释下随机森林

  • 随机森林用的是什么树

  • 随机森林的生成过程

  • 解释下随机森林节点的分裂策略

  • 随机森林的损失函数是什么

  • 为了防止随机森林过拟合可以怎么做

  • 随机森林特征选择的过程

  • 是否用过随机森林,有什么技巧

  • RF的参数有哪些,如何调参

  • RF的优缺点

集成学习

  • 介绍一下Boosting的思想

  • 最小二乘回归树的切分过程是怎么样的

  • 有哪些直接利用了Boosting思想的树模型

  • gbdt和boostingtree的boosting分别体现在哪里

  • gbdt的中的tree是什么tree?有什么特征

  • 常用回归问题的损失函数

  • 常用分类问题的损失函数

  • 什么是gbdt中的残差的负梯度

  • 如何用损失函数的负梯度实现gbdt

  • 拟合损失函数的负梯度为什么是可行的

  • 即便拟合负梯度是可行的,为什么不直接拟合残差?拟合负梯度好在哪里

  • Shrinkage收缩的作用

  • feature属性会被重复多次使用么

  • gbdt如何进行正则化的

  • 为什么集成算法大多使用树类模型作为基学习器?或者说,为什么集成学习可以在树类模型上取得成功

  • gbdt的优缺点

  • gbdt和randomforest区别

  • GBDT和LR的差异

  • xgboost对比gbdt/boosting Tree有了哪些方向上的优化

  • xgboost和gbdt的区别

  • xgboost优化目标/损失函数改变成什么样

  • xgboost如何使用MAE或MAPE作为目标函数

  • xgboost如何寻找分裂节点的候选集

  • xgboost如何处理缺失值

  • xgboost在计算速度上有了哪些点上提升

  • xgboost特征重要性是如何得到的

  • xGBoost中如何对树进行剪枝

  • xGBoost模型如果过拟合了怎么解决

  • xgboost如何调参数

  • XGboost缺点

  • LightGBM对Xgboost的优化

  • LightGBM亮点

FM/FFM

SVM

  • 简单介绍SVM

  • 什么叫最优超平面

  • 什么是支持向量

  • SVM 和全部数据有关还是和局部数据有关

  • 加大训练数据量一定能提高SVM准确率吗

  • 如何解决多分类问题

  • 可以做回归吗,怎么做

  • SVM 能解决哪些问题

  • 介绍一下你知道的不同的SVM分类器

  • 什么叫软间隔

  • SVM 软间隔与硬间隔表达式

  • SVM原问题和对偶问题的关系/解释原问题和对偶问题

  • 为什么要把原问题转换为对偶问题

  • 为什么求解对偶问题更加高效

  • alpha系数有多少个

  • KKT限制条件,KKT条件有哪些,完整描述

  • 引入拉格朗日的优化方法后的损失函数解释

  • 核函数的作用是啥

  • 核函数的种类和应用场景

  • 如何选择核函数

  • 常用核函数的定义

  • 核函数需要满足什么条件

  • 为什么在数据量大的情况下常常用lr代替核SVM

  • 高斯核可以升到多少维?为什么

  • SVM和逻辑斯特回归对同一样本A进行训练,如果某类中增加一些数据点,那么原来的决策边界分别会怎么变化

  • 各种机器学习的应用场景分别是什么?例如,k近邻,贝叶斯,决策树,svm,逻辑斯蒂回归

  • Linear SVM 和 LR 有什么异同

深度学习

框架

  • 为什么要用深度召回

dropout

  • dropout如何作用的

  • L1为什么在深度学习中不常用

  • 用贝叶斯机率说明Dropout的原理

  • 为什么有效

batch_normalization

  • 你觉得bn过程是什么样的

  • 手写一下bn过程

  • 知道LN么?讲讲原理

bp过程

embedding

softmax

梯度消失/爆炸

残差网络

  • 介绍残差网络

  • 残差网络为什么能解决梯度消失的问题

  • 残差网络残差作用

  • 你平时有用过么?或者你在哪些地方遇到了

Attention

  • Attention对比RNN和CNN,分别有哪点你觉得的优势

  • 写出Attention的公式

  • 解释你怎么理解Attention的公式的

  • Attention模型怎么避免词袋模型的顺序问题的困境的

  • Attention机制,里面的q,k,v分别代表什么

  • 为什么self-attention可以替代seq2seq

  • 维度与点积大小的关系是怎么样的,为什么使用维度的根号来放缩

自然语言处理

GloVe

  • GolVe的损失函数

  • 解释GolVe的损失函数

  • 为什么GolVe会用的相对比W2V少

Word2Vec

  • 从隐藏层到输出的Softmax层的计算有哪些方法

  • 层次softmax流程

  • 负采样流程

  • word2vec两种方法各自的优势

  • 怎么衡量学到的embedding的好坏

  • word2vec和glove区别

  • 你觉得word2vec有哪些问题

CRF

  • 阐述CRF原理

  • 线性链条件随机场的公式是

  • CRF与HMM区别

  • Bert+crf中的各部分作用详解

LDA

  • 详述LDA原理

  • LDA中的主题矩阵如何计算

  • LDA的共轭分布解释下

  • PLSA和LDA的区别

  • 怎么确定LDA的topic个数

  • LDA和Word2Vec区别?LDA和Doc2Vec区别

  • LDA算法里面Dirichlet分布的两个参数alpha和beta怎样确定?trick?

  • 使用过LDA,你有什么问题?

  • 你用真实用过吗?对比过效果吗?

  • 超参数\alpha \beta对训练的影响?

  • LDA你会有哪些常规的预处理步骤

  • LDA的最大似然不好求的原因?为什么不直接用EM?为什么LDA引入了一堆数学理论?

LSTM

GRU

Bert:实现/使用的代码

  • Bert的双向体现在什么地方

  • Bert的是怎样预训练的

  • 在数据中随机选择 15% 的标记,其中80%被换位[mask],10%不变、10%随机替换其他单词,原因是什么

  • 为什么BERT有3个嵌入层,它们都是如何实现的

  • bert的损失函数

  • 手写一个multi-head attention

  • 长文本预测如何构造Tokens

  • 你用过什么模块?bert流程是怎么样的

  • 知道分词模块:FullTokenizer做了哪些事情么

  • Bert中如何获得词意和句意

  • 源码中Attention后实际的流程是如何的

  • 为什么要在Attention后使用残差结构

  • 平时用官方Bert包么?耗时怎么样

  • 你觉得BERT比普通LM的新颖点

  • elmo、GPT、bert三者之间有什么区别

文本相似度计算

  • 有哪些常用的方法

TextCNN

  • 讲一下textcnn

  • textCNN中核的作用

  • max-pooling选择的目的

  • textcnn和fasttext区别

  • 如果你知道上面说的核心问题,那么有什么解决方案吗?

  • 为什么卷积核都不大?且常见都都是奇数?

  • 为什么不建议用句长作为核大小

  • padding是不是对最后结果没有影响

推荐

DIN:实现/使用的代码

  • 主要使用了什么机制

  • activation unit的作用

  • DICE怎么设计的

  • DICE使用的过程中,有什么需要注意的地方

DeepFM:实现/使用的代码

  • DNN与DeepFM之间的区别

  • Wide&Deep与DeepFM之间的区别

  • 你在使用deepFM的时候是如何处理欠拟合和过拟合问题的

  • DeepFM怎么优化的

  • 不定长文本数据如何输入deepFM

  • deepfm的embedding初始化有什么值得注意的地方吗

  • Xavier初始化

  • He初始化

YoutubeNet:实现/使用的代码

  • 变长数据如何处理的

  • input是怎么构造的

  • 最后一次点击实际如何处理的

  • output的是时候train和predict如何处理的

  • 如何进行负采样的

  • item向量在softmax的时候你们怎么选择的

  • Example Age的理解

  • 什么叫做不对称的共同浏览(asymmetric co-watch)问题

  • 为什么不采取类似RNN的Sequence model

  • YouTube如何避免百万量级的softmax问题的

  • serving过程中,YouTube为什么不直接采用训练时的model进行预测,而是采用了一种最近邻搜索的方法

  • Youtube的用户对新视频有偏好,那么在模型构建的过程中如何引入这个feature

  • 在处理测试集的时候,YouTube为什么不采用经典的随机留一法(random holdout),而是一定要把用户最近的一次观看行为作为测试集

  • 整个过程中有什么亮点?有哪些决定性的提升

Wide&Deep

MLR

Neural Network全家桶

XDeepFM:实现/使用的代码

  • 选用的原因,考虑使用的场景是什么

  • 什么叫显示隐式?什么叫元素级/向量级?什么叫做高阶/低阶特征交互

  • 简单介绍一下XDeepFm的思想

  • 和DCN比,有哪些核心的变化

  • 时间复杂度多少

Recall

  • 召回层构造loss和精排层的差异?

  • 离线评估有什么办法

  • 负样本为什么不能用点击未展示

  • 解释一下hard negative

  • 什么样本是hard和easy的

  • 如何处理hard部分

风控

  • 孤立森林

  • 评分卡

评价指标

  • 二分类

  • 多分类

  • 回归指标

  • 聚类指标

  • 排序指标

一起交流

重磅推荐!NewBeeNLP目前已经建立了多个不同方向交流群(机器学习 / 深度学习 / 自然语言处理 / 面试交流 / 大厂内推 等),赶紧添加下方微信加入一起讨论学习吧!

Awesome!涵盖ML/DL/NLP/推荐/风控/数学等知识点大列表

END -

Awesome!涵盖ML/DL/NLP/推荐/风控/数学等知识点大列表

Awesome!涵盖ML/DL/NLP/推荐/风控/数学等知识点大列表

全方位解读 | Facebook的搜索是怎么做的? 2020-10-09

我是如何收集信息的 2020-10-07

自然语言处理「迷惑行为大赏」第二季 2020-10-06

Awesome!涵盖ML/DL/NLP/推荐/风控/数学等知识点大列表

记得把NewBeeNLP设为星标哦Awesome!涵盖ML/DL/NLP/推荐/风控/数学等知识点大列表

等你在看Awesome!涵盖ML/DL/NLP/推荐/风控/数学等知识点大列表