检索

假设您有一个嵌入模型。对于用户,您会如何决定推荐哪些商品?

在投放时,对于查询,您首先执行以下其中一项操作:

  • 对于矩阵分解模型,查询(或用户)嵌入是静态已知的,系统只需从用户嵌入矩阵查找即可。
  • 对于 DNN 模型,系统会在特征向量上运行网络,从而在服务时间 \(\psi(x)\)计算查询嵌入 \(x\)。

使用查询嵌入 \(q\)后,搜索嵌入空间中\(V_j\) 接近 \(q\) 的项目嵌入。这是最近的邻域问题。例如,您可以根据相似度分数 \(s(q, V_j)\)返回前 k 个项目。

以几维电影为蓝本的二维频谱图,展示了从儿童到成人电影,从艺术片到大片。系统会突出显示一位用户以及附近的两部影片。

您可以在商品推荐功能中使用类似的方法。例如,当用户观看 YouTube 视频时,系统可以先查找该元素的嵌入,然后查找嵌入空间中其他元素的\(V_j\) 的嵌入。

大规模检索

如需计算嵌入空间中最近的邻点,系统可以详尽地为每个潜在候选项评分。对于大型的语料库,详尽的评分可能会占用大量资源,但您可以使用以下任一策略来提高效率:

  • 如果查询嵌入是以静态方式已知的,则系统可以离线执行详尽评分,预先计算并存储每个查询的首选候选列表。这是推荐相关商品的常见做法。
  • 使用最近的邻点。