Самый добрый канал про DataScience, ML, техпред, хакатоны и про много чего еще 🥰
Реклама -> @Pleshakovski
Выступить на вашей площадке с докладом -> @Pleshakovski
Сотрудничество и любые другие вопросы -> @Pleshakovski
Post #965
1.28K
Сегодня предлагаю немножко поботать и напрячь извилины всем МЛщикам на канале
Alternating Least Squares (ALS). SOTA или, быть может, переоцененная база? Краш или обычный тюбик? Разбираем по-честному.
Начнем с фанфакта, который я выяснил за последний год: почти все +- крупные команды рекомендаций в РФ сейчас используют ALS (в том числе, в рантайме). ALS — это алгоритм для матричного разложения, используемый в системах рекомендаций на основе колаборативной фильтрации (напомню, что факторизацию и колаборативку разбирали в этом посте).
Глобальная цель ALS, как и у любого матричного разложения, получить матрицу X и матрицу Y из исходной матрицы R взаимодействий объектов x и y. Например, у нас есть маркетплейс, на котором пользователи могу кликать на товары. Тогда матрицей R могут быть взаимодействия всех пользователей со всеми товарами (1 или 0: кликал ли юзер на айтем или нет), а X и Y — матрицы, состоящие из искомых векторных представлений этих юзеров (x) и айтемов (y). См. фото 1.
Идея ALS в следующем:
А давайте в нашем цикле сходимости попеременно фиксировать матрицу X и матрицу Y и вычислять оставшуюся незафиксированную оптимальную матрицу аналитическим методом. Таким образом, при фиксации матрицы Y, оптимальный вектор x можно будет вычислить по формуле на фото 2. После нахождения всех векторов x, мы их фиксируем и аналогично находим вектора y. Это мы будем называть ALS-шагом.
Можно догадаться, что этот шаг можно производить для новых юзеров и айтемов на уже предобученных матрицах. Это однозначный плюс ALS: он прост в дообучении.
Из формулы также видно, что отдельные вектора матрицы можно вычислять независимо от других, что позволяет параллелить их вычисления на нескольких машинках. Это второй плюс. Подробнее про это есть статья на Хабре от ребят из Дзена.
Вобщем, ALS стал базированной базой RecSys не просто так: оптимизация, интерпретируемость (благодаря аналитическому подходу), легковесность, простота в дообучении — его основные преимущества.
Но есть и минусы: очевидно, что при таком подходе мы не учитываем порядок событий, а также не берем в расчет фичи пользователя и айтема, что снижает чувствительность и персонализированность этого алгоритма.
Накиньте ❤️, если понравился разбор!
Telegram Канал Доброго Вани | Data Science и Продуктики Сегодня 💻💻💻💻
А что ботаем? Ботаем фундаментальный RecSys
А начнем мы с постановки задачи и небольшого экускурса по проблемам насущным:
🔸есть товары (item)
🔸есть пользователи (user)
🔸для каждого пользователя знаем историю его целевых действий (заказы, клики… Alternating Least Squares (ALS). SOTA или, быть может, переоцененная база? Краш или обычный тюбик? Разбираем по-честному.
Начнем с фанфакта, который я выяснил за последний год: почти все +- крупные команды рекомендаций в РФ сейчас используют ALS (в том числе, в рантайме). ALS — это алгоритм для матричного разложения, используемый в системах рекомендаций на основе колаборативной фильтрации (напомню, что факторизацию и колаборативку разбирали в этом посте).
Глобальная цель ALS, как и у любого матричного разложения, получить матрицу X и матрицу Y из исходной матрицы R взаимодействий объектов x и y. Например, у нас есть маркетплейс, на котором пользователи могу кликать на товары. Тогда матрицей R могут быть взаимодействия всех пользователей со всеми товарами (1 или 0: кликал ли юзер на айтем или нет), а X и Y — матрицы, состоящие из искомых векторных представлений этих юзеров (x) и айтемов (y). См. фото 1.
Идея ALS в следующем:
А давайте в нашем цикле сходимости попеременно фиксировать матрицу X и матрицу Y и вычислять оставшуюся незафиксированную оптимальную матрицу аналитическим методом. Таким образом, при фиксации матрицы Y, оптимальный вектор x можно будет вычислить по формуле на фото 2. После нахождения всех векторов x, мы их фиксируем и аналогично находим вектора y. Это мы будем называть ALS-шагом.
Можно догадаться, что этот шаг можно производить для новых юзеров и айтемов на уже предобученных матрицах. Это однозначный плюс ALS: он прост в дообучении.
Из формулы также видно, что отдельные вектора матрицы можно вычислять независимо от других, что позволяет параллелить их вычисления на нескольких машинках. Это второй плюс. Подробнее про это есть статья на Хабре от ребят из Дзена.
Изображения взял из Учебника ШАДа. У них также есть разбор IALS, вот ссылочка.
Вобщем, ALS стал базированной базой RecSys не просто так: оптимизация, интерпретируемость (благодаря аналитическому подходу), легковесность, простота в дообучении — его основные преимущества.
Но есть и минусы: очевидно, что при таком подходе мы не учитываем порядок событий, а также не берем в расчет фичи пользователя и айтема, что снижает чувствительность и персонализированность этого алгоритма.
Накиньте ❤️, если понравился разбор!
- ❤ 13
- 👍 4
- 🔥 2


















