Я хотел опробовать Spark для совместной фильтрации с использованием MLlib, как описано в этом руководстве: https://databricks-training.s3.amazonaws.com/movie-recommendation-with-mllib.html Алгоритм основан на статье« Совместная фильтрация для наборов данных неявной обратной связи », выполняющей матричную факторизацию.
Все работает с использованием набора данных Movielens из 10 миллионов. Набор данных разделен на 80% обучение, 10% тест и 10% проверку.
- Базовый уровень RMSE: 1.060505464225402
- RMSE (поезд) = 0,7697248827452756
- RMSE (проверка) = 0,8057135933012889 для модели, обученной с рангом = 24, лямбда = 0,1 и итерациями = 10.
- Лучшая модель улучшает базовый уровень на 23,94%.
Это значения, аналогичные значениям в учебнике, но с другими параметрами обучения.
Я несколько раз пробовал запустить алгоритм и всегда получал бессмысленные для меня рекомендации. Даже оценивая только детские фильмы, я получаю следующие результаты:
Для рейтингов:
- личный рейтинг: История игрушек (1995) рейтинг: 4.0
- личный рейтинг: Книга джунглей, рейтинг (1994): 5.0
- личный рейтинг: Король Лев, Рейтинг (1994): 5.0
- личный рейтинг: Мэри Поппинс (1964) рейтинг: 4.0
- личный рейтинг: Алиса в стране чудес (1951) рейтинг: 5.0
Полученные результаты:
Рекомендуемые фильмы:
- Жизнь Охару, The (Saikaku ichidai onna) (1952)
- Еще (1998)
- Кто там поет? (он же Who Sings Over There) (Ко то тамо пева) (1980)
- Воскресенье и Кибела (Dimanches de Ville d'Avray, Les) (1962)
- Голубой свет, The (Das Blaue Licht) (1932)
- Времена Харви Милка (1984)
- Пожалуйста, проголосуйте за меня (2007)
- Человек, который сажал деревья, The (Homme qui plantait des arbres, L ') (1987)
- Искупление Шоушенка, The (1994)
- Только вчера (Omohide poro poro) (1991)
Что, за исключением Only Yesterday, не имеет никакого смысла.
Если есть кто-то, кто знает, как интерпретировать эти результаты или получить лучшие, я был бы очень признателен, если бы вы поделились своими знаниями.
С наилучшими пожеланиями
РЕДАКТИРОВАТЬ:
Как и было предложено, я обучил другую модель с большим количеством факторов:
- Базовая ошибка: 1.0587417035872992
- RMSE (поезд) = 0,7679883378412548
- RMSE (проверка) = 0,8070339258049574 для модели, обученной с рангом = 100, лямбда = 0,1 и numIter = 10.
И разные личные рейтинги:
- персональный рейтинг: Звёздные войны: Эпизод VI - Возвращение джедая (1983) рейтинг: 5.0
- личный рейтинг: Миссия невыполнима (1996) рейтинг: 4.0
- Персональный рейтинг: Крепкий орешек: С местью (1995). Рейтинг: 4.0.
- личный рейтинг: Batman Forever (1995) рейтинг: 5.0
- личный рейтинг: Люди в черном (1997) рейтинг: 4.0
- персональный рейтинг: Терминатор 2: Судный день (1991) рейтинг: 4.0
- личный рейтинг: Top Gun (1986) рейтинг: 4.0
- персональный рейтинг: Звёздные войны: Эпизод V - Империя наносит ответный удар (1980) рейтинг: 3,0
- личный рейтинг: Чужой (1979) рейтинг: 4.0
Рекомендуемые фильмы:
Рекомендуемые фильмы:
- Кармен (1983)
- Тихий свет (Stellet licht) (2007)
- Иисус (1979)
- Жизнь Охару, The (Saikaku ichidai onna) (1952)
- Сердце Америки (2003)
- Ибо так мне говорит Библия (2007)
- Еще (1998)
- Легенда о Ли Бауэри (2002)
- Похороны, Осошики (1984)
- Длинные выстрелы (2008)
Ни одного полезного результата.
EDIT2: с использованием метода неявной обратной связи я получаю гораздо лучшие результаты! Для тех же боевиков, что и выше, рекомендации следующие:
Рекомендуемые фильмы:
- Звездные войны: Эпизод IV - Новая надежда (также известный как Звездные войны) (1977)
- Терминатор, The (1984)
- В поисках утраченного ковчега (Индиана Джонс и в поисках утраченного ковчега) (1981)
- Крепкий орешек (1988)
- Крестный отец (1972)
- Пришельцы (1986)
- Рок, The (1996)
- День Независимости (он же ID4) (1996)
- Звездный путь II: Гнев Хана (1982)
- Золотой глаз (1995)
Это больше, чем я ожидал! Вопрос в том, почему явная версия так себе плохая