五厂面经真题集拼多多面经高频网易面经高频拼多多真题双塔召回ANN 索引速答 · 约 5 分钟更新 2026-09-29

召回的双塔结构是什么?ANN 索引怎么建?

一句话结论

双塔分别编码用户和物品,离线预计算物品向量,线上用用户向量与 ANN 索引做内积或余弦召回;索引可选 HNSW 或 IVF,训练用 in-batch 负采和难例挖掘。

先这样答

双塔召回把用户和物品分别编码成向量,再在线计算相似度。用户塔输入用户侧信息,物品塔输入物品侧信息。两侧输出向量后,可以用内积或余弦计算匹配程度。

物品向量可以离线预计算并建立 ANN 索引。线上请求到来时,只计算用户塔,得到当前用户向量,再到索引中检索相似物品。这样能减少线上计算,满足召回阶段的延迟要求。

ANN 索引可以选 HNSW 或 IVF。HNSW 是图索引,查询快,但占用内存大。IVF 是倒排聚类索引,更省内存,但需要先训练聚类。训练双塔时,可以使用 in-batch 负采,也可以加入难例挖掘。正负样本比例要按具体场景调整。

面试官会怎么追问

  • 「为什么物品塔可以放到离线,线上只计算用户塔?」
    物品向量可以提前计算并放入 ANN 索引。线上只生成用户向量,再做相似度检索,可以减少在线计算,满足延迟要求。

  • 「HNSW 和 IVF 怎么选?」
    HNSW 属于图索引,查询快,但内存开销大。IVF 属于倒排聚类索引,更省内存,但使用前需要训练。

  • 「双塔训练时,负样本怎么构造?」
    可以使用 in-batch 负采,把同一批次中的其他样本作为负样本。也可以做难例挖掘,再结合场景调整正负样本比例。

回答的坑

  • 不要只说双塔分别编码向量,还要说明物品向量离线计算、线上只计算用户塔。

  • 不要把 HNSW 和 IVF 混成同一种索引,要说清查询速度、内存开销和是否需要训练的差异。

这家公司的面经实录

—— 本题完 ——