Instacart如何使用机器学习帮助人们装满购物车?


对于像 Instacart 这样的电子商务平台,搜索是一个重要的工具,它可以帮助人们找到他们想要的产品,即使他们不确定自己在寻找什么,也能让他们轻松购物。在用户开始输入时自动完成用户的查询是提高搜索体验效率的好方法。它帮助用户清楚地表达他们的购物意图,并帮助他们探索各种各样的选择。
在这篇文章中,我们描述了我们如何在自动完成中生成和排名查询建议,以及这如何塑造用户的搜索行为——转化为更大的购物篮大小。

自动完成 (AC) 是确保我们的用户拥有愉快购物体验的重要界面:
首先,它可以让他们轻松找到他们想要的产品,从而帮助他们节省时间。接下来,它会激发他们探索我们目录的全部范围并尝试新产品。这种探索很重要,因为它可以帮助我们的客户从 Instacart 中获得更多价值,并在他们的常规购物清单之外更多地使用该应用程序。最后,它通过深入了解他们当前的购物会话和推荐搜索来指导他们的旅程,这将帮助我们的客户找到他们想要的物品。

在 Instacart,我们设计了自动完成功能,通过帮助我们的用户通过更少的击键来表达他们的搜索意图来创造出色的搜索体验,从而节省时间和精力。我们还希望引导我们的用户发出有意义的查询——这意味着建议可能产生与用户需求高度相关的结果的查询,更正任何拼写错误,并引导用户使用广泛的意图查询,让他们充分探索整个广度我们的目录。最后,我们希望尽快提供相关建议——确保为我们的用户提供流畅的搜索体验。

提示从何而来
我们依靠之前在 Instacart 上的客户搜索来确定一组全面的建议,这些建议可用于预测客户的搜索查询。使用基于我们的搜索日志的数据集的优势在于,它提供了丰富的自然语言建议,用户可以轻松关联。我们的词汇表由 5.7 万个单词组成,从 1130 万个符合条件的产品和品牌中提取——在所有零售商中产生了约 78.5 万个不同的自动填充术语。
由于用户查询不一定总是格式正确,因此我们应用一组规则来过滤候选者,例如:

  • 删除带有坏词和列入黑名单的词的建议
  • 从 Instacart 定义的词汇表中删除建议,该词汇表特定于我们平台上的购物意图
  • 删除过长的建议
  • 删除复数重复(我们不想显示“egg”和“eggs”,所以我们得到最流行的版本)

我们确保我们的数据集包含流行、趋势、季节性相关且最重要的查询的良好表示——如果用户选择建议的查询,则会产生高度相关的结果。

匹配用户意图
给定搜索栏中的用户输入,我们称之为前缀,我们需要检索与前缀匹配的所有查询建议。
例如,对于前缀“ice c”,我们检索所有包含“ice c”的候选,条件是匹配需要发生在候选集中任何单词的开头,以允许更大和更多样化的集合。在这个例子中,我们将检索以下列表:“冰淇淋”、“冰淇淋三明治”、“冰咖啡”、“冰淇淋棒”、“香草冰淇淋”、“番茄冰淇淋”令”等。

下面,我们概述了为产生高质量建议而必须克服的一些挑战。
处理拼写错误
尽管对我们的自动完成语料库实施了一些质量措施,例如过滤未转换的查询,但仍然存在具有高流量的高转换搜索,例如“avacado”。

当用户输入包含拼写错误时,使用适当调整的折扣因子启用模糊匹配有助于显示正确的术语,因为“avocado”比拼写错误的术语“avacado”具有更高的排名分数。模糊匹配将自动完成参与率提高了 1%,从而将转换查询的百分比提高了 0.5%。

此外,我们计划将搜索团队的拼写检查器应用于自动完成语料库,以识别常见的拼写错误,同时显示更正的术语。

语义重复数据删除
从用户日志生成的搜索查询词通常会包含多个语义相同的自动完成词。有时,有一个几乎完全匹配的单词(例如“新鲜香蕉”和“新鲜香蕉”,单数与复数形式,如“苹果”和“苹果”,或复合名词,如“苹果酱”与“苹果酱”)。具有语义相同的建议会给用户带来更多不必要的选择,并降低出现用户意图查询的可能性。此外,删除重复项将产生更多样化的结果集。
我们使用搜索嵌入模型解决了语义重复数据删除问题。搜索嵌入经过训练以定义查询和产品之间的相关性。语义去重算法的核心是使用预训练的查询嵌入来识别语义相似的术语对,方法是查看定义为一对查询嵌入的点积的相似度得分。
让我们看看几个搜索词之间的语义相似度得分:

  • 芝士片Cheese slices → Sliced cheese: 98%
  • 蛋黄酱Mayo → Mayonnaise: 97%
  • 通心粉奶酪Mac cheese → Macaroni cheese: 97%

通过离线分析和实验,我们选择了一个查询相似度阈值并将其应用于标记具有更高级别语义重复的查询建议。

