«Заменять людей роботами может быть экономически нецелесообразно — человеческий труд зачастую дешевле»
Бывший руководитель машинного обучения в «Яндекс.Такси» Виктор Кантор об автоматизации труда и навыках, которыми должен обладать соискатель в сфере data science.
Виктор Кантор заинтересовался анализом данных, когда учился в МФТИ. Во время учёбы он основал сервисы для работы с текстом с помощью машинного обучения. А после выпуска специалист занимался оптимизацией бизнес-процессов в ABBYY, Yandex Data Factory и «Яндекс.Такси».
Сейчас он консультирует «Яндекс.Такси», ведёт образовательный проект Data Mining In Action и курсы по анализу данных на Coursera. В интервью vc.ru Виктор Кантор рассказал, как отличить хороших специалистов от плохих, почему его беспокоит ажиотаж вокруг машинного обучения и как связаны любовь к путешествиям и число детей.
Ты родился в небольшом городе в Белгородской области. Как ты узнал о машинном обучении и заинтересовался ИТ?
Когда я жил в Губкине, то ничего не знал о машинном обучении. Я учился в школе, мне нравились гуманитарные предметы — литература, английский язык. Я даже участвовал в олимпиадах по ним, но у меня не очень выходило. А когда углубился в физику и математику, то понял, что это моё.
В 16 лет я поступил в МФТИ на факультет инноваций и высоких технологий. О машинном обучении я узнал только на третьем курсе. Тогда вокруг него ещё не было такого ажиотажа, как сейчас.
За ИТ-образование на факультете отвечал Никита Пустовойтов — теперь он руководит анализом данных в DoubleData. Он разбирался в машинном обучении и пользовался славой одного из самых жёстких преподавателей на факультете. Я решил, что у него будет чему поучиться, и начал работать над студенческим проектом под его руководством.
Чем ты занимался, когда выпустился из МФТИ?
Сперва я устроился разработчиком на C++ в ABBYY Lingvo. Там были интересные задачи, но 90% времени нужно было монотонно программировать. Я почти не общался с коллегами: можно, конечно, поговорить, но код сам себя не напишет. В итоге я решил уйти до конца испытательного срока, но в компании нашли способ, как меня удержать.
Мне предложили заниматься образовательными проектами, а преподавание — моя вторая страсть после машинного обучения. Потом фокус моей работы сместился, и я уже половину времени занимался машинным обучением, а вторую — образованием. Мне очень понравилось так работать — я даже не думал, что такие вакансии можно создать.
В 2015 году я перешёл в Yandex Data Factory. Мой отдел занимался проектами в сфере анализа данных на заказ. Это было круто, потому что ты мог познакомиться с разными индустриями: промышленностью, ритейлом, сферой услуг.
В какой-то момент в «Яндекс.Такси» нужно было выстроить команду машинного обучения, а в Yandex Data Factory я руководил небольшой группой аналитиков. До этого у меня уже был небольшой опыт руководства — я управлял студенческими стартапами, когда учился в МФТИ.
Когда я пришёл в Data Factory я думал: хватит с меня — отдохну и буду отвечать только за себя. Но в итоге всё равно приходишь к тому, что берёшь ответственность за других.
Я выстроил службу, которая занимается машинным обучением для «Яндекс.Такси», и продолжил заниматься своими делами — консультированием и преподаванием. Разработкой автомобилей-беспилотников я не занимался, у проекта есть собственная команда, и это отдельный мир.
Пока я не интересовался задачами, связанными с беспилотными автомобилями или чем-то таким. Я занимался в основном применением машинного обучения для бизнес-процессов — не для того, чтобы через несколько лет сделать прорывную технологию, а чтобы оптимизировать затраты на рекламу или сделать удобный интерфейс приложения.
Что давалось тебе сложнее всего, когда ты занялся машинным обучением?
Самое сложное — это не алгоритмы, не математика и не Python, а сделать так, чтобы твоя модель работала. Когда я только начинал, то был самоучкой. Мне недоставало и теоретических знаний, и опыта.
Уже тогда я понял, что не нужно сразу прикручивать сложные модели, — лучше начинать с простых, но рабочих. И это было правильной идеей: чтобы решить какую-то задачу, необязательно использовать машинное обучение.
На четвёртом курсе МФТИ у меня уже был формальный курс по машинному обучению — стандартный, по программе совпадающий с известным курсом Воронцова.
К концу курса я научился доказывать различные утверждения, формулировать теоремы про алгоритмы, рассказывать, как они работают. В общем, мог рассказать много чего интересного, а вот сделать что-то рабочее — нет.
Это было проблемой. Первые два года, которые я занимался машинным обучением, я пытался сделать что-то работающее, но работало всё так себе.
Потом у меня накопился опыт, а в открытом доступе появилось много библиотек, в которых можно было использовать готовые реализации, и я стал реже допускать ошибки.
Расскажи о своём опыте основания стартапов.
Мой первый проект Smart Tagger был связан с семантическим анализом текстов. Мы занимались автоматическим тегированием документов — например, если человек хочет найти на компьютере файл на определённую тему, но не помнит точных ключевых слов.
По этой теме написано много научных статей, но хорошей практической реализации у неё пока нет — к задаче до сих пор возвращаются разные команды. Есть ещё вопрос того, зачем это нужно и как это будет монетизироваться, потому что люди привыкают к хаосу в документах и сами придумывают, как с ним бороться.
В стартапе я больше занимался не машинным обучением, а поиском инвестиций, менеджментом и презентациями. Может и хорошо, что я особенно не трогал разработку продукта — всё равно тогда толком ничего не умел. Проблема была в том, что мы не до конца понимали, как решать задачи, которые стоят перед проектом. Деньги инвесторов мы честно пропрограммировали, но поняли, что за амбициозные задачи нужно браться с более высоким уровнем экспертизы.
После этого мне стало интересно, получится ли у меня собрать команду, которая сделает что-то работающее.
Понятно, что ещё нужно задумываться о том, чтобы сделать полезный продукт, но для меня это тогда было слишком сложно. Так мы с ребятами собрались и сделали сервис для выделения ключевых мыслей в тексте 2long2read.
2long2read можно было использовать для аннотирования отдельных документов или же как плагин для браузера. Я сам пользовался сервисом, когда мне нужно было ознакомиться с большим объёмом текста за 5-10 минут. Ещё проект был популярен у студентов МФТИ, особенно, когда они готовились к экзаменам по философии.
Объективно сервис был не слишком полезным — люди и сами могут прочитать текст «по диагонали». Вот если бы наше приложение могло строить аннотацию сразу для многих текстов, то оно могло бы взлететь. Но для команды основателей проект всё равно закончился хорошо: ребят взяли работать в Surfingbird. Потом одного парня переманил «Яндекс», а другой переехал заниматься машинным обучением в Амстердам.
Сейчас я понимаю, что это было очень смело: ничего не умея, пытаться основать свой бизн��с. После опыта работы в компании получилось бы, конечно, продуктивнее.
Сейчас не рассматриваешь работу над стартапом?
Всё может быть, но для этого нужно найти хорошее применение машинного обучения — например, автоматизацию какого-то монотонного процесса.
Пока что я развиваю образовательный проект по машинному обучению Data Mining In Action и веду онлайн-курсы на платформе Coursera – сейчас их слушает 25-30 тысяч пользователей. Я думаю, что в золотую лихорадку нужно производить кирки, а в эпоху ажиотажа вокруг анализа данных — специалистов по нему. Для меня это главная страсть, и мне интересны именно стартапы в сфере образования.
Что ты думаешь об автоматизации труда?
Она обнажает много проблем, которые есть в обществе, причём не только какого-то экономического толка. Мне кажется, главная из них в том, как мы смотрим на какие-то вещи, и как мы думаем.
Например, люди часто мыслят стереотипно. Мы думаем, что когда человек интересуется несколькими вещами сразу — это плохо, и ему нужно выбрать какой-то вектор. Но вдруг завтра его профессии не станет, или она окажется недостаточно прибыльной? Тогда хорошо, что в своё время он интересовался разными вещами.
Ещё есть стереотипы о том, как стоит получать образование. У нас, конечно, есть пословицы вроде «Век живи, век учись», но мы не следуем им в обычной жизни. Люди заканчивают университет, начинают работать и думают: «Всё, теперь я по накатанной приобретаю опыт».
На самом деле, учиться нужно всю жизнь. Это большое удовольствие, которое ещё и открывает новые возможности.
Роботизация труда учит нас тому, что мы должны быть устойчивее к разного рода катаклизмам. Экономические потрясения и непредвиденные кризисы наступают каждые несколько лет. Казалось бы, люди уже должны понимать, что не нужно брать кредиты, нужно делать резервные накопления.
Инвестировать всё своё время в единственное направление деятельности — плохая идея. Но люди пока неохотно свыкаются с этой мыслью.
Развитие технологий нас подстёгивает. Пока нет какого-то дедлайна, люди думают: «Вот потом я изменю свой взгляд на жизнь». А когда человек понимает, что его труд могут автоматизировать, то он уже задумывается о повышении квалификации или новой карьере. Но специалистам в области data science это пока не грозит.
Расскажи, как готовиться к отбору на позиции в сфере data science. Есть какие-то лайфхаки, чтобы соискателя ещё до собеседования посчитали крутым специалистом?
Во-первых, я не рекомендую делать так, чтобы про соискателя заранее думали, что он шарит. Всем интуитивно хочется выглядеть хорошо в глазах рекрутера, но собеседования — это двухсторонний процесс. Не только интервьюер собеседует кандидата, но и кандидат выясняет, интересна ли ему компания.
Гораздо хуже, чем не устроиться, — устроиться и потом страдать.
По-моему, собеседования — это очень случайный и неадекватный процесс, потому что люди субъективно оценивают других людей. Даже если пытаться внести объективность — задавать одинаковые вопросы и давать одинаковые задачи, то всё равно остаётся вопрос: «Почему рекрутер выбрал именно эти задачи, почему именно они должны показать, что кандидат хорош?».
Подготовка к отбору зависит от того, куда и на какую позицию вы подаётесь. Поэтому для начала я рекомендую узнать, как устроена процедура приёма в конкретной компании и поднять уровень именно в тех вещах, которые у вас будут спрашивать, даже если они относятся к машинному обучению опосредованно. Например, на собеседованиях часто идёт речь об алгоритмах и структурах данных.
Если кандидат до этого не сталкивался с какой-то технологией, но за неделю до собеседования смог в ней разобраться, это, наоборот, идёт ему в плюс. Это показывает, что когда он столкнётся с чем-то новым, то не войдёт в ступор, а сможет быстро сориентироваться.
При найме в «Яндекс.Такси» мы начинаем с простых вопросов и постепенно их усложняем, чтобы сэкономить время и себе, и соискателю, если он «плавает».
Сперва спрашиваем, какие стандартные задачи существуют в машинном обучении, какие алгоритмы знает человек. Потом о часто используемых методах. Например, о линейных моделях, решающих деревья, их ансамблях и нейросетях.
Если кандидат ориентируется, начинаем обсуждать конкретные прикладные задачи — как соискатель сформулировал бы задачу в терминах машинного обучения, как оценивал бы качество работы модели, какие методы использовал. Младшие аналитики на этом этапе уже начинают плавать — и это нормально, они решают более мелкие задачи.
Когда собеседуют ведущих специалистов в области data science, становятся важны лидерские качества человека и его способность организовать работу команды: приоритизировать задачи, решать конфликты.
Но понимание машинного обучения здесь всё ещё важно: руководитель должен понимать, какие процессы могут идти параллельно, а какие — нет, уметь оценить проделанную работу.
Какие у тебя стоп-сигналы при найме? Или, наоборот, флажки, когда ты понимаешь, что человека точно нужно брать?
Для меня очень хороший флажок — когда знания есть, а профильного образования нет. Если у меня на собеседовании возникает вопрос: «Откуда кандидат мог это узнать?», я испытываю искреннее восхищение собеседником. Он смог преуспеть несмотря на то, что ему не приносили всё на блюдечке. И с такими людьми всегда безумно интересно работать.
Продолжая тему стоп-сигналов: я со своим начальником из Yandex Data Factory часто спорил о том, стоит ли брать только людей, похожих на уже работающих сотрудников.
Я считал, что нужно не бояться нанимать необычных людей, чтобы команда была более разнообразной и генерировала больше интересных идей.
Мой руководитель ответил: «Это всё здорово звучит, но нужно учитывать, будет ли комфортно людям работать друг с другом. Если коллектив не сойдётся характерами, то на все замечательные идеи, которые должны появиться, будет уже наплевать».
Постепенно я свыкся с мыслью, что это правильный подход: нужно собирать людей, которым будет хорошо. Сейчас я могу не взять хорошего кандидата, если у меня есть опасения, что он не вольётся в команду.
Мне бывает стыдно за такой подход — если человек знающий, то он должен получить работу. Но нужно думать о команде и её производительности. Поэтому я всегда призываю кандидатов не воспринимать отказ как что-то негативное — результат собеседования не характеризует их как хороших или плохих людей.
По твоему опыту, как мотивировать аналитиков? Что важно: задачи, офис, зарплата?
Зависит от человека и от этапа профессионального развития. Про начальный этап часто говорят, что важен опыт, но зачастую дело всё ещё в зарплате — просто в будущей.
Задумываться именно об опыте сотрудники обычно начинают позже — когда понимают, что он у них есть, и его можно как-то монетизировать. Они уже понимают, что за счет своих компетенций могут начать преподавать, сделать свой стартап или консультировать какие-то сторонние проекты.
Получение опыта и его монетизация — это отдельные истории, и здесь важно найти компромисс.
Я думаю, что на начальном этапе важны деньги, а после какой-то суммы (у каждого она своя), человек понимает, что в компании не заработать столько денег, сколько ему хочется. Тогда он начинает задумываться об альтернативных способах получения денег, — а здесь уже ценен опыт.
Что касается хорошего офиса — мы не замечаем какие-то приятные мелочи, которые нас окружают. Например, если обычно заказываешь такси эконом-класса, а потом выбираешь тариф «комфорт», то думаешь: «Разве что машина другая, водитель немного вежливей». Но когда пересаживаешься обратно, уже замечаешь разницу.
То же самое и с офисом — после «Яндекса» человеку будет тяжело работать в скучном необставленном помещении.
Как выглядит карьерный путь аналитика? Как изменяются задачи при этом?
Сначала работник становится стажёром или джуниором — и ему буквально говорят, что делать. Например: «Сделай модель, которая будет прогнозировать эту величину». И дальше джуниоры готовят данные и признаки, на основе которых модель будет принимать решения.
Разница между джуниорами и людьми, у которых больше опыта, в том, что менее опытного нужно проверять.
Главные признаки опытного специалиста — автономность и редкие ошибки. В зависимости от них человека повышают, сначала до сениора, потом до lead data scientist. Ему говорят: «Ты такой классный специалист, давай ты теперь будешь руководить людьми». Это нелогичная вещь — то, что человек разбирается в машинном обучении, не значит, что из него выйдет хороший начальник.
Когда специалист начинает руководить командой, он всё меньше делает что-то руками и всё чаще ходит по встречам. Но так или иначе нужно поддерживать свои компетенции, иначе однажды посмотришь на код своих подчинённых и не поймёшь, о чём речь.
А с какими самыми интересными кейсами ты сталкивался, когда работал в «Яндексе»? Были ли случаи, когда интуиция говорила одно, а данные другое?
Когда смотришь на результаты своей работы и долго думаешь, то можешь объяснить всё, что угодно. Но, конечно, были примеры, которые сначала удивляли, и только потом находилось какое-то объяснение.
Была, к примеру, такая задача: определить, у каких из пользователей «Яндекс.Такси» двое или больше детей. Понятное дело, что они нам не сообщают об этом, и никакого счётчика детей тоже нет.
В то же время есть такой момент, что если у человека двое детей, то ему нужно два детских кресла при заказе такси. Мы запустили возможность вызывать машины с двумя детскими креслами, но пользователям нужно было о ней как-то рассказать. При этом мы хотели сделать адресную рассылку, чтобы не спамить тем, у кого детей нет.
Данные мы могли получить из истории поиска, например, проанализировав интересы человека, а примеры пользователей с двумя детьми — по накопившимся за несколько месяцев просьбам подать машину с двумя детскими креслами в комментарии к заказу. Выяснилось, что факторы, которые хорошо коррелируют с количеством детей — частые путешествия и любовь к средиземноморской кухне.
Потом поняли, что если человек много путешествует и любит вкусно поесть (и ему при этом достаточно лет), то, скорее всего, у него хватает денег, чтобы завести второго ребёнка.
На vc.ru недавно был материал о том, как найти мужа с помощью воронки продаж. Получится ли сделать подобное, используя машинное обучение?
Я видел публикации о людях, нашедших вторую половину при помощи машинного обучения, например, на «Хабре». Но в реальности это намного сложнее, чем использовать воронку продаж. Машинное обучение бывает с учителем или без. С учителем обучать модели проще, а качество результата лучше, но для этого требуется разметка данных. Можно использовать идею воронки продаж, на каждом этапе сохранять удачные и неудачные примеры, и на них обучать классификатор.
Но чтобы машинное обучение работало, нужны тысячи, а лучше десятки и сотни тысяч примеров, поэтому на данных одного ищущего себе пару человека не обучишься. А если задействовать сервис знакомств вроде Tinder, где хранятся данные миллионов людей, то пользователю достаточно нескольких действий, чтобы получить сносные рекомендации.
Модель уже видела тысячи пользователей, похожих на него, и разберётся, кого ему посоветовать. При этом встаёт вопрос о том, что считать успехом. Если десятилетия счастливой совместной жизни — нужно чтобы в об��чающей выборке было много таких примеров, а собирать их сложно.
Если же применять обучение без учителя, то нужно делать какие-то предположения о том, какие люди друг другу подходят: например, люди с похожими интересами или наоборот дополняющие друг друга. К сожалению, многие предположения на этот счёт антинаучны — например, совместимость знаков зодиака или типов личности в соционике.
Поэтому работать это всё будет ровно до той степени, до которой получится убедить пользователей, что партнёра нужно искать именно так — своеобразный эффект плацебо.
Видишь ли ты какие-то негативные последствия распространения машинного обучения?
Поводы для беспокойства такие же, как и с любой специальностью, вокруг которой возникает ажиотаж. Ажиотаж приводит к тому, что появляется много людей, которые не разбираются в том, что делают, но продолжают этим упорно заниматься.
А большое количество таких людей приводит к тому, что работа может быть сделана плохо. Например, мои дальние знакомые занимались проектом для фармакологической компании.
Они создали нейросеть, которая определяла, с какой вероятностью приём лекарства вызовет побочные эффекты. И аналитики выбрали такой метод оценки качества, который приводил к тому, что пытаясь оптимизировать выбранную метрику качества, она выдавала не точные вероятности, а округляла их. Понятно, что округление вниз занижало риски для пациентов, а это чревато.
Хорошо. А если говорить про социальные аспекты?
Придётся смириться с тем, чтобы постоянно учиться и быть готовыми сменить место работы. Есть распространённое клише «людской труд станет не нужен». Я с ним не согласен.
Было много технологических прорывов, при которых люди становились нужны меньше, например, появление заводов, промышленная революция. Но это просто приводит к тому, что больше ценится какой-то творческий, интеллектуальный труд. В конце концов автоматизированными системами должен кто-то управлять.
Есть много нерешённых задач, которые стоят перед человечеством и которыми хорошо бы было заняться.
К тому же, заменять людей роботами может быть экономически нецелесообразно, — человеческий труд зачастую дешевле. Можно попытаться автоматизировать какой-то процесс, но в это нужно закладывать зарплаты людей, которые будут разрабатывать и поддерживать такую систему.
Что думаешь про концентрацию данных у технологических корпораций — Facebook, Google, Amazon?
Есть строгие правила для сотрудников насчет того, как с этими данными можно обращаться. Допустим, от меня ушла и переехала девушка, а я работаю в «Яндексе» и хочу её найти, чтобы продолжить доставать.
Во-первых, проблемы возникнут ещё в начале реализации плана — данные хранятся в обезличенном виде. Во-вторых, если вскроется, что я пытался сделать что-то подобное, меня уволят и вряд ли возьмут заниматься машинным обучением в другую компанию. Поэтому ни один человек в здравом уме не будет пытаться так сделать.
А если говорить о том, что компании могут целенаправленно использовать собранные данные?
Когда знаешь, как всё внутри устроено, и какие могут быть потенциальные риски — пусть даже очень размытые, то всё равно волнуешься. C одной стороны то, что я видел в «Яндексе» меня немного успокаивает — информация хранится очень аккуратно. С другой стороны, будучи специалистом по машинному обучению, я не хочу предоставлять кому-то слишком много данных о себе. Я понимаю, что на их основе можно сделать очень подробные выводы.
Дело даже не в том, что мне хочется что-то скрыть, — неприятно чувствовать, что тебя видят насквозь, даже если это алгоритм, а не человек.