独家 | 如何创建用于离线估算业务指标的测试集?(附代码&链接)

作者:AARSHAY JAIN

翻译:张若楠

校对:张玲

本文约6500字,建议阅读10+分钟

本文将从原理及应用两方面出发,介绍如何采用日志数据对新模型进行上线测试前的初步筛选评估。

标签:机器学习

简介

 

大多数Kaggle类的机器学习竞赛都没有涵盖机器学习实际工作流程中的一个重点:在构建机器学习产品时搭建离线的评估环境

比起真正训练机器学习模型,人们通常需要花费更多的努力去清晰地划分训练集/测试集,不断优化某一机器学习指标。在我从事机器学习工程师工作,投入很多时间在监督数据集上训练模型后,我才深有体会。

在这篇博文中,我想介绍设计离线评估环境的一个关键组成部分:创建测试集,该测试集不仅可以用于计算机器学习的基本指标,例如准确率(Accuracy),精确率(Precision),召回率(Recall);还可以估算产品指标,如点击率,收益等。

我们将使用基于反事实评估技术(counterfactual evaluation)的因果推断(causal inference)方法,并使用业界直观的案例来进行解读;然后深入研究Python代码实现,最终模拟出一个真实的场景!

 

目录

 

一、线上与线下进行机器学习模型评估对比

二、广告行业案例研究

三、设计并搭建因果图

四、模型干预

五、使用Python模拟反事实分析(Counterfactual Analysis)

 

一、线上与线下进行机器学习模型评估对比

 

在生产环境中开发和部署机器学习模型,通常从设定基线(baseline)甚至启发式模型开始,也就是使用实时流量进行决策。这样不仅有助于收集数据以训练更复杂的模型,也可以用来作为良好效能的基准。

接下来便是创建训练/验证/测试数据集,并离线训练模型。至此,模型不作任何影响终端用户的决策。建立好模型后,通常的做法是将其在线部署并运行A / B测试,将其与启发式模型进行比较。当对生产中的现有机器学习模型进行迭代时,我们一般也会遵循上述类似的过程。

“在此过程中,最大的挑战之一是如何验证离线模型的有效性,并决定上线测试哪一个模型。”

  • 如果离线模型的离线机器学习指标(如AUC)比在线模型更好,那么是否意味着离线模型对业务更有帮助?

  • 较高的离线机器学习指标是否意味着业务指标的提升?

  • 离线模型的指标需要有多大提升,才值得我们将其部署成新模型或进行A / B测试?

这些是困扰机器学习从业者日常工作的一些常见问题,尤其是在构建面向用户的机器学习产品的时候。这些困扰来自以下3种常见场景:

  • 机器学习应用尝试驱动以业务指标(例如点击率,收入,用户参与度等)进行考量的产品,依赖用户在线的反馈/互动,而这些反馈和互动难以离线评估;

  • 机器学习模型通常与一些业务策略一起部署,这些策略会影响到模型的输出结果如何去转换为产品动作,例如在进行内容推荐时,同时考虑内容的多样性与用户具体偏好;

  • 许多应用程序会接收来自多个模型的预测后进行判断。例如,选择展示哪个广告,可能取决于机器学习模型的点击率和需求预测,同时还要考虑一些业务限制条件,例如广告位的库存和用户匹配性。

在这些情况下,单个模型的常见指标(如准确性,AUC-ROC,精度召回率等)通常不足以判断离线搭建的模型是否比使用中的模型有重大改进。通常可以使用A / B测试进行这种评估,但是在金钱和时间方面,它们的运行成本很高。

在因果推理(Causal Inference)文献的启发下,反事实评估技术(Counterfactual evaluation)提供了一种使用生产日志估算在线指标(如点击率,收入等)的方法。这是很好的中间步骤,有助于筛选离线模型并为A / B测试选择合适的测试对象,从而使我们可以在离线环境中探索更多的模型。

 

二、广告行业案例研究

 

让我们以广告行业为例来更好地理解这一点。考虑以下情形的两方:

  • 用户方:用户访问网站并收到广告;如果用户喜欢该广告,则进行点击,反之不会点击;

  • 业务方:机器学习系统接收挑选广告的请求,这个请求包含当前用户的上下文信息,而后选择匹配的广告进行展示。

可以使用以下变量定义该系统:

  • 用户意图(u):用户出于某种意图访问网站(例如,用户访问amazon.com购买鞋子);

  • 用户上下文(x):用户开始在网站上浏览,其浏览行为被打包为上下文内容向量;

  • 广告库存(v):可用于展示的广告位库存量;

  • 出价(b):一种针对广告位每次点击出价的系统;

  • 被选广告(a):根据出价和点击估算值选择的最终广告;

  • 用户操作(y):二进制。如果用户点击了显示的广告则为1,否则为0;

  • 收入(r):用户进行互动后产生的一定形式的收入($$)。

注意:此处使用的示例和以下数学公式是[1]中使用的示例的略微简化版本(见本文底部链接)。这不是原本研究,而是在尝试通过直观的示例来总结该研究的思想,以及应用在模拟数据上。

 

三、设计并搭建因果图

 

首先,是什么因果图?以下是来自维基百科的定义:

“因果图(也称为路径图,因果贝叶斯网络或DAGs)是用于对数据生成过程的假设进行编码的一种概率图模型。”

上述具有以上变量的系统就可以绘制因果图如下:

从这张图中,我们可以看到不同变量之间的依赖关系或关联关系:

  • u, v 是自变量,也叫作“外生变量”

  • x = f(u)

  • b = f(x, v)

  • a = f(x, b)

  • y = f(a, u)

  • r = f(y, b)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值