目录

第一部分通用流程:

第二部分:数据挖掘

第三部分:搜索和推荐

第四部分:计算广告

第五部分:深度学习

第六部分:算法工程


第一部分通用流程:

第一章:问题建模:评估指标,样本选择,交叉验证

评估指标:

分类指标、回归指标、聚类指标、排序指标

分类指标:P-R曲线(P纵轴,R横轴、AP值),F1值,ROC曲线(纵轴正样本预测对的召回,横轴正样本预测错的召回、AUC值),对数损失

ps:ROC曲线绘制,先对所有样本的概率进行排序,然后以每个样本的概率为阈值计算FPR和TPR的值,然后进行连接!

ps:AUC值,为ROC曲线下的面积,它的值代表正样本可以排在负样本前面的概率有多大。所以AUC值考虑的是排序的质量,而不是值的大小!

ps:log损失求导后是梯度下降的形式,反映了预测值偏离实际值越大,梯度值就会越大,一般就是先收敛的很快,然后慢、log函数的特征导致损失有不满足性,说明它的可学习空间大!

回归指标:平均绝对误差(MAE,L1),均方根误差(RMSE,L2)

样本选择:

定义:从海量数据中识别和选择对labels相关性高的数据作为输入!

数据去燥(无关数据,噪声数据的修改/drop...)、采样(对标签的类别分层采样保证比例不变)、模型选择(KNN聚类,DBSCAN)。

交叉验证:

K折交叉验证(K-1份训练,1份进行测试,常用K=5/10)留出法(直接测试集和训练集进行切分)bagging采样法(有放回采样,采样n次,然后没有被采样的大约是36.8%,当成测试集。)

ps:采样法改变了样本的分布可能模型学习起来会比较难一些,当数据量足够时候一般采用K折和留出法!数据小的时候可以使用采样(样本分布本身不太好的前提下,在进行随机采样,可以用最大熵原理来表明可能效果会更好!)!

第二章:特征工程

特征提取:

对于线性模型需要将类别进行独热编码,对于复杂一些的模型树模型可以直接处理类别变量。对于神经网络,模型可以自提取特征。

ps:LR一般会放入离散特征,速度快......,增加模型表达.....,离散特征的分布规律简单适用于LR这种简单模型。

ps:文本特征(word2vec,TF-IDF,词袋模型(每个单词的one-hot编码,进行相加),余弦相似度,文本清洗(切分词,去停止词,词性归一化这些),LDA)

ps:特征组合必须要做,可以提高模型的非线性能力,非常适合LR这种简单的线性模型。对非线性模型效果也很好,可以很大程度上提升模型的效果。(引入核函数/暴力组合/手工组合(进行加+-*/等运算))

特征选择:

(过滤型)数据分析策略选取去冗余,去无关(相关性分析/PCA),(嵌入型)模型选取(L1正则,例如xgboost特征重要度选取(选取次数排序),随机森林全量特征建模去掉特征预测查看准确度的下降程度来进行选取。)

ps:特征也会考虑覆盖率的因素(类别分布很不平衡),特别稀疏的特征,但是可能重要性特别大,我就会认为这个有问题,直接过滤掉!

第三章:常用模型:逻辑回归,场感知因子分解机,梯度提升树

逻辑回归:

参数模型(样本分布假设两点分布),L1(LASSO)和L2(RIDGE)是在贝叶斯角度下就是对参数引入了拉普拉斯分布/高斯分布。(无法学到特征间的组合关系)

场感知因子分解机(FFM):

人工的特征组合很麻烦,做暴力组合特征内存吃不消引出了因子分解机模型,可以自动组合特征。(适合稀疏特征,这样可以学到高阶的特征组合,否则只能是二阶组合)

因子分解机原理(FM):(模型特征组合,使用核函数来进行特征的交叉组合。)

ps:通过把参数矩阵分解来达到特征组合来提高模型的能力。

