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