当数据稀疏/缺少时预测新的排序性能

12月1日,2020年12月1日

目标

在Wayfair,我们希望在推出它们之前预测新分类算法的性能。为什么?排序算法赚钱!

考虑一下:通过我们的约1800万产品随机滚动之间的主要区别与实际上找到了你想要的东西并购买它?一种实际放在你面前的排序顺序。

问题

电子商务公司有一种称为A / B检测的次要改进方法。您只需将新的算法(或网站或其他)与您的旧算法(或网站或任何方式)放在旧的算法(或网站或其他),允许50%的流量流到每个流量,并查看哪一个更好。那么为什么我们不能在这里做到这一点?

好吧,我们有18MP.18M= [18M!/(18m - 18m)!] = 18米!=实际上我们产品的无限排列。所以这将采取(几乎)无限的时间。而且你知道你的老板总是说你有无限的时间来完成这个项目吗?不?同样在这里!

因此,如果我们不会实际向客户展示这些排序,我们遇到了另一个大问题:稀疏(或完全缺少)数据。也就是说,如果您之前从未见过它,您如何评估产品在特定位置上的特定位置

此时我们有一些数据(很多客户都在看到当前的排序),而是相对于总排序空间,它非常稀疏。如果我们想评估完全新的排序(我们这样做),那么许多关于如何在特定位置执行产品的数据。我们如何以余额与我们的愿望保持不同类型的信息的方式,以使我们的客户保持相当好的体验的方式

重要性抽样(是)

+ Pareto平滑

+随机化

比较从我们尚未见过的各种产品中将产品放入位置的相对概率 控制长尾/无限差异问题所固有的是拟合特别有用的分布 获取有关略有不同位置的更多信息,以便我们可以推理性能

我们可以根据我们实际拥有的数据做些什么

重要性抽样

重要性抽样是一种研究的[1,2]和直观的方式,通过观察另一个概率分布的性质。在我们的情况下,这意味着估计客户对新的,不使用的排序算法反应的方式(让我们调用测试策略,或者T.)通过观察他们对我们目前到位的分类算法的反应(生产政策或P.)。我们将通过重点关注案件来完成此操作P.碰巧表现得像T.

要使这有点具体,想象两种简单的分类方式三种产品:

图1.引入策略P和T,用于分拣产品A,B和C.

现在想象一下,我们有一些“真实”的人,这些人将在特定位置点击特定产品。通常在产品结果页面上的较高位置更好,但这种位置偏差可能对某些产品的差异较大,而不是其他产品。给出一些数字,让我们说每个位置的每个产品的真正点击率(CTR)是:

图2.每个位置的每个产品的真实CTR。请注意,我们可以在模拟中呈现这一点,但只能在现实世界中猜出它。

显然,如果我们在我们的网站上有特定的排序策略(例如,请策略P.),我们每天与我们网站互动的人有相当多的客户行为数据。由此,我们可以计算预期的值eP.通过简单地乘以概率并求和它们:

如果我们为每个分类策略进行A / B测试,我们可以收集数据以计算奖励的整体变化R.通过简单地取得预期值之间的差异:

但是,我们只有来自单个策略的数据(P.)!我们如何塑造什么本来发生了在永无止筹的政策中T.由此?通过所示的相对概率重量每个观察的值T.相对P.

在哪里T.(x | y)是我们所看到的产品的概率X鉴于职位y根据政策T.。为了估计整体政策价值T.P.,我们将需要此重量,以便在政策中实际观察到的每个产品和位置对P.[1]。

就上面的示例而言,我们将能够估算产品中的产品的行为T.来自政策P.通过说的行为

产品 位置 p(T.把它放在这里) p(P.把它放在这里) 重量
一种 1 11% 80% 0.11 / 0.8 = 0.1375
一种 2 70% 15% 0.7 / 0.15 = 4.667
一种 3. 19% 5% 0.19 / 0.05 = 3.8

......等于其他产品。

一旦我们拥有这些重量,我们就可以通过其适当的重量将每个观察到的交互(客户在给定位置中的给定产品中的互动)倍增。这为我们提供了我们“将”在新的排序规则下看到该位置的相对金额。例如,我们在第3位的产品A看到的任何点击将乘以3.8,因为T.展示该位置的产品频繁3.8倍。

估计点击总数(C)我们会看到新的政策在观察期间已经到位,我们只是总结了所有点击(或奖励,R.)我们看到,乘以点击的产品的重量(X)在那个位置,它被点击了(y):

然后,如果我们想要的“价值”或每位客户的点击次数,我们可以期待新的策略,我们只是通过观察人数分开这总数N