参数矩阵分解,然后组合成2阶内积的特征形式。可以模拟二阶多项式核的支持向量机模型。

场感知因子分解机在因子分解机上引入了场的概念,对不同的特征划分不同的场,而因子分解机认为每个特征都有一个场!

梯度提升树:

基于回归树的模型:不管回归还是分类问题为啥不是CART分类树,而用了CART回归树,是因为你分类树预测的是一个类别/概率,你基于残差的话相减没有物理意义,只有数值上的大小才有基于残差预测的意义,所以是用到了CART回归树!

梯度提升树的原理:使用前向分步算法和加法模型一步一步去拟合上一棵树残差的过程。

小结:因子分解机(可学到高阶特征)和LR(学习速度快,引入非线性加强模型表达)很像都适合于稀疏的特征,而XGB树模型非线性很强也适合连续的特征,也可以很好的学到高阶的特征组合。

第四章:模型融合

模型误差-分解:模型融合适合于方差大,偏差小的模型进行融合。(分解为:偏差,方差,噪声)

模型多样性度量:模型融合适合于模型之间有多样性适合融合。(样本的不一致性度量,相关系数,熵度量)

多样性增强:数据样本扰动(bagging随机有放回采样),输入属性扰动(可以去除冗余特征),参数扰动(交叉验证选取区间)。

ps:选不同的样本训练模型,选不同的特征训练模型,使用不同的模型。

所以说,模型融合条件:模型有高方差(预测值-预测的平均值的平方)低偏差(样本-预测的平均值的平方),有多样性效果才明显。

模型融合方法:平均法,投票法,bagging,stacking,

平均法:(常用)

权重可以调整,如果权重都一样就是简单的平均法(没有先验条件谁也不偏袒,类似最大熵原理)。在模型表达差不多的情况简单平均法即可,表达差异大的情况下一般使用LR进行权重学习。

stacking:(通过一个模型来降低若干单模型的预测结果,目的就是降低单模型的泛化误差)

先使用单个模型(一级模型)对样本进行预测,把结果进行整合当成新的训练样本,在使用一个二级模型在训练一次!

第二部分:数据挖掘

第五章:用户画像

定义:就是找出特征,用这些特征来描述用户。

用户画像的数据挖掘:经过策略的统计分析;通过机器学习算法模型,然后基于预测来得到。

整体架构:

数据收集:日志文件,公开数据爬取,最终汇聚到hadoop生态的数据仓库。

数据特征处理:特征爬虫使用Hive实现,进行一些特征筛选和特征加工过程,在基于一些相关系数,异常值过滤等进行处理。

ps:卡方验证,随机变量的实际值和理论值的偏离程度,值大说明越偏离特征与标签强相关,值小说明特征与标签不相关。

(差异很大,值很大,说明特征把样本分得越好,偏离很大!)

ps:p值就是卡方的对立面,p值越小说明这个特征越重要。

ps:相关系数可以去冗余特征,卡方验证/p值,信息增益这些指标可以进行特征筛选。(过滤式的)

好文!https://www.jianshu.com/p/807b2c2bfd9b

机器学习模型:特征选择(策略的数据分析选择(过滤式),模型选择(嵌入式))、模型训练(Spark MLlib,sklearn,XGboost,TensorFlow等)、效果评估。

画像应用:将标签,应用到各个业务模块中去。

总结下,在这里:

数据清洗:异常值,爬虫,字符串文本数据的处理,缺失值处理,类别编码,数据标准化。

特征选择:过滤式(卡方/p值,信息增益,相关系数/PCA),嵌入式(模型嵌入L1正则,树模型(XGboost,随机森林))

ps:XGboost是根据特征被选取的次数来衡量imp,随机森林对特征x是否加入干扰(或者选取与不选取)计算袋外误差对每棵树计算平均值,值越大越重要!

