购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.1 机器学习项目简介

机器学习涉及的概念繁多,在不同资料中的叫法和理解也常有差异。为了避免概念不一致带来的理解困难,本节将介绍书中可能涉及的机器学习相关概念及常见问题,从而厘清边界,为后续章节更好地探讨机器学习项目及MLOps落地做准备。

3.1.1 机器学习的定义

机器学习有3种定义。

● 机器学习是一门人工智能的科学,主要研究对象是人工智能,特别是如何在经验学习中改善具体算法的性能。

● 机器学习是对能通过经验自动改进的计算机算法的研究。

● 机器学习是用数据或经验,优化计算机程序的性能标准。

机器学习是人工智能领域的重要组成部分,其本质就是从历史数据中寻找规律,然后基于规律预测未来。相较于传统的通过规则来定义执行逻辑,机器学习通过一些算法挖掘数据中蕴含的统计规律形成模型,从而表达执行逻辑。这在某种意义上体现了机器学习的内涵,那就是机器可以自主地根据数据来学习规则而不需要人去定义规则。图3-1揭示了人类与机器在解决问题时的模式共性与差异:人类通过不断地总结过去处理问题的经验,归纳推理形成规律,并利用规律推测未来;机器是收集历史数据,通过训练形成模型,利用模型来预测未知属性。

图3-1 人类与机器解决问题的模式对比

可以看出,机器基于历史数据借助一些特有算法习得模型,并用于预测。这与人类通过总结经验学习形成规律,然后指导实践有一定的相似之处。然而,在这样的框架下,机器又比人有一些先天优势,那就是人类总结经验是有上限的,也是会疲倦的,无法对客观世界做到极致精细和理性。而机器可以不断增强算力,突破这样的限制。例如,在内容分发领域,传统方式是以编辑为主导,很难做到千人千面,最多只能根据用户类别分发不同的板块内容,或是根据有限规则展示不同的内容。在这种模式下,用户在内容获取上是很单一的,运营者能做的优化只是不断堆叠板块,而这又会增加运营者和用户的负担。图3-2和图3-3分别为传统的内容媒体网站和个性化内容推荐网站的截图。

图3-2 传统的内容媒体网站

图3-3 个性化内容推荐网站

然而,随着机器学习技术在推荐领域的应用,一个内容网站不仅可以做到千人千面,还可以根据用户的行为、时间、外部环境等多种因素实时提供个性化内容,这是传统通过规则运营难以做到的,其运营效率也自然获得了极大提升。

3.1.2 机器学习相关概念

以下是本书中常用到的一些机器学习概念。假设一个机器学习预测过程可以抽象为:

y = f x

其中, x y 均为一组参数值。

机器学习是在已知 x y (不一定明确)的情况下,求解合适的 f ,并根据 f 来预测新的 y 的过程。

1.标签

标签(Label)就是我们要预测的事物,即公式中的 y 。比如我们有一个识别苹果甜不甜的模型,那么甜还是不甜就是标签。常见的标签不仅可以是一个是或否的布尔值,也可以是一个离散的枚举集合,比如苹果的品种为红富士、黄元帅等。它也可以是一个连续的数值,比如苹果的重量。

2.特征

特征(Feature)是模型预测的输入,也就是公式中的 x 。还以识别苹果甜不甜为例,那么苹果的颜色、大小、硬度就是特征。我们可以认为特征是判断标签的依据,而标签是结论。因此,在一定程度上,特征的丰富程度和质量决定了模型的效果。在工业界,特征可以分为以下几种。

根据特征数值特点,我们可以将特征分为离散特征和连续特征。离散特征就是它的取值是一些离散数值的集合,比如苹果颜色的取值范围是红色、黄色等。连续特征就是它的取值是一些连续的数值,比如苹果的重量等。连续特征和离散特征在我们未来做特征工程时尤为重要,两者可在一些场合中相互转化。

根据特征加工维度,我们可以将特征分为原始特征和衍生特征。所谓原始特征,就是直接收集过来的数据。为了进一步挖掘数据中蕴含的信息,我们一般会基于数据进行一些加工。原始特征可以是自身进行一些数值变换或者编码生成,也可以是多个特征进行组合变换生成。例如,一个学生的原始特征里有地域、性别、身高、体重、出生日期等,基于出生日期可以衍生出年龄特征,而根据“性别+身高”能衍生出女生身高和男生身高。

