Winnie-the-Pooh in 768 dimensies: semantisch zoeken voor Codex Pets op YDB
Яндекс
Een ontwikkelaar bouwde een semantische zoekfunctie voor de Codex Pets-catalogus met behulp van embeddings opgeslagen in YDB. Het systeem combineert lexicale, tekstuele semantische en visuele semantische rangschikking. Tests tonen verbeterde NDCG- en Recall-metrieken aan vergeleken met alleen lexicaal zoeken.
De Codex Pets-catalogus bevat 153 goedgekeurde geanimeerde huisdieren die AI-agenten begeleiden. Naarmate de catalogus groeide, werd zoeken op basis van tags onpraktisch; het slaagde er niet in huisdieren te vinden die werden beschreven op basis van uiterlijk in plaats van exacte tags. De auteur implementeerde semantisch zoeken: tekstvelden (naam, beschrijving, tags) worden gecodeerd naar vectoren van 768 dimensies, en een multimodaal model genereert bijschriften voor vier geselecteerde animatieframes, die ook worden gevectoriseerd. YDB slaat de vectoren op en berekent cosinusovereenkomst via Knn::CosineSimilarity. Er zijn vier nieuwe tabellen toegevoegd om embeddings, bijschriften, aanbevelingen en versiebeheer te verwerken. De zoekopdracht combineert drie gerangschikte lijsten met behulp van Weighted Reciprocal Rank Fusion, met lexicale en tekstuele gewichten van 1 en een afgestemd visueel gewicht. De visuele tak kan onafhankelijk falen, met terugval op lexicale resultaten. Uit tests bleek dat semantisch zoeken de NDCG@5 verbetert van 0,539 naar 0,724 en Recall@5 van 0,528 naar 0,743 op de volledige set van 14 query's.
Bron: Habr — хаб ML —
origineel