特征组合:决策树(从根节点到叶子节点的路径,对这个路径上的特征进行组合),FM模型(SVM的核函数也可以达到特征的自组合),GBDT/XGboost(对每个样本落在每个树上对应的叶子节点上建立特征,可以把特征离散化送到LR中效果很好!),暴力组合(适用于特征比较少的场景),人工组合(基于特定领域来对特征进行运算)。

关联规则模型:Apriori,FP-Growth

标签建模:就是类似我在拟合缺失值的时候使用模型进行拟合的过程。

半监督学习:自学习(对有标签的样本进行训练,然后预测出置信度高的样本加入到训练样本中;在进行训练,重复迭代!),协作学习(对标签样本训练两个不同的分类器,把置信度最高的样本加入到训练样本;训练,迭代。)

人物画像小结:就是从原始特征中,去挖掘出一些可以描述用户的特征和标签,来进行对用户更好的服务。(O2O行业)

第六章:POI实体连接

为了解决酒店之间的对应,暴力法不可取,相似度聚类(分裂和聚合的那个思路)但要全量样本不能实时计算,建立索引缩小候选集要注意控制粒度在计算相似度即可。相似度的计算使用机器学习来进行预测(二分类问题是否是一个POI)。

数据清洗:先要字符串的一些统一格式,坐标系的选取统一(火星坐标系/百度坐标系)

特征生成:酒店名称解析,地域解析模块,电话解析模块,经纬度解析模块(欧氏距离)。(对一些特征加辅助特征表示特征是否缺失;加一些简单的统计特征)

不同的业务,需要掌控的粒度大小也不尽相同,就是要控制相似度的阈值。

第七章:评论的挖掘

评论挖掘过程中涉及:商品,主观,软件,硬件维度的标签。需要采用不同的算法策略去进行针对性挖掘。

标签提取主要涉及监督学习的深度模型中去和非监督学习中的机器学习。

预处理:中文的纠错,中文分词,长句切割,去停止词等等。

词向量:word2vec,glove。

无监督的标签提取:LDA,TextRank,TF-IDF。找出前topk标签!

监督的标签提取:CNN(conve[1,2,3,4,5,6]+Maxpooling,+ dropout,0.25!)。找出topk标签!

标签情感分析主要涉及深度学习。而且已经趋于成熟,效果很好

CNN+RNN的组合模型(编码和解码器):CNN用于文本特征提取(cnov[1,2,3,4,5,6])在进行合并+dropout,送到RNN的长短时记忆网络LSTM中去学习,在进行一个分类。(比TextCNN和TextRNN的单模型效果好很多!)

BN层:强行把分布拉到一个分布上,让模型后续的学习更加快速,对离群点更加鲁棒;实际上是利用batch_size样本去估计总体的期望均值和方差,通过伽马和贝塔参数进行学习训练;使模型的迭代更好更快。所以选取batch大小(56以上)是关键不能过大也不能过小。

第三部分:搜索和推荐

第八章:O2O场景下的查询理解与用户引导

倒排索引:基于词项来找到所有包含该词项的文档(文档编号)。ps:文档是经过分词后的。

查询的理解:看成聚类来缩小查询范围,看成主题分布(LDA)来缩小范围,最终就是转化成分类问题。

ps:使用一个多分类器(业务扩展不好,需要变动时都要对整个模型改变),使用多个二分类器(业务扩展性好,首选!)

用户指导:搜索前引导(历史搜索,查询词推荐),搜索中引导(自动补全,查询补全(Trie树,普通前缀,简拼......)),搜索后引导(商家推荐,相关的搜索)

效率提升和效果提升:经过数据分析,用户对距离,吃完买单等等。(从用户日志下手)!

小结:通过对用户的查询进行分词,进行聚类等缩小查询范围,转化为多分类问题进行信息的整合向用户推荐。还有用户指导,数据分析用户行为来做出相应的优化。

第九章:O2O场景下排序的特点

在线排序服务:先进行粗粒度的排序(选取较少特征)速度快,选取前topN;在进行细粒度的排序并且会应用模型A/B测试,最终呈现给不同的用户。

