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 - монетизация и реклама
👍 если интересно прочитать следующие части