Recommendation factor and doc relevance

Как можно комбинировать скор эластика, который говорит о соотношении запрос-товар и
фактор рекоммендаций, то есть соотношение товар - пользователь?

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

Что я придумала, например сделать два запроса вместо одного: сначала с аггрегировать по этому запросу средний скор и его отклонение, а потом для всех документов из этого запроса выполнить function_SCORE где
_score - agg_score_avg/agg_score_square + recom_factore.

Известны еще варианты?

Я не очень понимаю, что это вам даст. Допустим, у вас два записи и у первой записи _score + recom_factore == a а у второй _score + recom_factore == b. Если a > b то a - c > b - c для любого c. То есть, вычитая одну и туже константуaggscore_avg/agg_score_square из всех _score вы порядок записей никак не поменяете, а само по себе значение _score бесполезно.

Может, начнем с проблемы, которую вы пытаетесь решить?

Спасибо за ссылку.

Существует рекомендательная система, которая считает скоры документа для групп юзеров, а также есть эластик который читает скор документа для запроса.

Recom_factore не константный, а для каждого документа свой, посчитанный заранее , и самое просто использовать его в function_score.

Если их просто даже складывать как числа, надо привести к одной шкале, нормализовать. Но если складывать их как случайные величины, то надо стандартизовать.
Полагаю это неоптимальный метод, но коллеги спрашивают меня, как стандартизовать _score?

А вы предполагаете, что _score имеет нормальное, равномерное, гамма или какое-то другое распределение? И почему имеет смысл их складывать, а не, скажем, умножать? На самом деле, это сложная проблема и у меня готового решения нет - многое зависит от интерпретации самого _score и recom_factore. Я бы начал с изучения опыта wikimedia и wordpress - https://greg.blog/2017/04/25/combining-search-scores/

1 Like

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.