贝叶斯产品排名在Wayfair

二〇二〇年一月二十○日
戴夫·哈里斯在砖墙前留影

大卫·j·哈里斯

汤姆Croonenborghs冒充户外

汤姆Croonenborghs

Wayfair有一个巨大的目录,里面有超过1400万件商品。我们的网站为人们的家庭提供了一系列不同的产品,产品种类从“电器”到“装饰和枕头”到“户外仓库”。“其中一些类别包括数十万种产品;这一广泛的供应,确保我们有一些东西为每种风格和家庭。然而,我们庞大的产品目录也让客户很难在所有可能的选择中找到完美的产品。

在Wayfair,我们正在不断努力改善客户的购物体验。If we are not able to personalize a customer’s experience, for example, because they are a first-time customer and we do not yet know their preferences, then it is important that we make it easy for them to find the products with the broadest appeal. This post features a new Bayesian system developed at Wayfair to (1) identify these products and (2) present them to our customers.

图1:我们店铺有25702个浴帘,我们是如何决定向顾客展示这3个浴帘的?

构建这个系统是团队的工作,下面我们将讨论这个项目的四个方面。

  1. 在多变的环境下确定产品的总体吸引力
  2. 充分利用我们的数据
  3. 随着时间的推移更新模型
  4. 实时对产品进行排名

1.在多变的环境下确定产品的总体吸引力

当Wayfair的球队数据科学家的尝试找出最有吸引力的产品,我们立刻碰到一个问题:每一个产品在我们的商店的成功由我们自己的排序算法的严重影响。在第一页的顶部显示产品有巨大的知名度,而且往往被责令更频繁,无论其内在的吸引力,以广泛的客户群。例如,我们经常看到在页面的顶部设有专门的产品被责令两倍,经常为一体,具有广泛的吸引力,但较少接触(如下图所示)的情况。

图2:的位置效应的功率的示图。黑色曲线显示了多久的平均产品将被责令,如果显示在页面上的不同位置。红色的产品是有序的两倍经常蓝一尽管是少得多的吸引力高于平均水平,因为它接受更多的关注在页面的顶部。如果我们打开这两款产品在页面上的位置,更多的人会看到蓝色的产品,这是多条均线吸引力。

这个数字表明,我们可以在每个产品的内在吸引力模型为:(1)其订单率和(2)在该位置任意给定的产品,以黑色曲线表示的平均订单率之间的高差。这将使我们的位置调整产品性能的概念,让我们解释每个产品的历史表现的“位置效应”(黑线)和“产品效应”(从黑色曲线垂直偏移)的组合。(在实践中,我们还调整的范围内的其他因素,诸如网页是否已经被过滤或者它是否正在移动设备上观看的,但是我们将忽略这些因素这篇文章的目的。)

我们采用logistic回归,以表示一个给定的客户将订购产品的概率实现这种方法一世当我们把它呈现在适当的位置Ĵ使用像这样的方程:

其中,“产品效应”描述“位置效应”给定产品的性能和平均之间的偏差,并描述了同样的事情在我们网站上的不同位置。在一般情况下,产品,其“产品效应”估计是大的,积极的将倾向于为普通观众做的很好,无论他们出现在页面上的什么地方。

如下文所述,我们采取了贝叶斯方法拟合这个模型,使我们可以利用我们对我们的产品对客户的吸引力先验信息。更具体地,我们使用pystan包在Python找到相当的最大后验(MAP)估计为每个系数,然后使用拉普拉斯近似把这些估计充分高斯后验分布。

2.充分利用大数据,传播薄

如果有足够的数据,我们可以只使用逻辑回归模型没有进一步的变化。Wayfair最后一个季度处理了超过900万台的订单独自一人,最初听起来像是绰绰有余。然而,这些订单被数以百万计的产品中展开,产生每个产品最多只有几个订单。小整数像这些可以是非常嘈杂,所以我们总是要担心一个产品简单地似乎比别人好是因为随机的机会。例如,很难判断一款吸引了三个订单的产品是否真的比一个吸引了两个订单的产品好,或者它只是凑巧而已。

