移动互联网的产品设计流程,常日要经历需求调研、需求剖析、功能设计、视觉设计、编码测试几个阶段。
环绕的重心是智好手机设备,对付产品的功能流程设计是否合理,用户交互是否顺畅,界面设计是否都雅有着较高的哀求。

如下图所示:

移动互联网产品方案流程

但是,在人工智能产品设计中,核心的重点不再是手机界面,而是对付业务的理解。

CRISPDM人工智能产品筹划流程

数据的理解和对算法的理解,这就哀求我们在进行产品方案的时候,将设计的重点从手机界面转变为以环绕业务目标的数据为核心。

目前,业内较为常见的设计流程是CRISP-DM(Cross-Industry Standard Process for Data Mining,跨行业数据挖掘标准流程)。

CRISP-DM跨行业数据挖掘标准流程

在1996年的时候,SPSS,戴姆勒-克莱斯勒和NCR公司发起共同成立了一个兴趣小组,目的是为了建立数据挖掘方法和过程的标准。
并在1999年正式提炼出了CRISP-DM流程。

这个流程确定了一个数据挖掘项目的生命周期,包括以下六个阶段:

商业理解:理解进行数据挖掘的业务缘故原由和数据挖掘目标。
数据理解:深入理解可用于挖掘的数据。
数据准备:对待挖掘数据进行合并,汇总,排序,样本选取等操作。
建立模型:根据前期准备的数据选取得当的模型。
模型评估:利用在商业理解阶段设立的业务成功标准对模型进行评估。
结果支配:利用挖掘后的结果提升业务的过程。

这套流程没有特定工具的限定,不论是利用SPSS这类图形化的数据挖掘工具,还是python这类可用于数据挖掘的编程措辞都可以。

也没有特定领域和行业的局限,是适用于所有行业的标准方法论,相对付其他的数据挖掘方法路,CRISP-DM具有灵巧和适用范围光的优点。

须要特殊把稳的是:虽然这套数据挖掘流程的完全生命周期包含六个阶段,每一个阶段都依赖于上一个阶段的产出物,但是这六个阶段的顺序却并不是固定的。
尤其是商业理解和数据理解,数据准备和建模阶段可能常常涌现反复循环的过程。

是否可以连续进行下一个阶段取决于是否有达到最初的业务目标,如果业务目标没有达到,那么就要考虑是否是数据不足充分或算法须要调度,统统都以业务目标为导向。

那么,接下来,我们用一个电商案例来看一下:如何在实际事情中利用这套流程?

商业理解

海微购是一家从事跨境电商业务的创业公司,公司在前几年捉住了海淘的趋势,用户量和交易额都还不错。
在新的财年,公司希望能在去年的根本年夜将GMV提高10%,并以此为目标制订新一年的事情操持。

1. 确定业务目标

首先,须要先确定业务目标。

根据电商零售额公式(零售额=流量转化率客单价复购率),公司认为:在获客本钱较高的市场环境,以及本公司经营的海淘产品复购周期较长的情形下,应优先提高转化率和客单价两项指标。
根据SMART目标制订原则,确定下一次迭代的产品目标为:猜你喜好模块中的商品点击量需提高20%,交叉发卖额提高10%。

2. 确定数据挖掘目标

第二步,须要将业务的问题转化为一个数据挖掘的问题。

根据业务目标,我们可以将其转化为以下几个数据挖掘问题:

聚类问题:构建大数据用户画像,形成用户的商品偏好标签体系,用于商品精准营销和推送。
预测问题:构建用户流失落预警模型,预测用户的流失落可能性,对可能流失落的用户进行挽回关怀,防止流失落。
分类问题:结合用户日常消费额度和信贷记录,向用户推举符合其购买力或购买习气的商品,提高转化率和客单价……

在制订数据挖掘目标时,须要明确数据挖掘的问题是一个分类问题,聚类问题还是一个预测问题,以便于后续的建模阶段选择得当的算法。
其余,还须要确定的是数据挖掘的范围,是针对所有用户大范围调度,还是先针对小规模的部分用户进行A/B Test,待验证成功之后再全面实行。

如果前期有干系的履历或数据积累,最好在这一阶段定义清楚数据挖掘成功的标准是什么,例如:推举的准确率要提高40%,或用户的流失落概率降落20%等,通过可量化的指标评估全体事情的效果。

3. 制订项目操持

第三步,明确好目标之后,就可以根据详细的,可量化的方案组织干系的干系人来评估事情量。
根据事情量倒排项目操持表,将目标拆解到更小的韶光颗粒度,并指定干系任务人进行任务跟进,如下图所示:

