机器学习建模在后,策略先行

机器学习建模在后,策略先行

Written by Jepson(Jiaping) Du 杜嘉平, 文章同步公众号: 持续学习的杜吉普

写在前面:世界上80%以上的机器学习模型最终都没有真正的被使用于商业流程之中,其中一个原因就是模型应用策略的阻塞。有太多商业场景下,模型的在被数据科学家建造后,才发现对于模型所预测出的那个看起来显然能够帮助提升业务价值的指标的使用在事先没有很好的考虑,导致两个最大的问题:1.不知道模型应该以何种策略被应用,2.不知道模型的业务价值应该被如何的验证。


幸好,“先有策略还是现有模型?”这个问题要比“先有鸡还是先有蛋”这个问题要容易解答得多,问题的答案也就是文章标题:策略线形,模型垫后。



主题引入

以往案例中,数据科学家的机器学习任务是接收需求与满足需求。而需求往往来源于业务部门对于一个希望预测值(predicting/forecasting value)。接下来,数据科学家将会收集数据,特征工程,建模,通过模型部署把预测值交给业务部门使用。如果幸运,业务可能提前思考过模型产生的结果如何应用于业务流程中,但很多情况,却没有那么幸运。因为业务大多是没有对于模型策略以及价值认证的思考,所以这就需要数据科学家们在得到建模任务后不要急于开干,而是要深入业务,提前研究模型应用策略。


整篇文章会围绕4个问题探索,回答完这4个问题,也就解释了为什么策略先行,建模在后



问题1:预测目标是否能够直接提升业务价值?

依旧以一个我喜欢的项目案例作为引子:Kaggle经典项目:Santander Customer Satisfaction Prediction https://www.kaggle.com/c/santander-customer-satisfaction这个项目我之前在kaggle中得到了全球排名5%的高分,但是其中的MLOps问题却丝毫没有思考过。虽然这个问题我相信Santander团队已经是经过了仔细研究,但是不妨碍我们对于这个案例进行一个模型策略的思考。


对于这个项目我们提前预测用户满意度,可以提前识别出“可能会产生不满而投诉的高风险用户”,提前对于高风险用户的补救来降低投诉,提升总体客户满意度。


好了,上面是一个看似非常符合逻辑的描述,我们来试着把上面整个逻辑流程拆解成几大块:预测指标、应用策略、期望结果


我们来做个练习,把上面Santander的例子进行拆解:


  • 预测指标:客户满意概率

  • 应用策略:对于提前识别出的高概率(假设>70%)不满意客户,我们派出服务经验丰富的客户经理进行无微不至的服务,以保证我们的服务的体验,以提升整体客户满意度。因为银行职员的资源有限,对于预测的满意客户则相应减少经验丰富的员工服务,这样经验丰富的员工可以更好的服务高风险用户。。我有点编不下去了,因为我没有深入业务,不确定业务上如何应用这个预测值。你看这就是机器学习项目中很大的问题。

  • 期望结果:投诉率降低或客户满意度升高


下面的文章会围绕这三个元素进行模型策略的讨论。





问题2:如何确定预测值可以被有效的策略应用


指标的预测到指标的应用的这一步转换能否提升业务价值?如果这个应用策略不能很好的与预测指标结合,那么期待的结果就会大打折扣。给了你预测值之后,你如何使用?那么就成为问题中的核心问题。

这也是我在一些真实商业世界里机器学习项目中所遇到的问题:我们预测的是A指标,但是A指标怎么使用?这个应用策略应该是建模之前就确定的,但是这个指标A在预测后却发现需要事后制定策略提供给业务使用,整个探讨的过程并不是那么顺利。而决定A是一个需要的预测值,也是因为业务凭经验认为A是能够帮助提升最终业务价值的一个有力指标,但如何真正在使用A,却完全没有思考。


所以提前确定预测指标的应用策略是重中之重,否则预测的结果就变成了炫技,无法真正得到应用。而应用策略往往是决定目标是否能够提升价值的关键。

所以这里引出的另一个问题出现了:问题2如何确定一个可以被有效策略应用的预测值?但是我们需要回答下一个问题才能够确定我们的答案。







问题3:我们为什么需要机器学习

通过对于上一个问题的探索,我们需要回归机器学习产生的本质:我们为什么需要机器学习?我回顾所有项目想到了下面两种本质:


替代人工经验,因为经验判断不准

提到机器学习我们一定就会想到“智能“两个字,称其智能就是因为在很多场景下我们希望机器学习模型判断出的结果是能够超越人工经验的,所以我们希望机器学习模型能够替代人工经验。比如之前销售凭借经验判断一个人是够是一个购买产品的高概率客户,现在我们通过机器学习通过大量销售数据去预测一个特定特征的人是否为高概率客户。

