Открыть список
Как стать автором
Обновить

Разумный женский календарь: как делают приложение № 1 в категории «Здоровье и фитнес»

Big DataМашинное обучениеКарьера в IT-индустрииData Engineering
Представьте, что у вас есть персональный ассистент, который работает круглые сутки, помогает следить за вашим самочувствием, рассказывает о возможных рисках для здоровья и подбирает индивидуальные рекомендации для физического и психологического благополучия. В Беларуси разрабатывают приложение Flo, которое должно стать таким помощником для женщин, и им уже пользуются 160 млн человек по всему миру. Постепенно к команде разработчиков присоединились люди из Литвы, Нидерландов, Великобритании и США.

Под катом — история о том, как сделать целостное приложение о женском здоровье с искусственным интеллектом и вывести его на 1-ю строчку в категории «Здоровье и фитнес» (по версии App Annie, в декабре 2020 года оно занимало именно эту позицию).


Как появилось Flo

Когда первые календари циклов только начали появляться на рынке, близнецы Юрий и Дмитрий Гурские задумали создать женский медицинский трекер. Опыт у них был: Юрий работал в компании sport.com, которая одной из первых в СНГ взялась за разработку мобильных приложений для фитнеса. Дмитрий же вместе с командой Ideanomix Digital запустил календарь OW (Only Women) — сложное медицинское приложение с дополнительной функцией трекера. Через год продукт закрыли из-за перегруженности: в нём было слишком много параметров для отслеживания, которые путали пользователей.
Наработки и уроки, извлечённые из работы в OW, легли в основу Flo. Его разработку начали в апреле 2015 года с оглядкой на англоязычную аудиторию. Название выбрали соответствующее: американцы на сленге называют менструацию Aunt Flo.
Первая рабочая версия Flo была готова через 5 месяцев после старта, в октябре 2015 года. В 2017-м приложение завоевало статус Global Winner на американском конкурсе стартапов Red Herring Top 100; ещё через 2 года ему вручили награду на CES.
Тогда на рынке ещё не было проектов с уровнем качества, сопоставимым с другими сегментами Health & Fitness. Постепенно сервис вырос в комплексную платформу о женском здоровье. К концу 2016 года кроме женского календаря в нём появилась лента с персонализированным контентом, который разрабатывают вместе с медицинскими экспертами, а также анонимное сообщество для обсуждения вопросов о здоровье и жизни.
Трекер цикла — это важный, но ограниченный по роли компонент. Главная ценность Flo в том, что по мере использования приложение проактивно вовлекает пользователя в процесс заботы о своём здоровье.
В этом помогают персонализированный мультимедийный контент о здоровье, интерактивные образовательные чат-боты, аналитика симптомов и их возможной взаимосвязи, обсуждения в анонимном сообществе.
В отличие от трекеров, которые просто следят за циклом, Flo научили предсказывать начало цикла и высчитывать овуляцию — даже для женщин с нерегулярным циклом.
В 2020 году приложением пользовались 37 млн пользователей ежемесячно — это на четверть больше, чем годом раньше, — и это почти половина всех живущих в России женщин, чтобы было понятнее.
Больше всего пользователей у приложения в США (19 %). Следом идут Восточная Европа (7 %), Бразилия (7 %) и страны Евросоюза. 40 % юзеров говорят на английском.
Больше 2 лет команда занималась только доработкой приложения, откладывая введение платной модели: посчитали, что вводить её до того, как приложение обрастёт ценными деталями, довольно опасно. Когда продукт подгоняется под заработок, это часто заканчивается плачевно — и для создателей, и для его пользователей.
В начале 2019 года приложение перевели на freemium-модель. Базовые функции, связанные с трекингом циклов или беременности, бесплатны, а остальные доступны только по подписке. В 2019 году Flo пришло к точке безубыточности — своими доходами компания покрывает все операционные расходы.

Изменения в продукте и команде

