Разница между Rescorer и UserSimilarity в Mahout

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

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

Я знаю, что userSimilarity используется в начале алгоритма, чтобы избежать вычислений для всего набора, но я не знаю, так ли это в Rescorer. Мне кажется, что Rescorer похож на постпроцессор... Я просто хочу избежать тяжелых вычислений. Должен ли я использовать Rescorer или Custom UserSimilarity? Как выбрать между двумя?


person Matroska    schedule 04.02.2012    source источник


Ответы (1)


IDRescorer на самом деле играет две роли: как способ предварительной фильтрации элементов для рассмотрения, так и для последующей обработки их оценок. Они соответствуют его методам isFiltered() и rescore(). То, что вы хотите сделать, это именно то, что вы делаете с isFiltered(). Возвращайте true для всего, что не относится к рассматриваемой вами категории.

person Sean Owen    schedule 04.02.2012