2013-03-28 4 views
1

Я хочу использовать mahout, который должен помочь мне в следующем: У меня есть матрица с пользователями, элементами и предпочтениями. И у нас есть все оценки, заполненные для всех пользователей и предметов. Затем для некоторых пользователей некоторые параметры изменяются для некоторых пользователей. Проблема в том, как после изменений состояния пересчитать другие оценки пользователей, которые могут повлиять на недавнюю операцию?Изменено состояние матрицы Махута

Например:

state before  state changed   state after recalculation 

u1 item1 25   u1 item1 25   u1 item1 ?? 
u1 item2 12   u1 item2 12   u1 item2 ?? 
u1 item3 10   u1 item3 10   u1 item3 ?? 
u2 item1 25  => u2 item1 25  =  u2 item1 ?? 
u2 item2 12   u2 item2 12   u2 item2 ?? 
u2 item3 10   u2 item3 10   u2 item3 ?? 
u3 item1 25   u3 item1 20*   u3 item1 20 
u3 item2 12   u3 item2 15*   u3 item2 15 
u3 item3 10   u3 item3 10   u3 item3 10 
+0

В теории, каждый балл изменился немного после одного обновления. Непонятно, что вы просите результата. Добавьте некоторые детали. –

+0

Да, вы правы, что каждое значение изменилось. Дело в том, что я хотел бы достичь чего-то вроде mahout: u1 item1 25.5, u1 item2 13, u2 ... и затем я бы заменил из столбца (состояние до) u1 item1 25 до u1 item1 (25 + 25.5)/2 = 25,25 и т. Д. Таким образом, я получаю следующее приближение состояния пользовательских атрибутов. – HighJustice

+0

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

ответ

0

Mahout не адаптирует рекомендации в онлайн-форме при изменении предпочтений, в сущности, вы должны были бы дать Mahout полный обновленный файл DataModel и попросить его снова пересчитать рекомендацию модель и получить рекомендации от нее, так что в основном это процесс сортировки.

Вид как:

  • File1 -> Mahout -> Рекомендации
  • (FILE1 + изменения в настройках) -> File2
  • File2 -> Mahout -> Рекомендации
+0

Он хорошо работает, когда у нас есть пробелы в баллах для конкретного пользователя. Как заставить его работать, когда настроены все баллы? Mahout не хочет давать рекомендации в этом случае :) – HighJustice

+0

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

+0

Отвечая на ваши вопросы: баллы задаются на основе неявных пользовательских настроек и, конечно же, являются лишь необработанным прогнозом (приближением). Чтобы сделать их более точными, было бы полезно пересчитать их на основе всех изменений, внесенных в систему. И тогда у нас будут все более точные аппроксимации, основанные на эволюции системы. Я думал о следующем (см. Рисунок с матрицами): Итерации по всем пользователям, наиболее похожим на пользователя 3 (u3), и удалите все элементы item1 и item2. Пересчет баллов для этих элементов для каждого пользователя. Вычислить среднее арифметическое значение. Хранить. Но это очень трудоемкий подход ... – HighJustice

Смежные вопросы