Перейти к содержанию
Аватары ×
Форум на Кинопоиске

Персональные рекомендации: Алгоритмы, формулы, и т.д...

Рекомендуемые сообщения

Да я думаю, внедряя такую систему, они знали.. Молчать - обычная, и весьма разумная тактика.

ну вообще-то первое и основное правило при работе с людьми: "С клиентом нужно разговаривать" :)

Ссылка на комментарий
Поделиться на другие сайты

Администрация всё читает. И подумает над всеми проблемами.
Ссылка на комментарий
Поделиться на другие сайты

Заметил, как мне кажется, недостаток в расчете средней разности (S)

1.jpg.4e9a5937cfe77970361de911bd8e6edf.jpg

 

В первом случае близость очень велика, во втором - не очень. По-моему, разность в 9 баллов должна больше снижать коэффициент, чем 9 разностей по 1 б.

Поэтому можно добавить коэффициенты важности, например, такие:

Разность в 1 балл *1

2*1,05

3*1,1

4*1,15

5*1,2

6*1,25

7*1,3

8*1,35

9*1,4

2.jpg.29cc54710d2ca80b014460d4463f597e.jpg

 

Хотя не согласен с тем, что количество оценок должно влиять на близость, но если уже начали обсуждать, то вставлю и свои 5 коп.

По формуле

100 - 11*S - 100/К

возникает вопрос - почему 100?

Для пользователя, который оценил 50 фильмов, 100 общих фильмов - это очень много, кто 2000 фильмов - очень мало.

Можно вместо 100 брать часть оцененных фильмов, например 20%. Хотя тогда коэффициенты близостей между двумя пользователями будут немного отличаться для каждого из них

Ссылка на комментарий
Поделиться на другие сайты

По-моему, разность в 9 баллов должна больше снижать коэффициент, чем 9 разностей по 1 б.

Думаю с одной стороны это разумно, тем более, как указал ugar, относительная шкала оценок может быть смещена у двух юзеров. Т.е. один может ставить 9-ки, другой 10-ки, а по-сути вкусы у них совпадают. С другой стороны, если, допустим, один фильм был противоположно оценён, то это можно расценивать как исключение из общего ряда (в силу плохого настроения, придирки к чему-то и т.п.).

 

100 - 11*S - 100/К

возникает вопрос - почему 100?

100 я взял примерно из тех же соображений, что и сейчас взято 20 как минимальная планка начала расчёта.

Когда общих фильмов ещё мало, то о серьёзной близости заявлять пока преждевременно (100/5 уменьшает близость на 20%). Когда кол-во общих фильмов переваливает за 100, то влияние почти исчезает. Что, в общем-то, соответствует вашему мнению о том, что кол-во оценок не должно влиять на близость. :roll:

А в целом я не настаиваю.

Ссылка на комментарий
Поделиться на другие сайты

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

 

Если один, то согласен.

Но проблема возникает при определении степени противоположности, при какой это можно расценивать как исключение. И такого, чтобы оценки по всем фильмам совпадали, а по одному были противоположны, практически не бывает.

 

А в целом я не настаиваю.

 

Я тоже ни на чем не настаиваю. Это все детали, главное - желание администрации изменить систему

Ссылка на комментарий
Поделиться на другие сайты

Что, в общем-то, соответствует вашему мнению о том, что кол-во оценок не должно влиять на близость.

 

Я уже передумал :)

Влияние количества общих фильмов все-таки имеет смысл. Например, если пользователь любит классику, то много общих фильмов будет с теми, кто тоже оценивает много старых фильмов. То есть коэффициент близости будет показывать не только похожесть оценок, но и жанровые предпочтения.

 

В таком случае, кажется, лучше не отнимать у тех, с кем мало общих фильмов, а додавать тем, с кем много. Например, так

 

100 - 11,11 * S + Ко/Кч

 

Ко - количество общих фильмов

Кч - часть оцененных пользователем фильмов (10-30%)

 

Но в таком случае пользователям, с которыми близость 50% и 90% при равном количестве общих фильмов добавится одинаковый %

Думаю, так будет лучше

 

11.jpg.dcd4f41e631e7f25cd08e7a41d91ceb5.jpg

 

Уменьшив % Кч, можно увеличить влияние количества общих фильмов на коэффициент близости, и наоборот

Ссылка на комментарий
Поделиться на другие сайты

Я уже передумал :)

Влияние количества общих фильмов все-таки имеет смысл. Например, если пользователь любит классику, то много общих фильмов будет с теми, кто тоже оценивает много старых фильмов. То есть коэффициент близости будет показывать не только похожесть оценок, но и жанровые предпочтения.

 

В таком случае, кажется, лучше не отнимать у тех, с кем мало общих фильмов, а додавать тем, с кем много. Например, так

 