Нынешний вид Flo — это уже 3-я инкарнация приложения. Не все эксперименты команды были успешными, но абсолютно провальных решений пока не случалось. Те части, от которых Flo избавляется, в своё время вполне вписывались в приложение. Например, сначала оно было без бэкенда, потом его сделали, но в очень простом виде, а сейчас практически вся логика находится на сервере, даже часть UI строится в облаке.
Команда следует принципу fail fast и ориентируется в первую очередь на то, насколько полезны и понятны пользователям те или иные функции.
Во Flo часто тестируют новые фичи. Из крупных — подписка на противозачаточные средства и доступ к телемедицине. Эти эксперименты нельзя назвать неудачными, но их популярность была ниже, чем у других инициатив. В итоге фокус переключили на другое и эти функции свернули.
Ещё один принцип, которым руководствуется команда и который напрямую взаимосвязан с первым, — User First. Все продуктовые решения принимают на основе тестов, исследований, анализа — поиск никогда не прекращается. Прежде чем что-то изменить, все гипотезы и нововведения тестируются. Новые функции внедряют, только если результаты показывают, что пользователям они нравятся. Следом за контролем цикла в приложении появились трекеры воды и веса, информационный раздел и сообщества. Количество сотрудников росло вместе с продуктом. Сейчас над Flo работают более 100 инженеров.
Производство разделилось по доменам, внутри которых находятся несколько кросс-функциональных команд. Каждая из них фокусируется на своей области и может самостоятельно создать полезную функцию и донести её до потребителя.
В каждой команде есть менеджер продукта, бэкенд, Android-, iOS-разработчики и QA. Работая над своей частью приложения, команды находят новые поддомены, которые, если оказываются востребованными, вырастают и выделяются в самостоятельные группы разработки.
Когда приложение стало решать больше проблем, производство усложнилось и начались поиски специалистов по продуктовой и финансовой аналитике, UX, управлению сообществом и другим областям знаний.
Минский офис Flo находится рядом со зданием Национальной библиотеки
Бывает, что сотрудники сами находят компанию, как, например, VP Product Камила Старыга. По образованию она инженер, но всегда интересовалась медициной. До Flo руководила медицинскими проектами в научно-исследовательской организации при Google. Камила связалась с командой через Facebook, а затем в 2019 году стала её частью.
В начале каждого квартала руководство компании разрабатывает и утверждает цели на следующие 3 месяца. Этот список отправляется всем сотрудникам компании, каждый из которых может предложить изменения или дополнения прямо в документе.
Когда цели финализированы, их забирают в департаменты для проработки: команды выбирают, в достижении каких целей и ключевых результатов они могут помочь, а затем каскадируют свои цели и ключевые результаты на команды поменьше. Они, в свою очередь, делают то же самое.
По сути, направление развития определяется руководством, а конкретные действия, как этого достичь, — на уровне команд. В формировании целей и ключевых результатов (OKR) участвуют все сотрудники, а инициативы оценивают голосованием, по методике ICE-скоринга. Выступить с идеей может каждый: если инженер предложит способ улучшить какой-нибудь алгоритм, собирая релевантные данные, а команда поставит высокий приоритет, почти точно она попадёт в бэклог.

Функции Flo

Кроме сообщества и библиотеки, о которых говорилось выше, в приложение добавили чат-боты — образовательные и определяющие наличие симптомов, схожих с симптомами определённых заболеваний. Среди них — марафоны здоровья, стресс-менеджмент, чек-лист симптомов коронавируса, уроки медитации, фитнес, рекомендации по улучшению сна и раскрытию сексуальности.
Flo подстраивается под изменения репродуктивных целей — в приложении есть разные режимы: для тех, кто следит за циклом и не планирует становиться мамой, для тех, кто хочет зачать ребёнка и следить за беременностью, и для тех, кто недавно родил.
Приложение не пытается да и не может заменить собой врача или лабораторные тесты. Но оно может предупредить женщину, что она оказалась в зоне риска и пора сходить к специалисту.
Flo сделали так, чтобы для каждого человека контент подбирался индивидуально — на основании симптомов и поставленных целей. Приложение предлагает проходить опросы и анализирует массу факторов, начиная с ответов, которые даёт женщина, и заканчивая отмеченным стрессом или активной физической нагрузкой.
По сути, всё устроено по принципу айсберга. Пользователь видит 20 % функций, а остальные 80 % появляются по мере необходимости. Например, при задержке менструации приложение предложит обсудить возможные причины в чат-боте и покажет статьи на эту тему. А если подписчица отметит, что часто бывает подавленной, — курс по борьбе со стрессом.
Команда сделала продукт так, чтобы циклы рассчитывались не только на основе средней длительности, но и с помощью искусственного интеллекта. Результат зависит от предыдущих введённых значений и симптомов подписчицы. Среди них, например, могут быть особенности самочувствия и настроения, характер выделений и другие данные.

