Привет! Меня зовут Владимир Олохтонов, я старший разработчик в команде автоматической модерации Авито. Осенью 2019 мы запустили сервис поиска похожих изображений на основе библиотеки faiss. Он помогает нам понимать, что фотографии уже встречались в другом объявлении, даже…
Прелюдия Эта статья посвящена бинарным деревьям поиска. Недавно делал статью про сжатие данных методом Хаффмана. Там я не очень обращал внимание на бинарные деревья, ибо методы поиска, вставки, удаления не были актуальны. Теперь решил написать статью именно про деревья. Пожалуй, начнем. Дерево — структура данных, состоящая из узлов, соединенных ребрами. Можно сказать, что дерево — частный случай графа. Вот пример дерева: Это не бинарное дерево поиска! Все под кат! Читать дальше →
Вот, например, Milvius(DiskANN) рассчитан на вектора размерности до 32 768, но это приближенный поиск. Но как насчёт поиска точного?В данной статье рассматривается работоспособность 1024 мерного индекса, хранилищем которого служит обычное B-дерево (насколько вообще может быть обычным такое дерево). Используемый диск - вполне себе “железный” старый добрый WD Purple, оперативная память сознательно ограничена 8 Гб. Можно ли что-то из этого выжать на рядовом десктопе за приемлемое время? Читать далее
В user-generated проектах часто приходится бороться с дубликатами, а для нас это особенно актуально, так как основной контент мобильного приложения iFunny — это изображения, которые постятся десятками тысяч ежедневно. Для поиска повторов мы написали отдельную систему, чтобы облегчить процесс и сэкономить море времени. Под катом рассмотрим используемые инструменты, а потом перейдём к примеру реализации. Читать дальше →