Статистические расчеты ...


Вы здесь: Форумы fantlab.ru > Форум «Техподдержка и развитие сайта» > Тема «Статистические расчеты единомыслия»

Статистические расчеты единомыслия

 автор  сообщение


гранд-мастер

Ссылка на сообщение 4 декабря 2014 г. 12:22  
Оценка единомыслия (с помощью корреляции оценок, выставленных книгам) важна для корректной работы системы рекомендаций — крайне полезного сервиса, может быть, основного на сайте, ибо многие на него и заходят именно для того, чтобы найти себе новое чтение. Имхо, сейчас рекомендации работают весьма приблизительно. Связано это с не вполне корректным алгоритмом анализа корреляции оценок. Который не учитывает, что разные юзеры используют психилогически разные системы оценок. Скажем, для одних 7 — это положительная оценка, а для других — в общем-то, отрицательная.
Проще пояснить на примере. Пусть набор из 5 книг оценен одним юзером так: 8,9,10,9,8. А другой юзер выставил оценки 5,6,7,6,5. Действующая система даст отрицательную корреляцию -0.1. Но видно же, что мнения юзеров как минимум близки. Важно ведь не совпадение оценок, а совпадение отклонений от средней оценки данного юзера.

Предлагаю иную систему расчет корреляции. А именно:
1. Считается средняя оценка каждого юзера по всем оцененным книгам (возможно, с учетом веса крупной и малой форм);
2. Считается среднеквадратичное отклонение всей выборки оценок данного юзера.
3. Оценка диапазона 1...10 пересчитывается как нормированное на средний квадрат отклонение от среднего.
4. По выборке книг, оцененных одновременно двумя юзерами, считается корреляция как произведение векторов. То есть, берется сумма произведений оценок по каждой книге, деленная на евклидовы нормы двух векторов.

Полученная корреляция будет весьма иной, нежели рассчитанная по матрице. Скажем, в приведенном выше примере (если оба пользователя никаких других книг не оценивали, а потому среднее и дисперсию можно считать по приведенным пяти оценкам) она будет равна 1. Что, однако, тоже не совсем корректно, так как шкала 1...10 все же содержит некоторый психологический смысл.

Посему я бы предложил рассчитывать меру подобия мнений как среднюю между корреляцией матриц, рассчитываемой сейчас сайтом, и "векторной корреляцией", рассчитываемой указанным выше способом. Тогда в рассматриваемом примере мера подобия бы составила разумные 0.45
Единомышленники отбираются действующим способом, а вот прогноз оценки считается иначе:
1. Считается среднее "реальных" оценок единомышленников в смысле отклонения от средней (см. выше п.3)
2. Полученное значение считается прогнозным отклонением от моей средней оценки, соответственно, чтобы получить ее саму, нужно умножить на корень из дисперсии и прибавить среднюю.

Имхо, такая система будет давать более точные рекомендации. Во всяком случае, у меня в эксель "векторная корреляция" забита, и достаточно хорошо демонстрирует, что иные друзья мне вовсе и не друзья на самом деле. И наоборот, в некоторых редких случаях корреляция получается чуть выше.
Кстати, да, "векторная корреляция" на реальных массивах данных чаще оказывается меньше "матричной". Во всяком случае, у меня. Поэтому, возможно, границы "уровней единомыслия" потребуется подправить.
–––
Был так болтлив, что уставали пальцы...


магистр

Ссылка на сообщение 4 декабря 2014 г. 16:59  
Раньше использовалась классическая формула корреляции. Фигня ещё та была в результате. Смешивать же два способа — ещё сильнее усложнить и запутать, имхо.
Не просто так, не без долгих раздумий, но пришли к тому, что сейчас.
Ведь

цитата anagor1

одним юзером так: 8,9,10,9,8. А другой юзер выставил оценки 5,6,7,6,5

означает, что первому они понравились, а второму не очень. Хотя и выстроили по приоритету они бы их одинаково. И всё же факт есть факт — второму они не очень понравились. Если он в 10-бальной шкале использует какую-то свою надуманную типа 1..5 или 1..7, то это уже его проблемы. Я вот не готов верить оценкам человека, у которого 7 = не понравилось или, скажем, 5 = понравилось.
–––
+7(996)730-00-00, Telegram https://t.me/crealist


магистр

Ссылка на сообщение 4 декабря 2014 г. 17:04  
С другой стороны, давайте пример — рассмотрим.
–––
+7(996)730-00-00, Telegram https://t.me/crealist


гранд-мастер

Ссылка на сообщение 4 декабря 2014 г. 19:20  
Что значит пример? Я алгоритм привел. Ну да, это даже более "обычная" корреляция. Не знаю, как она будет работать на всем сообществе игроков. Но для моих оценок (среднее примерно 8, корень из дисперсии 1.5) работает субъективно точнее. Дело в том, что у большинства юзеров шкалы не 10-балльные вовсе, а 5...10 или 6...10 с редкими выбросами вниз (как у меня), либо, например, 3...8, с запасом в обе стороны, либо еще как-то. И это не проблемы игрока, что у него шкала 1...7, это мои получаются проблемы, так как моя система единомышленников искажается, и я получаю странные рекомендации.
Я смотрю оценки какой-нибудь книги — и с удивлением вижу синие и желтые кружочки по всему спектру оценок. Начинаю разбираться внимательнее, смотреть списки взаимных оценок... и вижу, что вовсе ведь не мои вкусы у некоторых, хотя подобие у нас высокое. Потому и оценки "не мои". Таким сложным образом удается существенно уточнить рекомендации. Мне стало любопытно формализовать сей процесс. Написал простенький алгоритм в экселе. И стал получать для себя, в целом, значительно более адекватные оценки подобия. Подумал, как было бы здорово, если бы рекомендации мне давались с учетом вот этих вот "векторных" оценок. Вот и поделился тут алгоритмом.

Я понимаю, что, в принципе, при большой статистике любая система будет более или менее работать, ведь какую-то корреляцию она все равно считает, и на сотне единомышленников результат будет примерно один у всех алгоритмов. Но при оценке книг малоизвестных, с небольшим числом оценок, где 3-5 единомышленников всего, приходится изощряться...

Есть и более замысловатые алгоритмы, кто-то (яндекс, что ли?) конкурс недавно устраивал как раз по таким вот, речь шла об оценке фильмов, суть та же. Но вряд ли они дадут сильно лучший результат, так как оценки ставят люди, не роботы, нередко под настроение, нередко под моду, критерии у всех разные, и логика пасует.
–––
Был так болтлив, что уставали пальцы...


миротворец

Ссылка на сообщение 5 декабря 2014 г. 21:33  
Похоже, что здесь есть рациональное зерно.

Допустим, два юзера выставили книге Х одинаково по 9 баллов. Но у одного все остальные оценки — десятки. Получается, что он оценил эту книгу ниже среднего уровня в его субъективной шкале оценок. А у другого девятка — это на 2 или 3 сигмы выше средней из его оценок. То есть он оценил книгу как выдающуюся.

Если считать корреляцию с учетом отклонения от среднего уровня оценок для каждого юзера, по идее это должно давать более объективные результаты.
–––
Quos vult perdere, dementat
Страницы: 1    🔍 поиск

Вы здесь: Форумы fantlab.ru > Форум «Техподдержка и развитие сайта» > Тема «Статистические расчеты единомыслия»

 
  Новое сообщение по теме «Статистические расчеты единомыслия»
Инструменты   
Сообщение:
 

Внимание! Чтобы общаться на форуме, Вам нужно пройти авторизацию:

   Авторизация

логин:
пароль:
регистрация | забыли пароль?



⇑ Наверх