带你读《增强型分析:AI驱动的数据分析、 业务决策与案例实践》之一:数据科学家的成长之路(en)

 阿里云安全(en)     |      2019-11-05 00:00:00

数据分析与决策技术丛书
点击查看第二章
点击查看第三章
增强型分析:AI驱动的数据分析、
业务决策与案例实践
image.png

彭鸿涛 张宗耀 聂磊 著

第1章

数据科学家的成长之路

一次偶然的机会,有一位正在深造机器学习方面学位的朋友问了笔者一个问题:如何成为一名合格的数据科学家?这个问题回答起来亦简亦难。简单回答的话可以拿出标准答案,坐而论道地说需要编程能力、数据操作能力、数学基础、算法库应用能力、算法调优能力与业务对接的能力等。但是这样的答案笔者其实是不满意的,因为有太多的技术意味。做数据分析、将数据的价值发挥出来,是一个“工程 + 科学”的过程,只要在这个过程中的任意一处找到自己的位置,就无谓数据科学家这种称号了。
大数据时代方兴未艾,人工智能时代又呼啸而至。人们在很多场合下能看到诸多新应用,加之整个社会都在热切地拥抱人工智能技术,使得大家都相信人工智能时代势必会改变社会的方方面面,笔者对此也深信不疑。在人工智能时代,将数据的价值发挥出来的要素有资金、数据、平台、技术、人员等。数据科学家是人员要素中最为重要的部分,是需要企业非常重视的。在数据科学家自身发展的方向、组织结构,以及如何体现出价值等方面,相信大家肯定会有很多想法。笔者从十几年前加入IBM SPSS进入数据分析领域开始,至今担任过分析软件工具的开发者、解决实际业务问题的数据挖掘者、数据驱动业务以及数字化转型的咨询者等多种角色。反观这些年的成长路径,将一些较为重要的经验做一个粗浅的总结,抛砖引玉,以供读者参考。

1.1算法与数据科学家

我们随便打开一些教科书,会发现机器学习、人工智能、数据挖掘等经典领域所谈论的很多知识点是共通的,比如从历史数据中学习到事物模式并用于对未来做出判断,是机器学习中的重要内容,也是人工智能的重要方面,更是数据挖掘的重点内容。
现在有一个很时髦的说法,认为机器学习是比数据挖掘更为高深的学科,实现人机对话那肯定是人工智能的范畴。其实,从一个更为宏观的视角来看的话,这几个学科都是在将数据的价值通过算法和算法的组合(数据分析的流程)发挥出来,没有一个清晰的标准说某类算法必须属于人工智能范畴、某类算法必须属于机器学习的范畴。

1.1.1数据科学、人工智能、机器学习等

有国外的学者试图给出一个机器学习、数据科学、人工智能等时髦名词之间关系的示意图,如图1-1所示,我们发现,这些学科间的关系可以说是交缠不清。
image.png

图1-1数据科学相关的学科之间的关系

笔者也就这些学科之间的关系进行了深入探索,查询了很多的资料,发现图1-1的中间部分,其实是来自SAS在1998年提供的数据分析的课程。除此之外,很少有人能将它们的关系说清楚,因为这本来就说不清楚。所以,对上图,读者只当其是一个参考即可。
重点是图1-1所表达的含义:这些技术都是围绕“问题解决” →“分析” →“策略” →
“领域知识” →“沟通” →“表达” →“探索”等问题来展开的,而这些问题都是人们在认识世界、解决问题时所涉及的方面。所以,本节采用图1-1想表达的含义也是如此:计算机的技术在迅猛发展,现在很多的技术都可以融合使用来解决复杂问题了;对于数据科学相关的这些技术,很多方面都是通用的。

1.1.2室内活动还是室外活动