在这个阶段须要明确各个环节的交付产物,并识别可能的项目风险,提前制订风险应对操持。

例如:本公司缺少某方面的数据,须要从外部获取,或者干系职员配置不敷,须要招聘或借调人力资源的支持等等。
在项目进行的过程中持续监控,以确保项目的正常进行。

数据理解

明确了业务目标之后,我们须要针对数据挖掘的问题网络干系的数据,并对数据进行初步的处理,目标是熟习数据,探索数据与数据之间的内在联系,并识别数据的质量是否有问题。

1. 网络数据

数据理解的第一步是网络数据。

根据来源的不同,数据可以分为内部数据和外部数据两类,根据数据的类型又可以拆分为:用户数据和商品数据。

海微购公司的产品经理通过排查创造:公司目前已经通过埋点网络到了用户在web端和APP真个行为数据,且平台售卖的商品有专门的职员卖力打标签的事情,内部数据较为完善。
但是,还缺罕用户对付平台上未售卖商品的偏好数据以及用户的人口属性数据。

针对这一点,海微购公司的产品经理决定组织一次用户有奖问卷调研活动。
通过问卷调研的办法,抽样选取用户进行问卷填写,成功的网络了用户对付平台未售卖商品的偏好数据以及人口属性数据。

另一方面,通过网络爬虫数据,爬取了竞争对手平台的所有商品发卖量,并根据发卖单价推算出了总的发卖额,完善了现有的数据体系。

2. 数据标注

海微购公司所拥有的数据并不但有数据库中已经构造化了的数据,他还拥有很多非构造化的数据,例如:商品的图片数据,客户与客服的通话语音数据等等。

这些非构造化的数据并不是直接用于建模,而是须要前辈行数据标注,将其转变为打算机可以识别的数据格式。

例如:如果对商品的图片进行了却构化标注,建模阶段就可以通过图片识别技能对新上线的商品进行自动分类和打标签,乃至自动天生商品的广告海报图片。
如果对通话语音进行了数据标注,就可以为后续的人工智能客服供应语义数据,降落公司本钱,提高做事效率。

3. 描述数据

当数据准备充分之后,须要对数据进行描述,以供后续阶段利用。
紧张包括对数据量的描述,数据值类型的描述以及编码方案的描述。

不同的算法对付数据量的大小有一定的哀求,虽然越大的数据集可以天生更为准确的算法模型,但是同时也会增加打算的韶光。
以是,标注数据量的大小可以让算法工程师在建模之前决定是利用全部的数据集,还是从一个大的数据集等分出多少个小的子集来进行建模。

建模的数据可能有多个来源,且网络数据的人和卖力建模的人可能不是同一人,以是在建模之前务必对数据的类型进行描述。
数据的类型有多重,例如:数值型、分类型、布尔型、韶光等等。
标注清楚数据类型可以加快后续建模阶段的效率,防止数据类型的缺点而导致涌现问题。

在数据库中,常常利用不同的数值来表示不同的数据特色,例如:海微购公司的用户来源可能来自地推、线上获客、朋友推举、自主下载等多个渠道等。

这些渠道类型在数据库中可以用笔墨来进行表示,也有可能用1234的数字来表示,在数据描述中须要特殊注明这一类的数据及其对应的含义,以便后续阶段能精确的利用这些数据。

数据准备

数据准备是数据挖掘最主要的阶段之一,常日这一阶段所花费的韶光和事情量占全体项目的50%-70%。

如果产品经理在前期对付业务理解非常准确,数据理解也非常充分,那么将极大的减少数据准备阶段的事情量,提高事情的效率。

1. 选择数据

在第一步选择数据阶段,须要做两件事情:第一是在所有的数据中选择哪些数据作为演习集,哪些数据作为测试集;第二是选择参与建模的特色字段有哪些。

以海微购公司为例:公司希望提高提高推举的准确度和发卖额,那么须要通过用户画像,选择范例的紧张客户——例如:最近有过购买记录,并且在一定韶光内持续生动的用户。
而不能选择已经流失落的,或者是从来没有购买记录的无效客户。

对付参与建模的特色,须要选择那些与业务目标息息相关的数据,以购买商品转化为例:从业务履历来看与之干系的数据有用户的月均消费额度、用户的商品偏好、商品的曝光率、好评率等等。

当然,也有一些基于统计学的方法可以帮助我们选择数据,例如:干系系数,卡方考验,T考验等等,我们在特色工程的章节会详细的讲到这些方法是如何利用的。

2. 清理数据

