0

Я имею дело с проблемой рекомендации, в которой задействовано 3 миллиона пользователей и 500 000 продуктов. Цель рекомендации - рекомендовать 5-10 дополнительных продуктов конкретному пользователю при посещении данного продукта.Рекомендатель большого масштаба

Мы закончили часть двигателя для рекомендаций в режиме реального времени, но мы обнаружили, что ее не так-то просто рекомендовать через 1-2 секунды. Мы рассмотрим две стратегии:

  1. Выполнить рекомендацию офф-лайн в пакетном режиме, а затем сохранить результаты в MySQL DB. Однако, похоже, что количество записей в таблицах - огромное количество. Каждый пользователь для каждого продукта должен хранить не менее 5-10 рекомендованных продуктов. Если я создам таблицу с именем пользователя и продуктом в качестве атрибутов таблицы, то будет 3 миллиона х 500 000 записей.

  2. Предсказать рекомендацию «на лету». Мы просто попробовали, но время ответа слишком велико.

Может ли кто-нибудь дать мне несколько предложений по этой проблеме?

+0

Почему вы генерируете пользователя для каждого элемента? (просто любопытно) –

+0

Это зависит от того, как работает механизм рекомендаций. Если механизм рекомендаций просто смотрит на недавние покупки клиентов (что должно быть относительно немного), и есть какой-то (эффективный) индекс между недавними покупками и рекомендуемыми продуктами , то рекомендации в реальном времени должны быть вполне осуществимыми. Не могли бы вы рассказать нам немного больше о том, как работает механизм рекомендации? – Justin

ответ

0

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