А что ботаем? Ботаем фундаментальный RecSys
А начнем мы с постановки задачи и небольшого экускурса по проблемам насущным:
🔸есть товары (item)
🔸есть пользователи (user)
🔸для каждого пользователя знаем историю его целевых действий (заказы, клики и тп)
🔸для каждого пользователя знаем его персональные данные (в идеале)
🔸для каждого товара знаем его описание и характеристики
Ну чего хочется? Хочется предложить пользователю максимально подходящий товар. На самом деле, рексис и ранжирование хорошо дружат и держатся за ручки, поэтому, изучив ранжирование, вы, скорее всего, изучите и рексис:
1⃣Ранжирование раз https://t.me/pleshakovsky/681
2⃣Ранжирование два https://t.me/pleshakovsky/694
Коротюсенько осветим 5 ключевых подходов (хотя половина из них сводится к косинусному расстоянию между векторами товаров и пользователей):
1⃣ Ее величество Колаборативная Фильтрация (CF). Суть в том, что хотим прогнозировать интересы пользователя по похожим пользователям
Все просто:
🔸Составляем матрицу user-item (на пересечениях ставим 1, если пользователь купил, и 0, если пользователь ничего не делал с этим товаром)
🔸Хотим спрогнозировать следующий заказ K-го пользователя (то есть хотим узнать, где в K-й строке матрицы появится следующая единичка)
🔸Ну и самое очевидное - найти самые похожие строки и посмотреть, какой item там самый популярный из тех, которых нет у K-го пользователя
🔸Достаточно грубый пример, но суть вы уловили. Вот тут поподробнее про user-based CF https://habr.com/ru/companies/lanit/articles/420499/
2⃣ Нейроночки.
Ну понятно, трансформеры, RNN. Глубоко тут вдаваться не буду, многое описал в постах про ранжирование. Сюда отнесу всякие двубашенные архитектуры, DSSM, KNRM, SASRec (статья полезная достаточно https://habr.com/ru/companies/prequel/articles/573880/)
3⃣ Ну катбусты мои родимые.
И в классификацию могут, и в регрессию, и в ранжирование. Про LambdaMART, YetiRank коротюсенько упоминалось уже в Ранжировании, поэтому сильно тормозить на этом не будем. Вот небольшая страничка про Lambda https://how.dev/answers/what-is-lambda-rank
4⃣ Факторизационные машины. Получаем с помощью матричного преобразования вектора (эмбеддинги) пользователей и товаров, а далее творим с ними все, что душе угодно
Примеры: SVD, SVD+, ALS… Тут оставлю обзор на алгоритмы матричной факторизации
https://habr.com/ru/articles/486802/
5⃣ KNN и ANN. Получили мы много-много векторов для пользователей и товаров, а дальше хотим среди них как-то искать ближайшие. Об этом поговорим в отдельном посте
Резюме: рексис - это достаточно красиво, иногда интерпретируемо, бизнесово и модно. Миллиард подходов и методов и зачастую число видюх вообще не роляет
⬇Напишите в комментариях, по какому подходу или модели хотите увидеть пост
#Ботаем