数据科学家是个含义较广的名词,人们往往也不会太多在意他们所从事的具体工作有什么不同,习惯将从事算法设计开发、在客户现场直接应用数据分析工具解决问题的人都称为数据科学家。这样的划分其实无可厚非。但是若将算法看作成品,则可以将数据科学家分为室外(out-house)和室内(in-house)两种角色。所谓室内数据科学家关注具体算法的设计、实现。比如,在MapReduce的计算方式下如何实现分层聚类算法。而室外数据科学家,也就是数据挖掘者,他们一般不需要关注具体算法和工具的实现,他们的职责是将客户的需求翻译为具体工具能解决的工作流程,并应用合适算法能得出有意义的结论。图1-2比较形象地对比了两种科学家的不同。
image.png

图1-2室内室外两种数据分析人员职责对比

现在还有一种习惯就是将室内数据科学家称为算法工程师,而对于室外数据科学家则称之为数据科学家。我们大可不必纠结于这些名称的不同,只要对他们的职责有不同的认识即可。室外数据科学家,在长期的项目过程中,需要与业务人员有非常深入的沟通才能得出有意义的数据分析结果。所以,相对于数据模型而更加看重业务的需求和特点,这是室外数据科学家的基本素养。本书所谓的数据科学家是指所谓从事室外活动的数据分析者。

1.2数据科学家不断成长的几个阶段

现在移动端各种App百花齐放,这已经使得信息的传播没有任何的限制,人们在不自觉的过程其实已经阅读了大量的自己感兴趣的文章。若对机器学习比较感兴趣,相信人们已经看到了很多非常炫酷的机器学习的应用,如人脸识别的精度已经提高到一个非常高的水平、大量智能问答机器人的部署已经替代了不知多少呼叫中心的员工等。
显而易见,这些应用绝不是单靠一个算法就能解决的,注定是平台、算法、业务等要素的综合应用才能产生这样的效果。在应用数据分析时已经基本形成一个共识,就是数据分析者要对业务有一定的了解,才能保证产生较好的结果。
Gartner很早就将数据分析能力分成了4种(如图1-3所示),描述性分析(Descriptive Analysis)是在回答“过去发生了什么”,是了解现状的有力手段;诊断分析(Diagnostic Analysis)是寻找“为什么会是这样”的方法;预测分析(Predictive Analysis)是在回答“将来会是怎样”;Prescriptive Analysis则是说“基于现状、预测等结果,我如何选择一个较优的决策得到期望的结果”。Business Intelligence的核心能力是解决描述分析和诊断分析。人们常说的预测模型(包括传统的随机森林、GBT等,还包括深度学习的常见算法如CNN等)、聚类模型、关联分析等都属于预测分析范畴。利用凸优化、马尔可夫等方法从众多的决策选项中寻求最优决策,则属于Prescriptive Analysis的范畴,重点解决最优决策的问题。
image.png

图1-3四种分析能力划分(Gartner)

在图1-3中,分析之后,人们经验、业务的输入(Human Input)随着分析手段的提高而减少,这是因为Prescriptive Analysis在分析过程中已经将这些因素充分地引入。比如,预测客户流失的模型能够输出“哪些客户将要流失”的名单,但是并不会输出“OK,企业应该采用何种决策来挽留”,是应该给个折扣,还是办一张会员卡?这些还是需要人们进行业务决策的输入。而Prescriptive Analysis则会分析折扣和会员卡哪种方式既能挽留客户又能使得企业的收益较高,但是这些决策(会员卡和折扣)也是需要人们输入后才能进行分析。所以“通过数据分析的手段发挥数据价值”的过程,没有业务输入是绝对行不通的。所以,笔者也认为数据科学家绝不是仅仅精通算法即可,还需要对业务一直保持热情,不断思考如何发挥数据分析的业务价值。我们需要从技能、效果、工作内容、工作方法等多个层面来扩展相关的能力,这才能发挥较大的价值。总之,如果数据科学家仅仅只是被动地考虑用何种算法满足业务部门所提出的要求的话,是远远不够的。
如果读者有志于成为一个数据科学家,或者已经是一个数据科学家,类似于职场的职业路径规划,数据科学家的成长路径可以是什么?如何不断成长?相信大家按照自己的兴趣都有不同的理解。若数据科学家一直致力于“发挥数据的价值”这条主线,那么笔者认为从价值的大小上可以分为算法、用法、业务、战略4个层面(如图1-4所示),数据科学家也可以沿着这条路径来成长。
从图1-4中可以看到不同层面的数据科学家的职责和作用是不同的,4个层次也是数据科学家成长的不同阶段。
image.png

