炼丹知识点:模型评估里的陷阱

炼丹笔记干货
作者:炼丹笔记

在实践中,做推荐系统的很多朋友思考的问题是如何对数据进行挖掘,大多数论文致力于开发机器学习模型来更好地拟合用户行为数据。然而,用户行为数据是观察性的,而不是实验性的。这里面带来了非常多的偏差,典型的有:选择偏差、位置偏差、曝光偏差和流行度偏差等。如果不考虑固有的偏差,盲目地对数据进行拟合,会导致很多严重的问题,如线下评价与在线指标的不一致,损害用户对推荐服务的满意度和信任度等。

在《流量为王:ABTest流量分层分桶机制》一文中,我们介绍了什么是A/B Test和怎么做A/B测试,本文介绍线下模型评估的几种方法。

交叉验证

在交叉校验方法里,又有两种验证形式,一种是K-Flod交叉验证,另一种是留一验证

K-Flod交叉验证

  • 首先,将全部样本划分为大小相等的K份;

  • 然后,依次遍历K个子集,将第i个子集作为验证集,其他子集作为训练和评估;

  • 最后,将k次评估的结果的平均值作为最终评估结果。

留一验证

每次留下1个样本作为验证集,N个数据,验证时产生N个模型。最后计算N个模型评估的平均值作为最终评估结果。

从上述描述中我们能看到,留一验证法的时间开销极大,真实场景使用较少。

Holdout校验

没错,Holdout检验就是最简单的最直接的验证方法,比如我们在做排序模型时,我们把样本按照80%和20%的比例分成两部分,80%样本用作模型训练,20%样本用作验证。

这种方法简单,但是缺点也很明显,即随机得到的20%得到的评估结果也具有一定的随机性。

自助法检验

自助法对于总数为N的样本,进行n次又放回的随机抽样,n次采样有的样本重复,有的从未被抽中过,最后将没有被抽中的部分作为验证集。验证集的评估指标作为最终的评估指标。

这时候,你可能会问,没抽中的样本有多少呢?根据n次抽样均未被抽中的概率为(1-1/n)的n次方,根据重要极限定理解之,当样本足够多的时候,大约有36.8%的样本未被抽中过。

线上检验

目前业界应用最多的,是可重叠分层分桶方法。具体来说,就是将流量分成可重叠的多个层或桶。因为很多类实验从修改的实验参数到观察的产品指标都是不相关的,完全可以将实验分成互相独立的多个层。例如推荐算法召回层、推荐算法排序层、打散层,或者首页、业务页、详情页等。

流量分桶原理

采用如下步骤将流量分配到具体模型上面去:

  • 把所有流量分成N个桶。

  • 每个具体的流量Hash到某个桶里面去。

  • 给每个模型一定的配额,也就是每个策略模型占据对应比例的流量桶。

  • 所有策略模型流量配额总和为100%。

  • 当流量和模型落到同一个桶的时候,该模型拥有该流量。

举个栗子来说,所有流量分为32个桶,A、B、C三个模型分别拥有37.5%、25%和37.5%的配额。对应的,A、B、C应该占据12、8和12个桶。为了确保模型和流量的正交性,模型和流量的Hash Key采用不同的前缀。

模型评估里的陷阱:线下只是线下

首先,线下评估无法消除模型过拟合历史数据的问题。

其次,线下评估没法模拟线上真实环境,包括但不限于数据丢失、特征延迟等问题。

而且,线下评估没法真实的再现线上类似 用户点击率、用户完播率、用户停留时长等指标。因为这些指标只有真实发生时,才是真实的数据。

最后,从系统偏差角度,我们在《推荐系统Bias大全》一文中介绍了,由于用户交互的数据是观察性的,而不是实验性的,因此很容易在数据中引入偏差。它们通常来自不同的数据分组,并使推荐模型捕捉到这些偏差,甚至对其进行缩放,从而导致系统性种族主义和次优决策。本文将数据偏差分为四类:外显反馈中的选择偏差和从众偏差,内隐反馈中的暴露偏差和位置偏差。

现实世界中的推荐系统通常会产生一个有害的反馈回路。前面的小节总结了在循环的不同阶段发生的偏差,随着时间的推移,这些偏差可能会进一步加剧。以位置偏差为例,排名靠前的项目通常会从更大的流量中受益,这反过来又会增加排名的显著性和它们所接收的流量,从而形成一个“富起来越富”的情景。许多研究者还研究了反馈回路对流行偏差的影响。他们的模拟结果显示,反馈回路会放大流行偏差,流行的商品变得更加流行,而非流行的商品变得更不受欢迎。这些放大的偏差也会降低用户的多样性,加剧用户的同质化,从而产生所谓的 “echo chambers”或“filter bubbles”。

