Любые алгоритмы, которые могут обеспечить разнообразие категорий в системе социального ранжирования?

Я строю систему, похожую на Reddit, где пользователям "нравятся" предметы. "Likes" будет использоваться для определения рейтинга товаров. Существует также фактор "старения", когда более свежие "лайки" считаются больше, чем древние "лайки".

В целом, это похоже на алгоритм, описанный здесь.

Моя проблема в том, что мне нужно обеспечить разнообразие элементов в рейтинге результатов. Каждый элемент принадлежит категории. Некоторые категории могут быть непропорционально популярны. Я не хочу, чтобы все элементы на первой странице (или 2-й странице) принадлежали к категории А, в то время как элементы из других категорий нигде не найдены.

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

Спасибо

1 ответ

Решение

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

Другие вопросы по тегам