我们新的贝叶斯算法需要两个互补的方法解决这个问题:(1)经验贝叶斯正和(b)将其它信号之外的订单。

A.经验贝叶斯正则化

如果我们只是排产品通过他们的历史订单率,我们马上会遇到麻烦。试想一下,有100%被证明只有一个客户后,订单率浴帘。如果我们把“100%”号严重的是,我们最终会推动该产品在第一页的顶部,蛙跳近十万的浴帘着诱人的广大客户的长期跟踪记录。显然,我们需要从向0%或100%起飞锚固我们估计的一些方法。

在我们的贝叶斯方法中,我们使用关于我们的目录中产品之间变化的先验信息,以确保我们的估计落在一个合理的范围内。例如,我们的历史数据可能表明,一个非常好的产品的订单率可能比平均水平高出10倍,但1万倍是不合理的。当我们考虑到这些先验信息时,我们可以生成一个后验分布,它能给我们一个合理的答案,即使在有噪声的数据意味着100%的订货率的情况下也是如此。

在下面的假设的图示中,紫色曲线表示跨过目录(我们事先)观察订单率的范围内,和绿色曲线代表合理顺序速率的范围为浴帘如上所述。尽管噪声数据,我们仍然可以产生的浴帘可能估计一个合理的范围内。其订购的第一次它显示给客户,这一事实就足以转移分配的权利,但还不足以让我们期待像一个100%的订单率前进什么。

图3:一个说明像我们这样的先验分布(紫色)如何根据产品性能的新信息而更新的图解。

B.加入其他信号

我们的贝叶斯方法减少了估计中的噪音,但它并没有放大我们从客户行为中得到的信号。幸运的是,产品不会被“订购”或“未订购”。他们也可以被点击,添加到购物车,添加到注册表,保存以后,等等。这些其他行为提供了关于客户产品偏好的更丰富的信息来源,因为它们可能比订单更常见。

为了使用这些附加信息,我们采取了我们最初的目标(对产品的潜在客户想要的顺序),并打破它分解成步骤。为了使客户订购的产品,我们已经证明他们的关键步骤是:

  1. 点击产品
  2. 添加点击的产品到购物车
  3. 订购的高附加值产品

如果一个产品倾向于被点击并添加到购物车,那么这通常是一个关于它的未来订单率的好迹象。同样地,如果顾客甚至从来没有点击过一个给定的产品,那么他们将不可能订购它。因为每一步都依赖于前一步,我们可以用概率链式法则来量化每一步对我们总体目标的贡献:

这为我们提供了一种非常自然的方式来整合所有三个阶段的客户行为:我们可以拟合三个较小的logistic回归模型,然后将结果相乘,而不是拟合一个大的logistic回归模型。如果一个产品在网站上出现的时间还不够长,我们还不能可靠地估计它的总体订单率,我们仍然可以根据人们将其添加到购物车中的频率做出有根据的猜测。但有了足够的数据,我们也可以改变路线,如果我们发现一种给定的产品往往被丢弃在人们的购物车中,并开始向顾客展示一些他们更可能订购的东西。

3.随着时间的推移更新模型

到目前为止,我们只谈论生成每个产品的整体吸引力的一个估计,但电子商务是动态的,我们希望产生新的估计尽可能多地。幸运的是,增量式学习就是贝叶斯方法擅长的领域。而不是对历史数据的每一天一大块再培训,我们可以编码在我们之前的分布的历史信息。然后,我们可以更新在今天的数据的光之前,形成一个新的后验分布。尽管这个更新步骤仅消耗数据的某一天,最终的结果仍包含我们先前的历史信息,从今天的新数据一起。

但究竟如何,我们应该每一天形成我们先验?我们简要地考虑最简单的方法:使用前一天的后验分布作为新之前。这一方法必须让我们保留我们的所有关于产品的历史业绩信息。但是,如果我们希望产品的性能,以时间换过来,那么我们不应该过分关注到旧的数据。出于这个原因,我们选择不使用100%的在我们旧的后验,形成我们新的先验信息;我们使用的大部分,并故意“忘记”休息。由于我们的先验后验和都是高斯,我们定义在自回归过程中的术语“遗忘”,慢慢地让每个产品的后验分布朝着原来之前在所有产品扩散。

