假设您有一个嵌入模型。对于用户,您会如何决定推荐哪些商品?
在投放时,对于查询,您首先执行以下其中一项操作:
- 对于矩阵分解模型,查询(或用户)嵌入是静态已知的,系统只需从用户嵌入矩阵查找即可。
- 对于 DNN 模型,系统会在特征向量上运行网络,从而在服务时间 \(\psi(x)\)计算查询嵌入 \(x\)。
使用查询嵌入 \(q\)后,搜索嵌入空间中\(V_j\) 接近 \(q\) 的项目嵌入。这是最近的邻域问题。例如,您可以根据相似度分数 \(s(q, V_j)\)返回前 k 个项目。
您可以在商品推荐功能中使用类似的方法。例如,当用户观看 YouTube 视频时,系统可以先查找该元素的嵌入,然后查找嵌入空间中其他元素的\(V_j\) 的嵌入。
大规模检索
如需计算嵌入空间中最近的邻点,系统可以详尽地为每个潜在候选项评分。对于大型的语料库,详尽的评分可能会占用大量资源,但您可以使用以下任一策略来提高效率:
- 如果查询嵌入是以静态方式已知的,则系统可以离线执行详尽评分,预先计算并存储每个查询的首选候选列表。这是推荐相关商品的常见做法。
- 使用最近的邻点。