请注意,如果我们有二进制奖励(如点击),我们只需要考虑实际单击的情况,因为不禁单击R.= 0,并且总和没有变化。这可以大大切断此方法的数据,因为我们的关键性能指标(点击,订单等)几乎都是相对罕见的事件。

这使我们对我们期望的政策所期望的奖励估计是一个无偏见的估计T.从政策意见P.

但我们仍然存在问题:稀疏数据意味着大方差

重要性抽样是一个无偏见的估计器,这意味着估计太大的错误将完全取消估计太小的情况,给予足够的尝试(或足够的时间)。可悲的是,这并不意味着它实际上会给你对任何给定估计的正确答案。

如果您想到数学,这是有道理的:我们在我们目前的生产中非常罕见的观察,我们会给最罕见的观察,但在新的未经测试中的常见。在完美(无噪声)世界中,这将是一个准确的估计;问题是,在现实世界中,稀有观察是,它可能是吵闹的。给予太多的重量稀有,可能嘈杂的观察使我们的整个估计不可靠。这种错误实际上对2016年的竞选预测有很大的影响,例如当一个选民被投票公司被给予300倍的重量,作为其他一些人的投票公司。[3]

事实上,虽然这种方法的偏差为零,但方差可以是任意大的。因此,我们为任何特定的离线测试获得的估计值可能是任意差,即使错误最终会抵消是否足够耗尽测试。

如果我们从未见过产品X在一个位置y,然后可以没有与之相关的已知奖励。换句话说,从等式C(估计的点击数量),这意味着R.(奖励)值始终为零 - 我们从未在生产中看到它,所以我们从未看到它点击了。这使得这一特定(X,Y.)对新分拣政策的总估计值的贡献(V.如上所述,即使新政策一直显示它,上述)有效零。

除了在每个位置的每个位置显示每个产品,真的没有办法很少时代。我们将返回以下需要的实际考虑因素,但目前,请考虑为基本重要性采样,显示给定的(X,Y.)对估计的估计比从未展示过的一次,对此可能更危险。让我们作为一个例子,给定产品X在两个不同政策下的每个前50个位置中显示的概率,P.T.

图3.产品X将在策略P和T下的前50个位置显示出产品X的示例概率。

我们可以计算IS权重并绘制它们:

图4.重要的采样权重,用于计算策略P策略T的产品X的值,每个前50个位置。

如您所见,虽然大多数重量在0到1之间,但排序顺序的位置高的权重(例如,位置1-10)在10k和200k之间。这意味着如果我们在其中一个职位中看到了产品X,它实际上有一个点击,我们的估计是对政策的估计T.一条信息将被大幅改变。

这意味着在重要的抽样下,任何给定的估计都可能是大量的错误。所以...实际上并不是非常有用作为离线估计。

通过帕肌平滑来限制差异

