首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在 Pinterest 建立大规模学习检索系统(译文)

Bowen Deng | 机器学习工程师,Homefeed 候选生成;Zhibo Fan | 机器学习工程师,Homefeed 候选生成;Dafang He | 机器学习工程师,Homefeed 相关性;Ying Huang | 机器学习工程师,策展;Raymond Hsu | 工程经理,Homefeed CG 产品支持;James Li | 工程经理,Homefeed 候选生成;Dylan Wang | 总监,Homefeed 相关性;Jay Adams | 首席工程师,Pinner 策展与增长

介绍

在 Pinterest,我们的使命是为每个人带来灵感,创造他们热爱的生活。在网上找到合适的内容并服务于合适的受众是这一使命的关键。现代大规模推荐系统通常包括多个阶段,其中检索旨在从数十亿个候选池中检索候选,而排名则预测用户倾向于从早期阶段检索到的修剪候选集中使用哪个项目 [2]。图 1 说明了 Pinterest 中的一般多阶段推荐漏斗设计。

图 1. Pinterest 中的通用多阶段推荐系统设计。我们从数十亿个 Pin 内容语料库中检索候选内容,并将其缩小到数千个候选内容,以供排名模型进行评分,最终为 Pinners 生成 feed。“CG”是候选生成的缩写,“LWS”是轻量级评分的缩写,这是我们的预排名模型。

Pinterest 排名模型是一个强大的基于转换器的模型,它从原始用户参与序列中学习而来,并使用混合设备服务 [3]。它能够有效捕捉用户的长期和短期参与度,并能提供即时预测。然而,Pinterest 过去的检索系统有所不同,因为它们中的许多都基于启发式方法,例如基于 Pin-Board 图或用户关注的兴趣的方法。这项工作展示了我们成功构建 Pinterest 内部嵌入检索系统的努力,该系统用于纯粹从记录的用户参与事件中学习的有机内容,并投入生产。我们已经将该系统部署用于主页推送和通知。

图 2. 用于训练和服务的两座塔模型。方法

业界广泛采用了基于双塔的方法 [6],其中一个塔学习查询嵌入,另一个塔学习项目嵌入。使用查询嵌入和项目嵌入的最近邻搜索,在线服务将变得便宜。本节说明了 Pinterest 上用于学习检索的双塔机器学习模型的当前机器学习设计。

图 2 给出了具有训练目标和服务说明的通用双塔模型架构。

为了训练一个高效的检索模型,许多工作将其建模为一个极端的多类分类问题。虽然在实践中我们无法对所有项目语料库进行 softmax 运算,但我们可以轻松利用批量负样本,这提供了一种内存高效的负样本采样方法。更正式地说,检索模型应该优化,其中 C 是整个语料库,T 是所有真实标签。

然而在实践中我们只能对一组负项 S 进行 softmax 采样。

给定一个采样集 D,采样的 softmax 可以表示为:

当我们从训练集中抽取可能存在流行度偏差的商品时,纠正样本概率对我们来说很重要 [1]。我们根据每个商品的估计概率使用简单的逻辑调整。

𝐿⟮用户,物品⟯ = 𝒆用户 · 𝒆物品 - log P⟮物品在批次中⟯

其中𝒆user,𝒆item 分别是用户嵌入和项目嵌入。

在我们的模型设计中,我们将用户的长期参与度[11]、用户个人资料和上下文编码为用户塔中的输入[2](如下图 4 所示)。

图 3. 双塔架构中的用户序列建模。PinnerSage [11] 对长期用户表示进行编码,而使用序列转换器建模的用户实时用户序列使模型能够捕捉即时用户意图。系统设计

