TGViewer
Knowledge Accumulator Knowledge Accumulator @knowledge_accumulator · 5.69K subscribers
Post #117 4.54K
HNSW [2016] - один из столпов современных рекомендательных систем

В больших системах существуют миллионы вариантов того, что можно порекомендовать пользователю. Это слишком много, чтобы применять ML для оценки релевантности документа, и, чтобы сузить выбор, существует этап кандидатогенерации. Генераторы бывают тупыми - например, какие-нибудь фильтры по ключевым словам, но бывают и умные, основанные на эмбеддингах.

Идея следующая: у нас есть эмбеддинг пользователя u и N эмбеддингов документов d, и мы хотим взять k ближайших к пользователю документов. Проблема в том, для точного ответа на такой запрос нам придётся считать все N расстояний между u и d, но такие вычисления мы не можем себе позволить. Но нам и не нужен точный ответ, подойдут и просто k близких к u векторов. Такая постановка называется "approximate nearest neighbor search". HNSW - это на сегодня топовый способ решения такой задачи.

Navigable Small World (NSW) - одна из двух ключевых компонент, работает так: построим граф из всех документов, соединив рёбрами между собой ограниченное количество ближайших соседей к каждому документу. Когда нам поступает запрос на поиск соседей к какому-то вектору q, мы жадно ходим по графу и идём всегда в вершину, которая ближе всего к q. Когда мы попадаем в "локальный минимум", то считаем его ответом. Такая процедура позволяет не считать все расстояния для каждого q.

HNSW добавляет Hierarchical к выше описанной схеме - мы создаём несколько уровней графа для поиска в разных масштабах. На нижнем уровне находятся все вершины, но с каждым повышением уровня остаётся случайный поднабор вершин, таким образом, делая соседей дальше друг от друга и позволяя прыгать дальше на каждом шаге поиска. Поиск начинается с самого верхнего уровня, и, попадая в тупик, мы спускаемся ниже и продолжаем. Это позволяет сократить количество операций. На картинке иллюстрация работа поиска.

Строится граф чуть сложнее, и для интересующихся оставлю ссылки на материалы: статья с объяснением, видео.

@knowledge_accumulator
  • 👍 15
  • 🔥 3
More from @knowledge_accumulator
  1. Sep 20, 2026Почувствуйте AGI Все эти годы я писал о том, что не верю в потенциал LLM превратиться в су…
  2. Sep 5, 2026Предсказать среднее могут не только лишь все Классическая задача машинного обучения - трен…
  3. Aug 17, 2026Долина vs Нью-Йорк Если что-то находится далеко от нас, нам свойственно излишне обобщать с…
  4. Jul 30, 2026Кто виноват в сливе рекламного бюджета? При создании рекламного line item рекламодатель ус…
  5. Jul 13, 2026Покатался на яхте в Американской глубинке После переезда в Калифорнию произошло неожиданно…
  6. Jun 30, 2026Да кто такие эти ваши producer-side A/B-тесты? В своей яндексовской эре работы над рекомен…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →