大型租车门户网站商业版源码,网站打开慢如何优化,家在深圳歌曲,客户关系管理流程图文章目录1. Hadoop、Spark1.1 hadoop1.2 spark1.3 MapReduce1.3.1 概念1.3.1 MapReduce执行流程2、机器学习场景3、推荐系统#xff08;预测电影等级#xff09;4、CTR#xff08;点击通过率 - 广告#xff09;5、SVM5.1 svm的原理5.2 SVM的核技巧6、K-means6.1 K-mean…
文章目录1. Hadoop、Spark1.1 hadoop1.2 spark1.3 MapReduce1.3.1 概念1.3.1 MapReduce执行流程2、机器学习场景3、推荐系统预测电影等级4、CTR点击通过率 - 广告5、SVM5.1 svm的原理5.2 SVM的核技巧6、K-means6.1 K-means算法6.2、如何用 hadoop 实现 k-means7、naive bayes和logistic regression的区别8、生成模型、判别模型9、LDA的原理和推导10、做广告点击率CTR预测用哪些数据什么算法10.1 特征选择与使用10.2 点击率模型的评估方法10.3 LR人工 特征工程 风光不再10.4、逻辑回归11、常见计算广告点击率CTR预估算法11.1**CTR架构**11.2主要算法1.Logistic Regression2.PLOY2通过特征的二项式组合来建模3.Factorization MachineFM4.Field-aware FMFFM5.FNN(前向神经网络在CTR中的应用)6.CCPM卷积神经网络在CTR中的应用7.PNN8.DeepFM9.其他方法12、推荐系统的算法中KNN和矩阵分解各自适用场景12.1 矩阵分解12.2 矩阵分解的优劣1. Hadoop、Spark
1.1 hadoop
Apache Hadoop软件库是一个允许使用简单编程模型跨计算机集群处理大型数据集合的框架其设计的初衷是将单个服务器扩展成上千个机器组成的一个集群为大数据提供计算服务其中每个机器都提供本地计算和存储服务。
主要解决两大核心问题大数据存储 大数据处理
1.2 spark
spark是一个和Hadoop一样思路的大数据处理框架但是Hadoop是基于磁盘计算的而spark是基于内存计算的。
spark相比于Hadoop的优势
速度快Apache Spark拥有先进的DAG调度器、查询优化器以及物理执行引擎从而高性能的实现批处理和流数据处理易用性可以使用JavaScalaPythonR以及SQL快速的写Spark应用通用性支持SQL流数据处理以及复杂分析Spark拥有一系列库包括SQL和DataFrame用于机器学习的MLib,支持图计算GraphX以及流计算模块Streaming。你可以在一个应用中同时组合这些库。 支持多种模式运行平台包括Hadoop,Apache Mesos,Kubernete,standalone或者云上也可以获取各种数据源上的数据
1.3 MapReduce
1.3.1 概念
MapReduce是一种并行可扩展计算模型 MapReduce由JobTracker和TaskTracker组成。JobTracker负责资源管理和作业控制TaskTracker负责任务的运行。
1.3.1 MapReduce执行流程
(1) 开发人员编写好MapReduce program将程序打包运行。 (2) JobClient向JobTracker申请可用JobJobTracker返回JobClient一个可用Job ID。 (3) JobClient得到Job ID后将运行Job所需要的资源拷贝到共享文件系统HDFS中。 (4) 资源准备完备后JobClient向JobTracker提交Job。 (5) JobTracker收到提交的Job后初始化Job。 (6) 初始化完成后JobTracker从HDFS中获取输入splits(作业可以该启动多少Mapper任务)。 (7) 与此同时TaskTracker不断地向JobTracker汇报心跳信息并且返回要执行的任务。 (8) TaskTracker得到JobTracker分配(尽量满足数据本地化)的任务后向HDFS获取Job资源(若数据是本地的不需拷贝数据)。 (9) 获取资源后TaskTracker会开启JVM子进程运行任务
MapReduce编程主要组件 2、机器学习场景
搜索、广告、垃圾过滤、安全、推荐系统…
3、推荐系统预测电影等级
对于机器学习来说特征是非常重要的对ML算法影响很大 推荐系统自动的替你学习到一组很好的特征量
4、CTR点击通过率 - 广告
CTRClick-Through-Rate即点击通过率是互联网广告常用的术语指网络广告图片广告/文字广告/关键词广告/排名广告/视频广告等的点击到达率即该广告的实际点击次数除以广告的展现量。 CTR是衡量互联网广告效果的一项重要指标
CTR指在搜索引擎中输入关键词后进行搜索然后按竞价等因素把相关的网页按顺序进行排列出来然后用户会选择自己感兴趣的网站点击进去把一个网站所有搜索出来的次数作为总次数把用户点击并进入网站的次数占总次数的比例叫点击率。
5、SVM
5.1 svm的原理
1大间隔分类超平面线性二分类找到一条更“胖”更健壮的分割线
2分割线的确定只与支持向量有关
3噪声点是造成过拟合的主要原因
4分界面与支持向量的距离 1/||w||
为什么 5.2 SVM的核技巧
将特征转换、z空间内积计算 合起来会简化计算 6、K-means
6.1 K-means算法
K-means是聚类算法中最简单的一种将样本聚类成k个簇cluster
K均值是一个迭代方法 1.簇分配 2.移动聚类中心 3.当聚类中心不再变化时聚类完成
K值的选择 肘部法则统计不同K下的模型的性能找到性能突然降低的那个点为拐点则为我们的K场景需求
优点算法简单、簇类时效果好缺点大数据计算开销大K值难以估计随机初始影响大
6.2、如何用 hadoop 实现 k-means
写mapreduce程序实现kmeans算法我们的思路可能是这样的 1 用一个全局变量存放上一次迭代后的质心
2 map里计算每个质心与样本之间的距离得到与样本距离最短的质心以这个质心作为key样本作为value输出
3 reduce里输入的key是质心value是其他的样本这时重新计算聚类中心将聚类中心put到一个全部变量t中。
4在main里比较前一次的质心和本次的质心是否发生变化如果变化则继续迭代否则退出。
本文的思路基本上是按照上面的步骤来做的只不过有几个问题需要解决
1 Hadoop是不存在自定义的全局变量的所以上面定义一个全局变量存放质心的想法是实现不了的所以一个替代的思路是将质心存放在文件中
2 存放质心的文件在什么地方读取如果在map中读取那么可以肯定我们是不能用一个mapreduce实现一次迭代所以我们选择在main函数里读取质心然后将质心set到configuration中configuration在map和reduce都是可读
7、naive bayes和logistic regression的区别 Naive Bayes是一个生成模型在计算P(y|x)之前先要从训练数据中计算P(x|y)和P(y)的概率从而利用贝叶斯公式计算P(y|x)。Logistic Regression是一个判别模型它通过在训练数据集上最大化判别函数P(y|x)学习得到不需要知道P(x|y)和P(y)。 Naive Bayes是建立在条件独立假设基础之上的设特征X含有n个特征属性X1X2…Xn那么在给定Y的情况下X1X2…Xn是条件独立的。Logistic Regression的限制则要宽松很多如果数据满足条件独立假设Logistic Regression能够取得非常好的效果当数据不满度条件独立假设时Logistic Regression仍然能够通过调整参数让模型最大化的符合数据的分布从而训练得到在现有数据集下的一个最优模型。 当数据集比较小的时候应该选用Naive Bayes为了能够取得很好的效果数据的需求量为O(log n)当数据集比较大的时候应该选用Logistic Regression为了能够取得很好的效果数据的需求量为O( n) Naive Bayes运用了比较严格的条件独立假设为了计算P(y|x)我们可以利用统计的方法统计数据集中P(x|y)和P(y)出现的次数从而求得P(x|y)和P(y)。因而其所需的数据量要小一些为O(log n).Logistic Regression在计算时是在整个参数空间进行线性搜索的需要的数据集就更大为O( n)
8、生成模型、判别模型 9、LDA的原理和推导
LDA将高维样本投影到具有最佳判别效果的低维矢量空间使得降维样本在新的子空间内类间距离最大而类内距离最小即在该低维空间内有最大的可分性。
LDA 既可以实现降维也能完成分类。
PCA和LDA非常相似最终都是解一个矩阵特征值的问题
10、做广告点击率CTR预测用哪些数据什么算法
logistic regression模型是比较简单而且实用的 在训练方法确定后对ctr预估起到决定性作用的是选用的特征
10.1 特征选择与使用
做点击率预估需要两方面的数据一方面是广告的数据另一方面是用户的数据现在所有的数据都有那么工作就是利用这两方面的数据评估用户点击这个广告的可能性也就是概率。
用户的特征是比较多的用户的年龄性别地域职业学校手机平台等等。广告的特征如广告大小广告文本广告所属行业广告图片。反馈的特征如每个广告的实时ctr广告跟性别交叉的ctr
1.特征选择
2.特征处理
离散化特征年龄20-30之间用1个交叉连续特征离散化
3.特征的过滤和修正 经过修正后的ctr再做特征实际线上效果有了比较大的提升。
10.2 点击率模型的评估方法
评估点击率模型的好坏有各种定性的或定量的、线上的或线下的方法。但是不论什么样的评测方法其本质都是一样就是要看这个模型被点击的展示与没被点击的展示之间的区别。当然如果能找到一个离线可以计算的量化指标是再好不过了。
这样的指标是有一个ROC曲线下的面积术语上称为AUC
10.3 LR人工 特征工程 风光不再
Kdd 2012年起的各届冠军这些比赛型的选手基本占据了前十的位置从使用的模型上基本以fm和gbdt还有神经网络这些非线性模型为主。可以这么说在比赛里逻辑回归加大量的人工特征工程的方案已经很难排到比赛前列靠逻辑回归一个模型包打天下已经成为过去时
10.4、逻辑回归 11、常见计算广告点击率CTR预估算法
11.1CTR架构 如上图主要包括两大部分离线部分、在线部分其中离线部分目标主要是训练出可用模型而在线部分则考虑模型上线后性能可能随时间而出现下降弱出现这种情况可选择使用Online-Learning来在线更新模型
11.2主要算法
1.Logistic Regression 2.PLOY2通过特征的二项式组合来建模
PLOY2就是通过特征的二项式组合来建模这类特征的复杂的内在关系,二项式部分如下图公式 PLOY2有一个明显的问题就是在实际场景中大部分特征都是稀疏的即大部分特征值为0对这些稀疏的特征做二项式组合会发现最后大部分特征值都是0而在梯度更新时当大部分feature为0时其实梯度并不更新所以PLOY2的方法在实际场景中并不能比较好地解决这类特征组合来建模更复杂线性关系的问题。
3.Factorization MachineFM
FM的基本原理是将这些二项式矩阵做矩阵分解将高维稀疏的特征向量映射到低维连续向量空间然后根据内积表示二项式特征关系 FM通过对二项式稀疏进行低维连续空间的转换能够有效地解决PLOY2中存在的二次项系数在大规模系数数据下不更新的问题另外由于训练预测复杂度均为线性PLOY2SVM这样逻辑下由于要计算多项式核复杂度是n^2由于FM的这几个特征在实际场景中FM也大规模的应用在CTR中尤其是在数据极其系数的场景下FM效果相对于其他算法有很明星的改善。
4.Field-aware FMFFM
FMM全程是 Field-aware FactorizationMachine相对于FM增加了Field信息每个特征属于一个field
5.FNN(前向神经网络在CTR中的应用)
6.CCPM卷积神经网络在CTR中的应用
7.PNN
主要是在深度学习网络中增加了一个inner/outer product layer用来建模特征之前的关系如下图Product layer部分Z是weight_featureP部分weight_I(feature_i,feature_j)用来建模二项式关系
8.DeepFM
9.其他方法
GBDTLRFacebook提出利用GBDT探索海量特征空间的特征组合减少特征工程工作量性能很好MLR阿里妈妈提出的一种增强LR模型将region的划分考虑进去来建模非线性关系感觉类似于深度学习的Attention机制据说在阿里妈妈相关业务提升很多
**总结 ** 前面讨论了一些CTR常见的方法重点介绍了Factorization Machine及其变种Field-Aware Factorization Machine还有和深度学习的结合个人感觉PNN的逻辑比较有意思完全使用神经网络的思维模型重塑了FM为后面DeepFM扩展wide and deep的工作打下基础减少了wide and deep中需要的一些基本的特征工程工作wide部分二次项工作上面只是涉及到模型的算法部分在实际中可以去探讨并不能说明一定性能就好另外由于架构的限制综合考虑其他方面的因素如请求时间、模型复杂度也是最终是否采用相关算法的考虑因素
12、推荐系统的算法中KNN和矩阵分解各自适用场景
12.1 矩阵分解
我们从二分类的线性回归的式子可以看出其实最终学习到的模型就是对特征X的加权求和而我们通过数据学习到的就是加权中的权重。在实际的生产环境中原始的数据或存在大量的零尤其是在对类别型的数据作完one-hot编码处理后而且未经过特征提取的数据直接用于训练效果较差。因此在推荐和广告领域我们经常要做的就是对特征进行组合比较传统的方法是对特征来两两进行组合。但是正如前面所说的实际开发环境中特征X会有非常多的零通过简单的两两组合只会生成更加大的稀疏矩阵这对于很多机器学习模型都是致命的尤其是以梯度下降优化算法的模型所以我们就想着能不能对这个高维的稀疏矩阵分解成2个低维的稠密矩阵。这便是矩阵分解的方法由来但是直接对矩阵进行分解随着矩阵大小的增加求解的复杂度增加所以为啥不直接将模型的优化直接考虑进矩阵的分解中最终得到的矩阵直接就是模型的参数。FM便是这样的技术通过对原始数据矩阵的分解通过迭代的方法通过求解矩阵分解后使损失函数最小情况下的权重矩阵然后改权重矩阵便是最终模型的参数。
12.2 矩阵分解的优劣
优点是
比较容易编程实现比较低的时间和空间复杂度预测的精度比较高非常好的扩展性
缺点 推荐的结果不具有很好的可解释性。因为把ratings matrix分解成user-factor matrix和item-factor matrix这里的factor很难用实际意义的概念来解释。不过矩阵分解的过程相当于一个软聚类的过程得到的每一个factor相当于每一个聚类后的分组只是我们没有一个通用的方法来为这些分组命名。 但是在实际的应用中我们可以提取这些分组中最突出的特点来给这些factor命名。比如拿新闻资讯类的推荐系统来说做好分解之后每个factor都可以看成是一类资讯可以从这些资讯中提取一些特征来给这个factor命名。