2020-12-30 13:38:26 阅读(159)
随着大数据时代的到来,机器学习已经成为解决问题的重要而关键的工具。机器学习是工业界和学术界的热门方向,但学术界和工业界专注于机器学习的研究,学术界专注于机器学习理论的研究,工业界专注于如何利用机器学习来解决实际问题。结合美团在机器学习方面的实践,我们进行了实战(InAction)系列介绍(带有“机器学习Inaction系列”标签的文章),介绍解决工业问题所需的基本技术、经验和技能。本文主要介绍了机器学习解决实际问题的整个过程,包括问题建模、准备培训数据、提取特征、培训模型和优化模型;其他文章将更深入地介绍这些关键环节。以下分为1)机器学习概述,2)问题建模,3)准备培训数据,4)选择特征,5)培训模型,6)优化模型,7)总结7章。机器学习概述:###机器学习是什么?随着机器学习在实际工业领域的不断应用,这个词已经被赋予了各种不同的含义。本文中“机器学习”的含义更符合wikipedia上的解释,如下:Machinelearningisascientificdisciplinethatdealswiththeconstructionandstudyofalgorithmsthatcanlearnfromdata.机器学习可分为无监督学习(unsupervisedlearning)监督学习(supervisedlearning),在工业界,监督学习是一种更常见、更有价值的方式,主要以这种方式介绍。如下图所示,在解决实际问题时,有两个过程需要监督机器学习。一个是离线培训过程(蓝色箭头),包括数据筛选和清洁、特征提取、模型培训和模型优化;另一个过程是应用过程(绿色箭头),用于估计需要估计的数据,提取特征,并使用离线培训获得的模型进行估计,以便在实际产品中获得估计值。在这两个过程中,离线培训是最具技术挑战性的工作(在线估计过程中的许多工作可以重用离线培训过程),因此下面主要介绍离线培训过程。在这两个过程中,离线培训是最具技术挑战性的工作(许多在线估计过程可以重复使用离线培训过程),因此以下主要介绍离线培训过程。###什么是模型?(model)?模型是机器学习中的一个重要概念。简单地说,它是指从特征空间到输出空间的映射;它通常由模型的假设函数和参数w组成(以下公式是Logisticregression模型的表达,并在训练模型的章节中详细解释);假设空间的模型(hypothesisspace),指所有可能w对应的输出空间组成的给定模型的集合。Logisticregresion(简称LR)是工业界常用的模型、GradientBoostingDecisionTree(GBDT)、SupportVectorMachine(SVM)、DeepNeuralNetwork(简称DNN)等。模型训练是基于训练数据获得一组参数w,使特定目标最优化,即获得从特征空间到输出空间的最优映射。如何实现,请参见训练模型章节。模型训练是基于训练数据获得一组参数w,使特定目标最优化,即获得从特征空间到输出空间的最优映射。如何实现,请参见培训模型章节。###为什么要用机器学习来解决这个问题?目前,在大数据时代,到处都有T到P数据,简单的规则处理难以发挥这些数据的价值;廉价的高性能计算降低了基于大规模数据的学习时间和成本;廉价的大规模存储可以更快、更低的成本处理大规模数据;有很多高价值的问题,可以花很多精力用机器学习来解决问题。###什么问题应该用于机器学习?目标问题需要巨大的价值,因为解决机器学习问题有一定的成本;目标问题有大量的数据可用,大量的数据可以使机器学习更好地解决问题(相对于简单的规则或劳动力);目标问题由多种因素(特征)决定,机器学习解决问题的优势可以体现出来(相对于简单的规则或人工);由于机器学习可以基于数据自学和迭代,因此需要不断优化目标问题,继续发挥价值。本文以DEAL(团购订单)交易量估算为例(即估计一个给定的DEAL在一段时间内卖了多少钱),介绍如何用机器学习解决问题。本文以DEAL(团购订单)交易量估算为例(即估计给定DEAL在一段时间内销售多少),介绍如何使用机器学习解决问题。首先,我们需要:收集问题信息,理解问题,成为这个问题的专家;解决问题,简化问题,将问题转化为机器可预测的问题。在对DEAL交易量进行深入理解和分析后,可以将其分解为以下几个问题:###单模型?多个模型?如何选择?根据上图拆解后,预测DEAL交易量有两种可能模式,一种是直接预测交易量;另一种是预测用户数量模型和访问率模型(访问DEAL用户将购买的列表数量),然后根据这些子问题的估计值计算交易量。不同的方法有不同的优缺点,具体如下:选择哪种模式?1)如果问题难以预测,则考虑使用多模型;2)如果问题本身的重要性非常重要,则考虑使用多模型;3)如果多模型之间的关系是否清晰,则可以使用多模型。若采用多模型,如何融合?线性融合可以根据问题的特点和要求进行,也可以进行复杂的融合。以本文为例,至少有两种问题:###模型选择DEAL交易量。我们认为直接估计是非常困难的。我们希望估计分裂成子问题,即多模型模型。由于机器学习解决问题的方法相似,因此有必要建立用户数模型和访购率模型。以下仅以访购率模型为例。为了解决采购率问题,我们必须首先选择模型。我们有以下考虑因素:主要考虑因素1)选择与业务目标一致的模型;2)选择与培训数据和特征一致的模型。训练数据少,Highlevel特征多,使用“复杂”非线性模型(流行GBDT)、Randomforest等。;训练数据很多,LowLevel有很多特点,所以使用“简单”的线性模型(流行的LR、Linear-SVM等。).补充考虑1)当前模型是否被工业界广泛使用;2)当前模型是否有成熟的开源工具包(公司内外);3)当前工具包能否满足处理数据量的要求;4)您是否了解当前的模型理论,以及您是否以前使用过该模型来解决问题。为实际问题选择模型,需要转换的业务目标为模型评价目标,转换模型评价目标为模型优化目标;根据不同的业务目标选择合适的模型。具体关系如下:一般来说,真实值(回报)的估计、大小顺序(排序)、根据应用程序的需要,尽可能选择难度较小的目标,目标所在的正确区间(分类)难度从大到小。对于估计访购率的应用目标,我们至少需要知道大小顺序或真实值,所以我们可以选择AreaunderCurve(AUC)或者MeanAbsoluterrororrorle(MAE)以Maximumlikelihood为模型损失函数(即优化目标)作为评估目标。综上所述,我们选择GBDT或LR的spark版本,主要基于以下考虑:1)可以解决排序或回归问题;2)我们实现了算法,经常使用,效果很好;3)支持大量数据;4)广泛应用于工业行业。准备培训数据,深入了解问题。选择相应的问题模型后,需要准备数据;数据是机器学习解决问题的基础。如果数据选择错误,问题就无法解决。因此,在准备培训数据时需要特别小心和注意:###注意事项:待解决问题的数据本身的分布应尽可能一致;培训集/测试集的分布应尽可能与在线预测环境的数据分布一致,这里的分布是指(x,y)分布不仅仅是y的分布;y的数据噪声尽可能小,尽量消除y的噪声数据;不需要采样。采样往往会改变实际数据分布,但如果数据太大,无法训练或正负比例严重失衡(如超过100:1)需要采样解决。###需要解决的常见问题和解决方案的数据分布不一致:1)DEAL数据在采购率问题上可能存在很大差异,如食品DEAL和酒店DEAL的影响因素或性能非常不一致,需要特殊处理;要么提前整合数据,要么以分布不一致因素为特征,要么单独培训各类DEAL模型。数据分布发生了变化:1)用半年前的数据培训模型来预测当前的数据,因为数据分布可能随时间而变化,效果可能很差。数据分布发生了变化:1)使用半年前的数据培训模型来预测当前的数据,因为数据分布可能会随着时间的推移而变化,效果可能会很差。试着使用最近的数据培训来预测当前的数据,历史数据可以减少模型的权利,也可以减少模型。y数据有噪音:1)建立CTR模型时,以用户看不到的Item为负例。这些Item没有点击,因为用户看不到。不一定是用户不喜欢,也不一定是点击,所以这些Item有噪音。一些简单的规则可以用来消除这些噪音负例,比如使用skip-above思想,即用户点击的Item以上,未点击的Item作为负例(假设用户从上到下浏览Item)。采样方法有偏见,不覆盖整个集合:1)在采购率问题上,如果只有一家门店的DEAL进行估计,则无法很好地估计多家门店的DEAL。我们应该确保一个商店和多个商店都有DEAL数据;2)如果没有客观数据的第二类问题,则使用规则获得正/负示例,并且规则对正/负示例的覆盖范围不全面。抽样数据应随机进行人工标记,以确保抽样数据与实际数据分布一致。###DEAL数据收集N个月的培训数据(x)以及相应的采购率(y);收集最近N个月,消除节假日等非常规时间(保持一致的分布);在线时间只收集>并访问用户数量>U的DEAL(降低y的噪音);考虑DEAL销售生命周期(保持一致分布);考虑不同城市、商业区和类别的差异(保持一致的分布)。完成数据筛选和清洗后,需要对数据进行抽取,即将输入空间转换为特征空间(见下图)。在完成数据筛选和清理后,需要提取数据特征,即完成输入空间到特征空间的转换(见下图)。对于线性模型或非线性模型,需要提取不同的特征。线性模型需要更多的特征提取工作和技能,而非线性模型需要相对较低的特征提取要求。一般情况下,特征可分为Highlevel和Lowlevel,Highlevel是指含义较广的特征,Lowlevel是指含义较具体的特征,例如: DEALA1属于POIA,人均50以下,访购率高; 属于POIA的DEALA2,人均50以上,访购率高; POIB属于DEALB1,人均50以下,访购率高; DEALB2属于POIB,人均50以上,访购率底部;基于上述数据,可抽取两个特征,POI(店)或人均消费;POI特征是LowLevel特征,人均消费是Highlevel的特征;假设该模型通过学习获得以下估计:如果DEALx属于POIA(LowLevelfeature),如果DEALx人均50以下,购买率高;(HighLevelfeature),访购率高。因此,总的来说,LowLevel更有针对性,单个特征覆盖面小(含此特征的数据不多),特征数量(维度)大。因此,总的来说,Lowlevel更有针对性,单个特征覆盖范围小(包含此特征的数据不多),特征数量(维度)大。Highlevel泛化,单个特征覆盖范围大(包含此特征的数据多),特征数量(维度)小。Highlevel特征主要影响长尾样本的预测值。LowLevel特征主要影响高频样本的预测值。对于采购率问题,Highlevel或Lowlevel有大量的特征,其中一些显示在下图中:非线性模型的特征1)Highlevel特征可以主要使用,因为计算复杂,因此特征维度不应过高;2)Highlevel非线性映射可以更好地拟合目标。线性模型的特征1)特征系统应尽可能全面,HighLevel和LowLevel都应具备;2)HighLevel可以转换为LowLevel,以提高模型的拟合能力。###抽取特征归一化特征后,如果不同特征的取值范围相差很大,最好将特征归一化,以取得更好的效果,常用的归一化方法如下:Rescaling:以类似的方式将其归一化为[0,1]或[-1,1]:Standardization:设为x分布的平均值,x分布标准差;Scalingtounitlength:归一化到单位长度向量####特征选择特征选择和归一化后,如果发现特征太多,模型无法训练,或者模型容易过度拟合,则需要选择特征并选择有价值的特征。Filter:假设特征子集对模型估计的影响是独立的,选择特征子集来分析子集与数据Label之间的关系。如果有正相关性,则认为特征子集是有效的。Filter:假设特征子集对模型估计的影响是独立的,选择一个特征子集来分析子集和数据Label之间的关系。如果存在正相关关系,则认为该特征子集是有效的。有许多算法来衡量特征子集和数据Label之间的关系,例如Chi-square,InformationGain。Wrapper:选择特征子集加入原特征集,用模型训练,比较子集加入前后的效果。如果效果更好,则认为特征子集有效,否则认为无效。Embedded:将特征选择与模型训练相结合,如在损失函数中添加L1Norm、L2Norm。
以上就是关于怎样用机器学习方式对网站进行数据挖掘?的相关介绍,更多怎样用机器学习方式对网站进行数据挖掘?相关内容可以咨询我们或者浏览页面上的推荐内容。我们将让你对怎样用机器学习方式对网站进行数据挖掘?有更深的了解和认识。
推荐阅读
最新文章
猜你喜欢以下内容:
一 客户顾问-张三 一