Любые алгоритмы, которые могут обеспечить разнообразие категорий в системе социального ранжирования?
Я строю систему, похожую на Reddit, где пользователям "нравятся" предметы. "Likes" будет использоваться для определения рейтинга товаров. Существует также фактор "старения", когда более свежие "лайки" считаются больше, чем древние "лайки".
В целом, это похоже на алгоритм, описанный здесь.
Моя проблема в том, что мне нужно обеспечить разнообразие элементов в рейтинге результатов. Каждый элемент принадлежит категории. Некоторые категории могут быть непропорционально популярны. Я не хочу, чтобы все элементы на первой странице (или 2-й странице) принадлежали к категории А, в то время как элементы из других категорий нигде не найдены.
Так есть ли какой-нибудь умный алгоритм, который может обеспечить разнообразие результатов здесь - чтобы убедиться, что на каждой странице есть хорошее сочетание разных категорий?
Спасибо
1 ответ
Для каждой категории создайте рейтинг всех предметов в этой категории. Затем, когда вы создаете свой канал, вы можете комбинировать отдельные рейтинги по-разному. Например, вы можете объединить категории случайным и равномерным образом: для каждого места в ленте выберите категорию случайным образом и возьмите элемент с самым высоким рейтингом из той категории, которую вы еще не добавили в фид.