数据准备的第二步,是对数据进行清理,在实际的事情中,网络的数据不一定是100%准确无误的,常见的数据问题有:缺失落值,缺点值,离群值,编码不一致和无效数据。

例如:用户的年事信息与是否购买某些商品有非常强的关系,但是用户的年事信息对付用户本身来讲不是一个必填的信息。
以是,商家不一定能获取到而造成缺失落值。
其余一种可能便是用户未填写真实的年事,导致年事涌现负数或大于200的数这类缺点值。

还有一些数据,例如用户的身高数据,如果绝大多数用户的身高在1.5米到1.9米之间,但是并不用除有一些用户的身高可能低于1.5米或高于1.9米。
这类数据并不是缺点数据,而是离群值,这类离群值量级较少,不是紧张客户特色,但如果不加以打消直接参与到建模阶段,就有可能对建模造成一定的负面影响,比如:影响正常的均匀值或极差。

编码不一致的问题也常常涌如今数据中,例如:很多数据在低于1万的时候,显示的是详细的数值,而高于1万之后就不再显示详细的数值,而是显示成x.x万这样的格式,造成格式编码不一致的情形,在建模之前须要将所有数据处理为统一的单位和格式。

数据的精确性会直接影响后续建模阶段的模型效果,以是在数据准备阶段须要将这些问题数据进行处理,最大略的方法便是直接删除有问题的数据。
但如果数据的量本来就比较少的话,也可以通过一些统计学的方法对数据进行修复或插补,例如:均值补充法处理缺失落值,盖帽法处理离群值等等。

3. 构建新数据

在数据挖掘中,有一些数据可以通过其他的数据转化而来,例如:如果获取到了用户的身份证信息,就可以根据身份证的生成规则知道用户的籍贯地址,生日以及性别。
知道了用户的手机号,就可以通过手机号的归属地查到用户所在地;知道了用户的常用收货地址,结合房产数据,可以推测出用户大致的月收入。

除了对已有数据进行转化,还可以通过人工定义的办法将一些用户的事实施为通过规则转化为新的数据,例如:将月均平台消费超过1万的定义为高消费客户,将月生动天数大于15天的定义为高生动用户等等。

4. 数据降维

建模速率与数据的量级成正干系,数据量越大,建模的韶光也就越长。
我们在数据准备阶段,可以通过数据降维的办法减少数据特色,减少数据中的特色数量的同时,避免丢失太多信息并保持模型性能,以此达到简化打算量的目标。

数据降维的另一个目的是对数据进行可视化,我们生活在一个三维的天下中,但如果数据的维度大于三维,就无法进行可视化了。
而通过降维将数据降为三维或二维的数据,并保持数据之间的关系,就可以通过肉眼来不雅观察数据模型的效果了。

建立模型

到了这个阶段,之前的事情终于可以有所回报了,我们可以利用算法对前几个阶段准备的数据进行建模,看是否可以达到我们期望的结果。

建模的过程常日会实行多次,利用多个不同的算法和参数,由于在实际事情中,只是用一个算法且仅实行一次运算就能圆满的办理业务需求。
这样的情形险些是不存在的,正常的情形是我们可能须要在数据准备阶段与建立模型阶段之间反复多次,以确保业务目标达到最佳的效果。

1. 选择建模算法

第一步,我们须要根据业务目标选择适宜的算法,在前文我们提到过算法分为有监督学习和无监督学习两种。
根据业务目标的不同,又可以分为:分类算法,聚类算法或预测算法。

算法的选择并不一定是越繁芜的算法效果就越好,终极的效果取决于演习的数据以及设置的算法参数,以是我们可以在建模的时候,将适宜的算法都考试测验一次,根据结果来进行选择。

2. 演习集评估

第二步,在选择好利用哪种算法之后,我们须要选择与演习集对应的测试集数据,并对算法的结果定义一个明确的评价标准。

对付有监督算法,常日利用模型的精确率来进行评估,而对付无监督算法,我们常日是根据结果是否易于阐明,是否易于支配以及算法运行的韶光等标准来评估

3. 构建模型

第三步,是真正建模的过程,在这个阶段根据算法的不同,可能须要对算法的参数进行调度,例如:KNN模型中调度K的值,或者深度神经网络算法调度隐蔽层的数量等。

在每次调度算法参数并实际天生模型之后,我们须要根据在上一步定义的评价标准,记录模型的结果数据。
这些结果数据将用来与其他的算法,以及同一个算法不同参数间的比较,确定最佳算法和参数。