在实际工作中,还有一类特征对于模型效果提升尤为重要,那就是时序特征。简单讲,时序特征就是和时间相关的特征。它考虑到了时间的变化,比如,一个用户最近半小时看过的文章就是一个时序特征。时序特征之所以重要,是因为当前很多业务场景均和时间有关,比如对于推荐系统,一个用户在最近几分钟、几小时、几天的浏览行为能够很真实地反映用户的偏好,而且这一类特征可以通过收集和计算获得,真实性和可靠性都有保证。

举一个例子,用户在系统资料里填写的性别是男性,然而通过分析该用户的一些时序特征,发现该用户经常浏览口红、裙子等内容,那么我们基于该用户的行为推送化妆品、美容相关内容比推送电子产品、科技等内容更为合理。当然,时序特征的存储和计算也给工程开发带来了巨大挑战。如何在保证计算正确的情况下,降低资源损耗并提升计算性能等将在后续章节详细展开介绍。

3.样本

样本(Sample)是数据集(样本集)的一行。我们可以简单地根据有无标签将样本分为有标签样本( x 1 x 2 ,…, x n y )和无标签样本( x 1 x 2 ,…, x n )。按照组织形式不同,样本可分为结构化样本和非结构化样本。常见的表数据是结构化样本,而图片、文本是非结构化样本。样本是机器学习模型训练的原材料,因此样本的多少和质量对模型预测效果影响很大,而在实际项目中,如何收集有效的样本成为项目成功的关键。

4.模型

模型(Model)实际上是特征到标签的映射关系,可以是一个统计模型,也可以是一个算法脚本,也就是上面的函数 f 。从使用角度看,模型大致可以分为两个阶段:训练阶段,通过已知样本进行训练得到模型;预估、推理阶段,即通过训练好的模型,针对新的无标签样本推理、预测结果。

5.参数与超参数

参数和超参数是机器学习中两个很重要的概念。前文提到我们可以假设机器学习过程就是要在标签和特征之间找到一个映射关系 f f 本质上表达了数据规律。假如数据规律是一个一阶线性函数 y = kx + b ,那么训练的核心就在于找到 k b 。而这里的 k b 就是模型的参数。然而在实际机器学习问题中,数据规律是很难预知的,我们就需要假设一些模型训练算法,通过模型训练算法近似生成 f ,即找到这里的一阶线性函数 y = kx + b 。常见的算法有逻辑回归、决策树、朴素贝叶斯、人工神经网络、K-近邻、支持向量机等。使用这些算法时,我们需要设置参数,比如逻辑回归算法中有学习速率 α 、迭代次数epoch、批量大小batch-size等参数,决策树算法中有树的深度、树的数量等参数。

调参是一个耗时耗力、反复试验的过程,所谓调参如“炼丹”也是这个原因。当前业内为了提升建模效率,有了自动机器学习技术,这为进一步降低AI科学家准入门槛、提升建模效率起到很重要的作用。

6.训练集、验证集、测试集

为了训练和评估模型,我们一般将数据集分为训练集、验证集、测试集。这么拆分的原因是机器学习模型训练是一个迭代、尝试的过程。训练集是机器用来学习数据规律的数据集,需要尽可能体现真实规律,避免样本不平衡导致模型训练效果差。验证集是为了验证每一次迭代模型质量的数据集,通过验证评估进一步指导参数及超参数调整。机器学习的最终目的是预测未知。为了验证模型的泛化能力,我们需要预留一部分数据作为测试集,以实际评估模型效果。从这个角度讲,测试集不能与训练集、验证集有重合,并且测试集需要尽量反映真实的数据情况,从而提升测试结果的准确性。

7.机器学习分类

数据样本对于机器学习尤为重要。我们基于样本情况对机器学习进行了分类。基于样本有无标签的情况,我们将机器学习分为监督学习、无监督学习、半监督学习、强化学习4类。

(1)监督学习(Supervised Learning,SL)

监督学习就是通过训练包含标签的样本,建立特征与标签的映射关系。而在建立映射关系的时候,我们需要特别考虑模型的记忆性和泛化性。所谓记忆性,就是完全拟合特征与标签的关系,而泛化性要求模型不仅仅预测历史样本的属性,更要能预测无标签待测样本的属性。根据标签的类别不同,监督学习分为分类和回归。