100 - 11,11 * S + Ко/Кч

 

Ко - количество общих фильмов

Кч - часть оцененных пользователем фильмов (10-30%)

 

Но в таком случае пользователям, с которыми близость 50% и 90% при равном количестве общих фильмов добавится одинаковый %

Думаю, так будет лучше

 

[ATTACH]143185[/ATTACH]

 

Уменьшив % Кч, можно увеличить влияние количества общих фильмов на коэффициент близости, и наоборот

 

Ребята, зря вы тут рассуждаете. Создайте отдельную тему, киньте тут ссылочку, потому что все это оффтоп, и одно администраторское "нет" разбивает все ваши доводы. Когда Ваш сырой материал станет реально работать сделайте здесь предложение опять же ссылкой на тему. А пока это все ненаучно я бы сказал. возможна близость >100%.

 

Короче так. У меня есть одна формула, если Вам, ребята, интересно, создам отдельную тему. Напишите только в личку.

Ссылка на комментарий
Поделиться на другие сайты

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

 

Zulenium писал здесь,

Zulenium, офф-топ действительно ни к чему. (-1)

что тему пробовал создать, но ее не пропустили. Так что пишите свою формулу сюда, будем обсуждать.

 

А пока это все ненаучно я бы сказал. возможна близость >100%.

 

Ну, понятно, что если > 100%, то нужно ставить 100%. Но на практике такое вряд ли будет, так как нужно очень низкую разность по оценкам и много общих фильмов

 

создам отдельную тему.

 

Пробуйте, я только „за”

Ссылка на комментарий
Поделиться на другие сайты

Тоже решил потестить алгоритм близости.

Слева тест "смещённости" оценок. Результат адекватный. Тут моя формула проигрывает, ибо не учитывает "смещённость".

Справа тест "зеркальности" оценок. Результат не адекватный. Тут моя формула выигрывает. Причём такая "зеркальность" так или иначе присутствует почти в каждой паре людей!

 

862674d974a115ce79049c249c93ca94.jpeg

Ссылка на комментарий
Поделиться на другие сайты

Тоже решил потестить алгоритм близости.

Слева тест "смещённости" оценок. Результат адекватный. Тут моя формула проигрывает, ибо не учитывает "смещённость".

Справа тест "зеркальности" оценок. Результат не адекватный. Тут моя формула выигрывает. Причём такая "зеркальность" так или иначе присутствует почти в каждой паре людей!

 

Это все очень хорошо, еще бы знать, что такое "смещённость" и "зеркальность", ничего не понял :)

 

А нет, поспешил, уже раздуплился

Трудно будет придумать формулу, которая б различала смещённость. Кроме того, смещенность скорее всего бывает частичная. Думаю, это бесполезно.

Кто-то предлагал прикрепить к оценкам расшифровку, например, хуже некуда, плохо, средне и т. д. Или эталонную систему оценки фильмов. Это частично решит проблему смещенности

Изменено пользователем vvtt
Ссылка на комментарий
Поделиться на другие сайты

Тема создана для обособления из общей темы "Предложения по сайту и форуму" изысканий энтузиастов по поводу такого функционала КиноПоиска как "Близость интересов" (aka "Близость оценок") пользователей, на основании которых рассчитываются и списки "Персональных рекомендаций".

 

Все сообщения из общей темы "Предложений..." переносятся сюда.

Изменено пользователем ugar
Ссылка на комментарий
Поделиться на другие сайты

Тема создана для обособления из общей темы "Предложения по сайту и форуму" изысканий энтузиастов по поводу такого функционала КиноПоиска как "Близость интересов" (aka "Близость оценок") пользователей, на основании которых рассчитываются и списки "Персональных рекомендаций".

 

Все сообщения из общей темы "Предложений..." переносятся сюда.

 

А почему тема на меня записана?

Я ее не создавал...

Ссылка на комментарий
Поделиться на другие сайты

А почему тема на меня записана?

Я ее не создавал...

 

Нюансы переноса в новую тему старых сообщений. Авторство не налагает никаких особых обязательств. Пусть будет :)

Ссылка на комментарий
Поделиться на другие сайты

ugar, спасибо!

vvtt, да, "смещённость" в реальных условиях обычно частичная, и правильно учесть её похоже невозможно.

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

Итак, 12 оценок с разницей в 1 балл, и 8 оценок с разницей в 2 балла. Средняя разность оценок всего 1.4 балла, а близость катастрофически занижается до 20.83%

 

Yd.jpeg

Ссылка на комментарий
Поделиться на другие сайты

Вот ещё один удручающий эксперимент

 

Меня уже ничего не удивляет. Существующая система подсчета близости показала свою полную неадекватность.