(0)

相关推荐

  • 如何看破网购评论陷阱?心理学家教你一招

    发布时间:2021-01-12  文:申思雨 来源:心理测验与评估(ID:gh_391183cc6a43) 想象一下,你将要买一个新的手机,在电商上搜索之后,你锁定了两款价格和性能都差不多的H手机和F ...

  • 交叉验证的3种方法

    在机器学习中,数据集可以划分为以下3类 1. 训练集,traning data 2. 验证集,validation data 3. 测试集,test data 将数据集进行划分是非常必要的,如果所有的 ...

  • 综述 | npj Biofilms and Microbiomes:微生物成分分析:标准化和差异丰度分析

    编译:独世,编辑:小菌菌.江舜尧. 原创微文,欢迎转发转载. 导读 越来越多研究表明微生物组与多种人类疾病之间存在一定的关联,例如肥胖.炎症性肠病.HIV等.进行微生物组广泛关联研究的第一步是在不同条 ...

  • AI系统中的偏差与偏见

    人工智能系统中存在着偏见,但是有偏见的算法系统并不是一个新现象.随着包括司法和健康等领域在内的各种组织都在采用人工智能技术,人们开始关注对基于人工智能的决策缺乏问责制和偏见.从人工智能研究人员和软件工 ...

  • 在Python和R中使用交叉验证方法提高模型性能

    原文链接:http://tecdat.cn/?p=19518 介绍 模型表现差异很大的可能原因是什么?换句话说,为什么在别人评估我们的模型时会失去稳定性? 在本文中,我们将探讨可能的原因.我们还将研究 ...

  • 炼丹知识点:模型的燃料,数据采样的秘密

     炼丹笔记·知识点  作者:炼丹笔记 在实践中,采样是非常重要的,本质上它是利用少量的样本来近似总体的分布,从特定的分布中抽取相应样本的过程. 同时,不仅是推荐.搜索.广告实际中需要,任何机器学习模型 ...

  • “点赞”里的陷阱 顺手点了一个“赞” 损失近三十万元

    “点赞”里的陷阱 顺手点了一个“赞” 损失近三十万元

  • 分类模型评估指标

    对于构建好的机器学习模型,需要对模型的效果进行评估,对于机器学习中的3大类问题,分类,回归,聚类而言,各自有不同的评估指标,本文主要介绍分类模型常用的评估指标. 以二分类问题为例,考虑真实分类和模型预 ...

  • 回归模型评估指标

    回归模型的评估,核心是利用模型预测值与真实值之间的差值,常用的指标有以下几种 1. 平均绝对误差 Mean Absolute Error, 简称MAE, 公式如下 考虑到正负误差在求和时会出现抵消的情 ...

  • 机器学习模型评估教程!

    文章译者:追风者 内容来源:Datawhale 如何在投入生产前评估机器学习模型性能? 想象一下,你训练了一个机器学习模型.也许,可以从中选几个候选方案. 你在测试集上运行它,得到了一些质量评估.模型 ...

  • 聚类模型评估指标之内部方法

    聚类算法的理想结果是同一类别内的点相似度高,而不同类别之间的点相似度低.聚类属于无监督学习,数据没有标签,为了比较不同聚类模型的好坏,我们也需要一些定量的指标来进行评估.根式是否提供样本的标签信息,相 ...

  • 龙门阵 | 爱情里有些陷阱是自己挖的,有些陷阱是别人设的,都得逃。

    总有些女人母性泛滥,特别想以一种拯救者的心态去谈恋爱,谈来谈去谈得自己满身伤痕,还不明所以. 她们往往高估自己的能力,总把对方看成需要她照顾和引导的弱者,以前有一个同事就是典型的圣母拯救者,她老公在我 ...

  • Spark随机森林算法交叉验证、管道模型(pipeline)、模型评估代码实例

    package cn.itcast.tags.ml.classification import org.apache.spark.ml.Pipeline import org.apache.spark ...

  • 静海家长们注意!“班主任”微信群里设陷阱,10分钟内数人中招!

    随着老师与家长的联系越来越紧密 一些家长微信群也建了起来 虽然老师与家长的沟通是方便了 但有人也瞄准了"商机"...... 近日,静海公安王口派出所接到群众报警,有人混入班级群里冒 ...