Рекомендации Mahout с метаданными, связанными с предпочтениями

Я планировал написать рекомендатель, который по-разному обрабатывает предпочтения в зависимости от контекстной информации (время, когда предпочтение было сделано, устройство, используемое для рекомендации, ...)

В книге Mahout in Action и в примерах кода, поставляемых с Mahout, я не могу найти ничего похожего. В некоторых примерах есть метаданные (также известные как контент), используемые для выражения сходства пользователя или элемента, но это не то, что я ищу.

Интересно, кто-нибудь уже пытался сделать что-то подобное с Mahout?


Редактировать:

Практическим примером может быть то, что текущий сеанс выполняется на мобильном устройстве, и это должно привести к увеличению (рейтинг * 1,1) для всех предпочтений, отслеживаемых на мобильных устройствах, и снижению предпочтений, отслеживаемых по-другому (рейтинг * 0,9).

...

Другим примером может быть то, что некоторые рейтинги собираются неявно, а другие — явно. Как я смогу отслеживать этот факт, не «кодируя» его непосредственно в отслеживаемое значение, и как я смогу использовать эту информацию при расчете баллов?


person pagid    schedule 20.08.2012    source источник


Ответы (1)


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

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

Если вы предоставите более подробную информацию о том, как вы собираетесь использовать свои данные для изменения настроек, люди здесь смогут помочь еще больше.

person Julian Ortega    schedule 20.08.2012
comment
Я надеюсь, что примеры, которые я добавил, помогут немного объяснить проблему? - person pagid; 20.08.2012
comment
Что ж, я бы сказал, что когда вы регистрируете предпочтение, вы просто увеличиваете или уменьшаете предпочтение, указанное пользователем, в зависимости от ваших потребностей. Итак, если я использую мобильный телефон и дам продукту X оценку 4,0, на самом деле вы зарегистрируете его как 4,4. На входе Mahout это будет что-то вроде 98765,654645,4.4. Аналогичным образом, если я использую, например, ноутбук и даю продукту X оценку 4,0, на самом деле вы зарегистрируете его как 3,6. С другой стороны, если вы хотите повлиять на сгенерированные рекомендации, повысив или уменьшив оценку, я бы предложил использовать класс Rescorer. - person Julian Ortega; 21.08.2012
comment
Материал 3.6 / 4.4 - это то, что я имел в виду с кодированием непосредственно в отслеживаемое значение;) ... Одна вещь, о которой я сейчас думаю, - это отслеживать все дважды - первый идет в общий список предпочтений, а второй - в контекстно-зависимый те. Всякий раз, когда дело доходит до рекомендации, я просто умножаю общую оценку рекомендации на оценку для соответствующего контекста. Не уверен, что это работает, но это единственное, о чем я могу думать. - person pagid; 21.08.2012
comment
Я не знаю, как бы вы поступили на этот счет. Насколько я помню, Mahout сохраняет только самые последние настройки. Таким образом, если у человека X было 2 предпочтения для одного и того же элемента, Mahout сохранит только последнее прочитанное. - person Julian Ortega; 22.08.2012