Наука и искусственный интеллект

Контент для Flo помогают разрабатывать более 80 экспертов в области женского здоровья. Среди них — практикующие врачи и исследователи из ведущих университетов США и Европы. Например, Гарварда, Стэнфорда, Университета Джонса Хопкинса. Кроме того, Flo сотрудничает с 3 международными медицинскими организациями, и это не полный список.
Связи с международными организациями часто приводят в офис Flo известных гостей. На фото — визит заместителя Генерального секретаря ООН Натальи Канем
Десятки миллионов пользователей, сотни миллионов циклов, миллиарды введённых симптомов и другой информации о самочувствии женщин. Не факт, что у кого-то в мире есть больше сведений о женском здоровье, чем у Flo.
Каждые полгода количество обрабатываемых приложением данных растёт примерно в 3 раза — вместе с количеством пользователей, новыми фичами и улучшением функций.
Для улучшения продукта анализируются не только данные о симптомах, но и то, как люди пользуются приложением.
Например, женщина просматривает ленту со статьями, и для рекомендаций полезного и интересного для неё контента анализируются факт и время показа, открытие, глубина просмотра статей.
Данные хранятся на Amazon S3 в бинарном Parquet-формате. Индивидуальный подход к каждому пользователю удалось реализовать благодаря тому, как данные используются в машинном обучении. Искусственный интеллект используется для создания персонализированных советов, расчёта циклов и других задач. Команда, связанная с машинным обучением, состоит из специалистов 3 основных профилей:
  1. Machine Learning Engineer. Это ядро команды, люди с хорошим пониманием классических алгоритмов и глубокого обучения. Кроме того, ML-инженеры хорошо разбираются в базах данных и технологиях BigData.
  2. Machine Learning Researcher. Специалисты, которые занимаются, по сути, научными экспериментами в машинном обучении. У людей в этой роли меньше инженерных знаний, но больше в области прикладных ML-исследований.
  3. MLOps. Эти люди помогают упростить и автоматизировать все стадии процесса разработки ML-алгоритмов — от создания инструментов сбора данных до вывода моделей в продакшен.
К слову, Flo ищет новых коллег. Если вы подходите на одну из этих позиций и вам интересно то, чем занимаются во Flo, напишите, вдруг это судьба?
Визитная карточка машинного обучения во Flo — это прогнозирование длины женского цикла. В качестве данных в этой задаче используются введённые симптомы и статистика предыдущих циклов. Может показаться, что задача простая: берём модель с достаточным количеством параметров, подаём на вход данные, получаем число (длину цикла). Но есть особенность: данные по симптомам сильно разрежены — в среднем женщины вводят симптомы всего несколько раз за цикл.
Представьте, что вы пытаетесь рассчитать цены квартир на сайте недвижимости, но для большинства из них нет данных ни об общей площади, ни о количестве комнат, ни даже о районе города. Есть только стоимость нескольких других квартир в том же доме. Или — в случае Flo — длительность нескольких предыдущих циклов той же женщины.
В таких условиях приходится сегментировать пользователей, искать особенности каждого сегмента и подбирать оптимальные алгоритмы. В ход идут самые разные модели — от классической частотной статистики до «трансформеров».
Менструальный цикл — это достаточно сложный процесс. С медицинской точки зрения единичные аномально длинные или аномально короткие циклы у абсолютно здоровых женщин нормальны. Сбой может произойти по множеству причин, например из-за стресса. Но Flo — это не только про циклы. Другое приоритетное направление — раннее распознавание признаков заболеваний.
Хотя приложение и не может заменить доктора, статистические методы позволяют обратить внимание пользователя на нестандартные особенности организма, которые могут требовать консультации медицинского специалиста.
С технической точки зрения задача интересна тем, что нужно соблюсти баланс между качеством моделей и количеством вопросов, которые можно задать пользователю. Кроме того, такие модели не могут быть полностью чёрными ящиками, поэтому остро стоит вопрос интерпретируемости и сотрудничества с медицинскими экспертами.
Ещё одна ML-задача — автомодерация анонимных чатов. Аудитория любит этот раздел, потому что в нём можно обсудить личные темы, которые не подходят для публичных дискуссий в обычных соцсетях. Большинство подписчиц соблюдают правила общения, но бывают и нарушения. Кроме спама большую проблему составляет офтоп, когда человек хочет что-то спросить, но не находит для этого подходящего чата.
Машину легко обучить распознавать грубую речь или спам, а вот с комментариями «не по теме» бороться гораздо сложнее: у офтопа нет специфических признаков, ведь то, что является офтопом в одном чате, может полностью соответствовать теме другого чата. Тут в ход идут кластеризация, многоуровневые классификаторы и прочие трюки.
Машинное обучение во Flo выходит за пределы только ML-команды — его в своей работе используют и инженеры-программисты, и аналитики, и медицинские исследователи. Вместе они:
  • рассчитывают ценность пользователя за всё время пользования продуктом (LTV);
  • формируют рекомендации в ленте;
  • определяют наличие симптомов, схожих с симптомами определённых заболеваний;
  • предсказывают симптомы, которые есть во Flo, основываясь на ранее отмеченных;
  • распознают тесты на овуляцию по картинке;
  • генерируют синтетические датасеты со статистическими свойствами реальных данных.