利用 Instacart 目录改善冷启动问题
在 Instacart,客户可以在多家零售商处购买产品,从他们最喜欢的全国连锁店到独立的社区杂货店。我们的基本算法根据过去在每个零售商处进行的搜索生成查询建议数据集。原因是零售商之间的产品目录和广度可能会有很大差异——因此,为所有零售商使用通用建议数据集可能会产生不相关的建议。

然而,这意味着我们需要足够的流量在零售商处产生,然后才能为他们生成有用的查询建议。这对于新的或较小的零售商来说尤其是一个问题,并且通常是所有零售商的尾部查询问题。

我们利用在零售商之间共享的标准化 Instacart 目录克服了这个问题。通用目录使我们能够增强对搜索词、产品的理解并生成查询建议,以使用所有零售商共享的产品来满足搜索流量较低的新的和较小的零售商。这种方法将新用户的自动完成率提高了 0.8%,并将购物篮大小提高了 0.7%。

我们解决冷启动问题的下一步是深入研究神经生成语言模型,以从目录 ( doc2query ) 中可用的每个产品中提取查询候选词。
除了增加自动完成术语的覆盖范围外,我们还采用了类似的方法来增加显示在建议旁边的缩略图的覆盖范围。

排名:超越人气
我们最初的自动完成排名模型是基于受欢迎程度的,效果相当好。然而,随着自动完成使用量的增加,我们问了自己很多重要的问题——“它能否影响用户的搜索行为”、“它能否推动更大的购物篮大小”、“它能否激发用户搜索新奇的查询”。这导致我们探索新的排名模型来确定建议的最终排序。

自动完成参与模型
我们从一个模型开始,其目标是在顶部显示最相关的建议。使用自动完成参与日志作为我们的训练数据集,用户点击的查询建议用作正面示例,其余建议用作负面示例。使用这个数据集,我们现在可以训练一个学习排序模型。

考虑到严格的延迟,我们首先开发了一种轻量级排名算法,该算法被建模为二进制分类问题,混合了查询特征,如流行度和前缀查询交互特征。
最相关的功能是:

  • ac_conversion_rate,测量在给定前缀的情况下观察和单击建议术语的速率。
  • ac_skip_rate旨在通过对用户看到但未参与的热门建议术语的比率进行建模来控制位置偏差。
  • is_start_match,一个布尔特征,用于指示前缀是否从建议术语的开头匹配(即“纸巾”从开头匹配前缀“ p ”,但“toilet paper ”不匹配)。
  • is_fuzzy_match,一个布尔特征,用于指示匹配是否模糊。
  • has_thumbnail,一个布尔特征,用于指示建议是否包含缩略图。
  • normalized_popularity,一种标准化的查询流行度特征(作为总搜索量的一小部分),在零售商级别。

该模型提高了自动填充参与率,并减少了平均前缀长度,从而帮助客户通过减少输入来更快地获得搜索结果。

这种改进的购物体验的有效性渗透到下游核心指标,每次搜索添加到购物车的商品增加了 2%,广告收入增加了 1.6%。

多目标排名
我们展示了自动完成功能是引导客户获得更好的搜索体验和提高整体搜索性能的一个很好的工具。我们可以通过联合优化自动完成参与(帮助用户更快地找到他们正在寻找的内容)和添加到购物车(将搜索流量推向更高转化的查询)来进一步推动业务价值。
搜索的目标是实现用户通过搜索查询表达的意图。我们知道,当有一个(或多个)项目添加到与该搜索查询相关联的购物车时,一个意图已经实现。

在搜索过程的过度简化中,在表达意图和添加到购物车之间有三个步骤:
第一步,用户在搜索栏(前缀)中输入他们的意图,并动态地看到一个排序的建议列表。
如果用户选择了其中一个建议(第 2 步),我们就会进行自动完成转换。
在第 3 步中,用户登陆搜索结果页面,显示所选术语的建议项目,现在可以选择将项目添加到购物车 - 我们将此事件称为search conversion o或add to cart.

在自动完成参与模型中,我们只关注第 1 步和第 2 步,并训练优化自动完成转化的排名模型。Instacart 在搜索方面的最终目标是帮助客户构建购物车。出于这个原因,我们创建了一个新的训练数据集,专注于所有三个步骤,并构建了一个多目标模型,最终目标是增加购物车的添加量。

我们尝试了一些多目标方法,例如标签聚合方法,通过将多个目标聚合为一个目标,将问题简化为一个目标。在我们的自动完成场景中,只有在自动完成展示被转换时才会添加到购物车,因此我们可以简单地将 AC 目标交换为添加到购物车目标。然而,我们遇到了数据稀疏问题并选择了模型聚合方法——为每个目标独立调整的模型融合。

详细点击标题

自动完成不仅仅是一个导航工具,它可以在用户键入时预测用户的意图。它也是一个强大的途径,可以将搜索流量塑造成有意义的查询,并提高 Instacart 产品的可发现性。
为了在构建购物车的过程中最好地引导和启发用户,自动完成功能需要考虑除流行度和搜索指标之外的各种因素。我们正在努力使我们的自动完成功能个性化,并利用上下文信息(例如本地趋势产品和用户在购物车中的当前物品)来帮助导航并通过相关和鼓舞人心的提示建议取悦客户。