A/B测试一般会使用多层正交的测试:(流量的复用,降低实验数据不同带来的偏差)

对于每一层,将流量进行分桶,每一个桶对应一种策略。最终选出较好的策略即可!可以减少不同策略带来的最终偏差!

ps:单层A/B测试就是,设计两个模型把不同的用户分给两个模型,看哪个模型表达的更好。案例2:App首页大改版,案例1:注册流程改版

特征工程:User维度,Query维度,POI维度,当前情况上下文维度(时间地点天气空气质量...)。

排序评估:

离线评估:AUC和MAP(为搜索结果AP值的均值!,最大后验概率:加先验的似然概率!)

ps:真的不能单看AUC只是看正样本排在负样本的前面,而不看值的差异。必须要有一个辅助指标(AP的均值)!

线上评估:A/B测试!

第十章:推荐在O2O场景下的评估

地理位置推荐:

KD-Tree(二叉树)索引:可以快速指出指定距离范围内的商家和服务。

城市维度索引等。

ps:KD树的构造,对每一维度的样本进行二分分割(要保证样本均分),轮流用各个维度来进行划分一共K次。

用户历史行为:

点击,下单,购买,收藏,退款,评价。实际中还会使用历史具当前相应时间衰减,是为了加强近期权重。

实时推荐:

用户历史信息的实时性,特征的实时性,排序模型的实时性。

第四部分:计算广告

第十一章:O2O场景下的广告营销

用户体验评估指标:

额外的还会保留一部分用户不投放广告形成对照组,从整体流量来比较用户体验差异,来优化广告投放策略。

常用模型:

1.逻辑回归(会用到XGBoost/GBDT来产出特征)

2.因子分解机FM或场感知因子分解机FFM(稀疏特征/自动的特征组合)等价于多项式核函数维度为2的时候!

3.人工神经网络Wide&Deep模型(Wide部分类似LR模型对特征进行浅层学习记忆;Deep部分类似FM和FFM模型可以在经过复杂的网络结构构建出更复杂的特征组合,给模型提供更好表达能力!) Wide(LR+浅层的类别特征)& Deep(DNN+深层的连续特征)!

第十二章:用户偏好和损失建模

用户偏好:商圈偏好,地理位置偏好,品类偏好,地理位置偏好,价格偏好,消费偏好.....(通过CTR,CVR来衡量)。以此可进行排序!

是一堆,对原始算法经过变形后的一些模型。

第五部分:深度学习

第十三章:深度学习概述

概述:深度学习是机器学习的一个分支;深度学习是通过深层架构来自学习出高层特征的一个算法模型。

高层特征的表示:在机器学习上主要是依靠特征提取,特征变换,特征组合,特征选择等进行的;在深度学习上可以通过复杂的网络模型自学习出高层的特征,大大减少了特征工程的工作。

ps:特征工程才是机器学习的上界,而调参数只是让你的算法模型逼近于这个上界。

网络模型:

前馈神经网络(深度前馈神经网络DNN(输入层,隐藏层,输出层),卷积神经网络CNN(注意:池化层的特征不变性可以很好地保持最显著的特征而忽略掉没用的边缘特征),ResNet,VGG16);

ps:其实CNN的卷积层,他就是计算向量内积的一个过程,把特征放在更高维度上面来提升效果。类似SVM的非线性核函数。

循环神经网络(RNN(U,V,W的参数共享降低了过拟合),长短时神经网络LSTM(输入门值越大记忆信息越多,遗忘门值越小遗忘信息就越多,输出门值越小记忆信息就越少),整合门结构GRU(更新门值越大说明记忆信息越多,输出门值越小记忆的信息就越少),序列模型编码-解码器框架seq2seq);

ps:seq2seq属于encoder-decoder的一种。

生成式神经网络(GAN(生成器和判别器,生成器生成的误差要尽可能大目的是让判别器判别不出来,判别器判别的误差要尽可能小去让生成器慢慢学会原始的样本分布),自编码器AutoEncoder)

