拼接空间以实现基于查询的建议

布莱恩·比肖夫和伊恩·霍恩
制图者迪夫角色
-旧金山,CA

在Stmanbetx万博体育app 官方下载itch Fix,我们的任务是改变人们找到他们所爱的东西的方式。作为数据科学家,我们对此思考了很多,并构建了一系列工具来帮助我们做到这一点:我们的核心推荐算法,我们的基于集合的建议,我们的潜在的风格空间,以及许多其他模型,我们经常利用客户反馈构建我们商品的表示,以有效地推荐最合适的商品。有时候,“最佳推荐”不仅仅是“最适合你”的问题;它可以包括重要的上下文元素。

举个例子,晚上选择一家餐馆:你一直以来最喜欢的餐馆可能是市中心那家美味的埃塞俄比亚餐馆,但你只是在和朋友聊墨西哥玉米卷!如果你正在寻找晚餐推荐,在请求中添加“墨西哥菜”可能会有所帮助。在这种情况下,最近的对话可能会严重影响你今晚的餐厅选择。个性化排名是我们业务中一个极其重要的方面,但这种推荐系统通常被称为基于查询的建议,或有时进行个性化搜索。

我们的许多客户都喜欢在社交媒体帖子上给我们贴上他们最喜欢的长相标签,并允许我们在其他客户使用Stitch Fix购物时分享他们的长相,以此作为他们的灵感。在这种情况下,我们向您展示的每一张特色“社区灵感”图片都将作为一个“查询”,以提供对您个性化且与图片相关的建议,以便您能够manbetx万博体育app 官方下载“# stealTheLook”.这是基于查询的个性化排名,所以让我们深入挖掘(也许稍后会深入挖掘一些玉米饼)!

理解图像

鼓舞人心的图像建议
个性化图像评分步骤。照片从…起@拉托亚内特曲线

“社区灵感”形象的特点是客户的衣服可能是最初从Stitch Fix购买的,也可能不是最初从Stitch Fix购买的。我们通过非结构化图像中的对象来理解它。具体来说,我们希望将这些图像放在我们已经了解的数据方面:我们的目录。manbetx万博体育app 官方下载

我们使用现成的计算机视觉工具来识别图像中的不同服装,并将它们映射到我们自己的目录中,我们将其称为“锚件”。例如,在动画中,我们检测衬衫和牛仔裤,然后找到一些与目录中的图像相似的锚定衬衫和锚定牛仔裤。根据图像中检测到的不同片段的数量,我们通常会发现10-60个锚样式。

随着每个图像映射到一个检测到的对象集合,每个对象映射到一个已知样式集合,我们现在有了作为已知样式集合集合的图像表示。专门的多线程博客读者会记得,我们在高维潜在空间中有一个条目的现有表示,它帮助我们理解条目和客户端样式是如何关联的(c.f。理解潜在风格)。我们的一组锚定样式集成为一组潜在嵌入,可以进一步聚合和总结。重要的是,这些嵌入在与客户机共享的空间中(客户机将该空间称为\(C\);我们将回到这里)。

推荐图片

有了这个结构化的图像库,我们可以开始询问谁来展示推荐问题。

在上一节中,我们将每个图像表示为一组嵌入集合。根据上面动画中的照片,我们有一组嵌入的衬衫和一组嵌入的牛仔裤。首先,我们将平均每个对象的锚嵌入,以得到一个衬衫嵌入和一个牛仔裤嵌入。

值得注意的是,这里的平均值有助于我们处理计算机视觉管道中的错误。例如,一条运动裤潜入牛仔裤的结果中,但只要我们基本上是正确的,在一个足够小的邻域内进行平均是有意义的,最终的嵌入平均会产生相当大的误差。

接下来,我们将利用这样一个事实,即这些嵌入在与客户机共享的空间中(谢谢潜伏型团队!).我们使用现有的模型对每个对象嵌入与客户端嵌入进行评分,为我们提供每个对象的评分:一个用于衬衫客户端组合,另一个用于牛仔裤客户端组合。要将这些因素组合成一个分数,我们最好只取最大值。在上面的示例中,衬衫分数为0.8,牛仔裤分数为0.4,因此整个图像的分数为0.8。

综上所述,我们结合锚定项嵌入来获得“对象”嵌入,然后根据客户对图像中他们最喜欢的对象的喜爱程度对图像进行评分。

我们选择显示的图像是基于查询的建议的“查询”。

购物图片

现在我们有了客户会喜欢的图片,让我们在库存中找到相关的物品来购物吧!在大多数情况下,我们想要的不仅仅是推荐固定的道具——我们不仅需要尊重客户的偏好和库存可用性,我们还想展示多样化的道具集,以最大限度地增加客户看到对他们有好处的东西的机会。

