Зачем мне эта математика: post #1143 — TG.ME

Почему на AliExpress так сложно что-то найти 👀

Дело не только в странных названиях. Проблема встаёт на этапе ранжирования: поиску нужно понять, какую карточку поставить выше.

Если один и тот же термин есть в тысячах описаний, он перестаёт помогать отличать один продукт от другого. А если описание длинное и набито похожими словами, в нём появляется всё больше случайных совпадений.

*️⃣В комментах под нашей серией про теоремы о бесплатном сыре подписчик предложил на первый взгляд логичное решение: использовать готовые библиотеки, где сортировки давно реализованы. А формулу для ранжирования можно попросить у ИИ и получить готовую функцию.

Всё так: готовая функция и правда может отсортировать список. Но сначала нужно понять, какой score считать хорошим.

Score — это оценка релевантности: число, по которому поиск решает, насколько описание товара подходит к запросу и где его поставить в выдаче. Что в эту оценку заложить? Частоту слова, редкость слова, длину описания, совпадение по смыслу, историю кликов или что-то ещё?

Тут-то и нужна математика поиска.


Как раз на эту тему мы нашли классный разбор. Он показывает, как работает BM25+ — классический алгоритм ранжирования.

Алгоритм вырос из методов 80-х, но в одном из бенчмарков обошёл продвинутые методы векторного поиска на больших языковых моделях.

В чём суть: BM25+ не пытается понимать текст по смыслу, как это делает нейросетевой поиск, а смотрит на текст статистически — учитывает, что редкие слова важнее частых, повторы не должны бесконечно повышать релевантность, а длинный текст не обязан побеждать только из-за длины.

▶️Подробности и код на Python ищите в канале «Борис опять». Подойдёт даже тем, кто ничего не знает о поиске, но уже умеет читать Python.

Если вы заинтересованы в ML и DS и хотите построить карьеру в этой области, подписывайтесь на канал Бориса. Он рассказывает, какие минимальные знания Software Engineering нужны для Data Scientist.

#рекомендуем
❤8👀3✍1