Давайте будем общими усилиями совершенствовать формулу с 11,11

Как насчет коэффициентов к разрывам по оценкам и предложения по количеству общих оценок - согласны или нет? Если да, нужно двигаться далее в этом направлении, если нет - давайте свои варианты или замечания.

 

все проще. Искать по Вашей формуле близость, а затем с помощью формулы расчета топа учитывать количество общих фильмов. Там и нижний порог, и без всяких минусов, а за мат ожидание по всем близостям брать среднее между выбираемым порогом близости и 100% (хотя тут есть варианты).

 

Не сказал бы, что формула Топа проще. И ее результатом является оценка, как это привязать к близости?

Изменено пользователем vvtt
Ссылка на комментарий
Поделиться на другие сайты

vvtt, думаю "коэффициенты" можно реализовать через возведение в степень 1,11 каждой разности оценок.

Я не совсем понял про "Кч" и про (10-30%), и поэтому немного заклинило мозк. :confused:

 

 

Вообще, хорошо бы, конечно, услышать от администрации хоть какой-то намёк на их позицию:

  • менять текущий алгоритм не будем, может только залатаем огрехи
  • возможно поставим опционально новую формулу, в режиме тестирования
  • заменим формулу на вашу, если она будет максимально оптимизирована
  • развлекайтесь с математикой дальше, если вам не лень :rolleyes:

Изменено пользователем Zulenium
Ссылка на комментарий
Поделиться на другие сайты

vvttВообще, хорошо бы, конечно, услышать от администрации хоть какой-то намёк на их позицию:

  • менять текущий алгоритм не будем, может только залатаем огрехи
  • возможно поставим опционально новую формулу, в режиме тестирования
  • заменим формулу на вашу, если она будет максимально оптимизирована
  • развлекайтесь с математикой дальше, если вам не лень :rolleyes:

 

вот-вот. Нет стимула работать, так как мне представляется, что админы даже тему нам выделили, чтобы мы их не доставали особо. Интересно знать позицию. Если своих спецов хватает, то я только "за", лишь бы система была налажена.

 

В общем поясню свое предложение и пока завязываю с тервером на кинопоиске.

 

У нас есть предложенная формула "близость по 1 фильму" = 100 - 11,11 * "разница оценок". Эта формула если и не удовлетворяет всех алчущих объективности взглядов vvtt, но по крайней мере математически безупречно выдержана. Включать ли в нее поправки социально-психологического характера дело хозяйское. Далее нужно каким-то образом учесть количество общих фильмов (далее ОФ).

 

Так вот: если найти близости по каждому общему фильму, затем нужно найти их среднее арифметическое (СР).

 

При подсчете близости имеется два настраиваемых критерия: минимальный порог общих фильмов (мОФ), минимальная близость интересов.

 

Формула: "близость" = ОФ/(ОФ+мОФ) * СР + мОФ/(ОФ+мОФ) * оБИ, где оБИ - ожидаемая близость интересов = 50% (как в ТОПе),

 

Таким образом при стремлении ОФ в бесконечность близость асимптотично приближается к СР, а при приближении ОФ к мОФ результирующая близость будет равна среднему между оБИ и СР (Допустим СР=80%, а оБИ = 50%, тогда при количестве общих фильмов (ОФ) = мин. порогу (мОФ) общая близость будет равна среднему между 50 и 80, т. е. 65%), что очень верно.

 

Для учета минимальной близости интересов ввести фильтр, который бы отсеивал тех, результирующая близость которых ниже заданного порога. Такой принцип, на мой взгляд, учитывает все нюансы кроме соц.-психологических, но это отдельная песня, и я бы ее озвучил позже, при удачном исходе ситуации в целом.

Ссылка на комментарий
Поделиться на другие сайты

vvtt, думаю "коэффициенты" можно реализовать через возведение в степень 1,11 каждой разности оценок.

 

А может 1,11 маловато будет. Ведь разница в 1 балл - это почти ничего. У каждого пользователя оценки могут прыгать вверх-вниз на 1 б. Предлагаю хотя бы 1,15, и смещенность будет меньше влиять на близость.

 

Я не совсем понял про "Кч" и про (10-30%), и поэтому немного заклинило мозк. :confused:

 

В этой формуле

100 - 11*S - 100/К

близость уменьшается, если количество общих фильмов <100. Но если всех оценок пользователя < 100, то это бессмысленно. Поэтому предлагал привязать число в формуле к количеству оценок каждого пользователя. Кч означает часть оценок, которой, как предполагается, достаточно для получения коэффициента близости с высокой вероятностью. Например, треть оцененных фильмов. После этого числа близость будет расти за счет количества общих фильмов.

 

В формуле

(100-11,11*S)*(1+(Ко/Кч)/100)

