Как работает 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, трансформеры).
- Интерпретируемость. Латентные факторы не имеют человекочитаемого смысла — нельзя объяснить пользователю, почему рекомендован именно этот товар.