TGViewer
Kantor.AI Kantor.AI @kantor_ai · 12.2K subscribers
Post #137 7.8K
Метод ALS. Как устроен и когда его используют. Вопрос подписчика

ALS’ом иногда по ошибке называют любое матричное разложение в задаче коллаборативной фильтрации. Ну или не по ошибке, а просто жаргон такой сложился. Но давайте разберёмся в деталях.

Матричное разложение возникает, когда мы для рекомендации пользователю айтемов — товаров, фильмов, музыки — смотрим на матрицу с историей взаимодействия. А затем пробуем её приблизить произведением матрицы пользователей и матрицы айтемов.

В этом подходе для пары пользователь-айтем всегда есть два вектора чисел. Один от пользователя: он содержит в себе информацию о том, что тот полайкал, что не полайкал, что дослушал, что не дослушал. Второй — вектор айтема. Например, если это фильм, то здесь будет отражаться жанр, режиссёр, актёры и т. п. Цель — чтобы скалярное произведение этих чисел давало оценку из матрицы как можно точнее.

Важно понимать, что выше я привёл только примеры информации про пользователя и айтем: алгоритм оптимизации в процессе построения матричного разложения сам подберёт числа, и они не обязаны быть интерпретируемы и понятны человеку (наверняка не будут!). Их задача лишь хорошо прогнозировать числа из исходной матрицы.

А вот дальше уже начинается ALS. Мы настраиваем эти векторы для каждого пользователя и каждого айтема с помощью определённого метода оптимизации. ALS на самом деле и есть метод оптимизации.

Итак, нам нужно минимизировать ошибку в прогнозах. Давайте мы сначала будем подбирать вектор юзера, потом вектор айтема. Так по очереди для случайных пар юзер-айтем. Обычно используются квадратичные потери, а оптимальный выбор означает, что нам нужно производные потерь по искомым векторам приравнять к нулю. В выражении уходит квадрат, и всё сводится к решению системы линейных уравнений. Но при этом мы помним, что данные всегда будут с погрешностью.

Так что тут в дело вступает метод наименьших квадратов. Мы выбираем решение, которое с наименьшей погрешностью похоже на решение этой системы.

Работает, кстати, не только с квадратичными потерями. Мы почти всегда можем приблизить потери квадратичными рядом с точкой минимума (для математиков — разложением по Тейлору до второго порядка).

Как вы догадались, ALS часто используется в рекомендательных системах, потому что он даёт более быструю сходимость. Ведь альтернатива ALS — метод стохастического градиентного спуска (SGD) — для большого числа пользователей и айтемов будет сходиться дольше. Я, конечно, видел случаи, когда ALS обучался медленнее SGD. Но, скорее всего, дело было в руках в подборе параметров алгоритма.

Ещё есть iALS (implicit ALS). Он использует пропуски в матрице оценок. То есть, раз мы оценку не знаем, есть вероятность, что айтем пользователю не нравится. Но вес у этих данных меньше: пользователь мог айтем просто не увидеть.

Из небольших инсайдов. Ходят слухи, что долгое время и в ИВИ, и в яндексовских медиасервисах рекомендации строились на базе ALS. Сейчас, разумеется, системы намного сложнее. Но iALS остаётся обязательным к построению бейзлайном, если уж вы взялись за разработку рекомендательной системы.

В сервисах МТС мы используем iALS в рекомендациях, если данных уже достаточно много, чтобы не ограничиваться простым бейзлайном с популярными айтемами, но ещё недостаточно для более сложных нейросетевых моделек. Вроде тех, которые мы сейчас используем в KION (там уже давно вовсю работают сетки).

Также иногда прогноз от iALS хорошо бустит качество более сложных моделей. Векторы из iALS как фичи, как правило, заходят хуже, чем их произведения.

#вопрос_подписчика
  • 🔥 31
  • 👍 19
  • ❤ 8
  • 👏 4
More from @kantor_ai
  1. Sep 20, 2026Александр Поваров — золотой медалист международной олимпиады школьников по искусственному…
  2. Sep 20, 2026В продолжение темы олимпиад: если думаете, что посмотреть в выходной, у нас как раз вышел…
  3. Sep 19, 2026Венгерское чудо начала XX века, часть 2 Согласно легенде, как-то раз, работая в Лос-Аламос…
  4. Sep 19, 2026Границы морального в словесной эквилибристике корпоративного менеджера Как-то так получило…
  5. Sep 18, 2026Всё ли сгенерированное с помощью нейронки — нейрослоп? Может показаться, что это безобидны…
  6. Sep 17, 2026Где ИИ-агенты реально помогают, а где создают новые риски ⤵️ Узнайте на GoCloud Tech 2026…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →