Я работаю над внедрением системы рекомендаций посредством рекомендаций, основанных на неявной обратной связи. Поэтому я использую кортеж (пользователь, элемент, счет) для создания моей матрицы элементов пользователя.рекомендация показатели двигателя
я осуществить свою систему рекомендаций, используя это действительно хороший пример на Insight данных науки блоге: http://insightdatascience.com/blog/explicit_matrix_factorization.html
Однако, по сравнению с набором данных линз фильм, мой набор данных невероятно скудны. В этом примере заполняется 6,3% набора данных, а для меня это число составляет 0,30%. Итак, в моем наборе данных есть много неизвестных значений. У меня около 2900 пользователей и 5000 предметов.
Я тренирую свою модель, и тренинг MSE отказывается спускаться. Я попытался оптимизировать параметры, но безрезультатно. У меня были следующие вопросы:
(1) Является ли MSE надежной метрикой? Я прошел через эту дискуссию: https://www.quora.com/How-do-you-measure-and-evaluate-the-quality-of-recommendation-engines
Тем не менее, тестирование A/B для меня не является вариантом. Мой опыт в моделях машинного обучения всегда учил меня, что если тренировка MSE застряла в какой-то момент, то это довольно плохо (по целому ряду причин)
Итак, я не правильно оцениваю?
(2) Проблема с холодным запуском? Я инициализирую векторы и объекты так же, как это:
self.user_vectors = np.random.normal(size=(self.num_users,self.num_factors))
self.item_vectors = np.random.normal(size=(self.num_items,self.num_factors))
Что-то я могу здесь изменить?
Я смущен относительно того, что делать дальше. Разница в матрице очень высока, и я знаю, что мой алгоритм предсказывает значения для большого количества нулей. Я интуитивно чувствую, что мой MSE постоянно.
Любые мысли или направления были бы очень оценены!
Благодаря
Что означает ** подсчет ** в вашем наборе данных? Сколько раз пользователь просматривал фильм? –
Да. Count ссылается на количество просмотров пользователем видео. –