首先,我们返回锚定项目并搜索类似的可用库存。我们在一个方便的merch表示空间中计算相似性[1]它结合了图像相似性和前面小节中使用的潜在的基于客户机的\(C\)嵌入(称这个新的空间\(H\)为hybrid)。这种组合平衡了相似项目的外观,以及相似客户对它们的反应(注意:这些通常非常不同!).我们使用混合空间找到每个锚的k近邻,尊重大小偏好和之前的反馈。每个候选的\(i\)都有一个锚点到候选的距离,这个距离测量的是与图像的相关性(将它称为\(d_i\)表示距离)。

我们现在赢得了很多候选人!一个图像是许多物体。一个对象是许多锚。锚有很多邻居。我们将使用我们最喜欢的数学工具作文[2]看到一个图像有很多很多很多的邻居。现在,我们将把集合集合平展成一个候选集合,以保持索引整洁。如果有重复的,我们保持最小的距离。例如,库存中的某条牛仔裤可以匹配一个锚(\(d_i = 3.14\)),也可以更好地匹配另一个锚(\(d_i = 2.71\)),所以我们保持更接近的\(d_i = 2.71\)并去重复。

我们还没结束呢!manbetx万博体育app 官方下载Stitch Fix痴迷于个性化;到目前为止,图像是个性化的,但我们还需要个性化的项目推荐。我们将返回到\(C\)(客户端)空间以获得该空间为之构建的客户端候选关系(将它们称为\(a_i\)以表示关系)。

让我们来盘点一下目前的情况:

  • 最近邻搜索为我们提供了非常多的候选项\(\{i\in 1…\textrm{So many}\}\),具有锚定项的最小距离度量\(d_i\)。
  • 每个项目都尊重客户反馈和尺寸偏好
  • 这些项目具有亲和力分数\(a_i \),可以预测客户会有多喜欢它。

我们需要从上述项目中选择一个子集,我们认为客户会非常喜欢这些项目,但这些项目仍然适合励志形象的背景。我们做了一个非常简单的多目标排名[3]这同时考虑了距离和亲和力:一个加权的组合。我们的客户端锚值就是\(s_i = \alpha \乘以(1 - d_i) + (1 - \alpha) \乘以a_i)。我们通过实验来学习[4]

最后,我们通过计算几个项目特征和我们的多目标得分(s_i),确保输出的多样性。

带有推荐的鼓舞人心的意象
为左侧图片中的印花上衣提供个性化推荐。请注意这里的=.8,如滑块所示。Divya Prabhakar的内部应用程序和用户界面。

结论

虽然这一切都可能让人感觉非常定制,但退一步思考一下这个解决方案的体系结构是很重要的。如果我们能够进行任意查询(任何内容类型)并将其映射到锚项目集合中,我们可以使用上述工具提供基于查询的个性化建议!更令人兴奋的是,我们缝合在一起的每个潜在空间都是在Stitch Fix上有强大投资的模型,因此我们可以利用它们的所有改进!通过利用个性化和相似性模型,我们可以提出在上下文中有意义的建议。manbetx万博体育app 官方下载

考虑到您希望利用上下文的一般建议问题,您应该考虑:

  • 将该上下文映射到一个表示法,在该表示法中可以度量项目与上下文的相关性
  • 选择高度相关的项目
  • 测量这些项目与客户机之间的关联性。

归因

潜在风格空间是由我们的核心表示学习团队构建的。个性化亲和力得分是我们的样式推荐团队构建的一个模型。图像和商品相似性服务是由我们的商店推荐团队建立的。这项工作是由客户推荐小组领导的。如果你对其中任何一个问题感兴趣,查看我们的开放角色

感谢Javad Hashemi、Dan Marthaler和Sven Schmit对本文的反馈。

工具书类

[1]↩要深入了解潜在空间中的相似性搜索,请查看. 请注意,我们不使用FAISS,但它提供了一个极好的主题概述。

[2]↩其中一位作者过去研究范畴理论,他曾多次试图向另一位作者解释。后者的作者只记得这一切都是关于构图。

[3]↩对于更深层次的多目标问题的讨论,请参阅将您的企业带到新的(帕累托)前沿由我们的同事!

[4]↩强盗的方法在这里可能有用,但我们用交错设计

发布的这篇文章! 在LinkedIn上发布
多线程

来和我们一起工作吧!

我们是一个多元化的团队,致力于打造卓越的产品,我们希望您的帮助。您是否希望与卓越的同行一起打造卓越的产品?加入我们吧!