减少工作量,因为人力成本很大

很多场景下不得不说人工经验判断一定是比机器学习模型要优秀,但是一些肉眼判断非常耗费人工、费事费力、技术含量还低,所以我们希望通过自动化识别的方式节省人工成本。这种应用其实就在我们身边:举一个大家都见过的场景,车牌识别。原来车辆违停都是靠交警到线下手抄车牌,贴罚单。现在换成视觉识别,直接在未停路段进行号牌识别,车牌信息直接获取。你敢说人眼识别数字比模型差?那你对人类能力也太没信心了。


所以回答问题2:如何确定一个可以被有效策略应用的预测值这个问题,我们要回到这两个本质。一个一个来看:

替代人工经验的机器学习应用核心是两个字“替代“,那么没有替代之前,人工经验一定是存在与整个业务流程中,并使其连续的。机器学习模型的应用替代的也就是人工经验的量化的那个值。例如之前销售人员凭借经验判断谁是更容易买产品的人,那么这个更容易买产品的人其实量化后就是用户购买成功概率。只要能够量化原有业务流程人工经验所判断的结果,那么这就是一个ML应用的场景。这个量化的结果也就是这个问题的答案:一个可以被有效策略应用的预测值就是应该被替换掉的经验值。因为在原有流程中,天然的存在对于这个预测值的“策略应用”,那就是经验转换为行为的过程。


ML的核心价值是判断(黑色箭头),不是替换业务流程(大绿箭头)。


所以正确的逻辑不是先使用ML预测一个值,再想用什么策略去应用这个预测值,而是先去探索原有业务流程中的ML可用的价值——替换人工经验的环节,然后量化经验,替代流程,形成自然而然的预测应用。

一个简单的ML价值探索与应用流程大致应该是下面这样

1. 深入识别原有业务流程

2. 确定业务流程最终目标或间接目标

3. 识别人工经验环节

4. 确定原有流程的人工经验应用策略

5. 量化策略

6. 量化人工经验

7. 确认数据情况

8. 建模预测量化的人工经验值

9. 策略应用模型结果,建模经验替代原有流程


所以总而言之,先有策略,后有模型。切不可凭空想象,凭空捏造出一个自认为会有帮助的预测指标,结果真的把指标给你你却不知道如何最好的应用。


在第二种情境下,其实ML策略探索相对简单很多,因为机器学习模型替代的就是人工部分,所以只要功能实现,能力复用,就已经创造价值。





问题4:模型应用后是否可以验证其产生了业务价值

问题的关键在于上述流程中的第2步:确定业务流程最终目标或间接目标

我们的模型业务价值在一般情况下都是为了提升业务最终或间接目标。确定目标后,最直观的方式是通过AB testing的形式对于模型应用的业务价值进行验证。

注意,我这里说的是“模型应用”的业务价值而不是“模型”的业务价值。因为如果模型结果没有得到正确的策略应用,那么就算预测结果再精确,表现力再好,那也是知识模型质量高,不能说模型产生了业务价值。所以上面我们的问题1就非常的关键。


当然,只要问题1得到了很好的解决,那么模型的业务价值验证就可以得到很好的解决。


Ab testing中,A是没有机器学习参与的原有业务流程,而B是将机器学习结果替代环节中人工经验的业务流程。最终对比的指标就是经历了两个业务流程之后两个流程各自的业务目标,例如回款率,销售成功率等。最终如何验证价值是否产生,那么就直接应用统计学中的假设检验对于整个AB testing进行价值验证即可。


和熟知的互联网产品AB testing的区别最大的部分其实也就是最后的验证部分。互联网产品的验证目标是天然形成的,A用原来的按钮位置,B改变按钮位置,最终检验按钮位置是否增加了访问率,那么通过数据埋点直接可以得到结果。


在机器学习的业务流程中的价值检验通常不会这么“直”,总会有“将机器学习结果通过一定策略转换为具体行为”这一个关键步骤,这一步骤之后才会真正影响最终需要被验证价值。所以问题2和问题4是重中之重。解决了这两个问题,会让整个MLOps减少很多陷阱与阻碍,让MLOps变得更加丝滑。




写在后面

真实商业环境远比这篇文章的情况要复杂,文章中的方法论也只能是一个警钟的作用,让我们在经历类似情况下起到提高警惕的作用。但是我相信当我们认真思考MLOps的价值之后会让我们在任何ML项目中的思路都能够更加清晰,更加结构性的思考机器学习的建立策略。



注:文章中业务与建模策略相关流程图均为原创,使用请联系本人