Хотите дальше читать devby? 📝
Support us

Flo переманила из Facebook крутого разработчика, он «вычислял» самоубийц и педофилов. Говорим про ML и зп

Вадим Никулин из Ярославля имел опыт работы в Яндексе, Microsoft и Facebook, когда из лондонского офиса FB его схантили во Flo. В интервью dev.by Вадим рассказал, как предотвращал в фейсбуке преступления и суициды, почему променял корпорацию на стартап и какой прорыв готовит во Flo.

10 комментариев
Flo переманила из Facebook крутого разработчика, он «вычислял» самоубийц и педофилов. Говорим про ML и зп

Вадим Никулин из Ярославля имел опыт работы в Яндексе, Microsoft и Facebook, когда из лондонского офиса FB его схантили во Flo. В интервью dev.by Вадим рассказал, как предотвращал в фейсбуке преступления и суициды, почему променял корпорацию на стартап и какой прорыв готовит во Flo.

Вадим Никулин

Родился в Ярославле. В 2006 году окончил математический факультет Ярославского государственного университета по специальности «Прикладная математика и информатика». Участник олимпиад по программированию ACM ICPC, в 2006 году дошёл до финала. 

На 2-м курсе начал работать в компании «Тензор». В 2009 году устроился в московский офис Яндекса. Начинал как backend-разработчик, переключился на ML и Data Science. В Яндексе занимался финальной стадией поискового ранжирования — компонентом, который смешивает все материалы, релевантные запросу (новости, статьи, видео, картинки) и выдаёт пользователям в определённом порядке. 

В 2016 году устроился в Microsoft и переехал в Лондон. Там в течение года занимался ранжированием поисковых подсказок в системе Bing. 

В 2017 году перешёл на позицию старший ML-разработчик в лондонский офис Facebook.

В 2021 году принят на позицию Data Science Lead в лондонский офис Flo.

Содержание

Как всё начиналось

— Пока учился, я много участвовал в олимпиадах, даже съездил на финал ЧМ по программированию на 1-м курсе аспирантуры, и это определило мой карьерный путь. ACM ICPC (Association for Computing Machinery International Collegiate Programming Contest) спонсируют IBM, Google и другие большие компании. Если они тебя замечают, то дальше ты идёшь в этом направлении довольно просто.

Тогда я отправил резюме одновременно в Google и Яндекс, Яндекс ответил довольно быстро, и я переехал в Москву. Там занимался сначала бэкендом, но в какой-то момент переключился на Machine Learning и так и остался в Data Science и ML-инженерии.

В Яндексе я занимался финальной стадией поискового ранжирования, в зоне моей ответственности был компонент, который смешивает ответы на запрос из всех источников — тексты, видео, картинки, новости, музыку — и выдаёт в определённом порядке.

Всё было хорошо: интересные задачи, классная команда, но мне хотелось чего-то более масштабного. Так в 2016 году я оказался в Лондоне.

Сначала я устроился в Microsoft. Там занимался ранжированием поисковых подсказок в системе Bing. А через год получил оффер из Facebook на позицию старшего ML-разработчика.

Легко ли было попасть в Facebook?

С технической частью сложностей не было: в Яндексе сильная база, и любой человек оттуда решит олимпиадные задачи, которые в FB предлагают на собеседовании.

А вот на behavioral interview, где проверяются личностные качества и мотивация, могут быть сложности. У меня они тоже были, поэтому в Facebook попал только со второго раза.

Это просто разница в подходах. В Яндексе команды были устроены иначе, у сотрудников были другие роли (не было менеджеров, были тимлиды), не было чёткой продуктовой линии. На собеседовании нужно было приводить примеры взаимодействия, а они оказались нерелевантными.

Условно: в Яндексе мы «посидели вечером в кафе, побрейнштормили и через пару дней запилили протототип», а в западной компании фокус на процессах и проработке продукта.

И у того, и у другого подхода есть свои плюсы и минусы. И вообще многое зависит от той стадии, на которой находится компания.

