Карма, основанная на кластерах

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

По мотивам статьи Кармическое проклятье Хабра и десятков подобных. Здесь предлагается почелленджить идею, как можно сделать лучше. Есть куча алгоритмов ранжирования контента, среди пользователей Хабра лучшие умы России, предлагаю обсудить этот вопрос и придумать решение. Затравку для обсуждения я дам, а дальше в комментариях доработаем. Погнали!

Очевидно, что пользователи не одинаковы и контент не одинаков. Возьмём простой пример из мира JavaScript: есть сторонники ООП и есть сторонники ФП, эти парадигмы считаются конфликтующими. В среднем сторонники каждой парадигмы лайкают статьи своей школы и дизлайкают статьи противоположной. Подобные холивары происходят не только с ООП и ФП: React vs Angular, Java vs C#, Python vs R, Windows vs Linux vs Mac, и так далее. Это очень распространённое явление. Формируем задачу:

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

В идеале должна возникнуть ситуация, когда исходя из оценок и схожести интересов пользователи принадлежат каким-то кластерам. Сторонники ООП имеют свой рейтинг, сторонники ФП - свой. Конечно кластеры должны не создаваться модераторами, а высчитываться динамически, так как с каждой новой технологией, новой идеей будут появляться новые кластеры и со временем исчезать старые. В результате будет два важных следствия:

  • каждому пользователю показывается интересный ему контент. Адептам парадигм и фреймворков - соответствующие их убеждениям, докторам наук - написанный для докторов наук, школьникам - адаптированный для школьников, исходя из уровня читателя. Мне например во многих статьях не хватает глубины, хочется чтобы показывалось больше вдумчивых статей, но я понимаю, что среднему читателю приятнее читать что-то верхнеуровневое, нужно дать возможность разным людям потреблять контент исходя их своих потребностей.

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

Как это можно сделать? Вопрос открытый. Я вижу два варианта: кластеризация пользователь-пользователь и кластеризация пользователь-контент.

Первый механизм похож на личную репутацию: я лайкнул какого-то пользователя, значит я считаю его интересным, его контент показывается в приоритетно. Так же можно подумать над показом контента пользователей, которых он лайкнул, к каким-то коэффициентом, или даже пользователей, который его лайкнули, с защитой от лайк-спама. Таким образом естественно и не очень дорого сформируются кластеры по интересам. Кроме того, можно будет даже вывести некоторый персональный рейтинг одного пользователя по отношению к другому, или рейтинг пользователя среди 10% самых близких к нему по духу пользователей Хабра. Преимущество такой системы в том, что сильно усложняются репрессии несогласных с доминирующей концепцией пользователей. Можно писать что угодно и если есть такие-же чокнутые, которым это интересно - ваша карма в безопасности. Существенный плюс такого механизма в масштабируемости. Я докажу, что текущая система кармы не масштабируема: допустим, что сейчас достаточно много статей на Хабре на тему паттернов проектирования, кому-то это более интересно, кому-то менее, но все понимают что это такое и статьи получают свое заслуженное место в рейтинге. Представим, что мы захотели демократизировать Хабр и привлечь людей всех профессий, и врачей, и юристов, и поваров, и шахтёров. Как будет воспринята в такой среде статья про паттерны проектирования? Она получит кучу минусов, потому что она большинству не интересна. Тоже самое происходит с со статьями про узкие нишевые технолигии сейчас, есть ограниченный набор тегов, которые не расширяются, и глобальный список лучшего за день или неделю, куда попадают самые статьи на самые попсовые темы. Если ввести хотя-бы кластеризацию по сходству пользователей - мы увидим совсем другой Хабр.

Второй механизм, во многом классический, кластеризация пользователя и контента. Показ контента, который лайкнули пользователи, похожие на вас. Похожесть определяется сходством профиля лайков. Если одни пользователи лайкают только собачек React, а другие - только кошечек Angular, то мы делим их на кластеры, и когда следующий раз собачник что-то лайкнет - мы скорее покажем это другому собачнику, чем кошатнику. Похожий подход реализован в социальных сетях, в Яндекс Дзен, ранее был Имхонет и другие сервисы. Кажется это не очень сложно реализовать в коде, и за последние годы знания науки об алгоритмах персонификации контента ушли далеко вперёд.

Такой подход не исключает глобальный рейтинг и рейтинг по тегам/хабам. Просто появится ещё один способ, как вылавливать интересное из хаоса. А самое главное - можно будет не бояться говорить не популярные вещи, баниться будет только самое маргинальное, а адекватное, но принадлежащее другой школе, будет просто менять веса рекомендательной машины. Можно полностью отменить запрет на публикации и комментарии пользователей с "отрицательной кармой", но показывать их только схожим пользователям, которые такие публикации и комментарии ценят.

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

P.S.: Делитесь статьёй с друзьями если считаете, что проблема живая и нужно какое-то решение

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Как лучше ранжировать статьи?
14.29% Ничего не менять 1
14.29% Кластеризация по пользователю 1
42.86% Кластеризация по пользователю и контенту 3
28.57% Другой вариант (в комментариях) 2
0% Хочу посмотреть результаты 0
Проголосовали 7 пользователей. Воздержались 3 пользователя.
Источник: https://habr.com/ru/post/591321/


Интересные статьи

Интересные статьи

Я не знаю, как она точно называется. Феноменология, эмпирио-критицизм, махизм - вот близкие течения. Ближе будет рациональность по Юдковскому. Формализация данной теори...
Решения для больших компаний обычно должны выдерживать высокие нагрузки. Когда в штате много десятков тысяч человек, и значительная доля из них ежедневно пользуются ...
Предыстория Когда-то у меня возникла необходимость проверять наличие неотправленных сообщений в «1С-Битрикс: Управление сайтом» (далее Битрикс) и получать уведомления об этом. Пробле...
Если у вас есть интернет-магазин и вы принимаете платежи через Интернет, то с 01 июля 2017 года у вас есть онлайн-касса.
Одной из «киллер-фич» 12й версии Битрикса была объявлена возможность отдавать статические файлы из CDN, тем самым увеличивая скорость работы сайта. Попробуем оценить практический выигрыш от использова...