分类对应离散标签。当标签只有两种情况时,我们称分类为二分类。标签超过两种的分类叫多分类。在实际工程中,多分类问题可以转化为二分类问题,以提升模型训练和预估效率。这里特别提出,分类问题中的标签值并不是明确的值,而是概率值。在实际应用时,我们可以设置一个阈值,将阈值范围内的标签归为一类。对于推荐点击率模型来讲,我们常将用户是否点击某一个物品作为标签,将用户、物品等特征作为输入,通过模型获得用户是否点击该物品的概率,继而排序形成列表(机器给用户推送物品的推荐列表)。当标签是一个连续值时,模型需要推理出具体的值,这类问题叫作回归问题。回归可以看作分类的泛化问题。常见的房屋价格预测、销量预测等都属于回归问题。

监督学习在实际项目中非常常见,也是本书关注的问题。若无特别说明,后续章节所介绍的场景就是监督学习。而监督学习面临的一个很大的挑战是样本收集和处理。样本数量和质量直接决定了模型的效果,这也是MLOps重点关注的问题。

(2)无监督学习(Unsupervised Learning,UL)

和监督学习相反,无监督学习中训练样本是没有标签的。由于训练样本没有标签,某种意义上讲就没有了结论,它的价值在于呈现数据的自身规律。在无监督学习中,常见的问题就是聚类问题。所谓聚类,就是通过计算数据之间的距离,将数据形成一些子集,每个子集被称为一个簇,通过这样的划分,每个簇就可以表达某种潜在的类别。常见的聚类算法有K-means等。在工业界,最常见的聚类莫过于协同过滤(Collaborative Filtering,CF),它的本质就是将用户或物品进行聚类,向用户推荐和他相似的人买过的商品,或是向用户推荐他已买过的商品的相似商品。

另外,无监督学习还有一个应用场景就是降维。所谓降维,就是降低特征维度,目的在于突破算力的约束,减少不必要的特征,从而简化计算,降低模型复杂度,继而降低模型使用复杂度。相对而言,由于不需要标签,无监督学习在样本收集上更加容易。

(3)半监督学习(Semi-Supervised Learning,SSL)

它介于监督学习和无监督学习之间。在很多实际问题中,获得有标签样本的成本很高,通常需要专门标记,所以我们通常只能拿到少量有标签的样本。而半监督学习的目的就是利用无标签样本,获得更好的模型效果。它由于更符合实际情况,近些年成为研究的热点。常见的半监督学习算法有Self-training、生成式方法、S3VM等。

(4)强化学习(Reinforcement Learning,RL)

强化学习是最近很流行的机器学习方法。著名的Alpha Go就是基于强化学习实现的。强化学习借鉴了行为心理学理论,在对训练对象给予奖励或惩罚的刺激下,逐步形成对刺激的预期,产生能获得最大利益的习惯性行为。其本质是通过环境给予的奖惩对机器进行指引,这样机器能通过不断试错,学到最终的策略。另外,强化学习中的奖励用于引导智能体做出合理的动作。但是在强化学习过程中,智能体的一个决策动作的价值并不是当前的奖励能反映的,可能会在今后的一段时间体现。

例如,为了提高一个高中生的高考成绩,我们可以设置月考、期中考试,以分阶段评价该学生的成绩,并制定合适的阶段性奖励,以便达成提升高考成绩这一目标。这实际上与样本标签难以获取或者获取成本很高,但通过奖惩规则达成目的的情况类似。我们可通过构建虚拟环境快速低成本试错,从而获得最优策略(即模型)。比如对于汽车自动倒车入库场景,正常情况下通过实际操作获得样本。非常困难,但这个场景有一个非常大的特点就是环境规则明确——压线还是撞车,都能够实际给予反馈,因此通过构建虚拟环境,机器就可以通过模拟进行大量尝试,最终习得倒车入库的模型。强化学习有潜在的大量应用场景,当前比较常见的应用场景有无人驾驶、游戏等。

3.1.3 机器学习能解决的问题

电影、电视把AI描绘得无所不能:它不仅能帮忙做日常琐事,还能够拯救世界。然而,实际机器学习乃至人工智能系统能做的事情是有边界的。那么,什么样的问题适合通过机器学习来解决呢?大致需要满足以下3个条件。

1.问题本身具备规律

机器学习不是占卜,它本质上是通过一些算法分析数据,从而总结其中的规律,然后加以利用。如果问题本身就是随机的,不具备逻辑规律,那么不仅机器学习无法解决,传统的编程也是无法解决的。常见的人脸识别、反欺诈、推荐都是有明确规律的,这也是很多场景问题最初不用机器学习也能通过专家经验解决的原因。从这一点讲,机器学习是现有问题的一种新的解决思路。

2.规律爆炸,难以通过编程实现