Аналитика в приложении

Аналитические запросы во Flo обрабатываются Presto-кластером, для чего используется классический для Data Engineering стек из Scala и Python.
Apache Spark используется для потоковой и batch-обработки, Apache Airflow — для организации запуска в нужное время и под должным контролем. Стриминг проходит через Amazon Kinesis, но сейчас сервис переезжает на Kafka — в задачах Flo этот инструмент будет производительнее.
Чтобы анализировать данные, команда разработчиков развернула кластер Jupyter Lab для дата-сайентистов. В качестве инструмента Business Intelligence (BI) использован Looker с огромным количеством дашбордов, которыми пользуются все сотрудники.
У Flo множество In-House-сервисов для дата-сайентистов и продактов. Так как команда работает с персональными данными, вся мобильная аналитика у неё своя. Платформу для 30–40 экспериментов, которые проходят каждый месяц, тоже сделали собственную.
Среди нестандартных задач, решаемых аналитиками Flo, — Survival Analysis (анализ выживаемости), которым изначально пользовались в медицинских исследованиях. Этот подход допускает, что не все участники могут участвовать от начала до конца. Кто-то может записаться в эксперимент позже остальных. Получается, что результаты каждого испытуемого изучить невозможно.
В классических подходах нужно отсеять данные участников, не дошедших до финала, и проанализировать всё, что осталось. Но Survival Analysis позволяет учесть весь объём данных, в том числе и тех, кто прекратил эксперимент. Это повышает точность результатов.
Если нужно оценить влияние нового онбординга на конверсию, можно задать несколько метрик. Допустим, нужно понять, какой процент аудитории оформил пробную подписку в приложении на 0-й, 1-й и 7-й дни. При классическом подходе Flo пришлось бы собирать данные 7 дней. В случае с анализом выживаемости можно сразу моделировать метрику, используя то, что у тебя есть. Этот метод позволяет вывести обобщённую конверсию и сделать прогноз.
Если начать анализ раньше, можно понять, как работали новая и старая версии онбординга. Уже на 4-й день эксперимента видно, что новая версия показывает себя хуже. Если подождать ещё пару дней, соберётся нужное количество данных и можно будет построить модель с доверительными интервалами для каждого дня.

Что дальше

Сейчас команда планирует улучшать трекеры, чтобы пользователи могли отслеживать больше физиологических параметров своего организма и получать подробные отчёты о том, как отслеживаемые параметры зависят от менструального цикла (и наоборот).
Сейчас в продукте делают большой упор на персонализацию, чтобы показывать пользователю нужные данные в правильный момент. Кроме этого, большой фокус остается и на создании полезного контента. Он переходит от текстов к видеокурсам, историям и другим мультимедийным форматам.
Основной фокус команды — выйти за пределы репродуктивных вопросов и покрыть все аспекты женского здоровья (и физического, и психологического).
Судя по данным аналитики, пользователи Flo хотят следить за собой в комплексе и улучшать какие-то отдельные параметры. Например, похудеть или улучшить сексуальную жизнь. Эти запросы и станут векторами для развития приложения.
Теги:data scienceкарьера в data scienceзадачи data scienceмобильные приложенияприложения для здоровьяразработка продукта
Хабы: Big Data Машинное обучение Карьера в IT-индустрии Data Engineering
Всего голосов 38: ↑30 и ↓8 +22
Просмотры16.8K

Комментарии 17

Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.