图4:每日更新循环示意图。每天,我们的逻辑回归模型将我们对客户行为的观察与我们的先验知识结合起来,生成一个后验分布。这个后向分布会通知第二天的先验信息,但是我们有意地“忘记”我们获得的一小部分信息,这样模型就不会过于关注过去的表现。

4.实时对产品进行排名

一旦我们培训我们的模型,我们可以用它来提出建议,为我们的客户。我们的主要目标是展示产品的吸引力附近的每个页面的顶部,但我们有一些额外的目标,以及。特别是,我们探索了一系列不同的可能的产品的排名,这样我们就可以收集有关产品性能更有价值的数据是很重要的。这就产生了一个有趣的权衡:一方面,我们要充分利用我们已获得有关产品的吸引力信息;在另一方面,我们要探索和收集更多的信息。

探索对我们很重要,至少有两个原因:

  • 如果我们显示了一个范围位置中的每个产品,那么我们可以更好地估计(和占1)部分中讨论的位置相关的影响。
  • 如果我们展示一系列不同的产品,那么我们就会有更多的机会发现以前没有受到太多关注的好产品。

对于我们而言,纯粹利用将意味着我们总是根据产品排名P(订单|产品示出);同样,纯勘探意味着显示为每个客户不同的,完全随机的顺序它们。我们选择汤普森采样的一个变种作为我们的中间地带。撇开一些工程细节,这是当客户浏览wayfair.com会发生什么:

  • 首先,我们从产品的后验分布中生成随机样本,对每种产品的吸引力做出轻微随机的估计。
  • 然后,我们再等级的产品,以便在上面显示有最大的采样值的产品。

这使我们能够每天在不同的位置展示每一种产品,同时仍然确保最好的产品会显示在大多数客户的显著位置。

Wayfair上产品排名的未来

我们新的贝叶斯排名系统可以帮助我们了解哪些产品最吸引客户,并帮助我们的客户找到自己的家园完美的项目。更妙的是,我们的制度设计,不断提高随着时间的推移。随着客户继续从我们的目录仔细阅读和购买的物品,不同产品的性能的认识不断提高。我们的回归模型,其在本公司网站的知名度理顺了那些纷繁每个产品的实际吸引力(即占排序顺序偏见,见1)。结合经验贝叶斯正与客户行为的多个数据源,使我们有效地利用新的数据(第2节)。贝叶斯更新利用历史数据,同时仍然足够灵活,以适应新的趋势(第3节)。最后,汤普森抽样探讨了一系列很好的排名,以帮助我们找到展示未来的客户提供最好的产品(第4)。

但是,我们从来没有做过!鉴于我们已经使用这种方法看到了巨大的成功,我们已经开始探索如何商品化这里描述的技术,使得它们可以被应用到各种优化和排名问题,我们以简单的方式在Wayfair面对。此外,我们一直在扩展这种方法使得产品的功能和客户特征之间的非线性相互作用。增加产品功能提高了产品的效果估计,特别是对产品的一些意见,通过推广过类似的产品性能。客户特征之间的非线性相互作用产生的效果的产品更好的估计。

通过功能图像OpenClipart-Vectors

回应

  1. 阿凡达
    玛雅

    2020年1月31日

    非常非常酷!感谢你的分享!!!

  2. 阿凡达
    加布

    2020年2月10日

    这是你采取的一个非常有趣的方法。有没有什么地方可以让我进一步了解AR模型的使用,从而“回归”到之前的状态?我画的是一个平稳的过程它采用先验均值作为它的均值,但我从来没有听说过这种方法,我很想了解更多。

  3. 阿凡达
    annalise

    2020年2月12日

    贝叶斯方法的伟大应用

提交评论

注意:您的电子邮件地址才能添加注释,但将不会被发表。