Как работает ALS

Задача рекомендательной системы — заполнить разреженную матрицу «пользователь × товар». Большинство ячеек пустые: пользователь взаимодействовал лишь с небольшой долей каталога. ALS решает это через разложение матрицы на два малых: матрицу пользовательских векторов и матрицу товарных векторов.

Алгоритм работает итеративно:
1. Инициализировать векторы пользователей и товаров случайными значениями
2. Зафиксировать векторы товаров → оптимизировать векторы пользователей (задача МНК)
3. Зафиксировать векторы пользователей → оптимизировать векторы товаров (задача МНК)
4. Повторять до сходимости

На каждом шаге задача сводится к системе линейных уравнений — отсюда «наименьшие квадраты».

ALS для неявных данных (iALS)

В e-commerce почти нет явных оценок. Но есть поведение: просмотры, добавления в корзину, покупки. Implicit ALS трактует это как «уверенность» в предпочтении:

confidence(u, i) = 1 + α × frequency(u, i)

где frequency — число взаимодействий пользователя u с товаром i, α — параметр масштабирования. Чем больше взаимодействий, тем выше уверенность модели в том, что товар релевантен.

Сигнал Типичный вес
Покупка Высокий
Добавление в корзину Средний
Просмотр карточки товара Низкий
Просмотр в каталоге Очень низкий

Масштабируемость: почему ALS популярен в продакшне

На каждой итерации обновление векторов пользователей независимо между пользователями — задачи можно выполнять параллельно. Это делает ALS удобным для Apache Spark (MLlib) и других распределённых вычислений. Крупные e-commerce платформы с сотнями миллионов взаимодействий успешно обучают ALS-модели за разумное время.

Ограничения ALS

  • Холодный старт. Нет истории — нет качественного вектора. Новые пользователи и только что добавленные товары требуют отдельных стратегий.
  • Нет временного контекста. Стандартный ALS не учитывает, что предпочтения меняются; для этого нужны расширения или другие архитектуры (sequential recommendations, трансформеры).
  • Интерпретируемость. Латентные факторы не имеют человекочитаемого смысла — нельзя объяснить пользователю, почему рекомендован именно этот товар.