В Facebook важна культура фидбека — то, как люди подстраиваются под других, как реагируют на замечания, как разрешают конфликты. Причём под конфликтами в FB и Яндексе понимают совершенно разное.

В FB конфликты касаются ресурсов, это про разные подходы к решению задач. Где-то нужно быть «более data-driven», то есть принимать решения на основе данных, где-то — убедить менеджера работать в таком-то направлении, где-то — мотивировать человека из другой команды.

Когда людей из России спрашивают про конфликты, они рассказывать нереалистичные вещи, которых здесь не может быть в принципе.

Как кто-то кружку не помыл?

Ну, например. Или в лифте наступил на ногу. Это совсем другое.

Чем занимался в Facebook

Я стремился в Facebook, потому что всегда хотел работать в сфере защиты пользователей.

В лондонском офисе компании два основных направления: реклама (увеличение кликов, монетизация) и защита пользователей от разных угроз  — false news, скама, вымогательства и т. п.

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

Потом (в FB принято менять задачи, чтобы люди не засиживались на одном месте) мы занялись поиском людей, которые собираются совершить самоубийство — чтобы можно было вмешаться и предложить помощь. 

Поиск потенциальных самоубийц и педофилов — автоматизированный, вы составляли алгоритмы?

Да, это машинное обучение. Инженеры пишут алгоритм, который анализирует социальный профиль человека: его интересы, на какие группы подписан, какие тексты пишет, какие картинки постит. Какие-то подозрительные вещи отправляются на ручную проверку, и специалист смотрит, что происходит с человеком.

Этот алгоритм работает только в англоязычном сегменте?

Нет, не только. Потому-то мне и хотелось перейти из Яндекса в Facebook, что масштаб задач там другой — написать не просто алгоритм, а такой, который будет эффективно работать во всех странах.

То есть этот алгоритм масштабируется на все языки сразу?

Есть разные подходы. Можно использовать переводчик — это самый простой вариант, но обычно он работает хуже, так как при переводе смыслы искажаются. Эффективнее использовать переводчик только на уровне разметки, потом доразмечать данные вручную и после этого создавать алгоритм, который будет детектировать плохие события, анализируя тексты на всех языках.

Например, каждый текст и картинку можно преобразовать в набор чисел — так, что тексты на разных языках с одинаковым смыслом будут проектироваться в одинаковый или похожий набор чисел. Это векторное представление контента.

Насколько эта работа была интересной и эффективной?

Очень интересной.

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

Но с самими кейсами вы не сталкивались, просто отвечали за разработку?

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

Где ещё использовались такие алгоритмы?

Моей сферой были защита детей и суициды. А вообще команда занималась и другими направлениями — например, анти-скам или дезинформация: false news про вакцины или ковид.

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

В случае с преступниками и самоубийцами информацию, наверное, передают в полицию и службы психологической помощи. А как соцсеть реагирует на дезинформацию — блокирует?

Нельзя просто так взять и удалить fake news — общественность на это реагирует очень негативно: «раз удаляют, значит, им есть что скрывать по этому вопросу». Поэтому при публикации контента на определённые темы соцсеть автоматически добавляет ссылку на проверенные источники: например, в посте говорится про негативные последствия вакцинирования,  а рядом —  статья из медицинского журнала.

В Facebook огромный массив скам-рекламы, на которую соцсеть никак не реагирует.

Предположу, что просто не хватает ресурсов из-за ковида.

Это началось задолго до ковида: безымянные ролики о больных детях, призывы потестить «блокчейн-платформу Дурова» и т. д. Обращения в службу поддержки не помогают.

Это зависит от рынка: на западных рынках у Facebook больше людей, там оперативнее реагируют на скам, а русскоязычному сегменту внимания меньше. Но ничего лучше, чем сообщать о таких постах, не придумаешь. Если наберётся критическая масса жалоб, они заметят и начнут бороться.

Как завлекала и переманивала Flo 

