Дело не только в странных названиях. Проблема встаёт на этапе ранжирования: поиску нужно понять, какую карточку поставить выше.
Если один и тот же термин есть в тысячах описаний, он перестаёт помогать отличать один продукт от другого. А если описание длинное и набито похожими словами, в нём появляется всё больше случайных совпадений.
Всё так: готовая функция и правда может отсортировать список. Но сначала нужно понять, какой score считать хорошим.
Score — это оценка релевантности: число, по которому поиск решает, насколько описание товара подходит к запросу и где его поставить в выдаче. Что в эту оценку заложить? Частоту слова, редкость слова, длину описания, совпадение по смыслу, историю кликов или что-то ещё?
Тут-то и нужна математика поиска.
Как раз на эту тему мы нашли классный разбор. Он показывает, как работает BM25+ — классический алгоритм ранжирования.
Алгоритм вырос из методов 80-х, но в одном из бенчмарков обошёл продвинутые методы векторного поиска на больших языковых моделях.
В чём суть: BM25+ не пытается понимать текст по смыслу, как это делает нейросетевой поиск, а смотрит на текст статистически — учитывает, что редкие слова важнее частых, повторы не должны бесконечно повышать релевантность, а длинный текст не обязан побеждать только из-за длины.
Если вы заинтересованы в ML и DS и хотите построить карьеру в этой области, подписывайтесь на канал Бориса. Он рассказывает, какие минимальные знания Software Engineering нужны для Data Scientist.
#рекомендуем



