## 项目知识点评估:
1、fm + ffm + lr
# fm 相比 lr 引进了特征组合(二次项)
# fm 解决了数据稀疏性导致的参数训练不充分问题(尤其对于one-hot编码之后)
# ffm 增加了field,隐向量不仅与特征相关,也与field相关
# 假设样本的 n 个特征属于 f 个field,那么FFM的二次项有 nf个隐向量。
# 而在FM模型中,每一维特征的隐向量只有一个。
# FM可以看作FFM的特例,是把所有特征都归属到一个field时的FFM模型。
2、gbdt + xgboost (结合泰勒公式 + 梯度下降 + 牛顿法 + 参数空间 + 函数空间 )
# XGB还支持线性分类器
# XGB对损失函数进行二阶泰勒展开
# xgboost在代价函数里加入了正则项(叶子节点个数、每个叶子节点上输出的score的L2模的平方和)
# XGB的权重衰减(shrinkage)
# XGB支持列抽样
# XGB对缺失值的处理,对于特征的值有缺失的样本,XGBoost还可以自动学习出它的分裂方向
# xgboost工具支持并行
* 类别特征必须编码,因为xgboost把特征默认都当成数值型的
* XGBoost的特征重要性是如何得到的?某个特征的重要性(feature score),等于它被选中为树节点分裂特征的次数的和。
比如特征A在第一次迭代中(即第一棵树)被选中了1次去分裂树节点,在第二次迭代被选中2次…..那么最终特征A的feature score就是 1+2+….
3、深度学习(cnn + rnn)
4、常用聚类算法
5、强化学习
6、图计算(simrank + Graph Embadding)
7、NLP(Word2Vector + Lda)
(1)Word2Vector
# 基于 Hierarchical Softmax 的模型(CBOW & Skip-gram)
# 基于 Negative Sampling 的模型(CBOW & Skip-gram)
# 算法细节:https://blog.youkuaiyun.com/itplus/article/details/37999613
(2)Lda
# 多项式分布 & Dirichlet分布
# 涉及知识点
* 蒙特卡洛数值积分
* 均匀分布,Box-Muller 变换
* Monte Carlo principle
* 接受-拒绝抽样(Acceptance-Rejection sampling)
* 重要性抽样(Importance sampling)
* 马尔科夫链 & 马尔科夫稳态 & 细致平稳条件
* MCMC——Metropolis-Hasting算法(解决MCMC采样接受率过低问题)
* MCMC——Gibbs Sampling算法(M-H采样有两个缺点:
一是需要计算接受率,在高维时计算量大。并且由于接受率的原因导致算法收敛时间变长。
二是有些高维数据,特征的条件概率分布好求,但是特征的联合分布不好求
)
# 算法细节:http://www.cnblogs.com/pinard/p/6625739.html
> 概率分布采样(蒙特卡罗方法的关键是得到x的概率分布。如果求出了x的概率分布,我们可以基于概率分布去采样基于这个概率分布的n个x的样本集)
> 接受-拒绝采样(对于概率分布不是常见的分布,一个可行的办法是采用接受-拒绝采样来得到该分布的样本)
> 要想将蒙特卡罗方法作为一个通用的采样模拟求和的方法,必须解决如何方便得到各种复杂概率分布的对应的采样样本集的问题-->引出马尔科夫链
> 马尔科夫链模型的状态转移矩阵收敛到的稳定概率分布与我们的初始状态概率分布无关。这是一个非常好的性质,
也就是说,如果我们得到了这个稳定概率分布对应的马尔科夫链模型的状态转移矩阵,则我们可以用任意的概率分布样本开始,
带入马尔科夫链模型的状态转移矩阵,这样经过一些序列的转换,最终就可以得到符合对应稳定概率分布的样本
> 重要的问题是,随意给定一个平稳分布π,如何得到它所对应的马尔科夫链状态转移矩阵P呢?--> 引出MCMC的采样,以及它的使用改进版采样: M-H采样和Gibbs采样
> 在解决从平稳分布π, 找到对应的马尔科夫链状态转移矩阵P之前,我们还需要先看看马尔科夫链的细致平稳条件
> 常见的马尔科夫链状态转移矩阵Q通过一定的接受-拒绝概率得到目标转移矩阵P
8、常见优化算法(SGD + OGD + BGD + FTRL)
# L1在online(SGD->不是最优方向)模式下,不能产生更好的稀疏性
# FOBOS -> RDA -> FTRL
9、贝叶斯平滑
10、Spark性能优化(JVM/GC调优)
11、不平衡样本采样之CTR校准
12、learn to rank
13、不平衡样本的处理方法(过采样 + 下采样 + SMOTE&过采样)
14、推荐系统EE问题 & 冷启动问题
# 常用Bandit算法(累积遗憾->评估效果)
* Thompson sampling算法
* UCB算法
* Epsilon-Greedy算法
* 朴素Bandit算法
* LinUCB(UCB算法加入特征信息)
* COFIBA算法(Bandit和协同过滤结合)
## 基础理论
(1)最优化理论
# 无约最优化(BGD & SGD & MBGD & Momentum & AdaGrad & RMSProp & Adam + 牛顿法(海森矩阵计算量大) + OWL-QN + 共轭梯度法&拟牛顿法(DFP -> BFGS -> L-BFGS))
# 约束最优化(拉格朗日乘子)
(2)信息论(自信息+ 熵 + 条件熵 + 联合熵 + 互信息 + 相对熵(KL散度) + 交叉熵 + 信息增益 + 信息增益率 + 基尼系数)
(3)VC维(增长函数 & growth function + 对分 & dichotomy+ 打散 & shattering+ 断点 & break point)
# 测试集合的loss是否和训练集合的loss接近?VC维越小,理论越接近。
# 训练集合的loss是否足够小?VC维越大,loss理论越小。
(4)bias-variance tradeoff (偏差 + 方差)
(5)辨别模型 vs 生成模型
(6)常见损失函数(0-1损失 + 平方损失 + 绝对损失 + 对数损失 & 对数似然损失)
(7)经验风险 vs 期望风险(大数定律) & 泛化误差
(8)经验风险最小化 vs 结构风险最小化(正则化 & 符合奥卡姆剃刀原理)
(9)最小二乘 vs 梯度下降 vs 极大似然
# 最小二乘和极大似然是目标函数,梯度下降是优化算法。
# 最小二乘和极大似然也不是对立的:最小二乘是从函数形式上来看的,极大似然是从概率意义上来看的。事实上,最小二乘可以由高斯噪声假设+极大似然估计推导出来。
# 梯度下降和最小二乘不是对立的
# logistic回归的参数估计时,损失函数为什么是交叉熵,而不是最小二乘。
# 可能有些人把求解线性最小二乘问题的close form叫最小二乘法,但是这是建立在损失函数是线性最小二乘问题的情况下,所以还是要讨论损失函数的问题。
# 最小二乘法只能解决线性最小二乘问题
# 最小二乘法是一种算法,最小二乘问题是一个loss function
## 概率统计基础
(1)大数定理 & 中心极限定理(高斯分布)
(2)常见概率分布
(3)假设检验理论(u—检验法 & t检验法 & χ2检验法(卡方检验) & F—检验法 & 秩和检验)
(4)最大后验理论 & 贝叶斯估计(贝叶斯派 -> 参数服从某种概率分布)
(5)最大似然理论 & 极大似然估计(频率派 -> 参数是固定的)
(6)EM算法
## 特征处理 & 工程
(0)特征处理
# 缺失值处理(删除 + 补全(平均数 & 正态分布 、中位数 & 偏态分布、众数 & 定性指标、最大值、最小值、固定值、插值) + 忽略(xgboost))
# 异常值处理(单变量离群值检测 & 箱图 + 局部离群值因子检测 + 基于聚类方法的离群值检测)
# 描述变量转为连续变量
(1)特征选择方法
# 包裹式 & Wrapper (递归特征消除算法)
# 过滤式 & Filter(卡方检验 + 信息增益 + 相关系数)
# 嵌入式 & Embedded(正则化 & 岭回归)
(2)特征规范化 & 归一化[0-1]
# 零均值规范化(非线性) & z-score (特征值减去均值,除以标准差)
# 最小-最大规范化(线性)
# 对数函数法
(3)特征离散化
(4)特征交叉 & 组合
## 模型评估
(1)分类模型评估方法(Accuracy + Precision + Recall + F1 score + ROC 曲线 + AUC + PR 曲线)
(2)回归问题评估方法(MSE & 均方误差 + RMSE & 平方根误差 + MAE & 平均绝对差值)
(3)数据不均衡的评估方法
(4)过拟合和欠拟合
# bias-variance tradeoff解释
# 贝叶斯先验解释
## 有监督学习
(0)感知机(原始形式 & 对偶形式)
(1)knn(三要素:K值选择 + 距离度量 + 分类决策规则 & 实现方式kd树)
(2)naive bayse(参数估计:极大似然估计 + 贝叶斯估计 & 拉普拉斯平滑)
(3)bagging & 随机森林(RF)
(4)boosting & gbdt
(5)决策树
(6)LR(并行化&行并行&列并行)
(7)fm
(8)神经网路(典型BP,其本质是梯度下降和链式法则)
## 无监督学习
(1)K-means
(2)均值漂移聚类
(3)混合高斯模型
(4)层次聚类
(5)DBSCAN(密度聚类)
(6)LSI & pLSA & LDA
(7)PCA
(8)SVD & NMF
(9)word2vec
* 聚类分析中距离度量方法(欧氏距离 + 曼哈顿距离 + 切比雪夫距离 + 余弦相似度 + 皮尔森相似度 + Jaccard相似度 + 马氏距离)
## 深度学习
(1)CNN(LeNet5 + AlexNet + VGG&16&19 + Inception&v2&v3&v4 + ResNet)
(2)RNN(LSTM + GRU)
(3)梯度消失和梯度膨胀
* ReLU对比Sigmoid变化:单侧抑制 + 相对宽阔的兴奋边界 + 稀疏激活性
* ReLU -> EIU -> PReLU -> RReLU 成为主流
* Softplus虽具有单侧抑制的作用,但是没有稀疏激活性
## 强化学习
# value-based & 基于价值
(1)Q-learning & Deep Q Network(离线学习)
(2)Sarsa & Sarsa lambda (在线学习)
# policy-based & 基于概率
(1)Policy Gradient
# 基于概率 & 基于价值
(1)Actor Critic(DDPG + A3C + DPPO)
# model free & model base
# 回合更新 & 单步更新
1、fm + ffm + lr
# fm 相比 lr 引进了特征组合(二次项)
# fm 解决了数据稀疏性导致的参数训练不充分问题(尤其对于one-hot编码之后)
# ffm 增加了field,隐向量不仅与特征相关,也与field相关
# 假设样本的 n 个特征属于 f 个field,那么FFM的二次项有 nf个隐向量。
# 而在FM模型中,每一维特征的隐向量只有一个。
# FM可以看作FFM的特例,是把所有特征都归属到一个field时的FFM模型。
2、gbdt + xgboost (结合泰勒公式 + 梯度下降 + 牛顿法 + 参数空间 + 函数空间 )
# XGB还支持线性分类器
# XGB对损失函数进行二阶泰勒展开
# xgboost在代价函数里加入了正则项(叶子节点个数、每个叶子节点上输出的score的L2模的平方和)
# XGB的权重衰减(shrinkage)
# XGB支持列抽样
# XGB对缺失值的处理,对于特征的值有缺失的样本,XGBoost还可以自动学习出它的分裂方向
# xgboost工具支持并行
* 类别特征必须编码,因为xgboost把特征默认都当成数值型的
* XGBoost的特征重要性是如何得到的?某个特征的重要性(feature score),等于它被选中为树节点分裂特征的次数的和。
比如特征A在第一次迭代中(即第一棵树)被选中了1次去分裂树节点,在第二次迭代被选中2次…..那么最终特征A的feature score就是 1+2+….
3、深度学习(cnn + rnn)
4、常用聚类算法
5、强化学习
6、图计算(simrank + Graph Embadding)
7、NLP(Word2Vector + Lda)
(1)Word2Vector
# 基于 Hierarchical Softmax 的模型(CBOW & Skip-gram)
# 基于 Negative Sampling 的模型(CBOW & Skip-gram)
# 算法细节:https://blog.youkuaiyun.com/itplus/article/details/37999613
(2)Lda
# 多项式分布 & Dirichlet分布
# 涉及知识点
* 蒙特卡洛数值积分
* 均匀分布,Box-Muller 变换
* Monte Carlo principle
* 接受-拒绝抽样(Acceptance-Rejection sampling)
* 重要性抽样(Importance sampling)
* 马尔科夫链 & 马尔科夫稳态 & 细致平稳条件
* MCMC——Metropolis-Hasting算法(解决MCMC采样接受率过低问题)
* MCMC——Gibbs Sampling算法(M-H采样有两个缺点:
一是需要计算接受率,在高维时计算量大。并且由于接受率的原因导致算法收敛时间变长。
二是有些高维数据,特征的条件概率分布好求,但是特征的联合分布不好求
)
# 算法细节:http://www.cnblogs.com/pinard/p/6625739.html
> 概率分布采样(蒙特卡罗方法的关键是得到x的概率分布。如果求出了x的概率分布,我们可以基于概率分布去采样基于这个概率分布的n个x的样本集)
> 接受-拒绝采样(对于概率分布不是常见的分布,一个可行的办法是采用接受-拒绝采样来得到该分布的样本)
> 要想将蒙特卡罗方法作为一个通用的采样模拟求和的方法,必须解决如何方便得到各种复杂概率分布的对应的采样样本集的问题-->引出马尔科夫链
> 马尔科夫链模型的状态转移矩阵收敛到的稳定概率分布与我们的初始状态概率分布无关。这是一个非常好的性质,
也就是说,如果我们得到了这个稳定概率分布对应的马尔科夫链模型的状态转移矩阵,则我们可以用任意的概率分布样本开始,
带入马尔科夫链模型的状态转移矩阵,这样经过一些序列的转换,最终就可以得到符合对应稳定概率分布的样本
> 重要的问题是,随意给定一个平稳分布π,如何得到它所对应的马尔科夫链状态转移矩阵P呢?--> 引出MCMC的采样,以及它的使用改进版采样: M-H采样和Gibbs采样
> 在解决从平稳分布π, 找到对应的马尔科夫链状态转移矩阵P之前,我们还需要先看看马尔科夫链的细致平稳条件
> 常见的马尔科夫链状态转移矩阵Q通过一定的接受-拒绝概率得到目标转移矩阵P
8、常见优化算法(SGD + OGD + BGD + FTRL)
# L1在online(SGD->不是最优方向)模式下,不能产生更好的稀疏性
# FOBOS -> RDA -> FTRL
9、贝叶斯平滑
10、Spark性能优化(JVM/GC调优)
11、不平衡样本采样之CTR校准
12、learn to rank
13、不平衡样本的处理方法(过采样 + 下采样 + SMOTE&过采样)
14、推荐系统EE问题 & 冷启动问题
# 常用Bandit算法(累积遗憾->评估效果)
* Thompson sampling算法
* UCB算法
* Epsilon-Greedy算法
* 朴素Bandit算法
* LinUCB(UCB算法加入特征信息)
* COFIBA算法(Bandit和协同过滤结合)
## 基础理论
(1)最优化理论
# 无约最优化(BGD & SGD & MBGD & Momentum & AdaGrad & RMSProp & Adam + 牛顿法(海森矩阵计算量大) + OWL-QN + 共轭梯度法&拟牛顿法(DFP -> BFGS -> L-BFGS))
# 约束最优化(拉格朗日乘子)
(2)信息论(自信息+ 熵 + 条件熵 + 联合熵 + 互信息 + 相对熵(KL散度) + 交叉熵 + 信息增益 + 信息增益率 + 基尼系数)
(3)VC维(增长函数 & growth function + 对分 & dichotomy+ 打散 & shattering+ 断点 & break point)
# 测试集合的loss是否和训练集合的loss接近?VC维越小,理论越接近。
# 训练集合的loss是否足够小?VC维越大,loss理论越小。
(4)bias-variance tradeoff (偏差 + 方差)
(5)辨别模型 vs 生成模型
(6)常见损失函数(0-1损失 + 平方损失 + 绝对损失 + 对数损失 & 对数似然损失)
(7)经验风险 vs 期望风险(大数定律) & 泛化误差
(8)经验风险最小化 vs 结构风险最小化(正则化 & 符合奥卡姆剃刀原理)
(9)最小二乘 vs 梯度下降 vs 极大似然
# 最小二乘和极大似然是目标函数,梯度下降是优化算法。
# 最小二乘和极大似然也不是对立的:最小二乘是从函数形式上来看的,极大似然是从概率意义上来看的。事实上,最小二乘可以由高斯噪声假设+极大似然估计推导出来。
# 梯度下降和最小二乘不是对立的
# logistic回归的参数估计时,损失函数为什么是交叉熵,而不是最小二乘。
# 可能有些人把求解线性最小二乘问题的close form叫最小二乘法,但是这是建立在损失函数是线性最小二乘问题的情况下,所以还是要讨论损失函数的问题。
# 最小二乘法只能解决线性最小二乘问题
# 最小二乘法是一种算法,最小二乘问题是一个loss function
## 概率统计基础
(1)大数定理 & 中心极限定理(高斯分布)
(2)常见概率分布
(3)假设检验理论(u—检验法 & t检验法 & χ2检验法(卡方检验) & F—检验法 & 秩和检验)
(4)最大后验理论 & 贝叶斯估计(贝叶斯派 -> 参数服从某种概率分布)
(5)最大似然理论 & 极大似然估计(频率派 -> 参数是固定的)
(6)EM算法
## 特征处理 & 工程
(0)特征处理
# 缺失值处理(删除 + 补全(平均数 & 正态分布 、中位数 & 偏态分布、众数 & 定性指标、最大值、最小值、固定值、插值) + 忽略(xgboost))
# 异常值处理(单变量离群值检测 & 箱图 + 局部离群值因子检测 + 基于聚类方法的离群值检测)
# 描述变量转为连续变量
(1)特征选择方法
# 包裹式 & Wrapper (递归特征消除算法)
# 过滤式 & Filter(卡方检验 + 信息增益 + 相关系数)
# 嵌入式 & Embedded(正则化 & 岭回归)
(2)特征规范化 & 归一化[0-1]
# 零均值规范化(非线性) & z-score (特征值减去均值,除以标准差)
# 最小-最大规范化(线性)
# 对数函数法
(3)特征离散化
(4)特征交叉 & 组合
## 模型评估
(1)分类模型评估方法(Accuracy + Precision + Recall + F1 score + ROC 曲线 + AUC + PR 曲线)
(2)回归问题评估方法(MSE & 均方误差 + RMSE & 平方根误差 + MAE & 平均绝对差值)
(3)数据不均衡的评估方法
(4)过拟合和欠拟合
# bias-variance tradeoff解释
# 贝叶斯先验解释
## 有监督学习
(0)感知机(原始形式 & 对偶形式)
(1)knn(三要素:K值选择 + 距离度量 + 分类决策规则 & 实现方式kd树)
(2)naive bayse(参数估计:极大似然估计 + 贝叶斯估计 & 拉普拉斯平滑)
(3)bagging & 随机森林(RF)
(4)boosting & gbdt
(5)决策树
(6)LR(并行化&行并行&列并行)
(7)fm
(8)神经网路(典型BP,其本质是梯度下降和链式法则)
## 无监督学习
(1)K-means
(2)均值漂移聚类
(3)混合高斯模型
(4)层次聚类
(5)DBSCAN(密度聚类)
(6)LSI & pLSA & LDA
(7)PCA
(8)SVD & NMF
(9)word2vec
* 聚类分析中距离度量方法(欧氏距离 + 曼哈顿距离 + 切比雪夫距离 + 余弦相似度 + 皮尔森相似度 + Jaccard相似度 + 马氏距离)
## 深度学习
(1)CNN(LeNet5 + AlexNet + VGG&16&19 + Inception&v2&v3&v4 + ResNet)
(2)RNN(LSTM + GRU)
(3)梯度消失和梯度膨胀
* ReLU对比Sigmoid变化:单侧抑制 + 相对宽阔的兴奋边界 + 稀疏激活性
* ReLU -> EIU -> PReLU -> RReLU 成为主流
* Softplus虽具有单侧抑制的作用,但是没有稀疏激活性
## 强化学习
# value-based & 基于价值
(1)Q-learning & Deep Q Network(离线学习)
(2)Sarsa & Sarsa lambda (在线学习)
# policy-based & 基于概率
(1)Policy Gradient
# 基于概率 & 基于价值
(1)Actor Critic(DDPG + A3C + DPPO)
# model free & model base
# 回合更新 & 单步更新