# Recommendation factor and doc relevance

**URL:** <https://discuss.elastic.co/t/recommendation-factor-and-doc-relevance/83729>\
**Category:** Вопросы на русском языке\
**Created:** [April 26, 2017, 3:12pm UTC](https://discuss.elastic.co/t/recommendation-factor-and-doc-relevance/83729 "2017-04-26T15:12:28Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![klara\_gogi](https://avatars.discourse-cdn.com/v4/letter/k/76d3ee/32.png) [@klara\_gogi](https://discuss.elastic.co/u/klara_gogi)\
**Post date:** [April 26, 2017, 3:12pm UTC](https://discuss.elastic.co/t/recommendation-factor-and-doc-relevance/83729/1 "2017-04-26T15:12:28Z")

</div>

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

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

Что я придумала, например сделать два запроса вместо одного: сначала с аггрегировать по этому запросу средний скор и его отклонение, а потом для всех документов из этого запроса выполнить function\_SCORE где  
\_score - agg\_score\_avg/agg\_score\_square + recom\_factore.

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

---

<div class="post-metadata">

**Author:** ![Igor\_Motov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/igor_motov/32/45193_2.png) [@Igor\_Motov](https://discuss.elastic.co/u/Igor_Motov)\
**Post date:** [April 26, 2017, 6:01pm UTC](https://discuss.elastic.co/t/recommendation-factor-and-doc-relevance/83729/2 "2017-04-26T18:01:07Z")

</div>

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

Может, [начнем с проблемы](https://ru.meta.stackoverflow.com/questions/709/%D0%A7%D1%82%D0%BE-%D1%82%D0%B0%D0%BA%D0%BE%D0%B5-%D0%9E%D1%88%D0%B8%D0%B1%D0%BA%D0%B0-%D0%BC%D0%BE%D0%BB%D0%BE%D1%82%D0%BA%D0%B0-%D0%B8%D0%BB%D0%B8-%D0%9E%D1%88%D0%B8%D0%B1%D0%BA%D0%B0-xy), которую вы пытаетесь решить?

---

<div class="post-metadata">

**Author:** ![klara\_gogi](https://avatars.discourse-cdn.com/v4/letter/k/76d3ee/32.png) [@klara\_gogi](https://discuss.elastic.co/u/klara_gogi)\
**Post date:** [April 27, 2017, 11:03am UTC](https://discuss.elastic.co/t/recommendation-factor-and-doc-relevance/83729/3 "2017-04-27T11:03:13Z")

</div>

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

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

Recom\_factore не константный, а для каждого документа свой, посчитанный заранее , и самое просто использовать его в function\_score.

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

---

<div class="post-metadata">

**Author:** ![Igor\_Motov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/igor_motov/32/45193_2.png) [@Igor\_Motov](https://discuss.elastic.co/u/Igor_Motov)\
**Post date:** [April 27, 2017, 4:11pm UTC](https://discuss.elastic.co/t/recommendation-factor-and-doc-relevance/83729/4 "2017-04-27T16:11:39Z")

</div>

А вы предполагаете, что `_score` имеет нормальное, равномерное, [гамма](http://www.ccs.neu.edu/home/daikeshi/papers/sigir10.pdf) или [какое-то другое](https://www.mediawiki.org/wiki/User:TJones_%28WMF%29/Notes/Some_Thoughts_on_the_Math_of_Scoring) распределение? И почему имеет смысл их складывать, а не, скажем, умножать? На самом деле, это сложная проблема и у меня готового решения нет - многое зависит от интерпретации самого `_score` и `recom_factore`. Я бы начал с изучения опыта wikimedia и wordpress - [https://greg.blog/2017/04/25/combining-search-scores/](https://greg.blog/2017/04/25/combining-search-scores/)

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [May 25, 2017, 4:16pm UTC](https://discuss.elastic.co/t/recommendation-factor-and-doc-relevance/83729/5 "2017-05-25T16:16:19Z")

</div>

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