图1-4数据科学家成长的4个阶段

1.2.1算法——如何构建数据分析模型

人们总是津津乐道各种时髦的算法,感叹算法的发展使得人工智能有了长足的进展。比如,人们看到机器可以精准地识别人脸、机器可以作诗、机器可以识别图片内容并“说出”符合其内容的文字描述,也热衷于紧跟最新的技术发展来做一些新颖的应用。这是一个非常好的趋势,可以促进人工智能的相关产业发展。然而,人类已经发明的算法远不仅仅如此。若读者一直在从事数据分析的相关工作,会发现其实能够解决实际业务问题的算法非常多,有很多也是简单直接的。比如,找到潜在的价值客户,既可以通过响应预测的模型,也可以通过聚类分析的模型,还可以通过社交网络分析的模型来找到。构建这些模型所需要的相关知识也需要体系化地学习、不断积累才能真正满足实际的业务需求。
在很多数据挖掘的资料中都会把算法分为有监督的学习、无监督的学习等类别,每个类别下各自的算法又有不同。比如聚类算法属于无监督的学习范畴,而能够做类别判断或回归的算法都属于有监督的学习范畴。在实际使用时,需要针对需求灵活应用,如可以先用决策树算法生成预测模型,然后分析决策树的分支来细分客群。只有对这些算法有一个体系化的学习,才能达到灵活应用的目的。
超参数(Hyperparameter)是在给定数据集的情况下,确定一组参数组合能使得模型性能、泛化能力达到较优。每个算法在调试超参数的过程中,都有一些与算法特征相关的普遍规律,如随机森林算法中决策树的个数、决策树的深度等,一般是需要预先被设定和关注的。基于随机森林中每棵树应当是一个弱分类器的原理,决策树的深度应该很小才能避免过拟合。目前有Grid Search等工具能够在不同参数组合下尝试找出一个合适的超参数,替代人们不断进行手工尝试的过程。但是不论如何,设置算法参数时总有一些经验总结可以在后来的应用中被复用。
在深刻了解算法原理、算法体系的基础上,掌握参数调优的技能是一个数据科学家的基本能力。不论是对初学者还是有一定经验的从业者来说,这都是一个需要不断学习和积累的基本任务。

1.2.2用法——如何回头看模型

在很多情况下,当数据科学家花费大量时间和精力构建出模型后,兴高采烈地试图交给业务人员进行使用时,往往会遇到一个有趣的情况:业务人员听不懂你对高深算法的解释,甚至不在乎你对数据的各种费心处理,他们只关心实际的问题,如模型到底效果如何?
在很多情况下,模型构建完成后需要对模型进行验证。比如训练时采用截止到3月的数据,而模型部署是在7月,所以需要数据科学家验证截止到6月的情况下,模型的实际效果能达到什么程度。这时,我们除了需要通过新数据计算模型性能指标(如提升度、准确性、稳定性等)外,还需要计算模型实际业务结果会是怎么样,能带来多少收益或能避免多少损失(如图1-5所示)。

image.png

图1-5 以简单明了的方式来讨论模型使用的预期价值