由于 Pinterest 服务于超过 5 亿月活跃用户,设计和实施基于 ANN 的检索系统并非易事。在 Pinterest,我们拥有基于算法设计的内部 ANN 服务系统 [5, 7]。为了能够在线提供项目嵌入,我们将其分为两部分:在线服务和离线索引。在在线服务中,用户嵌入是在请求时计算的,因此它可以利用最新的功能进行个性化检索。在离线索引中,数百万个项目嵌入被计算并推送到我们的内部 Manas 服务系统进行在线服务。图 4 说明了采用自动再训练的基于嵌入的检索的系统架构。

图 4. 具有自动再训练功能的学习检索完整服务管道自动再训练

在实际的推荐系统中,经常重新训练模型以刷新用户学到的知识并捕捉最新趋势是必要的。我们建立了一个自动重新训练工作流程,定期重新训练模型并验证模型性能,然后再将它们部署到模型和索引服务中。

然而,与排名模型不同,双塔模型被拆分成两个模型工件并部署到单独的服务中。当重新训练一个新模型时,我们需要确保服务模型版本在两个服务之间同步。如果我们不考虑版本同步,由于部署速度的差异(通常 Pin 索引管道比查看器模型准备就绪所需的时间要长得多),如果嵌入空间不匹配,候选质量将急剧下降。从基础设施的角度来看,任何一项服务的回滚都将是有害的。此外,当构建新索引并将其推广到生产环境时,ANN 搜索服务的主机不会立即完全改变;这确保了在推广期间,一定比例的流量不会受到模型版本不匹配的影响。

为了解决这个问题,我们将一个模型版本元数据附加到每个 ANN 搜索服务主机,其中包含从模型名称到最新模型版本的映射。元数据与索引一起生成。在服务时,homefeed 后端将首先从其指定的 ANN 服务主机获取版本元数据,并使用相应版本的模型获取用户嵌入。这确保了“随时”模型版本同步:即使在索引推出期间某些 ANN 主机具有模型版本 N,而其他主机具有版本 N+1,模型版本仍然是同步的。此外,为了确保回滚能力,我们保留了查看器模型的最新 N 版本,以便即使 ANN 服务回滚到其最后一个版本,我们仍然可以从正确的模型计算用户嵌入。

实验与结果

Pinterest 中的 Homefeed 可能是最复杂的系统,需要针对不同情况检索项目:Pinner 参与度、内容探索、兴趣多样化等。它有超过 20 个候选生成器投入生产,采用不同的检索策略。目前,学习检索候选生成器旨在推动用户参与度。它拥有最高的用户覆盖率和前三名的保存率。自推出以来,它已经帮助弃用了另外两个候选生成器,并获得了巨大的整体网站参与度胜利。

结论和未来工作

在这篇博文中,我们介绍了在 Pinterest 中构建跨不同界面的学习检索系统的工作。基于机器学习的方法使我们能够快速进行功能迭代,并进一步巩固我们的系统。

致谢

我们要感谢 Pinterest 上的所有合作者。吴朝晖、王宇翔、朱婷婷、Andrew Zhai、Chantat Eksombatchai、陈浩宇、Nikil Pancha、桂新元、夏鹤迪、胡建军、刘丹尼尔、黄胜兰、Dhruvil Badani、张亮、李蔚然、谢海滨、黄耀南、陈可一、Tim Koh、唐力、王健、刘铮、陈阳、Laksh Bhasin、肖阳、Anna Kiyantseva、嘉成洪.

参考:

[1]关于抽样 Softmax 损失对项目推荐的有效性

[2]用于 YouTube 推荐的深度神经网络

[3]Transact: 基于 Transformer 的实时用户行为模型,用于 Pinterest 的推荐

[4]Pixie:向2亿多用户实时推荐30多亿件商品的系统

[5]Manas HNSW 流媒体滤镜

[6]Pinterest 主页动态统一轻量级评分:双塔方法

[7]使用分层可导航小世界图进行高效、稳健的近似最近邻搜索。

[8]样本选择偏差修正理论

[9]PinnerFormer:Pinterest 的用户表示序列建模

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OevT0K8dvzcwJn9OFoRbnOlA0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券