Разработка
Как машинное обучение увеличило доход Duolingo на миллионы долларов
Сегодня рекламные решения стали крупнейшим источником дохода Duolingo, обеспечивая примерно четверть годового роста доходов.
Миссия Duolingo — разработать лучшее в мире образование и сделать его общедоступным. Чтобы финансировать эту миссию, мы полагаемся на комбинацию источников дохода, включая рекламу, показываемую тем, у кого нет подписки. После каждого сеанса обучения пользователи видят либо «внутреннюю» рекламу, продвигающую подписку на Duolingo, либо «сетевую» рекламу, которая приносит доход от внешних рекламодателей.
Слева: внутренняя реклама с изображением Дуо и Беа, рекламирующих Super Duolingo. Справа: сетевая реклама, продвигающая сервис медитации Headspace.
Показ правильной рекламы правильному ученику имеет большое значение. Но в 2023 году наша логика принятия решений по объявлениям стала слишком сложной для эффективной оптимизации. Годы итеративного A/B-тестирования привели к запутанной паутине правил принятия решений, разбросанных по разным частям нашей кодовой базы.
Логика показа объявлений, сильно упрощенная для вашего благополучия. Проверяются свойства обучаемых, например, на какой сессии дня они находятся.
Логику было сложно полностью понять и осмыслить. Кроме того, фрагментация по различным системам затрудняла совершенствование всей экосистемы и была чревата ошибками и техническим долгом.
Нам нужно было более разумное и масштабируемое решение
Мы знали, что модели машинного обучения (ML) могут помочь, но наше руководство не было уверено в этом. Duolingo активно использует AI и ML, но есть причина, по которой наши ИИ-продукты в приложениях, такие как Birdbrain и Duolingo Max, являются основополагающими — поддержка ML-систем это большие инвестиции, и отдача должна быть достаточно высокой, чтобы оправдать эти вложения.
Наша первоначальная модель позволяла оптимизировать только один экран, поэтому мы не могли получить достаточную отдачу. Чтобы получить поддержку руководства, нам нужно было доказать, что мы можем внедрить решение быстро, дешево и с минимальной новой инфраструктурой.
Использование существующих инструментов для быстрого развертывания
Наше решение? Использование dbt и BigQuery ML, которые легко интегрируются благодаря пакету dbt_ml. dbt уже используется во всех конвейерах данных Duolingo, поэтому создание нового задания для постоянной обработки новых пакетов данных было простым. Затем BigQuery ML позволил нам использовать эти данные для обучения, оценки и анализа готовых моделей с помощью всего нескольких строк кода, при этом настройка гиперпараметров не требовала создания собственной инфраструктуры.
Выполнить инференс было так же просто, как выполнить SQL-запрос. Мы получили одобрение руководства, и после некоторого дополнительного проектирования для хранения решений модели в нашей прод базе данных, реализация была готова в рекордные сроки. Внезапно будущее с такой логикой стало совсем близким:
Немедленный заработок и его рост
Эффект был быстрым и впечатляющим. В первые несколько месяцев новая модель принесла миллионы долларов дополнительного годового дохода. После доработки модели и исправления некоторых ранее существовавших ошибок эта цифра выросла до десятков миллионов в год. Сегодня рекламные решения стали крупнейшим источником дохода Duolingo, обеспечивая примерно четверть годового роста доходов.
Упрощение системы и раскрытие новых возможностей
Переход на машинное обучение не только увеличил доход, но и значительно упростил нашу рекламную инфраструктуру. Мы смогли:
- Лучше персонализировать решения. Мы смогли увеличить доход благодаря еще более сложным решениям, чем наши прежние эвристики.
- Централизовать логику. Мы смогли сделать код более модульным и менее подверженным ошибкам.
- Абстрагироваться от сложности. Мы можем устранить повторяющуюся логику принятия решений, снизив риск ошибок.
Конечно, мы не останавливаемся на достигнутом и постоянно совершенствуем наши модели. Например:
- Принять решение о типе объявления — это только половина успеха. Даже если мы решили показывать внутреннюю рекламу, у нас есть десятки креативов на выбор. Использование ML для выбора подходящего креатива для каждого ученика — наш следующий большой уровень роста.
- Мы развиваемся в направлении роста пользователей. Мы используем ту же инфраструктуру, чтобы предсказывать, а затем подталкивать учеников, которые вряд ли вернутся на следующий день. Это уже привело к существенному увеличению DAU, но я оставлю это для отдельной статьи в блоге.
Ключевые уроки из нашей работы
На протяжении всего нашего путешествия в области ML мы извлекли ценные уроки, которые могут быть применимы к любой компании, создающей системы ML для монетизации:
- Избегайте специальных групп. Для переобучения мы изначально держали группу обучающихся, на которую не влияла наша модель. Это создавало свой собственный тип дрейфа данных, поскольку мы переобучали нашу модель на принципиально других учениках, чем те, к которым мы ее применяли. Теперь мы время от времени игнорируем решение модели и подаем объявление случайным образом, что проще и эффективнее.
- Моделируйте причинно-следственный подъем. Изначально наша модель предсказывала базовую вероятность покупки подписки по внутренней рекламе. Хотя это было хорошим началом, дальнейшее повышение эффективности модели не увеличило общий доход, а лишь оттянуло его от других хуков за счет более эффективной подачи рекламы тем учащимся, которые все равно бы купили подписку. Вместо этого мы превратили XGBoost в контекстного бандита, определив учащихся, для которых показ внутренней рекламы увеличил вероятность покупки в наибольшей степени.
Нам не терпится продолжить итерации и обучение. В конце концов, наша модель станет настолько хорошей, что вы сами захотите приобрести подписку ;)
Кроме того, вы можете присоединиться к нам! Мы принимаем на работу, и каждый сотрудник получает бесплатную подписку.
-
Видео и подкасты для разработчиков3 недели назад
Как устроена мобильная архитектура. Интервью с тех. лидером юнита «Mobile Architecture» из AvitoTech
-
Новости4 недели назад
Видео и подкасты о мобильной разработке 2025.9
-
GitHub4 недели назад
Video Player App — приложение для просмотра видео на MVVM и Kotlin
-
Новости3 недели назад
Видео и подкасты о мобильной разработке 2025.10