数据科学家除了要对模型性能指标熟稔于心外,还需要能够表达清楚模型真正的实际价值。所以,在第一步模型构建完成后,应用两套指标来衡量是比较可取的做法——模型性能指标是从数学角度说明模型优劣;业务指标是从模型应用的业务结果来评价其价值。
在现实中,人们往往不好准确把握模型的真实业务价值,在实际应用后通过数据统计才能有结论。但是这一点都不妨碍模型部署前的估算:按照目前模型的性能指标,估计在第一次给定客户数的情况能有多少人购买,大致的营业额会是多少。采用估算还是采用事后统计,都是用以说明模型业务价值的手段,可以灵活应用。数据科学家要像重视模型性能指标的计算一样重视模型所带来的业务指标的计算。
总体来讲,数据科学家不能将自己的工作范围只框定在纯粹建模,需要“抬头看”和“睁眼看”业务价值。

1.2.3业务——如何产生更大价值

业务问题的解决,可以从一处痛点开始突破,也可以按照体系化的方法整体解决。比如,银行对理财产品的营销,若只关注具体产品的销售,则简单的产品响应预测模型即可解决;若只关注一批产品的销售,则也可以通过构建多输出预测模型(我们在后面的章节中重点介绍)预测每一个产品的购买概率来生成推荐列表;若关注客户旅程地图(Customer Journey Map)而确定营销时机,则需要一批模型;若关注客户体验的提升,需要的就不是一批模型,而是一个体系化的平台加大量模型才能达到预期效果。
大多数情况下,数据科学家应当在具体的业务背景下展开工作。比如,若业务部门按照客户旅程地图的方法来分析客户特征、了解客户需求、并适时推荐产品(如图1-6所示),则数据挖掘的模型是服务于一个个业务场景,在整体客户关系管理的框架下发挥价值的。
数学科学家的工作需要深度融入业务,甚至引领数据驱动的业务发展。此时,数据科学家的定位不应该仅仅是构建模型者,还应该是数据驱动业务这种新模式的搭建者。这种角色变化就要求数据科学家深刻理解具体的业务、新的数据驱动模式的运作方式,围绕数据驱动模式而展开各种活动的意义。
image.png

图1-6以客户旅程地图为例说明不同的业务场景需要相应的模型

在这种情况下,数据科学家在构建模型时需要明确:该模型在数据驱动业务的新模式中在哪个阶段发挥什么作用?如何构建一个模型组来协同工作?有了这些模型后数据驱动业务模式能够做到什么程度?

1.2.4战略——如何更广

数字化变革是目前几乎所有企业都无法回避的任务。企业由于所处行业、自身特点等原因,需要量身定制数字化转型的战略。大型企业需要选择发展重点作为突破方向,在转型过程中既要做好技术基础,也需要大力推行敏捷的方法,同时要对人们的观念、组织内的流程等方面做出更新(如图1-7所示)。
image.png

图1-7一个量身定制的数字化转型路线图示例

资深数据科学家或首席数据科学家所担负的职责不应该仅仅是完成目前安排的任务,或者去做一些博人眼球的所谓智能应用。其还应该深度参与企业数字化转型的战略制定、计划安排、引领加速器项目等工作,因为资深数据科学家最应该懂得数据的价值如何发挥、能够发挥到什么程度。
对于大型企业而言,数字化转型的任务是艰巨的,不过众多行业已经或多或少地开始了相关的行动。笔者由于工作关系也深入参与到了大型金融机构数字化转型的咨询工作,深刻感触到了企业在进行数字化转型时的困难。这使得笔者更加认为让真正懂得如何发挥数据价值的人员按照加速器的方式来推动数字化转型进程是至关重要的。

1.3数据科学家的工作模式与组织结构

数据科学家需要与业务专家一起工作才能发挥最大价值。实际工作中两种角色如何配合,取决于是采用业务驱动的模式还是数据驱动的模式。

1.3.1数据驱动还是业务驱动