Вас из Facebook во Flo переманивали? Или вы к тому времени уже сами созрели уйти?

Конечно, переманивали. Сначала было просто: давайте поговорим. Ну, давайте. Поговорили — я понял, что миссия мне очень интересна. Обсудили задачи. А вот когда дело дошло до оффера, было совсем непросто принимать решение.

Вы не были тогда в активном поиске?

Нет, я ничего не искал. Правда есть нюанс: в начале 2020 года я получил визу Global Talent, которая позволила мне работать в UK без привязки к конкретному работодателю. До этого для смены работы нужно было получать специальные разрешения. Визу мне дали, так как у меня есть несколько патентов в Яндексе, а ещё я соавтор нескольких научных статей и книги об олимпиадном программировании.

Получив Global Talent, я перестал зависеть от Facebook, и хотя планов на уход у меня тогда не было (виза просто облегчала получение ВНЖ), это ощущение свободы, видимо, подспудно повлияло: предложения стали потихоньку сыпаться, и вот одно я принял.

Почему променяли корпорацию на стартап? Надоело быть винтиком? 

Нет, как раз наоборот: в Facebook появлялись очень интересные задачи, там был понятный рост на обозримое время — работать на кросс-тим, делать вклад в пару десятков команд, вырабатывать процессы и их масштабировать.

Я не чувствовал себя винтиком. 

Но мне всегда хотелось поработать в стартапе, где меньше людей, проще атмосфера, можно запросто поговорить с СТО и внести значительный вклад в процессы. И ещё меня привлекал Health Tech — направление, в котором приносишь пользу людям. В общем, звёзды сошлись.

По зарплате Flo переплюнула Facebook?

Работа в стартапе — всегда risk reward: нужно балансировать между риском и вознаграждением.

В краткосрочной перспективе переход во Flo для меня скорее небольшой откат: тут очень достойная зарплата, просто в Facebook через год у меня скорее всего было бы больше. Но с учётом перспектив Flo — очень хороший выбор. Если удастся осуществить задуманное, сделать технологический скачок, то при выходе на IPO это будут совсем другие суммы.

Вы сменили Facebook на стартап в надежде поучаствовать в технологическом прорыве и IPO?

Здесь много всего сошлось: миссия, возможность прямо влиять на процессы. Ну, и перспектива IPO тоже привлекает.

Про технологический скачок во Flo, за которым маячит IPO

Расскажите о технологическом прорыве: чем вы занимаетесь во Flo?

По сути, тем же, что и в FB — автоматизацией пайплайн-процессов. Я ускоряю экспериментирование и обобщаю работу ML-инженеров таким образом, чтобы запускать больше задач одновременно, сокращая время подготовки релизов.

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

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

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

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

Как вы это делаете?

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

Наша цель — убедиться, что мы в состоянии построить такое дерево решений и правильно подобрать коэффициенты. Если удастся валидировать этот подход, сможем строить модели быстрее.

Это просто опросник? А где там большие данные?

В каждом узле графа есть некоторая выборка пользователей, которые попадают туда в зависимости от ответов. Эту выборку мы разбиваем на более мелкие и даём персональные рекомендации.

Но это необязательно опросник, в граф могут попадать данные с умных часов и других девайсов, которые передают телеметрию о состоянии пользователей — сердечный ритм, температуру, активность. Эти сигналы можно автоматически интерпретировать с помощью дерева решений.

Например, вариабельность сердечного ритма — очень важная информация, которая говорит о состоянии организма. С её помощью можно измерять стресс, сон, возраст. Мы работаем над тем, чтобы эти сигналы включить в наши предсказания: оценивать с их помощью общее состояние организма и делать рекомендации: поменять диету, больше двигаться и т. д. Тут много направлений для работы.

У вас нет прямой обратной связи с пользователями, когда бы они давали живой фидбек об эффективности предсказаний?

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

Как вы убеждаетесь в точности предсказаний?