如前文提到,一些机器学习场景问题最初是通过编程解决的,即通过人来归纳其中的规律,然后通过编程来解决。早期的人工智能很多也是基于这样的思路实现的。然而,可以想象的是,当输入与规则越来越多时,手工编程将会变得非常复杂,维护也将非常困难,传统编程方法难以完成。而机器学习可不依赖人类经验,自主从大量历史数据中总结规律,从而形成模型并加以利用。

3.要有足够多可用来学习的数据

机器学习需要从数据中挖掘规律,数据就是机器学习的关键。那么,怎么判断足够多呢?这里的多不只是简单的数量大,而是要多且丰富,要能充分反映事件所蕴藏的规律。如果数据太少,规律描述不足,在机器学习里会出现欠拟合现象,但如果数据很多,分布不均匀,大量同质化,那么训练时模型效果可能很好,但是泛化性不足,会出现过拟合现象。这两种现象在实际预测中并不尽如人意。

如果数据很多,但数据质量不佳,样本与标签之间没有因果关系,比如我们要识别苹果甜不甜,但拿装苹果的箱子作为输入,那么可以见得这样的样本是无意义的。机器学习里的“Rubbish in,Rubbish out”也正是这个意思,无论怎么调整模型和参数都是徒劳的。最后,选择的拟合算法也要合理,也就是说,模型本身要选择合理。不然,即使数据本身是没有问题的,但是处理数据的模型并不适合,也很难得到最佳的效果。

3.1.4 机器学习项目度量

如何度量机器学习项目的成功与失败?笼统地讲就是是否达到业务预期。从指标上看,机器学习项目度量大致分为3个维度:效果、性能与可用性、成本与效率。

1.效果

效果分为模型效果和业务效果。模型效果评估不仅是对最终模型效果的一种判定,也可以作为不同模型之间选择的依据。模型评估的方法很多。以二分类为例,模型好坏就是区分分类的准确性。为了更好地表达,我们引入混淆矩阵,如表3-1所示。

表3-1 混淆矩阵

4个指标的含义如下:

● TP(True Positive,真正):样本的真实类别是正样本,并且模型识别的结果也是正样本。

● FN(False Negative,假负):样本的真实类别是正样本,但是模型识别为负样本。

● FP(False Positive,假正):样本的真实类别是负样本,但是模型识别为正样本。

● TN(True Negative,真负):样本的真实类别是负样本,并且模型识别为负样本。

基于此表格,常见的度量指标计算如下。

● 准确率=(TP+TN)/(TP+TN+FN+FP),即预估正确的样本/总的参与预估的样本。

● 召回率=TP/(TP+FN),即实际预估正确的正样本/总的参与预估的正样本。

● 精确率=TP/(TP+FP),即实际预估正确的正样本/实际预估为正样本的样本(含错误地将负样本预估为正样本的情况)。

F 1分数=2 PR /( P + R )=2TP/(2TP+FN+FP),即模型准确率( P )和召回率( R )的一种调和平均数,它的最大值是1,最小值是0。之所以这么设计,是因为召回率和准确率是有负向关系的,我们无法简单地追求召回率最大或者准确率最大,而是要结合实际场景综合考虑。

然而,在真实情况下正负样本常常很不均衡。以病毒检测为例,100万个样本中可能真的正样本,即感染病毒的样本只是个位数,在此情况下计算准确率,哪怕不采用模型,直接默认都是负样本,准确率也能高达99.9%。这样的评估是无意义的。那么,怎么才能有意义地评估呢?AUC(Area Under Curve)是评价二分类模型效果的常用指标。AUC被定义为ROC曲线(Receiver Operating Characteristic Curve,接受者操作特征曲线)下的面积,而ROC横坐标是FPR(False Positive Rate,假正率),纵坐标是TPR(True Positive Rate,真正率)。

一个二分类模型AUC的阈值(即正负样本判定的标准,在0~1之间)可能设定为高或低,每个阈值的设定会得出不同的FPR和TPR,将同一模型每个阈值的(FPR,TPR)坐标都画在ROC空间,就形成特定模型的ROC曲线,如图3-4所示。由于ROC曲线只和FPR、TPR有关,而与正负样本比例无关,因此它能很好地避开样本不平衡问题。

图3-4 ROC曲线

那么,如何通过AUC值评估模型效果呢?从ROC定义角度看,每一个点越靠近坐标系左上角,说明TPR越高,FPR越低,即图线越陡越好。从AUC含义可知,AUC值越大越好,值为1时理论上最好,实际上是过拟合导致的不合理状态。图3-5展示了不同AUC对应的ROC曲线。

