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

Представьте, что у вас есть персональный ассистент, который работает круглые сутки, помогает следить за вашим самочувствием, рассказывает о возможных рисках для здоровья и подбирает индивидуальные рекомендации для физического и психологического благополучия. В Беларуси разрабатывают приложение 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 хотят следить за собой в комплексе и улучшать какие-то отдельные параметры. Например, похудеть или улучшить сексуальную жизнь. Эти запросы и станут векторами для развития приложения.

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

    0
    Весьма познавательно
    Интересный опыт
      +11
      Интересно, сколько стоили бы на «чёрном рынке» такие личные данные. Это же новое слово в таргетированной рекламе: на 100% известен пол ЦА и, как бы помягче сказать, время когда рекламу лучше не предлагать. Было явно заявлено что владельцу известно местоположение клиентов и владение ими английским языком, что выглядит как реклама не приложения, но данных о пользователях.

      Не говоря о всевозможной уже имплементированной рекламе медицинских услуг и товаров для беременных со 100% попаданием в цель. Вряд ли эта реклама показывается бесплатно для конкретных поставщиков медицинских услуг. Да и вообще, будет странно, если пользователь бесплатной версии приложения поделится данными о своей беременности, а весь остальной Интернет не начнёт предлагать пелёнки и мешковатую одежду вместо рандомных шуруповёртов — сервера с коммерчески ценной информацией сами себя не оплатят.
        0

        А вы много знаете компаний, производящих товары для беременных и готовых работать с чёрным рынком? :)

          0

          Возможно я сейчас глупость скажу, но ведь в определенные моменты цикла настроение можно "предсказать" и сказать, когда будет выше отклик на рекламу условного кинопоиска с романтическими комедиями или более удобного кресла…

            0

            Можно, но ведь мой вопрос был не про то, как можно использовать такие данные, а про то, какие компании готовы работать с ними в обход закона (например, купив данные на чёрном рынке). Вы можете представить, что какой-нибудь условный Johnson & Johnson приходит к какому-нибудь условному DoubleClick и просит запустить рекламу по данным купленным у неофициальных источников? Любая адекватная компания постарается не подходить к таким сделкам ближе чем на 12 адвокатов. Всё, что касается медицинской и околомедицинской тематики, строго регулируется, там даже при благих намерениях можно попасть на миллиардные штрафы, так что уж говорить про очевидный фрод.


            В то же время, есть масса простых, дешёвых и абсолютно законных способов узнать, например, о том, что девушка беременна: поисковые запросы, сайты с товарами для беременных, информационные сайты той же тематики и т.д. Да что уж говорить, я знаю научные статьи о том, как по 3м лайкам в Fb можно узнать политические взгляды и сексуальную ориентацию человека. Так зачем в таких условиях ввязываться в грязные сделки, если вся нужная информация и так элементарно вычисляется по доступным для адвертайзера данным?

        0
        написать по приведенной ссылке не получается. есть незашифрованный email?
          0

          У меня работает. Вот эта почта: k_pstitsyna@flo.health

          0
          eimrine Так может показаться со стороны. Но если вы хотите вести бизнес долго и вверх, то вам придется считаться с таким с виду несущественным фактором, как желания конечных пользователей :). Если какой-нибудь нью йорк таймс напечатает о том, что Flo сливает данные о циклах, можете себе представить реакцию женщин, которые вовсе не собирались с кем-то делиться этой личной сенситив информацией. Кроме ее продажи существуют и другие более честные механизмы монетизации, которые с успехом применяются во Flo.
            0
            А почему вы не указанны в тэгах как автор статьи? У всех статей есть авторы, а у этой нету.
            если вы хотите вести бизнес долго и вверх, то вам придется считаться с таким с виду несущественным фактором, как желания конечных пользователей
            Да бросьте вы, пользователи только и желают что поведать всему миру ну хоть немножечко своих ПД. Вы же понимаете, что любая женщина, в принципе, и без всяких там календариков с ML может предсказать, будет ли сегодня фонтан. Но когда случается незапланированная задержка, ML ничем не поможет решить задачу которая даже не проходит «наивный критерий Ына» — в этом случае пользователям нужно ИБД-приложение, чтобы: типа анонимно початиться с типа врачом, изучить сто тысяч пятисотый чек-лист симптомов ковида, посмотреть рекламу курсов по борьбе со стрессом итд. Так что продажа ПД не противоречит желаниям ЦА а-ля «мне нечего скрывать», ни одна из женщин «которые вовсе не собирались с кем-то делиться этой личной сенситив информацией» не пользуется приложением Flo, так что ничего не будет совершенно.
              0
              А почему я должен быть указан в авторах? Я не автор статьи.
              На счет предсказания — календарями ведь пользуются не только с сегодня на сегодня, верно? Кроме того, у Flo есть не только календарь с МЛ, но и еще много всего полезного — например ввод симптомов и виртуальный ассистент. Отзывы реальных пользовательниц показывают, что эти инструменты позволяют предотвратить серьезные проблемы по женской части в то время, когда прямых симптомов еще нет. В том числе за это и ценят Flo.
                0
                эти инструменты позволяют предотвратить серьезные проблемы по женской части
                Эти «инструменты» называются медиками, если ввести в такого человека симптомы «в то время, когда прямых симптомов еще нет», то на выходе будет как раз превентивное решение проблем. А приложение, насколько я могу судить не запуская ни разу — ценят за возможность расплатиться с медиком своими ПД, без затрат на дорогу к медицинскому учреждению и даже без очной ставки.
                +2
                Вы же понимаете, что любая женщина, в принципе, и без всяких там календариков с ML может предсказать, будет ли сегодня фонтан.

                Ну вообще-то нет, с чего вы взяли?
                Большинство женщин до появления смартфонов в каждой руке пользовались аналоговыми календариками, это стандартная рекомендация для девочек, начиная с подросткового возраста, принятая в большинстве стран.

                Но когда случается незапланированная задержка, ML ничем не поможет решить задачу которая даже не проходит «наивный критерий Ына»

                Вообще-то тоже не совсем так. С нерегулярным циклом совершенно непонятно, это уже задержка, или ещё нет. С приложением не нужно сидеть и считать с календариком, сколько в каком месяце чего было, оно само график строит, простейшая функция и очень удобная.

                К тому же, почему сразу незапланированная? А если запланированная, то начинать скупать тесты с дня самого короткого цикла или ждать самого длинного?
                Это в анекдотах нельзя быть чуть-чуть беременной, а в жизни это недели и месяцы неопределённости, когда непонятно, уже нужно переходить на лечение молитвой и постом или ещё можно солпадеинчика жахнуть от мигрени.

                ни одна из женщин «которые вовсе не собирались с кем-то делиться этой личной сенситив информацией» не пользуется приложением Flo, так что ничего не будет совершенно.

                И нет, приложение — это не для тех, кто хочет поговорить о своих месячных, это какая-то фантазия.
              +3
              В отличие от трекеров, которые просто следят за циклом, Flo научили предсказывать начало цикла и высчитывать овуляцию — даже для женщин с нерегулярным циклом

              Ну, кхе-кхе, это многие трекеры умеют. Я б даже сказала, нужно поискать, кто это не умеет.
              И все как один "строят коммюнити" и предлагают "эксклюзивные материалы для чтения-смотрения". Фиг найдешь что-то без обязательной регистрации, подписок, и не розовое.


              А для тех, кто спрашивает про продажу личных данных, я просто оставлю эту ссыль https://www.theverge.com/2021/1/13/22229303/flo-period-tracking-app-privacy-health-data-facebook-google

                0
                Но у всех ли есть такой красивый офис в Минске где дата-сайентисты и продакты день и ночь работают над machine learning и artificial intelligence?
                  +2
                  Побуду немного адвокатом, так как был свидетелем той истории.
                  Причиной разбирательства послужил факт использования в приложении facebook analytics для трекинга активности пользователей, что, согласитесь, немного отличается от «продажи личных данных фейсбуку». После того как история началась, компания оперативно перешла на in-house решение и тем самым закрыла эту историю.

                  В отличие от трекеров, которые просто следят за циклом, Flo научили предсказывать начало цикла и высчитывать овуляцию


                  формулировка, конечно слегка маркетинговая. Соль в том, что Flo это делает точнее. А уже вокруг это комьюнити и материалы :-)
                    +3
                    от продажи, да, отличается. от передачи данных нет.
                  +4
                  Очень бы хотелось, чтобы починили прогнозирование овуляции на основе параметра теста. А то когда указываешь что твой тест на овуляцию показывает отрицательный результат, а тебе все равно говорят что она сегодня (или еще хуже позавчера) — бесит. И день прогноза меняется только если указать что тест положительный. Такое…

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