Я внедряю систему рекомендаций для фильма с реальными пользовательскими данными. Я планировал использовать метод совместной фильтрации. Тем не менее, такие методы обычно включают в себя огромную матрицу, в которой хранятся пользователи с их номинальными фильмами. Поскольку у меня более десяти тысяч фильмов и сотни тысяч пользователей. Невозможно создать такую огромную разреженную матрицу. Интересно, как все реализуют совместную фильтрацию с таким большим количеством данных? Благодаря!Система рекомендаций с большим объемом данных
ответ
Я бы порекомендовал вам распределенные вычислительные системы, но, по-моему, по-прежнему имеет шкалу, с которой вы можете легко справиться с ней на одной машине.
Apache Mahout содержит библиотеку фильтров совместного использования вкуса, предназначенную для масштабирования на одной машине. Модель - что, 10M точек данных? - должен соответствовать памяти с здоровым размером кучи. Посмотрите на такие вещи, как GenericItemBasedRecommender
и FileDataModel
.
(погонщик также распределенные реализации на основе Hadoop, но я не думаю, что вам это нужно еще.)
Я автор этого, но с тех пор перешли к коммерциализации крупномасштабных рекомендателей, как Myrrix. Он также содержит автономную версию одиночной машины, которая является бесплатной и open source. Он также будет легко обрабатывать этот объем данных на одной машине. Например, это меньший набор данных, чем тот, который используется в this example. У Myrrix также есть распределенная реализация.
Есть и другие бывшие в употреблении реализации за пределами вышеуказанного, как GraphLab. Другие нераспределенные структуры также, вероятно, достаточно быстры, например, MyMediaLite.
Я бы предложил просто использовать один из них, или если вам действительно интересно, как это происходит, проверьте исходный код и посмотрите на представление данных.
Я не использовал матричную форму для хранения моих данных. Вместо этого я использую C++ и создаю некоторые структуры, такие как User, Rating, Item, которые содержат переменные и массивы, которые мне нужны. Это может увеличить сложность алгоритма, но он может эффективно экономить память.
- 1. Сбой StreamWriter с большим объемом данных
- 2. Matching с большим объемом данных в R
- 3. Случайный WindowsError/IOError с большим объемом данных
- 4. Использование Volley с большим объемом данных
- 5. Веб-сервисы с большим объемом данных
- 6. Python, записывающий словари с большим объемом данных
- 7. Проблема с большим объемом данных EPPlus с недостатком памяти
- 8. Простая система рекомендаций
- 9. Лучший способ заполнить DataGridView большим объемом данных
- 10. Заполнение базы данных PostgreSQL с большим объемом данных
- 11. Рекомендательная система с большим не помеченным набором данных
- 12. Что такое «последовательная система рекомендаций»?
- 13. XML-анализ с большим объемом трафика
- 14. Android. Как сделать аудиозапись с большим объемом?
- 15. Работа с большим объемом данных в php/mysql
- 16. Создание приложения для Android с большим объемом данных
- 17. Повысьте атомные: ждать свободного кольцевой буфер с большим объемом данных
- 18. HighChart с большим объемом данных (сложная структура) не работает
- 19. Лучшая практика настройки cassandra на ec2 с большим объемом данных
- 20. Система рекомендаций - с использованием разных показателей
- 21. Как справиться с большим объемом памяти в Python?
- 22. Лучший способ управления большим объемом данных в памяти?
- 23. Система рекомендаций и предсказатели базовой линии
- 24. Дизайн базы данных данных рекомендаций?
- 25. Структура запроса с большим объемом запросов и обходной информации
- 26. Система рекомендаций на облачной платформе Google
- 27. DB Дизайн для сообщений с большим объемом сообщений
- 28. Производительность Sql Ce для транзакций с большим объемом
- 29. Почему размер блока Unix увеличивается с большим объемом памяти?
- 30. Установка модели Keras с большим объемом данных с использованием генератора настраиваемых данных
В чем проблема с огромной * разреженной матрицей? это должно быть прекрасно. –
Матрица настолько огромная, что я не могу ее создать в моем матлабе. Может ли это быть разрешено с помощью других языков? –