图3-5 不同AUC对应的ROC曲线

在实际应用中,AUC值多大才合适呢?这并不是一个固定值,而是需要结合业务来确定,比如股票预测模型AUC值在0.6~0.7之间便可以接受。除了AUC之外,分类模型还有很多评估指标,如KS值、PSI值、Gain值和Lift值等。对于回归模型,常见的评估指标有MAE(Mean Absolute Error,平均绝对误差)、MSE(Mean Square Error,均方误差)、RMSE(Root Mean Square Error,均方根误差)和MAPE(Mean Absolute Percentage Error,平均绝对百分比误差),其中常用的是MAE和MSE,公式如下:

MAE和MSE体现的是模型预测值 与真实值 y 的误差情况,而误差来源于偏差和方差两方面,反映了预测值与真实值的偏离程度以及预测值的集中程度。在实际业务场景中,我们需要结合领域知识综合判断模型效果,并且在此基础上形成更加直观的业务效果评估指标。它们往往更符合实际情况,比如推荐场景中的转化率、点击率,反欺诈场景中的识别率等。

2.性能与可用性

作为一个需要投入生产的系统,性能与可用性是模型价值的体现。在机器学习系统中,我们可从在线、近线、离线3个层面进行评估。针对机器学习模型性能与可用性评估,除了传统指标,如SLA、QPS、并发度、延时、吞吐量等,我们还需要关注与机器学习模型特点相关的指标,如特征的正确性与实时性、训练时长与频率、推理服务的延时与吞吐。进一步地,推理服务可分为线上实时推理及离线批量推理两种,前者强调低延时,后者强调高吞吐。另外,由于机器学习模型效果与数据高度相关,模型效果会随着时间的推移衰退,因此模型自我迭代更新的频率也需要关注。从可用性角度看,预估的SLA需要高于训练的SLA,这要求训练系统与推理服务解耦,避免相互影响。

3.成本与效率

机器学习是一个涉及数据、算法、工程的系统工程。那么,机器学习项目的成本投入及落地效率也是需要重点关注的。机器学习项目落地效率和成本投入与很多因素有关,如资源(人力与机器)投入、数据的接入和处理效率、模型调研与训练效率、业务对接模型服务的周期、性能问题出现频率及排查效率、外围配套系统构建效率等。基于这些因素,提供一套认知高度一致的、开放可扩展的机器学习敏捷基础设施成为机器学习项目成功的关键。

3.1.5 机器学习项目难以落地的原因

机器学习项目落地难在业内是公认的。曾有调查报告显示,多达85%的机器学习项目最终未能兑现,机器学习项目的平均落地时间超过半年。那么,相较于一般软件项目,机器学习项目落地到底难在什么地方呢?

1.效果目标难以设定且不稳定

对于机器学习项目来讲,相较于一般的软件项目,它不仅需要关注功能、性能,还需要关注效果。而效果作为业务目标的关键部分,如果没有达到预期,那么功能和性能目标也就无从谈起。效果目标的设定既需要体现专业性,也需要体现领域业务性。正确地将业务目标转化成合适的效果指标是一个大的挑战。另外,模型效果与数据相关,目标是基于当前数据给出的,然而数据本身不是一成不变的,项目团队经常面临的局面是,从生产环境中获取数据,经过几个月分析和建模,等到系统要上线时发现当前数据已经随着时间和一些业务的变化而发生了变化,导致之前的工作变得没有价值。我们把这个现象称为概念漂移和数据漂移。要想避免或减少这样的情况发生,我们就需要加速调研和投产。

2.数据科学家稀缺,多角色协作困难

机器学习项目以数据科学家为核心,由业务专家、数据工程师、DevOps工程师等多角色协同完成。在项目实施过程中,我们面临数据科学家稀缺、多角色协作困难的问题。

(1)数据科学家稀缺

据麻省理工2019年某报告显示,随着人工智能需求的爆发式增长,数据科学家的缺口越来越大,招聘成本也越来越高,这直接导致一些中小企业无法落地机器学习项目。

(2)多角色协作困难

机器学习项目涉及大数据、微服务、算法、DevOps等多个领域,涉及业务专家、数据科学家、开发、运维等多角色,然而他们分属不同的团队,知识结构、专业背景都有很大差异,这就带来一个很大的问题——沟通和协作问题。那么,如何让他们在标准和规范下有序工作变成破解机器学习项目落地难的又一命题。

