Закат классной модели
Все мы любим делать клевые ML-модели, которые несут пользу бизнесу, и катить их в прод. Но если дополнительно ничего не делать, то рано или поздно (скорее рано) наступает «закат» модели: она перестает нести доп метрики. Почему?
1. Развиваются другие куски ml-системы
Классика в прогнозе кучи временных рядов: сначала прогноз каждого из них неплох, а в сумме все оч грустно. Поэтому добавляют модель-нормировщика: она прогнозирует сумму рядов (допустим, продажи категории товаров) и нормирует индивидуальные модели. Со временем мы добавим в индивидуальные модели сезонность, тренды, промо - они и без нормировок в сумме по категории будут работать хорошо
2. Меняется среда, для душных distribution shift
Модели антифрода устаревают мгновенно: мошенники быстро подстраиваются под них. Рекомендательные системы бьет feedback loop. К моделям прайсингам и скидок люди привыкают и начинают покупать только по скидке. Примеров много)
3. Баги
Отвалилась часть событий на фронте, кто-то поменял структуру таблиц с данными, завели новый фича тоггл, который все поломал и тд
Так что делать?
Чтобы закат модели случился попозже и не внезапно, хорошо бы:
Настроить графики мониторинга и алерты на перформанс модели. И регулярно за ними следить! Они ведь тоже устаревают)
Раз в полгода проводить обратные АВ-тесты с отрывами моделей. Я регулярно нахожу что-то, что кажется незыблемо полезным, но на самом деле уже нет
Есть и третий путь. С комфортом устроиться на берегу моря или в уютном кресле и наблюдать за закатом ml-модели. Часто это неизбежно (и нормально!), так что иногда можно просто позволить этому случиться
P.S. На фотках с кайфом наблюдаю за закатами (и иногда рассветами) солнца и мл-моделей последний год
Все мы любим делать клевые ML-модели, которые несут пользу бизнесу, и катить их в прод. Но если дополнительно ничего не делать, то рано или поздно (скорее рано) наступает «закат» модели: она перестает нести доп метрики. Почему?
1. Развиваются другие куски ml-системы
Классика в прогнозе кучи временных рядов: сначала прогноз каждого из них неплох, а в сумме все оч грустно. Поэтому добавляют модель-нормировщика: она прогнозирует сумму рядов (допустим, продажи категории товаров) и нормирует индивидуальные модели. Со временем мы добавим в индивидуальные модели сезонность, тренды, промо - они и без нормировок в сумме по категории будут работать хорошо
2. Меняется среда, для душных distribution shift
Модели антифрода устаревают мгновенно: мошенники быстро подстраиваются под них. Рекомендательные системы бьет feedback loop. К моделям прайсингам и скидок люди привыкают и начинают покупать только по скидке. Примеров много)
3. Баги
Отвалилась часть событий на фронте, кто-то поменял структуру таблиц с данными, завели новый фича тоггл, который все поломал и тд
Так что делать?
Чтобы закат модели случился попозже и не внезапно, хорошо бы:
Настроить графики мониторинга и алерты на перформанс модели. И регулярно за ними следить! Они ведь тоже устаревают)
Раз в полгода проводить обратные АВ-тесты с отрывами моделей. Я регулярно нахожу что-то, что кажется незыблемо полезным, но на самом деле уже нет
Есть и третий путь. С комфортом устроиться на берегу моря или в уютном кресле и наблюдать за закатом ml-модели. Часто это неизбежно (и нормально!), так что иногда можно просто позволить этому случиться
P.S. На фотках с кайфом наблюдаю за закатами (и иногда рассветами) солнца и мл-моделей последний год
👍26❤5🔥4
ML-челленджи супераппов: Как впихнуть интересы юзера в один экран (ч1) ?
Понемногу все приложения пытаются стать супераппами. Яндекс.Go обьединяет доставку всего (уже и не только доставку: например, Афишу). Авито - продажу всего от товаров до услуг и брони квартир. Тинькофф пробует завязать на себя все финансовые сервисы и оплаты/покупки. Тикток - развлечения, образование и маркетплейс. Да даже я делаю "суперапп" про контент в DS из этого канала + @abpolice
Ноги у всего растут из стоимости закупки трафика: она сильно растет. И теперь выгоднее не покупать рекламу на рынке, а перегонять аудиторию внутри своих сервисов. Чаще всего эта проблема особенно острая в задачах information retrieval: поиске и рекомендациях
Но чем больше сервисов в одном супераппе, тем тяжелее понять, что именно сейчас хочет пользователь. По поисковому запросу "курица" показать ему куриную тушку из магазина, готовое блюдо из курицы, рецепт, мультик Куриный побег, игрушку-курицу или что-то еще? А если нет поисковго запроса и мы просто хотим порекомендовать ему что-то на главной странице приложения, то какие интересы пользователя ему показать? В общем, огромный челендж - как алгоритмически и визуально впихнуть очень разные интересы пользователя (категории, сервисы) в один экран. Это во многом и позволит шерить аудиторию между сервисами за условно-бесплатно
🧐 Если ничего не делать, то чаще всего алгоритмы будут вытаскивать 1-2 категории интересов, что явно не очень оптимально. А попробовать можно вот что
1. Эвристики разнообразия контента
Например, не более 10 товаров одной категории / сервиса. Очень просто - невеоятно эффективно
Чуть более продвинутые эвристики - MRR и DPP. Тоже можно попробовать, но требуют побольше вычислительных ресурсов и времени
2. Подбрасывать монетку
Да-да, сначала случайно или пропорционально релевантности категории (можно просто взять скор релевантности первого товара из категории) сэмплировать категорию на каждую позицию экрана. А затем внутри категории выбирать товар/контент. На 1-5% мест можно подмешивать случайные категории или товры. Работает тоже просто, но крайне эффективно. По кулуарным разговорам, 80% сервисов в том или ином виде пользуются этим. Открыто от таком подходе говорит, например, Авито
3. RL и Нейронки с лоссом на разнообразие
Современно, но эти подходы просто не работают) Ну по крайней мере, очень мало супераппов репортят об этом, а если и репортят, то с мизерными приростами метрик
4. MultiSlot ranking
Вот тут уже есть первые интересные результаты. Например, Yotube обучает жадный multi-slot алгоритм, учитывающий на позиции k фичи предыдущих товаров - репортуют о росте в оффлайне до +10%
5. Real-time
Не сохраняем заранее посчитанные результаты по всем поисковым запросам / рекомендации по user_id, а генерим и обновляем их на лету. Уже во многих сервисах поиск и рекомендации грузят товары пачками по 10-20 штук. И действия в первых 10-20 товаров сильно повлияют на следующие 10-20: не покликал на блюда из курицы - дальше тебе их не покажут. Можно дойти до загрузки 1 карточки контента на экран (как делает Тикток) и обновлять рекомендации/поиск после действия / бездействия с каждой. Это круто, но достаточно сложно
В общем, если вы только начинаете путь к супераппу - эвристики и подбрасывание монетки дадут вам многое
Если вы уже не одни грабли на этом пути собрали - стоит идти сначала в Multi-slot ranking, а потом и в Real-time
В следюущих частях планирую рассказать про:
ч2 - апсел, кроссел
ч3 - монетизация и реклама
👍 если интересно прочитать следующие части
Понемногу все приложения пытаются стать супераппами. Яндекс.Go обьединяет доставку всего (уже и не только доставку: например, Афишу). Авито - продажу всего от товаров до услуг и брони квартир. Тинькофф пробует завязать на себя все финансовые сервисы и оплаты/покупки. Тикток - развлечения, образование и маркетплейс. Да даже я делаю "суперапп" про контент в DS из этого канала + @abpolice
Ноги у всего растут из стоимости закупки трафика: она сильно растет. И теперь выгоднее не покупать рекламу на рынке, а перегонять аудиторию внутри своих сервисов. Чаще всего эта проблема особенно острая в задачах information retrieval: поиске и рекомендациях
Но чем больше сервисов в одном супераппе, тем тяжелее понять, что именно сейчас хочет пользователь. По поисковому запросу "курица" показать ему куриную тушку из магазина, готовое блюдо из курицы, рецепт, мультик Куриный побег, игрушку-курицу или что-то еще? А если нет поисковго запроса и мы просто хотим порекомендовать ему что-то на главной странице приложения, то какие интересы пользователя ему показать? В общем, огромный челендж - как алгоритмически и визуально впихнуть очень разные интересы пользователя (категории, сервисы) в один экран. Это во многом и позволит шерить аудиторию между сервисами за условно-бесплатно
🧐 Если ничего не делать, то чаще всего алгоритмы будут вытаскивать 1-2 категории интересов, что явно не очень оптимально. А попробовать можно вот что
1. Эвристики разнообразия контента
Например, не более 10 товаров одной категории / сервиса. Очень просто - невеоятно эффективно
Чуть более продвинутые эвристики - MRR и DPP. Тоже можно попробовать, но требуют побольше вычислительных ресурсов и времени
2. Подбрасывать монетку
Да-да, сначала случайно или пропорционально релевантности категории (можно просто взять скор релевантности первого товара из категории) сэмплировать категорию на каждую позицию экрана. А затем внутри категории выбирать товар/контент. На 1-5% мест можно подмешивать случайные категории или товры. Работает тоже просто, но крайне эффективно. По кулуарным разговорам, 80% сервисов в том или ином виде пользуются этим. Открыто от таком подходе говорит, например, Авито
3. RL и Нейронки с лоссом на разнообразие
Современно, но эти подходы просто не работают) Ну по крайней мере, очень мало супераппов репортят об этом, а если и репортят, то с мизерными приростами метрик
4. MultiSlot ranking
Вот тут уже есть первые интересные результаты. Например, Yotube обучает жадный multi-slot алгоритм, учитывающий на позиции k фичи предыдущих товаров - репортуют о росте в оффлайне до +10%
5. Real-time
Не сохраняем заранее посчитанные результаты по всем поисковым запросам / рекомендации по user_id, а генерим и обновляем их на лету. Уже во многих сервисах поиск и рекомендации грузят товары пачками по 10-20 штук. И действия в первых 10-20 товаров сильно повлияют на следующие 10-20: не покликал на блюда из курицы - дальше тебе их не покажут. Можно дойти до загрузки 1 карточки контента на экран (как делает Тикток) и обновлять рекомендации/поиск после действия / бездействия с каждой. Это круто, но достаточно сложно
В общем, если вы только начинаете путь к супераппу - эвристики и подбрасывание монетки дадут вам многое
Если вы уже не одни грабли на этом пути собрали - стоит идти сначала в Multi-slot ranking, а потом и в Real-time
В следюущих частях планирую рассказать про:
ч2 - апсел, кроссел
ч3 - монетизация и реклама
👍 если интересно прочитать следующие части
👍45❤12
Статистика и котики теннис
Давние читатели канала знают, что я играю в теннис и иногда про него пишу) В воскресенье занял 2 место на amatour masters 200. По ходу 5 матчей задумывался, какая стратегия с наибольшей вероятностью приведет к успеху. И у меня возник ворох статистических задач - хоть на собесах спрашивай
🎾 Задача про подачу
У теннисиста есть 2 попытки на подаче. Он может в любую из них применить «Стабильную» подачу с вероятностью попадания 85%. Или «Мощную» с вероятностью попадания 60%
Стабильная - просто начинает розыгрыш, где теннисист может выиграть с вероятностью 54%. Мощная - увеличивает вероятность выигрыша на 5%. Если теннисист ошибается на подаче 2 раза, то он проигрывает
Собственно, вопросы:
- Какие подачи подавать? Стабильная-Стабильная, Мощная-Стабильная, …
- Начиная с какого % попадания Мощной и Стабильной, вообще выгодно подавать хотя бы одну Мощную?
- Какой параметр (% попадания мощной/стабильной, прирост вероятности победы от мощной, в целом % выигранных мячей после подачи) стоит тренировать?
Ах да, все цифры - моя статистика игры. И это реальные вопросы, над которыми я думаю. В суровом мире тенниса все чуть сложнее: в финале мне не хватило физухи и случился дебафф -10% ко всем характеристикам. Кстати, как бы это повлияло на ответы в задаче?)
Можете писать ответы в комментарии ⬇️
Давние читатели канала знают, что я играю в теннис и иногда про него пишу) В воскресенье занял 2 место на amatour masters 200. По ходу 5 матчей задумывался, какая стратегия с наибольшей вероятностью приведет к успеху. И у меня возник ворох статистических задач - хоть на собесах спрашивай
🎾 Задача про подачу
У теннисиста есть 2 попытки на подаче. Он может в любую из них применить «Стабильную» подачу с вероятностью попадания 85%. Или «Мощную» с вероятностью попадания 60%
Стабильная - просто начинает розыгрыш, где теннисист может выиграть с вероятностью 54%. Мощная - увеличивает вероятность выигрыша на 5%. Если теннисист ошибается на подаче 2 раза, то он проигрывает
Собственно, вопросы:
- Какие подачи подавать? Стабильная-Стабильная, Мощная-Стабильная, …
- Начиная с какого % попадания Мощной и Стабильной, вообще выгодно подавать хотя бы одну Мощную?
- Какой параметр (% попадания мощной/стабильной, прирост вероятности победы от мощной, в целом % выигранных мячей после подачи) стоит тренировать?
Ах да, все цифры - моя статистика игры. И это реальные вопросы, над которыми я думаю. В суровом мире тенниса все чуть сложнее: в финале мне не хватило физухи и случился дебафф -10% ко всем характеристикам. Кстати, как бы это повлияло на ответы в задаче?)
Можете писать ответы в комментарии ⬇️
👍24🔥17❤4🙈2
Врываюсь с новостями
Пока все отдыхали на майских, я готовился сразу к двум конференциям (ну ладно, немножко отдыхал тоже)
Буду выступать
- Уже 17 мая на IML в Питере
- 25 мая на DataFest в Москве
🧐 Расскажу про рекомендации Я.Маркета: архитектура, ml- и бизнес-метрики и даже немножко про трансформеры - приходите, будет интересно!
Ну и если хотите лично встретиться в кулуарах - пишите, пересечемся)
Пока все отдыхали на майских, я готовился сразу к двум конференциям (ну ладно, немножко отдыхал тоже)
Буду выступать
- Уже 17 мая на IML в Питере
- 25 мая на DataFest в Москве
🧐 Расскажу про рекомендации Я.Маркета: архитектура, ml- и бизнес-метрики и даже немножко про трансформеры - приходите, будет интересно!
Ну и если хотите лично встретиться в кулуарах - пишите, пересечемся)
👍34🔥13❤6
3 инсайта про реком системы с IML
Пару дней назад рассказал про рекомендации Я.Маркета на конфе IML. А еще послушал доклады и поговорил в кулуарах с ребятами из Окко, Headhunter, Авито, Ламода и не только. Вот какие инсайты я вынес
1. Все начинают работать с контентом в рекомендациях
Массово переходят от моделей на id-товаров/юзеров к контентными трансформерами над историей пользователя. Это сильно лучше масштабируется, помогает идти в real-time и рекомендовать товары из "длинного хвоста"
2. Контента стало гораздо больше
Платформы достигли 10М+ контентых единиц (товаров, документов, рилсов, ...)
Приходится строить действительно большие системы, да еще и в real-time
При этом нужно рекомендовать желательно весь контент, и тут начинается борьба с popularity bias и работа с холодным стартом для контента: нужно рекомендовать не самые популярные и холодные товары
В обеих проблемах как раз помогают контентные трансформеры, но и не только они:
- Взвешивание сэмплов
- Дебаясинг: например, через фичу позиции товара в ленте
- Насильная вставка новинок/менее популярных категорий в ленты
3. Реклама и продвижение
Контента много и все контент-мейкеры хотят получать свой кусочек траффика. Но конкуренция растет: по многим отчетам ~80% селлеров на маркетплейсах зарабатывают чистыми <100K в мес, цена подписчика в соцсетях в космосе (в тг 100-150 руб/подписчик). Появилась явная потребность в механиках продвижения контента и запрос на "честное" распределение показов (условно, каждый получает хотя бы 10 показов)
Поэтому задача рекомендаций резко усложняется: становится все больше похожей на задачу оптимизации с ограничениями. А в пределе даже на комбинаторную задачу о наполнении рюказка. Во многих компаниях лента рекомендаций - это уже не отранжированные товары по некоему скору, а N слотов под самые персональные товары, K под рекламные, L под новые, ...
↕️ Очень верится, что в ближайшем будущем парадигма рекомедаций сдвинется в сторону комбинаторики, а не просто ранжированию списка
P.S. Официальных фоток и записей с конференции пока нет, поэтому вот вам 1 фотка доклада от меня и немножко питерского вайба
Пару дней назад рассказал про рекомендации Я.Маркета на конфе IML. А еще послушал доклады и поговорил в кулуарах с ребятами из Окко, Headhunter, Авито, Ламода и не только. Вот какие инсайты я вынес
1. Все начинают работать с контентом в рекомендациях
Массово переходят от моделей на id-товаров/юзеров к контентными трансформерами над историей пользователя. Это сильно лучше масштабируется, помогает идти в real-time и рекомендовать товары из "длинного хвоста"
2. Контента стало гораздо больше
Платформы достигли 10М+ контентых единиц (товаров, документов, рилсов, ...)
Приходится строить действительно большие системы, да еще и в real-time
При этом нужно рекомендовать желательно весь контент, и тут начинается борьба с popularity bias и работа с холодным стартом для контента: нужно рекомендовать не самые популярные и холодные товары
В обеих проблемах как раз помогают контентные трансформеры, но и не только они:
- Взвешивание сэмплов
- Дебаясинг: например, через фичу позиции товара в ленте
- Насильная вставка новинок/менее популярных категорий в ленты
3. Реклама и продвижение
Контента много и все контент-мейкеры хотят получать свой кусочек траффика. Но конкуренция растет: по многим отчетам ~80% селлеров на маркетплейсах зарабатывают чистыми <100K в мес, цена подписчика в соцсетях в космосе (в тг 100-150 руб/подписчик). Появилась явная потребность в механиках продвижения контента и запрос на "честное" распределение показов (условно, каждый получает хотя бы 10 показов)
Поэтому задача рекомендаций резко усложняется: становится все больше похожей на задачу оптимизации с ограничениями. А в пределе даже на комбинаторную задачу о наполнении рюказка. Во многих компаниях лента рекомендаций - это уже не отранжированные товары по некоему скору, а N слотов под самые персональные товары, K под рекламные, L под новые, ...
↕️ Очень верится, что в ближайшем будущем парадигма рекомедаций сдвинется в сторону комбинаторики, а не просто ранжированию списка
🔥30👍9🤔3❤1👌1
Конференции
Часть моего доклада на Data Fest заблокировал PR. Рассказывать важные куски общими словами мне не хотелось, поэтому решил сняться с конференции(
С одной стороны, грустно и обидно - в доклад я вложил всю душу и немало сил. С другой, архитектура рекома и несколько внедрений от нашей команды оказались настолько крутыми, что о них нельзя рассказывать конкурентам - это прям мотивирует)
🧐 В итоге, я буду слушателем на Data Fest - ждите интересных саммери и инсайтов
Часть моего доклада на Data Fest заблокировал PR. Рассказывать важные куски общими словами мне не хотелось, поэтому решил сняться с конференции(
С одной стороны, грустно и обидно - в доклад я вложил всю душу и немало сил. С другой, архитектура рекома и несколько внедрений от нашей команды оказались настолько крутыми, что о них нельзя рассказывать конкурентам - это прям мотивирует)
🧐 В итоге, я буду слушателем на Data Fest - ждите интересных саммери и инсайтов
❤35😱28😢13🤣12👍6
Милиарды параметров и данных для рекомендаций
Пожалуй, самая большая новость в российском мире рекомендаций -- анонс от Яндекса просто огромной трансформерной модели ARGUS-1В и настолько же огромного датасета рекомендаций Я.Музыки YAMBDA-5B. Об этом еще мало где писали, но тем интереснее сделать разбор:)
Датасет Я.Музыки YAMBDA-5B
Типичные проблемы рисерча в рекомендациях и сравнения моделей:
- Датасеты очень маленькие (в сотни-тысячи раз меньше продакшн данных)
- В данных нет последовательностей (даже в movielens!). Поэтому трансформеры так себе под них подходят
- Нет метаданных/признаков айтемов и юзеров (а в продакшен задачах есть)
Ребята попробовали решить это в YAMBDA. Почти 5B событий, около 1М айтемов, есть время события для моделирования последовательности треков (а такая зависимость явно есть). Плюсом идут готовые эмбеды и фичи. Из небольших минусов: нет названий треков и человекочитаемых метаданных. Но это NDA, так что понятно, почему
В общем, в следующий раз вместо Movielens или Amazon reviews вы знаете, какой датасет взять
Рекомендательный трансформер ARGUS-1B
Кажется, не все распарсили, что доклад про ARGUS на датафесте во многом базировался на YAMBDA-подобном датасете. Так что датасет и модель полезно рассматривать в паре
Так что за ARGUS? Насколько я знаю, первый в РФ рекомендательный трансформер с контекстным окном 8К и размером 1В параметров. Из крутого:
- Таргеты Next item + Feedback prediction. То есть модель предсказывает, с каким треком провзаимодействует пользователь, и какой фидбек ему даст (дослушал до конца, лайкнул, ..). Вообще-то это сразу и отбор кандидатов, и ранжирование - ну кайф же 🔥
- Достаточно подробно рассказали архитектуру: позднее связывание, кодирование товара через DCN, трансформеры
- Намекнули, как все-таки удалось масштабироваться до 8К действий юзера в контексте трансформера: берем последовательность действий юзера, сдвигаем на одно действие. Одним проходом трансформера получаем эмбеды во всех стейтах. Далее эффективен считаем лосс. Очень похоже на BERT/GPT-подобные "эффективности" архитектуры в NLP, но в рекоме мало кто смог завести
- В итоге, от ARGUS получили колоссальные приросты в продакшене Музыки и Алисы. Ну и мы в Я.Маркете тоже тестим Argus: ожидаем не менее колоссальных приростов)
Разбор подготовил тг-канал @ml4value
Пожалуй, самая большая новость в российском мире рекомендаций -- анонс от Яндекса просто огромной трансформерной модели ARGUS-1В и настолько же огромного датасета рекомендаций Я.Музыки YAMBDA-5B. Об этом еще мало где писали, но тем интереснее сделать разбор:)
Датасет Я.Музыки YAMBDA-5B
Типичные проблемы рисерча в рекомендациях и сравнения моделей:
- Датасеты очень маленькие (в сотни-тысячи раз меньше продакшн данных)
- В данных нет последовательностей (даже в movielens!). Поэтому трансформеры так себе под них подходят
- Нет метаданных/признаков айтемов и юзеров (а в продакшен задачах есть)
Ребята попробовали решить это в YAMBDA. Почти 5B событий, около 1М айтемов, есть время события для моделирования последовательности треков (а такая зависимость явно есть). Плюсом идут готовые эмбеды и фичи. Из небольших минусов: нет названий треков и человекочитаемых метаданных. Но это NDA, так что понятно, почему
В общем, в следующий раз вместо Movielens или Amazon reviews вы знаете, какой датасет взять
Рекомендательный трансформер ARGUS-1B
Кажется, не все распарсили, что доклад про ARGUS на датафесте во многом базировался на YAMBDA-подобном датасете. Так что датасет и модель полезно рассматривать в паре
Так что за ARGUS? Насколько я знаю, первый в РФ рекомендательный трансформер с контекстным окном 8К и размером 1В параметров. Из крутого:
- Таргеты Next item + Feedback prediction. То есть модель предсказывает, с каким треком провзаимодействует пользователь, и какой фидбек ему даст (дослушал до конца, лайкнул, ..). Вообще-то это сразу и отбор кандидатов, и ранжирование - ну кайф же 🔥
- Достаточно подробно рассказали архитектуру: позднее связывание, кодирование товара через DCN, трансформеры
- Намекнули, как все-таки удалось масштабироваться до 8К действий юзера в контексте трансформера: берем последовательность действий юзера, сдвигаем на одно действие. Одним проходом трансформера получаем эмбеды во всех стейтах. Далее эффективен считаем лосс. Очень похоже на BERT/GPT-подобные "эффективности" архитектуры в NLP, но в рекоме мало кто смог завести
- В итоге, от ARGUS получили колоссальные приросты в продакшене Музыки и Алисы. Ну и мы в Я.Маркете тоже тестим Argus: ожидаем не менее колоссальных приростов)
Разбор подготовил тг-канал @ml4value
🔥35❤10👍7
Глянцевый журнал рекомендаций
Какое-то время назад были популярны журналы моды, тачек и всего прочего. Там собраны красивые картинки, которые дополняют друг друга. И смотрится все это как единое целое
Казалось бы, рекомендации товаров в приложении устроены также? А вот ни разу. Обычно мы скорим каждый товар независимо, поэтому все рекомендации могут состоять условно только из кроссовок. Чтобы такого не случалось, добавляются эвристики разнообразия
🩼 Иногдакостыли эвристики простые типа «не более 5 товаров из одной категории». Иногда это ml-эвристики как у Авито: ребята сделали занятный рассказ про замену статистической эвристики разнообразия на ml-эвристику предсказания будущей категории покупки (см скрины)
Но все же мы не собираем рекомендации «как журнал». Не прогнозируем скор сразу всей пачки рекомендаций из 10 товаров, а очень хочется. Формально, это переход от pointwise/pairwise к listwise лоссу. Есть острое желание потестить это в проде и даже есть пара наработок. Придется бороться с комбинаторным взрывом, учиться учитывать «полезность» сразу пачки рекомендаций и многое
другое!
И вот стало интересно, может кто-то уже пробовал listwise подход в рекоме/поиске? Или есть идеи/рисерчи на этот счет? Буду рад услышать ваши мысли в комментариях ⬇️
Какое-то время назад были популярны журналы моды, тачек и всего прочего. Там собраны красивые картинки, которые дополняют друг друга. И смотрится все это как единое целое
Казалось бы, рекомендации товаров в приложении устроены также? А вот ни разу. Обычно мы скорим каждый товар независимо, поэтому все рекомендации могут состоять условно только из кроссовок. Чтобы такого не случалось, добавляются эвристики разнообразия
🩼 Иногда
Но все же мы не собираем рекомендации «как журнал». Не прогнозируем скор сразу всей пачки рекомендаций из 10 товаров, а очень хочется. Формально, это переход от pointwise/pairwise к listwise лоссу. Есть острое желание потестить это в проде и даже есть пара наработок. Придется бороться с комбинаторным взрывом, учиться учитывать «полезность» сразу пачки рекомендаций и многое
другое!
И вот стало интересно, может кто-то уже пробовал listwise подход в рекоме/поиске? Или есть идеи/рисерчи на этот счет? Буду рад услышать ваши мысли в комментариях ⬇️
✍13👍11🔥6❤2👎1