深度强化学习(环境,智能体,动作,奖励,智能体根据环境进行一个动作并且得到一个奖励,环境因为智能体的动作而发生改变,进而形成一个交互的过程。数据不是独立同分布,而且有时序关系。)

激活函数:(进行非线性变换理论上可以拟合任意的连续分布函数,这也恰好是我们的最终目的,学习样本的分布函数!)

第十四章:深度学习在文本领域的应用

词:LSTM+CRF不需要设计特征,从字的力度就能做到最好的序列标注效果。

句子:句子生成可以通过序列到序列(seq2seq)模型训练自动的句子生成器,可用于聊天机器人或者句子改写等场景。

篇章:情感分析可以使用CNN整理特征送到LSTM中去分类/直接使用CNN来预测情感标签进行分类;阅读理解可以使用LSTM来进行。

系统级应用:信息检索方面的文本相似度计算BOW,CNN,DNN等;机器翻译使用seq2seq(Stack-LSTM+Attention多层LSTM网络)比如谷歌和百度翻译

总之各文本的研究方向都在尝试深度学习技术。但是文本领域想向语音和图像取得突破性进展还是困难,因为大规模的数据缺乏样本。

ps:主题模型,矩阵分解,向量空间,word2vec的矩阵都是文档和词典。m*n维度。

ps:主题模型(PLSA,LDA,概率图模型,贝叶斯网,有向图模型)就是直接对联合概率分布直接建模,然后进行求解的过程。

ps:LDA的问题,短文本主题预测的不好,训练参数尽管有吉布斯采样但还是慢,而且主题K是超参数不好调整;从LDA到SparseLDA、AliasLDA、LightLDA、WarpLDA等这些问题都得到了解决。(比较深入了额......)

第十五章:深度学习在计算机视觉中的应用

应用:文字识别/检测(OCR),图片分类,目标检测,图像质量评价等。

(比较复杂了这块,知道R-CNN,Fast-CNN,Faster-CNN的离线检测,SSD/Yolo的实时检测)

第六部分:算法工程

第十六章:大规模机器学习

大互联网公司:样本达到数亿至数千亿;特征维度也达到数十亿以上。

(比较复杂,不牵扯了。)

第十七章:特征工程和特征平台

特征生产:

离线特征生产(Hive,Hbase,Mysql,Nosql,MongoDB)特征计算和定时调度(Spark/Map-Reduce)

特征上线:

主要是架构层。

特征监控:

保持线上的特征的正确性

试验管理平台:

使用A/B测试:构建不同的模型策略,分配不同的用户流量,针对用户流量的变化以及反馈来选择好的模型策略。

本书完!