这听起来是一件非常噜苏且耗时的事情,事实也确实如此,但是感谢技能的发展,大多数调参的过程都可以通过打算机自动完成,不须要人来值守。
而且,通过集成算法的利用,我们可以同时利用不同的算法来对数据进行建模,我们在后面还会详细的讲到。

模型评估

至此,我们的项目已经完成了绝大多数的事情,在开始末了的支配阶段之前,最主要的事情是彻底的评估模型,根据在商业理解阶段定义的业务目标来评估我们努力的成果。

1. 评估结果

终极的算法模型结果有可能达成了我们最初的业务目标,当然也有可能没达成。

达成了当然是一件好事,但如果没达成也不一定是一件坏事,就像爱迪生发明灯泡试验了一千种材料,失落败了一千次也并不认为自己是失落败了。
他说:“我只是证明了这一千种材料不适宜做灯丝而已。

数据挖掘没有达成业务目标的结果,也不一定意味着建模的失落败,有多种可能性导致不堪利的结果。

例如:业务目标一开始定得不足合理,与业务目标密切干系的数据未网络到,数据准备涌现了缺点,演习数据和测试数据不具备代表性等等。
这时候我们就要回到之前的步骤,来检视到底是哪个环节涌现了问题。

2. 审核过程

就像每个项目结束之后都须要进行复盘一样,在一次数据挖掘项目迭代之后,也须要对过程的成功之处和不敷之处进行总结——回顾每个阶段的任务与关键的决定,看看每个阶段所做的事情对付终极的结果是否有所贡献?有没有什么方法是可以简化或者改进某一阶段任务完成情形?有没有什么不敷之处,是可以不才一次迭代时进行改进的?有没有什么导致失落败的问题是可以不才一次提前预测到并且避免的?

3. 确定后续步骤

无论成功或失落败,到现在都已经天生了终极的结果,那么就该当考虑一下:接下来该做些什么了?

一样平常会有两个选择:

如果成功了,那么就进入末了的结果支配阶段,将数据挖掘的结果并入到产品的业务目标中。
如果没有成功,那么可以返回前面的步骤重新设定业务目标或重新网络数据进行建模,有过一次失落败的经历之后,有极大的可能创造失落败的缘故原由,并不才一次的建模中避免失落败。

当然,我们还可以选择其他办法来达成业务目标,毕竟统统的技能都是为了业务目标做事的,人工智能也并不是万能的,根据业务专家设置的规则或从产品运营角度也能提高古迹。

结果支配

建模的浸染是从数据中找到知识,得到的知识须要以便于用户利用的办法重新组织和展现,这便是结果支配阶段的事情。
根据业务目标的不同,结果支配大略的可能只须要提交一份数据挖掘报告即可,也有可能繁芜到须要将模型集成到企业的核心运营系统当中。

1. 制订支配操持

根据业务哀求和运算性能的的不同,支配的模型可分为:离线模型,近线模型和在线模型三种。

离线模型一样平常适用于重量级的算法,支配于大数据集群仓库,运算的韶光须要以小时计,并且时效上常日是T+1的。

近线模型适用于轻量级算法,一样平常在内存和Redis(一种支持Key-Value等多种数据构造的存储系统,适用于高速行列步队)中进行,运算的速率以秒为单位。
而在线模型则常日根据业务规则来设置,在内存中运行,运行的速率以毫秒计。

其余,支配还须要考虑不同编程措辞对付算法模型的调取兼容性,在这个阶段算法工程师须要与原有业务的开拓工程师进行联调协作,确保业务系统能够精确的调用算法模型结果。

2. 模型监督和掩护

我们知道算法模型是基于历史数据得来的,但是在模型支配并运行一段韶光之后,可能业务场景已经发生了变革,原有的模型已经无法知足当前的业务须要。
这就须要我们在模型支配上线的同时,同步上线模型的监督和掩护系统,持续跟踪模型的运行状况。

当创造模型结果在涌现短期非常值时,排查非常的缘故原由,例如:运营活动或者节假日等成分,当创造模型长期表现不佳时,则要考虑是否是用户和产品的数据构成已经发生了变革。
如果是由于数据构成已经发生变革,则须要重新通过CRISP-DM流程构建新的模型。

3. 天生终极报告

末了,不要忘了向项目的干系干系人发送一份终极的项目总结报告。

不论是在项目过程中一起并肩作战的同事,还是对项目关心的领导,都须要理解项目的终极成果。
一个项目的成功,总离不开每个人的努力,常怀一颗戴德的心才能让一个团队走得更远。

本文由 @黄瀚星 原创发布于大家都是产品经理。
未经容许,禁止转载

题图来自Unsplash,基于CC0协议