在电子商务中,在“最低可行的产品”或“最低悬垂的水果”中经常有很多价值 - 做出完成工作的最快的事情,以便我们甚至可以使用算法我们努力改善它。由于在重量变得太大时出现了重要性采样的问题,因此如果它超越一定值,则最简单的修复方法即可切断给定产品+位置对的重量;这被称为“覆盖”重量。帽可以是实际数字(例如,用于给定估计的相对一个(例如,所有权重的第90百分位数)。以这种方式封顶确实可以降低估计的方差,并确保方差是有限的。所以:问题解决了,对吧?

可悲的是,不太。封顶引入了大量的偏差,因为它借鉴了我们拥有的最重要的数据点(具有重要性最大的数据点)。Our new estimate might treat two data points as equally important, even if one’s importance weight is 100x as large as the other—and recall that the really large weights are likely to be the noisiest, because those are the ones that are particularly rare in the data we’re actually collecting from policyP.。我要通过测试的测试,我们证明这是这种情况,为了实现更有趣的作品:帕累托平滑。

由于我们需要保留最大权重中包含的一些信息,而不让他们完全接管估计,驾驶员,凝胶和加勒比[2]建议使用a平滑这些尾部重量广义帕累托分布。这种技术使我们能够更加仔细地重量,而不是Clummsily将所有大权重设置为完全相同的值。此外,这种技术可以提醒我们,当我们的奖励估计可能不可靠时(见下一部分)。这种技术使我们能够在Wayfair中创建一个有用的离线估计。

简而言之,这种方法如下:

  1. 确定应使用应使用的合理数量的重量来符合此帕累托分配。对于小样本,他们表明这可能是最大的[n / 5];为了我们的目的,即使在结果的第一页处理许多不同的产品时,我们发现最大的[3 * sqrt(n)]给出了一个更小的数字,仍然代表了占主导地位的“重尾”重量。
  2. 适用于此“重尾”中的所有值的帕累托分配,并估计该分布的形状参数(k)。
  3. 如果k> 0.5 *,请注意,尾估计可能是任意大的,因此我们的整体估计方差可能类似地大。出于我们的目的,这意味着在使用对该特定新颖排序算法的离线评估之前,我们应该收集更多数据。请参阅下面的详细描述为什么这一事项。
  4. 用拟合帕累托分布的订单统计(留下所有其他重量不变)更换此尾部中的值。
  5. 估计R.值如上所述,使用来自步骤4的权重。

帕累托家族是这种平滑的好选择,因为它可以具有很大的尾部,这是我们在最坏情况下的重量分布所期望的。通过将特定的帕累托分配拟合到最大权重,我们得到了估计如何尾部是尾巴,通过称为调用的形状参数,它可能会干扰我们的估计数量K.(或有时候ξ)。

Pareto的形状参数如何有助于识别错误的估计

请记住,正常重视采样估计是无偏见的,因为它们几乎总是只在一个方向上略微脱落,但偶尔在相反的方向上大幅度。鉴于这一点,一个可以标记“这可能是那些糟糕的时期之一”的方法对于在Wayfair的离线评估非常有用。那么它是怎样工作的?

随着形状参数的增加,帕累托分布将越来越多地进入其重型尾部。这具有较少和更少的正常统计特性如预期运行的效果。具体而言,在K <= 0.1,我们所有的正常统计工具工作(例如,我们可以使用中心极限定理谈谈我们估计的方差)。在k> = 1时,分布没有固定的平均值,几乎一切都破裂:我们甚至无法依赖大量法帮助我们在这一点上估计我们的奖励。在这两个值之间的k之间,魔术发生了。

图5.五个PDF曲线,形状参数在0.1和1.0之间。

通过将帕累托曲线拟合到过量是重量,我们可以确定与该拟合曲线对应的形状参数,从而知道分配是否重尾。如果k小于0.5,我们知道拟合的重量至少可以包含在有限方差内,并且产生的估计可能是值得信赖的。如果k大于0.5,我们知道拟合的权重实际上具有无限的方差,并且我们应该非常怀疑这种特殊的估计(阅读:收集更多数据,然后再次估计)。在实践中,车辆和同事表明,在他们的测试中,k值高达0.7给出了有用的估计。[2]

缺少数据时我们可以做些什么

我们可以作为一家拥有数千名客户从美国购买东西的公司来做一件好事只是去获取更多数据。来自学术背景,正如我所做的那样,几乎令人难以置信的是,当有一个坚实的分析时,我们可以产生新数据的速度几乎是令人难以置信的,这表明效益超过了这样做的成本。因此,让我们探索对PSI的分析。

一个问题这个帕累托平滑方法没有地址是:如果我们之前从未在给定位置实际上看到特定产品?虽然我们可以对产品的价值进行一些行业特定的启发式猜测(墨菲床不太可能在平台床上购买)或职位(用于长大于右侧和顶部的阅读语言的客户)在上面和左侧倾向于首先观察并因此更有价值地观察到),创造一种行业无关的统计方式是非常困难的,以使关于从未观察过的对的估计。重要性抽样完全忽略了它们。因此,对任何基于模式的方法至关重要,我们在观察到的政策中具有一些瞬间,因此至少可能看到每个位置中的每个产品。当然,随机化我们的产品可能是昂贵的,因为客户通常不希望以随机顺序看到物品。所以那么问题变成了,增加了随机性的成本是什么,相比更好的重视抽样的益处?

随机性足够了?

Wayfair目录中的产品通常根据某些排名分数进行排序,无论是针对给定客户的个性化,根据某些用户搜索过滤,或者只是以默认顺序显示。我不会释放任何秘密的分类酱,但我正在谈论的问题和方法适用于整个板上的这些算法。因此,让我们拍摄一个非常简单的示例算法:想象我们的排序得分只是一种在目录中单击其寿命的产品的次数。这具有自我加强的财产:最好的(或至少,足够好的)产品将获得更多点击,这将把它们放在排序的顶部,这将通过更多客户来查看它们,这将让它们更多点击。因此,分数往往遵循权力法分布,更加展开在排序的顶部(对于第1-10页的产品中的产品,几乎每个加载页面的客户都会看到并有机会点击)比进一步下来(只有相对较少的专用客户去)。