美团机器学习实践书籍相关推荐

  1. 《美团机器学习实践》高清PDF+思维导图+美团算法团队

    在美团的搜索.推荐.计算广告.风控.图像处理等领域,相关的人工智能技术得到广泛的应用.<美团机器学习实践>包括通用流程.数据挖掘.搜索和推荐.计算广告.深度学习以及算法工程6大部分内容,全 ...

  2. 美团机器学习实践 密码_机器学习遇到密码学的地方

    美团机器学习实践 密码 When reading this, chances are that you know one or another thing about machine learning ...

  3. 《美团机器学习实践》读后感和一点思考

    前言:最近拜读了美团算法团队出品的<美团机器学习实践>,这本书写于2018年,一个大模型还没有标配的时代.这本书侧重于工业界的实践,能清楚地让我们了解到工业界和学术界对机器学习的关注方向上 ...

  4. 《美团机器学习实践》出版了

    千呼万唤始出来!由美团算法团队20余位一线工程师联手,耗时一年多时间,业界第一本全面讲述互联网公司机器学习实践的图书<美团机器学习实践>终于上市发售啦. 目前这本书已经在各大书店热销,特别 ...

  5. 《美团机器学习实践》学习笔记:机器学习中的模型评价指标(二)——回归模型评估

    平均绝对误差(Mean Absolute Error, MAE) 也称L1范数损失,计算公式如下: 其中N为样本数,是真实值,是预测值. MAE可以很好的刻画预测值与真实值的偏差.模型使用MAE作为损 ...

  6. 《美团机器学习实践》学习笔记:POI实体链接与评论挖掘

    POI实体链接 概念:POI实体链接是指对相同POI的不同描述进行关联和聚合. 背景和难点 两组POI信息--一组是美团已经有的POI信息库(库存POI库),另一组是希望与之进行POI实体链接的信息库 ...

  7. 《美团机器学习实践》—— 读后总结

    从9月23日开始整理思维导图,前前后后半个月左右,收获确实比第一次阅读要多一些,以后会尽量按这种方式阅读,提高效率. 第一章 问题建模 第二章 特征工程 第三章 常用模型 第四章 模型融合 第五章 用 ...

  8. 机器学习部分书籍推荐

     先说一下我看过的和正在看的一些书吧! <数学之美>:作者吴军大家都很熟悉.这本书主要的作用是引起了我对机器学习和自然语言处理的兴趣.里面以极为通俗的语言讲述了数学在这两个领域的应用. ...

  9. Flink在美团的实践与应用--大数据技术栈15

    回顾:大数据平台技术栈 (ps:可点击查看),今天就来说说其中的Flink! 来自:云栖社区 本文整理自在北京举行的Flink Meetup,分享嘉宾刘迪珊(2015年加入美团数据平台.致力于打造高效 ...

最新文章

  1. spring bean scope作用域及多线程安全问题场景分析
  2. JSP/SERVLET(6)——Jquery EasyUI 选项卡Tabs的使用方法
  3. Linux为什么可以在x86平台上运行,考虑在x86/Linux平台上的应用程序,以下指令执行时可能......
  4. opensips mysql 认证_基于ubuntu中使用mysql实现opensips用户认证的解决方法
  5. 后端用java还是python_【后端开发】已学php再学java还是python?
  6. 什么是document对象?如何获取文档对象上的元素?_JavaScript DOM操作元素的方法,你还记得多少?...
  7. Highlighting高亮插件使用说明
  8. VGGFace2数据集
  9. 35岁老年程序员的绝地翻身之路
  10. 泛化误差,偏差方差分解
  11. R语言使用sort函数对向量数据进行排序、默认从小到大升序排序、设置decreasing为真进行降序排序
  12. [转贴]民国记者有多牛:揭黑损人骂街是常事
  13. 打地鼠java代码流程图_51单片机 普中51 打地鼠游戏 仿真 程序 流程图
  14. TTL反相器、OC门、TS门、推挽输出、开漏输出
  15. [转载] 真正可用的使用T5577卡复制4100卡_ID卡复制操作流程
  16. 给移动硬盘装win10,知道这些就足够了
  17. PADS2007如何打印PCB元件的丝印图
  18. 简单的C语言任意进制转换器
  19. 解决:知乎中导入的md格式文档,公式不能居中,即使加了\\后也不能居中
  20. HashMap是什么

热门文章

  1. python爬虫淘宝实例-Python——爬虫实战 爬取淘宝店铺内所有宝贝图片
  2. 浅析计算机网络在市场营销,计算机网络在市场营销中的新应用
  3. 制作dvd iso镜像ubuntu
  4. 整理代码,将一些曾经用过的功能整合进一个spring-boot
  5. 【软件工程】第5章 软件需求分析
  6. 疫情何时结束?中国各城市首轮感染高峰期预测!(更新版)
  7. html中怎么让字自动变颜色,html如何设置单个字体颜色
  8. 深入浅出Docker原理及实战(三)——制作Dockerfile
  9. android 9.0 Launcher3修改workspace字体颜色
  10. Verilog语法_6(altera PLLRamRom应用)