Netflix推荐系统(Part Seven)-改善实验系统

原文来自Innovating Faster on Personalization Algorithms at Netflix Using Interleaving。如发现任何侵权行为,请联系我。算法

Netflix体验由一系列排名算法提供支持,每种算法都针对不一样的目的进行了优化。 例如,主页上的Top Picks行根据视频的个性化排名提出建议,而Trending Now行也包含最近的流行趋势。 这些算法以及许多其余算法一块儿用于为超过1亿成员构建个性化主页。bootstrap

在Netflix,咱们努力不断改进咱们的推荐系统。 开发过程始于建立新的排名算法并离线评估其性能。 而后,咱们利用A / B测试对核心评估指标进行在线测量,这与咱们最大化用户满意度的业务目标密切相关。 此类指标包括每个月订阅保留和用户观看时长。 随着排名算法和总体Netflix产品的优化,在这些指标中的significant increase须要愈来愈大的样本量和愈来愈长的实验持续时间。框架

为了加快算法创新的步伐,咱们设计了一个两阶段的在线实验过程。 第一阶段是一个快速修剪步骤,咱们从一大组初始想法中肯定最有前途的排名算法。 第二阶段是对减小的算法集进行传统的A / B测试,以测量它们对长期用户行为的影响。 在这篇博文中,咱们专一于咱们进入第一阶段的方法:一种interleaving技术,可让咱们更精确地衡量用户偏好。ide

Faster algorithm innovation with interleaving

经过快速测试大量idea,咱们能够提升学习速度和算法创新速度。 咱们经过引入在线实验的初始修剪阶段,扩展了能够测试的新算法的数量。这一方法知足如下两个属性:性能

  • 它对排序算法质量很是敏感,即,与传统的A / B测试相比,它使用至关小的样本大小, 便可可靠地识别出最佳算法。
  • 它能够预测第二阶段的成功:第一阶段测量的指标与咱们的核心A / B评估指标一致。

咱们使用interleaving技术(参见Chapelle et al.)实现了上述目标,这大大加快了咱们的实验过程(见图2)。 第一阶段在几天内完成,给咱们留下了一小部分最有前途的排名算法。 第二阶段仅测试这些选中的算法,,与传统的A / B测试相比,这使咱们能够为整个实验分配更少的成员,并减小实验总持续时间。 学习

Using a repeated measures design to determine preferences

为了围绕interleaving提供的灵敏度增益创建直觉,让咱们考虑一个实验,以肯定在群体中是否首选可口可乐或百事可乐。 若是咱们使用传统的A / B测试,咱们可能会将人口随机分红两组并进行盲审。 一组只提供可口可乐,第二组只提供百事可乐(两种饮料都没有可识别的标签)。 在实验结束时,咱们能够经过测量两组之间饮料消耗的差别以及该测量中的不肯定程度来肯定是否存在对可口可乐或百事可乐的偏好,这能够告诉咱们是否存在统计学上的显著差别。测试

虽然这种方法有效,但仍然可能有改进的机会。 首先,存在测量不肯定性的主要来源:人群中苏打消费习惯的普遍变化,从几乎不消耗任何苏打的人到消费大量的人。 其次,重汽水消费者可能只占人口的一小部分,但他们的消费可能占总体汽水消费的很大比例。 所以,即便两组之间重度苏打消费者的微小不平衡也可能对咱们的结论产生不成比例的影响。 在运行在线实验时,消费者互联网产品常常面临与其最活跃用户相关的相似问题,不管是测量Netflix上的流媒体时间等指标的变化,仍是发送的消息或社交应用中共享的照片。优化

做为传统A / B测试的替代方案,咱们可使用重复测量设计来测量对可口可乐或百事可乐的偏好。 在这种方法中,人口不会随机分裂。 相反,每一个人均可以选择可口可乐或百事可乐(两个品牌都没有可识别的标签,但仍然在视觉上能够区分)。 在实验结束时,咱们能够在person-level的水平上比较可口可乐或百事可乐的苏打水消费比例。 在这个设计中,1)咱们消除了population-level的苏打消费习惯所带来的不肯定性,2)经过给予每一个人相同的权重,咱们下降了受到重苏打不平衡的重大影响的可能性。idea

Interleaving at Netflix

在Netflix,咱们在实验的第一阶段使用interleaving来肯定两个排名算法之间的成员偏好。 下图描绘了A / B测试和interleaving之间的差别。 在传统的A / B测试中,咱们选择两组订户:一组接受排名算法A,另外一组接受B。在interleaving中,咱们选择一组订户,这些订户暴露于经过混合排名生成的interleaving排名算法A和B。这使咱们能够同时向用户提供选择,以肯定他们对排名算法的偏好。(成员没法区分特定视频是由哪一个算法推荐的。)咱们经过比较用户观看的小时数来计算排名算法的相对偏好。 设计