业务驱动的特点是业务人员主导数据分析需求的提出、结果的应用,在业务中应用数据洞察;而数据驱动的特点是更看重主动应用数据分析手段,从数据洞察发起业务、改善业务,当然在业务执行时也需要广泛应用数据洞察。在较新的业务领域采用数据驱动比较适合,已有复杂业务则采用业务驱动较好。
然而从自身能力的发展、数据驱动逐渐成为主要的工作模式的情况来看,数据科学家需要思考如何将数据驱动的模式做得更好,并且愿意承担更多责任。所以,除了算法、用法等基本技能,还需要考虑如何改善业务。
图1-8所示的职责占比只是示意,其实最核心的是由哪种角色来主导,在工作中也未见得业务专家不能主导数据驱动的模式。从业务结果的角度来看,所谓业务驱动和数据驱动只是到达一个既定目标时不同的工作方式而已。在实际的业务中也不会分工非常明确,即不会限定业务人员只能做什么或数据科学家只能做什么,只有相互无缝协作才是最佳的工作模式。
image.png

图1-8业务专家与数据科学家的两种配合方式

1.3.2数据科学家团队的组织结构

数据科学家团队的组织结构关系到数据应用的效率、管理的效率、个人的发展等诸多方面,企业在设置这个组织结构时需要认真考虑。每个企业的实际情况不同,可以采用不同的方法。数据科学家的组织结构一般分两种,即分散式结构和集中式结构。分散式结构是数据科学家属于确定的业务部门,这样的组织结构的好处是其可以紧密地与业务人员合作,将业务问题转换为高效的数据分析任务。但是其也有不足,一方面数据分析的知识积累是在个人身上,而不是在团队,另外一方面就是因为角色的限制使得业务部门内的数据科学家没有上升空间。业务部门内的数据科学家若要在职业道路上继续前进,要么离开,要么担任其他角色。一旦发生数据科学家的人事变化,这对团队稳定、知识积累等都是不利的。
集中式的数据科学家组织结构就是跨业务条线而成立独立的专门做数据分析的结构。这样的组织结构的好处就是团队相对稳定,给成员提供了不断成长的空间,也避免了知识积累的流失。但是其也有不足,由于数据科学家脱离业务部门而独立存在,导致团队成员对业务的理解不够深入,模型的产出可能效率低下。业务部门也可能只将其看作支持部门,而不会在实际业务中有太多引入。
企业在构架数据科学家组织架构时,也可采用混合的结构。即使是集中式的组织结构,其汇报的层级也可能不同。没有所谓明确的业界标准的说法,因地制宜的做法才是最实际的。

1.4数据科学家的工作方法要点