Предсказания померять очень просто: мы знаем, что предсказали и что было на самом деле. Потом просто оптимизируем разницу. Допустим, пользователь отвечает на вопрос, есть такой симптом или нет. Есть — значит мы верно оценили. В отношении цикла можно просто измерить отклонение фактического от предсказанного.

Как сейчас собираются и передаются данные с умных девайсов?

Это зависит от модели. Например, Apple создаёт свою инфраструктуру, в которой хранит большой объём информации, её частью он готов делиться с разными приложениями. Мы запрашиваем у пользовательниц разрешение на использование этих данных и таким образом можем делать какие-то выводы.

Есть ли проблемы в том, как правильно проанализировать и интерпретировать данные?

Много проблем. Одна из них в том, что основная часть информации идёт ночью, когда часы как правило на зарядке. Нет смысла мерять температуру днём, когда человек активен. Наиболее точное измерение — в состоянии покоя.

Мотивировать пользовательниц носить часы ночью, а заряжать их днём — нетривиальная задача. А ещё надо убедить их поделиться этой информацией. 

Поэтому сначала надо сделать продукт, который их заинтересует, и извлечь правильные метки для наших целей. После этого улучшить предсказания и сделать какие-то дополнительные продукты.

Flo давно работает с поликистозом. А какие ещё заболевания вы собираетесь предсказывать в обозримом будущем? Вы не случайно упомянули эндометриоз?

Мы не предсказываем заболевания — мы помогаем человеку увидеть закономерность симптомов, возможно, указывающих на заболевание, и советуем обратиться к врачу.

Эндометриоз — достаточно распространённое состояние, но в нашем роадмапе конкретных заболеваний пока нет. Сейчас мы фокусируемся на процессе, чтобы проходить путь от нуля до фичи, которую можно вывести в продакшн, за 3-4 месяца. Когда плейбук будет готов, можно будет выбирать самые частотные заболевания и работать с ними.

Именно поэтому первая история — поликистоз: так как минимум 10% женщин ему подвержены.

Температура, вариабельность сердечного ритма и т. д. относятся не только к женскому здоровью. Собирая эту информацию, не захотите ли расшириться в сторону здоровья вообще?

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

То есть болезни сердца предсказывать не будете?

Это не наш фокус. Планов на экспансию за пределами сегмента женского здоровья пока нет.

«В Минске пытался прибиться хоть куда-нибудь». Дима Богданов изобрёл механизм attention и работает с лауреатом премии Тьюринга. Говорим про ML и Монреаль
«В Минске пытался прибиться хоть куда-нибудь». Дима Богданов изобрёл механизм attention и работает с лауреатом премии Тьюринга. Говорим про ML и Монреаль
По теме
«В Минске пытался прибиться хоть куда-нибудь». Дима Богданов изобрёл механизм attention и работает с лауреатом премии Тьюринга. Говорим про ML и Монреаль
«Потолок карьеры с PhD намного выше чем без». Денис Ярец изучает AI в научной лаборатории Facebook. Говорим про ML RL мотивацию и перспективы
«Потолок карьеры с PhD намного выше, чем без». Денис Ярец изучает AI в научной лаборатории Facebook. Говорим про ML, RL, мотивацию и перспективы
По теме
«Потолок карьеры с PhD намного выше, чем без». Денис Ярец изучает AI в научной лаборатории Facebook. Говорим про ML, RL, мотивацию и перспективы
Помогаете devby = помогаете ИТ-комьюнити.

Засапортить сейчас.