当从Netflix主页上的一行中的两个排名算法A和B生成交错的视频集时,咱们必须考虑位置误差的存在:成员播放视频的几率随着咱们从左向右而减少。 为了对interleaving产生有效测量,咱们必须确保在一行中的任何给定位置,视频来自排序算法A或B的可能性相同。

为了解决这个问题,咱们一直在使用team draft interleaving的变体,它模仿了友谊赛的团队选择过程。在这个过程当中,两名队长投掷硬币以肯定谁先选择,而后他们交替选择队员。每一个队长选择在他们的偏好列表中最高而且仍然可用的玩家。此过程将持续到团队选择完成为止。将此类比应用于Netflix推荐的interleaving过程,视频表明可用的玩家,排名算法A和B表明两个团队队长的有序偏好。咱们随机肯定哪一个排名算法将第一个视频贡献给interleaving list算法而后交替,每一个算法贡献他们仍然可用的排名最高的视频(参见图4)。对排名算法A或B的用户偏好是经过测量哪一个算法产生在交错行内观看的较长小时数来肯定的。

Comparing the sensitivity of interleaving to traditional A/B testing

咱们在两阶段在线实验过程当中使用interleaving的第一个要求是,它须要在样本量很小的状况下,可靠地识别更好的排序算法。 为了评估interleaving知足此要求的程度,咱们转向两种排名算法A和B具备已知相对质量的状况:排名B优于排名A.而后咱们使用这两个算法,与A / B测试并行运行interleaving实验 。

为了比较interleaving与A / B测试的灵敏度,咱们使用不一样的样本大小,计算了interleaving preference和A / B metrics。其中样原本自bootstrap subsampling。 在执行bootstrap analysis时,咱们要么模拟将N个用户分配给交织单元,要么将N / 2个用户分配给传统A / B实验的每一个单元。 若是咱们随机猜想哪一个ranker更好,那么结果不一样于真实偏好的几率将是50%。 当这个几率为5%时,咱们检测排名质量的差别的结果达到95%的置信度。 所以,使用较少数量的user跨越threshold的度量标准是更灵敏的度量标准。

下图显示了咱们分析的结果。 咱们将interleaving preference与A / B设置中一般使用的两个指标进行比较:overall streaming和一个algo-specific engagement metric。 用于评估A / B测试的指标的敏感度可在很大范围内变化。 咱们发现interleaving是很是敏感的:它只须要咱们最灵敏的A / B指标百分之一的用户,就能达到95%的置信度。

Correlation of interleaving metrics with A/B metrics

咱们的第二个要求是在interleaving阶段测量的指标须要与咱们传统的A / B测试指标保持一致。 咱们如今评估interleaving preference是否能够预测后续A / B测试中的排名者的表现。

下图显示了interleaving preference度量值与A / B度量值与对照值相比的变化。 每一个数据点表明一个排序算法,该算法根据production ranker进行评估,production ranker用做对照组。 咱们发现interleaving度量与咱们最敏感的A / B评估度量之间存在很是强的相关性和一致性,这让咱们相信interleaving preference能够预测传统A / B实验的成功。

Conclusion

Interleaving是一种强大的技术,使咱们可以加速Netflix的排名算法创新。它容许咱们敏感地测量成员对排名算法的偏好,并在几天内肯定最有但愿的candidate。这使咱们可以快速测试一系列新算法,从而提升咱们的学习速度。

虽然interleaving提供了灵敏度的巨大提高而且与A / B指标良好对齐,但它确实存在局限性。首先,实现interleaving框架至关复杂,这对工程能力是一种挑战。业务逻辑的存在可能进一步干扰整个流程,这须要构建可扩展的解决方案以进行一致性检查和某些问题的自动检测。其次,虽然interleaving可以快速识别最佳排序算法,可是限制是它是用户对排名算法的偏好的相对测量。也就是说,它不容许咱们直接衡量一些指标的变化。

咱们经过在第二阶段进行A / B实验来解决后一种限制,这时咱们已经从初始ideas选出了最佳候选者集合。 这使咱们能够经过增长每一个算法分配的的样本大小来启动实验,这使咱们可以仔细测量长期用户行为。 应对这些挑战并开发更好的衡量方式是咱们不断探索的方面。

相关文章
相关标签/搜索