图6.床类别的示例自我加强级别分数,在过去的180天内计算。

这为我们提供了一种简单的方法,用于控制产品的简单排序排序与添加到分数的一点随机性的差异之间的差异。通过为每个分数提供相同的标准偏差和从正常分布采样,我们可以获得新的分数并通过这些采样的分布重新排名产品。由于顶部的得分更加展开,这意味着它们的可能性更容易改变比下降的位置。例如,位置2中的产品获得了红色清楚地看到的分布,它可能会在前十个左右的任何地方移动,但不低于此。相比之下,位置50的产品可以很容易地将5到1000+的任何位置移动,但几乎不会在顶部取代产品。这使我们能够平衡我们注入排序的随机性(以及因此,我们离线预测的准确性,不同的分类算法),具有将更糟糕的产品靠近顶部附近的可能成本。

图7.应用相同的正常分布到等级分数时,可能的位置的可视化变化;红色=位置2周围的分布,绿色=位置50周围的分布;Black =前100名的所有其他位置。

模拟验证与方法比较

与许多方法一样,这种离线评估对于验证在网站上的验证是潜在的昂贵(这是我们希望具有良好的离线验证方法的一个原因)。因此,在将其放在网站上之前,我们通过Monte Carlo模拟测试了它,以确定我们可以从给定数量的随机性注入给定的种类的准确度。这有两个好处:首先,它允许我们表明PSIS方法至少以及任何其他重要的采样方法(除了给我们形状参数之外K.表示尾部拟合是否可以信任有限的方差)。

图8.使用10,1000或100000 pageload的四种不同重要性采样方法的示例估计。注意,当我们平均超过许多不同的估计(左)时,重要的采样和帕累托 - 平滑,而涉及封盖权重的方法会导致实际观察到的偏差。但是,在任何给定的运行中,如果我们观察一个非常罕见的产品+位置对(例如,右),重要性采样估计可能是错误的顺序错误(这里估计我们会得到> 1点击每一个PageLoad!)。

其次,这些模拟可以提供成本/益处分析,详细说明了我们将丢失的给定的性能度量(点击,例如,单击),以便在我们的离线评估中获得一定程度的准确性。当然,这些分析受到他们的产生假设(特别是那些涉及当前可观察排序与随机化的良好的假设) - 但我们至少可以使用它来产生最大的预期损失,假设当前排序是完美的与指定的指标方面的任何偏差都将花费我们。这提出了我们愿意如何在将离线评估改善到业务决策的领域,而不是技术或数学中的问题。

图9.估计离线预测精度的成本。随着我们增加观察到的政策的随机性(移动右),我们会减少离线预测的错误(下降),但增加我们的在线政策的成本,因为客户往往更喜欢纯粹的产品纯粹是随机的。因此,我们可以使用这样的可视化来帮助确定在线策略中使用多少随机性。

结果和应用

这些模拟表明,帕累托平滑方法确实在无偏析但无界 - 方差重要性采样和固定方差之间具有良好的平衡,但是高偏置的重视抽样。鉴于这一点,随着我们的成本/效益分析的最大损失估计,我们可以提供良好的离线评估,而在限制我们的成本时提供靠近当前的各种排序。因此,我们很快就会推出一种以经常控制的方式随机化的框架,以获得有限的客户。未来版本将允许特定的利益相关者随机化为个人客户组的产品集,从而收集关于个性化排序算法的数据,让我们根据客户浏览改进对各种排序的离线评估。

致谢

没有型号是一个岛屿,在这里的团队在这里是一个非常支持和协作的。我想特别感谢以下人士的广泛贡献:

Sunanda Parthasarathy

汤姆克洛彭伯格斯

彼得B. Golbus.

大卫哈里斯

雷切尔·柯克伍德麦格森

迈克尔·普尼扎恩

我还要感谢Papis(www.papis.io.)为了让我们在2018年会议上展示这些方法。

参考

[1] Gilotte,Calauzènes,Nedelec,亚伯拉罕,娃娃。脱机A / B用于推荐系统的测试。2018年2月5日至9日,2018年2月5日,滨海德尔雷耶,加州

[2] velman,gabry。Pareto平滑了重要性抽样。2017年

[3] COHN。一个19岁的伊利诺伊州人如何扭曲国家民​​意调查平均值。纽约时报,2016年10月12日。获得5/29/19https://www.nytimes.com/2016/10/13/pshot/how-one-19-year-old-illinois-man-is-distorting-national-polling-averages.html.

提交评论

注意:您的电子邮件地址需要添加评论,但不会发布。