Кч утратила свое первоначальное назначение и служит инструментом для регулирования влияния количества общих фильмов на коэффициент близости.

Кч=Квсе_оценки_пользователя*%

Чем <%, тем больше количество общих фильмов увеличивает близость

 

Формула: "близость" = ОФ/(ОФ+мОФ) * СР + мОФ/(ОФ+мОФ) * оБИ, где оБИ - ожидаемая близость интересов = 50% (как в ТОПе)

 

Интересное предложение, но не все так просто.

При мОФ=300, оБИ=50%, ОФ=20 и

- противоположных оценках близость 46,88%

- одинаковых оценках близость 53,13%

 

При СР=0-49,9% близость почему-то уменьшается при уменьшении ОФ

 

А при СР=50% ОФ вообще не влияет на близость

Изменено пользователем vvtt
Ссылка на комментарий
Поделиться на другие сайты

Да я думаю, внедряя такую систему, они знали.. Молчать - обычная, и весьма разумная тактика.

 

как вы знаете друзья по интересам пересчитываются ночью

там задействована формула без применения ABS (модуль числа)

если получается отрицательный коэффициент, то он таким и остается (отрицательным), т.е. друзья по интересам не были подвержены вырожденному варианту - все совпавшие фильмы не совпадают оценками = 100% близость

 

второй механизм упрощен и действует на лету, как я уже писал.

именно на нем я вам и предложил производить тестирование и изыскания ... и вы верно подметили, что он работает не верно, т.к. нивелирует минус и вырожденный вариант становится 100% близостью

 

из запроса подсчета налету ... убрана ABS конструкция ...

вопрос исчерпан?

Ссылка на комментарий
Поделиться на другие сайты

вопрос исчерпан?

 

Вопрос не может быть исчерпан, пока при совпадении оценок близость падает, а при увеличении разницы растет. Таких примеров у меня куча, могу еще найти.

Только что проверил - считает так, как прежде

 

1.jpg.e124e913ffc3518e118a5c689ce0a8bf.jpg

 

Меняю оценку Большому кушу на 7 - близость увеличивается

 

2.jpg.d74baaf702931854346b5b1368b6cc40.jpg

 

Интересно придумывать оптимальную формулу, но если она никому не нужна, зачем трудиться? John Doe давно писал перестать донимать админов. Напишите честно - не будем ничего менять, и перестану

Ссылка на комментарий
Поделиться на другие сайты

Интересное предложение, но не все так просто.

При мОФ=300, оБИ=50%, ОФ=20 и

- противоположных оценках близость 46,88%

- одинаковых оценках близость 53,13%

 

При СР=0-49,9% близость почему-то уменьшается при уменьшении ОФ

 

А при СР=50% ОФ вообще не влияет на близость

 

мОФ - это минимальное количество общих фильмов, которое устанавливается пользователем по желанию от 20 и выше. То есть мОФ не может быть больше ОФ, точно так, как это происходит сейчас по старой формуле. Поэтому Ваш пример не верен.

Ссылка на комментарий
Поделиться на другие сайты

Интересно придумывать оптимальную формулу, но если она никому не нужна, зачем трудиться? John Doe давно писал перестать донимать админов. Напишите честно - не будем ничего менять, и перестану

 

Мы также как и вы заинтересованы в улучшении качества персональных рекомендаций.

 

Все предложения будут рассматриваться...

Ссылка на комментарий
Поделиться на другие сайты

Мы также как и вы заинтересованы в улучшении качества персональных рекомендаций.

 

Все предложения будут рассматриваться...

 

Спасибо за стимул продолжать исследования

 

мОФ - это минимальное количество общих фильмов, которое устанавливается пользователем по желанию от 20 и выше. То есть мОФ не может быть больше ОФ, точно так, как это происходит сейчас по старой формуле. Поэтому Ваш пример не верен.

 

Сомневаюсь, что администрация пойдет на то, чтобы пользователь сам выбирал мОФ. Намного проще привязать мОФ к количеству оценок пользователя.

 

А вот это

При СР=0-49,9% близость почему-то уменьшается при уменьшении ОФ

А при СР=50% ОФ вообще не влияет на близость

остается актуальным при любом значении мОФ если оБИ>0

Ссылка на комментарий
Поделиться на другие сайты

Сомневаюсь, что администрация пойдет на то, чтобы пользователь сам выбирал мОФ.

 

А сейчас разве не так?

Ссылка на комментарий
Поделиться на другие сайты

А сейчас разве не так?

 

Немного не так. Пользователь может фильтровать друзей по интересам по количеству общих фильмов, а на коэффициенты близости это никак не влияет

Ссылка на комментарий
Поделиться на другие сайты

Гость
Эта тема закрыта для публикации ответов.
  • Сейчас на странице   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...