3.工具、基础设施繁杂

机器学习项目要想成功落地,需要一套完整的基础设施支撑。它不仅要保证AI科学家与AI工程师借助平台工程能力完成项目工作,还要让各角色协同工作,尽可能减少错误,提高开发和排错效率。然而,为了达到这些目的,我们在工程层面就不得不面临以下挑战。

(1)工具繁杂、流程复杂且难定制

机器学习项目呈现两个鲜明的特点:一个是工具繁杂,各个业务领域的工具层出不穷;另一个是机器学习模型作为传统业务系统的增强模块,时常需要插入现有系统,这就涉及数据流、业务流的对接和定制,这在实际项目中是最不可控的,如何妥善解决就显得尤为重要。

(2)部署复杂与弹性扩展

机器学习项目涉及的技术组件多,较传统的Web项目要增加50%以上,且部署本身相对比较烦琐,再加上机器学习项目天然涉及大数据存储和计算,如何管理及根据存储和计算规模弹性扩展也是待解决的关键技术问题。近年来,云原生架构被引入机器学习项目建设,很大原因是期望更有效率地管理服务。

(3)效果重现难

与功能实现为主的传统项目相比,机器学习项目有一个很大的不同——迭代的过程,需要不断根据最终业务效果,调整数据及训练方案。另外,受到环境的约束,数据科学家获得的数据的质量和生产环境中的数据质量也有一定差异,比如离线调研获得的数据通常来自数据仓库,而在生产环境往往需要直接对接业务,如何保证效果重现也成为关键问题。因此,在机器学习项目建设一开始,我们就要考虑数据和代码版本问题,并且基于数据和代码版本快速重现模型效果。这样,开发者可从未知的数据和代码一致性问题中解放出来,省去不必要的工作。

(4)监管与合规难

机器学习平台作为公共基础设施,为了防止滥用和不合法使用,必须支持监管、权限设置、审计等企业级功能。另外,在机器学习项目全生命周期,数据安全需要得到足够的关注,以便AI科学家和AI工程师能够合规使用工具和平台。

4.数据复杂

与传统的软件项目不同,机器学习项目的一个突出特点就是与数据相关,如图3-6所示。有统计表明,在机器学习项目落地的整个工作量中,数据相关工作占比超过80%。另外,数据质量及数据使用的正确性直接影响模型最终的效果,甚至在实际项目实践中,是否正确使用数据的重要性超过了模型优化本身。有统计表明,80%的模型效果问题并不是模型本身的问题,而是数据处理不当或者错误导致的。

图3-6 机器学习中各种类型任务占比

具体来讲,数据复杂性体现在以下3个方面。

(1)多种数据源及数据形式

在机器学习项目中,上游数据往往分散在不同的数据源中,存储的形式也各有不同。数据源可能是数据库、文件等,也可能是HDFS、Hive等,还有可能是实时消息接口。数据形式有结构化数据,也有非结构化数据。由于数据来源和数据形式存在差异,我们在数据接入和存储方面均需要花费时间和精力。

(2)复杂多变的数据处理流程及数据版本

机器学习项目要对接上下游数据,而这一过程往往需要结合既有系统加以适配。有的企业通过数据流水线来完成从原始数据到可以用来训练模型的特征过程中存在的数据对接、清洗、加工、特征构造等多个环节工作,让工程师将大部分时间花费在构建数据流管道工作中。随着数据流转的复杂度提升以及建模方案的迭代,数据管理、数据版本管理、数据血缘的诉求随之而来,这提高了数据处理和管理的复杂度。

(3)线上、线下效果不一致问题

机器学习包含训练和预估阶段。由于离线和生产环境不同,工程架构上也有很大差异。举个例子,训练时数据来自数据仓库等,处理是批量的,强调大吞吐,一般采用Hive、Spark等大数据计算引擎,然而在预估时,数据来自业务系统,样本少,强调低延时,这就存在一个很大的差距,如特征计算时,数据本身来源不同,并且无法采用同一套模式处理数据,这就有可能引入不一致问题,进而导致效果问题出现。目前,业内在这方面也期望通过统一数据、统一处理、与业务系统形成闭环的方式,尽可能避免这一过程带来的问题,保证预估结果正确性。 RnmHZzohYxc8Ux9b40sPKygSAWhCaiq5BZvrotsdNqeDsxDPCLJcWVB4WyHgjvdM

点击中间区域
呼出菜单
上一章
目录
下一章
×

打开