Читайте также
TinyML, No-code и обучение с подкреплением: новейшие тренды в машинном обучении
TinyML, No-code и обучение с подкреплением: новейшие тренды в машинном обучении
TinyML, No-code и обучение с подкреплением: новейшие тренды в машинном обучении
Пока 20% топ-менеджеров утверждают, что машинное обучение является существенной частью их бизнеса, неудивительно, что стоимость мирового рынка машинного обучения, по некоторым оценкам, достигнет $117 млрд к концу 2027 года. Мы перевели материал Udacity о семи самых обсуждаемых тенденциях в машинном обучении в 2022 году.
Как беларуские выпускники поступают в Польшу и Россию — и повлияла ли война. 4 истории
Как беларуские выпускники поступают в Польшу и Россию — и повлияла ли война. 4 истории
Как беларуские выпускники поступают в Польшу и Россию — и повлияла ли война. 4 истории
dev.by искал молодых людей, которые поступили этим летом в вузы за границу, — отозвались 4 человека. Двое выбрали Польшу, ещё двое  Россию (для одного это временный вариант, он планирует перепоступить в следующем году).  Спросили у ребят, как они выбирали вузы, куда поступали одноклассники и как на выбор повлияло вторжение России в Украину (и вчерашние новости о мобилизации). 
7 комментариев
EnCata будет штамповать заводы, которые штампуют дома
EnCata будет штамповать заводы, которые штампуют дома
EnCata будет штамповать заводы, которые штампуют дома
«Строительная отрасль полностью дисфункциональна», — говорит СЕО EnCata Олег Кондрашов. И предлагает «реанимировать стройку»: повторить успех Генри Форда и запустить конвейер, который будет штамповать модульные дома. А ещё — запустить мобильные заводы с этими конвейерами. Первый тестовый дом с железными стенами и окнами в пол уже построен — в нём 2 года как живёт СЕО. А сейчас в Великом камне достраивают тестовый завод. Есть ли будущее у проекта и какое, рассказывает dev.by Олег Кондрашов.
9 комментариев
Пара айтишников переехала в Австралию. Впечатления, цены, жильё
Пара айтишников переехала в Австралию. Впечатления, цены, жильё
Пара айтишников переехала в Австралию. Впечатления, цены, жильё
15 комментариев

Хотите сообщить важную новость? Пишите в Telegram-бот

Главные события и полезные ссылки в нашем Telegram-канале

Обсуждение
Комментируйте без ограничений

Релоцировались? Теперь вы можете комментировать без верификации аккаунта.

Micah Teeuws
Micah Teeuws
4

Я стремился в Facebook, потому что всегда хотел работать в сфере защиты пользователей.

¡¡¡дед-юморист!!!

vsv
vsv
2

cудя по результатам выдачи Bing и факт-чекинга Facebook-а не всё удалось сделать, как хотелось) (шутка)))...
Healthcare - интересная и очень сложная область - удачи на новом месте!!
Автоматизация ML - MLOps - Google с Tensorflow Extended вроде уже автоматизировал ML Pipelines.. (но там довольно сложно всё, конечно)

Anonymous
Anonymous Much Wow Very Engenieer в t.me/it_destruct
20

Мужик голова конечно, удачи с задуманным!
Интервью нормальное - давайте побольше такого, а не сколько синьоров купило себе крипту, раз уж про Прукопэню ничего писать нельзя.

dzheki-chan
dzheki-chan
1

Интересно

Anonymous
Anonymous
1

Движемся в сторону Китайской модели общества, один не умелый репост или лайк и жизнь пошла по п.....

Anonymous
Anonymous
1

Сильное интервью!

Юрий Зеленский
Юрий Зеленский
1

Хороший материал, спасибо причастным!

Ed Bobrovnik
Ed Bobrovnik Chief Loafing Officer в eternity ltd
4

Если есть машинное обучение, которое предотвращает суициды, то может быть и машинное обучение, которое мотивирует сотрудников к труду, внушает им значимость и наполняет их жизни смыслом. А так же машинное обучение, которое переманивает сотрудников. То есть машинным обучением можно переманивать сотрудников, занимающихся машинным обучением и машинным же обучением убеждать их в значимости и важности их работы.

zhernosekim
zhernosekim
-1

Запросто и уже скоро.

vlm
vlm
1

"при публикации контента на определённые темы соцсеть автоматически добавляет ссылку на проверенные источники: например, в посте говорится про негативные последствия вакцинирования, а рядом — статья из медицинского журнала"
давайте назовем вещи своими именами: автоматизированная реклама и пропаганда)