数据科学家的核心任务之一是通过数据分析手段将数据洞察应用在实际业务中,并能产生有效的结果。数据科学家在实际工作中需要注意以下要点,以确保上述目标的达成。
1. 开始工作以前确保具备成功要件
在开始一件工作前,最好先明确一下业务场景、数据可获得性、数据质量等重要信息。在很多情况下,会出现因数据不支持无法进行细致分析、模型结果很好但是落地应用时没有对应的资源支持、数据分析只是探索没有对应的使用场景等问题。这些因素会严重影响数据分析的价值。
笔者作为顾问给多个客户实施数据分析项目时,就遇到过上述的问题。从客户的角度来讲,其关心的是业务问题的解决,并不会过多细致地考虑实施过程的细节。只有努力地尝试去做,才能发现有些问题会严重阻碍数据分析的进行,这也会影响数据分析的最终效果。
2. 同时输出两种价值
假设要通过数据分析手段改善某业务问题,如构建预测模型筛选高价值、高响应率的客户,即使是在目标非常明确的情况下,数据科学家也要在做的过程中保证两种输出结果。
(1)重要发现
数据分析过程中势必要进行数据提取、数据处理、数据探查等一系列基础工作。在这些基础工作的过程中,往往会隐藏着有巨大业务价值的信息。比如,笔者的团队在给某金融机构构建高端客户的相关模型时发现一些信息,如“大部分客户只持有一类理财产品且在半年内没有交易活动”,这些信息对于后期的营销策略制定至关重要。所以,数据科学家在实际工作中需保持“业务敏感性”,对于数据背后的业务故事保持好奇心,同时将一些重要的数据发现协同模型结果一并输出,这可以大大提高分析主题的价值。
(2)模型结果
给定分析主题,目标模型结果就可以基本确定,如寻找高价值客户就是模型输出一个名单,风险预警就是给出风险评分以及原因。这是模型输出的最基本形式。
在实际的模型实施应用中,业务人员会经常以挑剔的眼光来看待模型,并且基于模型结果总是有不同的疑惑需要数据科学家来解答。典型的疑惑如“聚类分析模型确实将客户分了几个类别,但是我还是不知道该如何营销这些客户”“社交网络分析模型给出了潜在的高价值客户名单,但这些信息不足以让营销人员开展营销”。出现这种情况时,一种简单的做法就是和业务人员深入讨论,梳理出他们的关注点,然后将对应的指标从数据库中提取出来,作为模型输入的补充一并交给业务人员。
从本质上来讲,出现业务人员疑惑的原因是“业务人员期待模型输出决策而不是名单”以及团队缺乏将模型输出转换为营销决策的能力。数据科学家也需要具备将模型结果转换为业务决策的能力。模型直接输出决策的内容将在第5章详细讨论。
3.充满想象力地开展工作
算法能做到什么是数学范畴的知识,数据科学家的核心工作就是将业务需求转换为一系列的数据分析实践过程。若将各个算法看作一个个组件,那么用一个算法来解决问题还是用多个算法的组合来解决问题,需要数据科学家的想象力和不断尝试。
笔者的团队曾给某客户构建模型时,其需求是“根据客户持有产品的现状推荐产品,达到交叉销售的目的”。这是一个非常不具体的需求,能做的范围很大,能用的算法工具也很多。最后我们采用的是构建“客户聚类与产品聚类的交叉分布以及迁移矩阵,并据此来展开不同目的营销”,若向上销售则可推荐同类产品,交叉销售则可推荐不同类的产品。这种做法之前没有实施过,但是结果证明其非常有效,仅在一次营销应用中就带来数十亿的营业额。
4. 按照敏捷的方式来构建模型
数据挖掘过程也可以看作一个项目过程,从项目管理的角度当然可以按照敏捷的方式来进行。数据科学家需要积极主动地汇报分析思路、预期结果、进度等重要信息。时刻与业务人员以及管理人员保持沟通,对需求变化保持开放,将对模型的实际应用会有巨大的帮助。一般情况下,让一个对数据和业务都不了解的人来构建模型,往往需要数月的时间;但让一个熟悉数据、业务、算法工具的人来建模,则可能只需几天就可以完成。不论哪种程度的人员来建模,都可以按照敏捷的方式来管理建模过程。
笔者与建模方法论CRISP-DM的提出者之一Julian Clinton一起工作过4年时间,在长期的项目实践中我们一直坚持该方法论所倡导的核心要点:紧贴业务、不断探索、以结果为导向、模型在应用后仍需不断调优等。事实证明,这些原则非常有效。CRISP-DM方法论的实施与实施过程中按照敏捷的方式来管理是相辅相成、相得益彰的。
5. 以业务的成果来衡量自己的工作
模型的效果到底如何?数据科学家不应该基于测试集上优异的模型性能指标而洋洋自得,这没有任何意义,顶多代表建模的技巧高超。模型最终带来的收益是由模型输出、匹配模型输出的业务决策、业务决策实施过程中的资源配置、应用场景的价值大小等综合因素共同决定的。缺少任何一环都会使得模型的价值直线下降。
数据科学家需要积极主动地推进这些环节的相关工作,积极收集模型部署后的监测数据,在“建模—业务决策匹配—业务决策实施—效果监控—模型或决策改进—再部署—再监测”的闭环中积极发挥作用。最终得出的业务结果数据,才是数据科学家真正成就感的源泉。

(en)