Как Data Science продает вам рекламу? Интервью с инженером Unity
Неделю назад в наших соцсетях выступал Никита Александров — Data Scientist в Unity Ads, где он улучшает алгоритмы конверсии. Никита сейчас живет в Финляндии, и кроме прочего он рассказал об IT-жизни в стране.
Делимся с вами расшифровкой и записью интервью
Меня зовут Никита Александров, я вырос в Татарстане и там же окончил школу, занимался олимпиадами по математике. После этого поступил на факультет компьютерных наук ВШЭ и там закончил бакалавриат. В начале 4 курса съездил на учебу по обмену, провел семестр в Финляндии. Мне там понравилось, я поступил в магистратуру университета Аалто, хотя не закончил ее полностью – я закончил все курсы и начал писать диплом, но ушел работать в Unity, не получив степень. Сейчас я работаю в Unity data scientist-ом, отдел называется Operate Solutions (раньше он назывался Monetization); непосредственно моя команда занимается доставкой рекламы. То есть, внутриигровой рекламы – той, которая выдается, когда вы играете в мобильную игру и нужно заработать дополнительную жизнь, например. Я работаю над улучшением конверсии рекламы – то есть, делаю так, чтобы игрок с большей вероятностью прошел по рекламе.
Как ты переехал?
Сначала я приехал в Финляндию учиться на семестр по обмену, после этого вернулся в Россию и закончил диплом. Потом я поступил на магистратуру в университет Аалто по machine learning / data science. Так как я учился по обмену, мне даже не пришлось сдавать экзамен по английскому; поступил легко, я знал, на что поступаю. Живу здесь уже 3 года.
Финский необходим?
Он необходим, если вы собираетесь учиться здесь на бакалавра. Очень мало программ на английском языке для бакалавров, нужен финский или шведский – это второй государственный язык, некоторые университеты обучают на шведском. Но в магистратуре и PhD большинство программ англоязычные. Если говорить про ежедневное общение и быт – тут большинство людей говорит на английском языке, примерно 90%. Люди нормально живут целыми годами (мой коллега живет вообще 20 лет) без финского языка.
Конечно, если вы хотите здесь оставаться жить, нужно хотя бы понимать финский на уровне заполнения форм – фамилия, имя и так далее.
Отличается ли качество обучения от университетов РФ? Дают ли всю необходимую базу для устройства джуниором?
Качество отличается. Как мне кажется, в России пытаются сразу давать много всего: сразу дифференциальные уравнения, дискретная математика и многое другое. На самом деле, нужно брать дополнительные материалы, в качестве курсовой или дипломной работы, что-то новое постигать самостоятельно, ходить на какие-то курсы. Здесь же мне было легко в магистратуре; я знал многое из того, что проходилось. Опять же, в Финляндии бакалавр – это еще не специалист, тут по-прежнему есть такое разделение. Вот если ты магистр, то можно устраиваться на работу. Я бы сказал, что в магистратуре в Финляндии важны социальные скиллы, важно участвовать, быть активным; есть исследовательские проекты. Если есть интересные для вас исследования, и вы хотите глубже копнуть, то можно получить контакты профессора, работать в этом направлении, развиваться.
То есть, ответ – «да», но нужно быть социально активным, цепляться за каждую возможность, если она есть. Один из моих друзей поехал работать в стартап в Долине – есть программа в университете, которая ищет подходящие стартапы и устраивает интервью. По-моему, потом он даже поехал в CERN.
Чем компания в Финляндии мотивирует сотрудников, какие плюшки?
Кроме очевидного (зарплаты), есть социальные плюшки. Например, количество декретного отпуска для родителей. Есть медицинские страховки, акции, опционы. Бывает необычное начисление отпускных дней. Ничего особенного, в основном.
У нас в офисе есть сауна, например.
Есть еще купоны – какое-то количество денег на обеды, на общественный транспорт, на культурно-спортивные мероприятия (музеи, спорт).
Что посоветовать гуманитарию для входа в IT?
Повторять школьный курс и поступать в ВШЭ? Часто прогеры имею математическую базу/олимпиады…
Я советую, конечно, подтянуть математику. Но не обязательно повторять школьный курс. Точнее, его надо повторять только в том случае, если не помните совсем ничего. Кроме того, надо определиться, в какое именно IT вы хотите пойти. Для фронтендера не обязательно знать математику: надо просто брать курсы по фронтенду и учиться. Моя подруга недавно решила записаться на курсы от компании Accenture, она сейчас учит Scala; она не гуманитарий, но опыта программирования у нее не было никакого. В зависимости от того, что вы хотите программировать и на чем, нужно разное количество математики. Конечно, для Machine Learning-специальности нужна математика, в том или ином ключе. Но, если вы хотите просто попробовать – есть много разных туториалов, открытой информации, мест, где можно поиграть с нейросетью или построить самостоятельно, или скачать готовую, поменять параметры и посмотреть, как она меняется. Все зависит от того, как сильна мотивация.
Если не секрет — зарплаты, опыт, на чем пишете?
Я пишу на Python — это универсальный язык для machine learning и data science. Опыт – был различный опыт; я был простым инженером в нескольких компаниях, был на стажировке несколько месяцев в Москве. Не было постоянной работы до Unity. Туда я пришел тоже как стажер, поработал стажером 9 месяцев, потом сделал перерыв, а теперь работаю уже год. Зарплата конкурентоспособная, выше медианной для региона. Начинающий специалист будет зарабатывать от 3500 EUR; в разных компаниях это разнится. В общем, 3.5-4 – начинающая зарплата.
Какие книги и туториалы посоветуете?
Я не особенно люблю учиться по книгам – мне важно попробовать на лету; скачать что-то готовое и пробовать у себя. Считаю себя больше экспериментатором, так что в книгах не могу помочь. Но я смотрел некоторые интервью и прямые эфиры здесь, там второй спикер подробно рассказывает про книги.
Туториалы — есть различные. Если вы хотите опробовать какой-то алгоритм – берите название алгоритма, метода, классы методов, и вбивайте в поиск. Что зайдет первой ссылкой, то и смотрите.
Сколько остается чистыми?
После налогов — надо брать налоги плюс 8% (которые как бы не налог, но налог) – остается 2/3 зарплаты. Ставка динамическая – чем больше зарабатываете, тем больше налог.
Какие компании обращаются за рекламой?
Нужно понимать, что Unity / Unity Ads занимаются рекламой мобильных игр. То есть, у нас есть ниша, мы очень хорошо разбираемся в мобильных играх, на Unity можно их создавать. Как только вы написали игру, вы хотите на ней заработать, и монетизация – один из способов.
Компании за рекламой могут обращаться любые – интернет-магазины, финансовые приложения разнообразные. Реклама всем нужна. Конкретно у нас основные клиенты – это разработчики мобильных игр.
Какие проекты лучше делать для повышения скиллов?
Хороший вопрос. Если мы говорим о data science, нужно прокачать себя через онлайн-курс (например, в Стэнфорде есть) или онлайн-университет. Есть разнообразные платформы, за которые нужно платить – например, Udacity. Там есть домашние задания, видео, менторство, но удовольствие это не из дешевых.
Чем уже ваши интересы (например, какой-нибудь reinforcement learning), тем сложнее найти проекты. Можно попробовать поучаствовать в kaggle-соревнованиях: заходите на kaggle.com, там много различных соревнований по машинному обучению. Берете то, к чему уже приложен какой-то baseline; скачиваете и начинаете этим заниматься. То есть, много способов: можно заниматься самостоятельно, можно походить онлайн-курс – бесплатный или платный, можно участвовать в соревнованиях. Если вы хотите искать работу в Facebook, Google и так далее, то нужно научиться решать алгоритмические задачи – то есть, надо идти в LeetCode, набивать руку там для того, чтобы проходить собеседования.
Опишите краткий роадмап обучения Machine Learning?
Расскажу в идеале, не претендуя на универсальность. Вы сначала проходите математические курсы в универе, вам нужно знание и понимание линейной алгебры, теории вероятности и статистики. После этого вам кто-то рассказывает про ML; если вы живете в крупном городе, то в нем должны быть школы, предлагающие курсы по ML. Самая известная – ШАД, Школа анализа данных Яндекса. Если вы в нее пройдете, и вы сможете проучиться два года, то вы получите всю базу ML. Вам нужно будет дальше оттачивать скилл в исследованиях и в работе.
Если и другие варианты: например, у Тинькова есть курсы по машинному обучению с возможностью трудоустроиться в Tinkoff после окончания. Если вам это удобно – записывайтесь на эти курсы. Бывают разные пороги вхождения: например, в ШАД есть вступительные испытания.
Если вы не хотите идти на обычные курсы, можно начать с онлайн-курсов, которых более чем достаточно существует. Это зависит от вас; если у вас хороший английский — хорошо, найти будет легко. Если нет, то, возможно, тоже что-то да есть. Те же лекции ШАДа есть в открытом доступе.
После получения теоретической базы можно идти вперед – на стажировки, исследования и так далее.
Можно ли самому обучиться machine learning? Встречали ли вы такого программиста?
Я думаю, да. Только нужно иметь сильную мотивацию. Кто-то может сам выучить английский язык, например, а кому-то надо идти на курсы, и только так этот человек сможет выучиться. С ML все так же. Хотя я не знаю такого программиста, который бы научился всему сам, но, возможно, у меня просто мало знакомых; все мои друзья как раз обучались обычным способом. Я не берусь говорить, что 100% нужно обучаться так: главное – ваше желание, ваше время. Конечно, если у вас не математической базы, придется потратить много времени, чтобы наработать ее.
Вдобавок к пониманию того, что значит – быть data scientist’ом: я сам не занимаюсь data sci
ence как research. Наша компания – это не лаборатория, где мы разрабатываем методы, закрываясь на полгода в лаборатории. Я непосредственно работаю с production, и мне нужны инженерные скиллы; мне нужно писать код, иметь инженерные навыки, чтобы понимать, что как работает. Люди часто опускают эти особенности, когда говорят про data science. Есть множество историй о том, как люди с PhD пишут нечитаемый ужасный неструктурированный код, у них возникают большие проблемы после того, как они решают пойти в индустрию. То есть, в совокупе с Machine Learning не нужно забывать про инженерные скиллы.
Data science – это позиция, не говорящая о себе. Вы можете устроиться компанию, которая занимается data science, и вы станете писать SQL-запросы, или будет простая логистическая регрессия. В принципе, это тоже уже machine learning, но в каждой компании есть свое понимание того, что такое data science. Например, моя подруга в Facebook рассказала, что data science – это когда люди просто запускаю статистические эксперименты: кликают на кнопочки, собирают результаты и потом предоставляют их. При этом я сам улучшаю методы конверсии и алгоритмы; в некоторых других компаниях эта специальность может называться machine learning engineer. В разных компаниях все может быть по-разному.
Какие библиотеки используете?
Мы используем Keras и TensorFlow. Можно и PyTorch — это не принципиально, она позволяет делать все те же вещи – но в какой-то момент было принято решение использовать именно их. При существующем продакшене трудно менять.
В Unity есть не только data scientist’ы, которые оптимизируют алгоритмы конверсии, но и GameTune – это такая вещь, где вы улучшаете метрики в плане прибыли или retention с помощью различных туториалов. Допустим, кто-то поиграл в игру и сказал: мне непонятно, мне неинтересно – забросил; кому-то слишком легко, наоборот – он тоже забросил. Поэтому нужен GameTune – это инициатива, которая адаптирует сложность игр по способностям геймера, или по истории игр, или по тому, как часто он что-то покупает внутри приложений.
Также есть Unity Labs – можно это тоже загуглить. Там есть ролик: берется коробка из-под хлопьев, а на ее обороте есть игры вроде лабиринтов – но они совместимы с дополненной реальностью, и можно управлять человеком на картоне. Выглядит очень круто.
Можно поговорить непосредственно про Unity Ads. Если вы решили написать игру, и решили опубликовать ее и заработать, то придется решить некоторые трудные задачи.
Я начну с примера: вот Apple анонсировал запуск iOS 14. В ней потенциальный геймер может зайти в приложение и сказать, что не хочет шарить свой Device-ID кому-либо. При этом он соглашается с тем, что качество рекламы ухудшится. Но в то же время это сложная задача для нас, потому что, если мы не сможем идентифицировать вас, то мы не сможем собирать определенные метрики, и просто будем иметь меньше информации о вас. Оптимизировать работу в условиях мира, который больше стремится к конфиденциальности, к защите данных, для data scientist’а все труднее — данных становится все меньше, как и доступных методов.
Помимо Unity, есть гиганты вроде Facebook и Google – и, казалось бы, зачем нужен Unity Ads? Но нужно понимать, что в разных странах эти рекламные сети могут работать по-разному. Условно говоря, есть Tier 1-страны (Америка, Канада, Австралия); есть Tier 2-страны (Азия), есть Tier 2 (Индия, Бразилия). Рекламные сети могут работать в них по-разному. Также имеет значение используемый вид рекламы. Обычный ли вид, или реклама «за вознаграждение» (rewardable) – когда, например, чтобы продолжить с того же места после game over, нужно просмотреть рекламу. Разные виды рекламы, разные люди. В каких-то странах одна рекламная сеть лучше работает, в каких-то – другая. И еще, как дополнительное замечание – я слышал, что интеграция AdMob, которая у Google, сложнее, чем Unity.
То есть, если вы создали игру в Unity, то вы автоматически интегрированы в Unity Ads. Разница – в простоте интеграции. Что можно посоветовать: есть такая вещь, как медиация; в ней есть разные позиции: можно устанавливать позиции в «waterfall» (водопаде) для постановки рекламных placements. Можно сказать, например, так: хочу, чтобы по приоритету показывался сначала Facebook, потом Google, потом Unity. И, если Facebook и Google решат не показывать рекламу, то Unity покажет. Чем больше у вас рекламных сетей – тем лучше. Это можно рассматривать как инвестирование, но вы инвестируете сразу в разное количество рекламных сетей.
Еще можно рассказать про то, что имеет значение для успеха рекламной кампании. На самом деле, здесь нет ничего особенного: нужно следить, чтобы реклама соответствовала контенту вашего приложения. Можно, например, поискать в Youtube «app ads mafia» и посмотреть, насколько реклама может не соответствовать контенту. Еще есть приложение Homescapes (или Gardenscapes?). Может иметь значение то, правильно ли настроена кампания: чтобы реклама на английском языке показывалась англоязычной аудитории, на русском – русскоязычной. Очень часто бывают ошибки в этом: люди просто не разбираются, устанавливают наобум.
Вам нужно создавать различные прикольные видео, подумывать над форматом, думать, как часто обновлять их. В крупных компаниях этим занимаются специальные люди – user acquisition managers. Если вы – одиночный разработчик, то вам это не нужно, или нужно по достижению определенного роста.
Какие дальнейшие планы?
По-прежнему работать там, где я сейчас. Может быть, я получу финское гражданство – это возможно после 5 лет проживания (если меньше 30 лет, нужно еще и отслужить, если человек не сделал этого в другой стране).
Почему переехали в Финляндию?
Да, это не слишком популярная страна для переезда IT-специалиста. Многие переезжают семьями, потому что здесь хорошие социальные плюшки – детские сады, ясли, больше декретные отпуска для любого из родителей. Почему переехал я сам – мне тут просто понравилось. Могло бы понравиться где угодно, наверно, но Финляндия довольно близкая по культурному менталитету; различия с Россией есть, конечно, но есть и сходство. Она маленькая, безопасная, и никогда не будет вовлечена в какие-то большие заварушки. Это не условная Америка, где может попасться президент, которого не любят, и начнется что-то из-за этого; и не Великобритания, которая вдруг захочет выходить из ЕС, и тоже будут проблемы. Тут всего 5 миллионов человек. Даже с эпидемией коронавируса Финляндия справилась достаточно достойно, по сравнению с другими странами.
Собираетесь возвращаться в Россию?
Пока не собираюсь. Ничто не мешало бы это сделать, но мне здесь комфортно. Тем более, если я буду работать в России, придется встать на воинский учет, и меня могу призвать.
Про магистратуру в Финляндии
Ничего особенного. Если говорить про контент лекций – это просто набор слайдов; есть теоретический материал, семинар с практикой, где оттачивается эта теория, потом – экзамен по всем этим материалам (теория и задачи).
Особенность: из магистратуры не выгоняют. Если не сдали экзамен, то этот курс надо будет просто пройти в следующем семестре. Есть только ограничение на общее время обучения: на бакалавра – не более 7 лет, на магистра – 4 года. Можно спокойно закончить все за два года, кроме одного курса, и растянуть его на 2 года, или брать академы.
Работа в Москве и в Финляндии отличается сильно?
Я бы не сказал. Те же IT-компании, те же задачи. В культурно-бытовом плане удобно, работа – недалеко, город маленький. Продуктовый магазин стоит в одной минуте от меня, зал – в трех, работа – двадцать пять, от двери до двери. Мне нравятся размеры; я раньше не жил в таких уютных городах, где все под рукой. Красивая природа, пляж рядом.
Но в плане работы, я думаю, все плюс-минус одинаково. Что касается рынка IT-труда Финляндии, касаемо machine learning – некоторые замечают, что для специальностей, связанных с ML, требуют PhD или хотя бы магистров. Я считаю, что в обозримом будущем это изменится. Тут до сих пор есть предубеждение: если ты бакалавр, то ты не можешь быть сформированным специалистом, а вот если магистр – у тебя есть специализация, и ты можешь работать. А если PhD, то уже все совершенно круто, и ты можешь делать IT-исследования. Хотя, как мне кажется, даже люди, которые закончили PhD, могут быть совершенно не интегрированы в индустрию, и могут не понимать, что индустрия – это не только алгоритмы и методы, но и бизнес. Если вы не понимаете бизнес, то я не знаю, как вы сможете врастать компанию и понимать, как работает вся эта мета-система.
Поэтому идея переехать в магистратуру и сразу найти работу – это довольно сложно; если вы переезжаете в Финляндию с бакалаврским дипломом – вы ноунейм. Нужно иметь какой-нибудь опыт работы, чтобы сказать: я работал в Яндексе, в Mail, в Лаборатории Касперского и т.д.
Как прожить на 500 EUR в Финляндии?
Прожить можно. Если вы студент, нужно понимать, что у вас не будет стипендии; ЕС может предоставлять деньги, но только для тех, кто учится по обмену. Если вы поступаете в университет Финляндии, то нужно понимать, как вы будете жить. Есть несколько вариантов; если вы поступаете в магистратуру с PhD-треком (то есть, одновременно в магистратуру и на PhD), то с первого же года вы будете делать исследовательскую работу и получать за это деньги.
Небольшие, но студенту будет хватать. Второй вариант – подработка; например, я был учебным ассистентом по определенному курсу и зарабатывал 400 EUR в месяц.
Кстати, в Финляндии хорошие студенческие бенефиты. Можно заселиться в общагу за 300 или 200 EUR за комнату, можно питаться в студенческих столовых с фиксированной ценой (все, что вы накладываете себе в тарелку – 2.60 EUR). Некоторые стараются завтракать, обедать и ужинать в столовой за 2.60; если так делать, то можно прожить на 500 EUR. Но это самый минимум.
Куда можно поступить, если хочешь быть программистом?
Можно поступить на факультет компьютерных наук ВШЭ, МФТИ — ФИВТ и ФУПМ, или ВМК МГУ, например. Можно что-то и в Петербурге найти. Но я не в курсе точной ситуации с обучением machine learning, попробуйте загуглить эту тему.
Хочу сказать, что, чтобы стать программистом, мало одного обучения. Важно быть социальным человеком, приятным в общении, чтобы как можно быстрее заводить контакты. Контакты могут решать. Персональные рекомендации в компанию дают ощутимое преимущество перед другими претендентами, можно просто пропускать скрининг рекрутера.
Естественно, жизнь в Финляндии не вполне сказочная – переехал, и сразу все стало круто. Любой мигрант все равно встречается с культурным шоком. В разных странах – разные люди, разный менталитет, разные законы. Например, здесь нужно самому заботиться о налогах – заполнять самому налоговую карту; покупка машины, аренда жилья – многое работает по-другому. Это достаточно трудно, если вы решите переехать. Народ здесь не сказать чтобы очень социальный, погода как в Санкт-Петербурге – в ноябре-декабре может быть по 1-2 солнечных дня. Некоторые даже впадают в депрессию здесь; они приезжают с уверенностью, что они здесь очень нужны, но это оказывается не так, и нужно зарабатывать деньги, играя по чужим правилам. Это всегда риск. Всегда есть вероятность, что вам придется вернуться, потому что вы просто не приживетесь.
Какой совет дашь начинающим программистам?
Я советую попробовать как можно больше, понять, что вас действительно интересует. Старайтесь не зацикливаться в одной сфере: попробуйте Android-разработку, frontend/backend, Java, Javascript, ML, другие вещи. И, как я уже сказал, нужно быть активным, идти на контакт, интересоваться, что происходит; что делают друзья, коллеги, знакомые. Ходите на воркшопы, семинары, лекции, знакомьтесь с людьми. Чем больше у вас связей, тем проще понять, что интересного происходит.
Где еще используется Unity, кроме игр?
Unity старается перестать быть чисто игровым движком. Например, он используется для рендеринга CGI-роликов: если вы разрабатываете машину, например, и хотите сделать рекламу – вы, конечно, захотите сделать хороший ролик. Я слышал, что Unity используется и для архитектурного планирования. То есть, везде, где нужна визуализация, можно применять Unity. Если погуглить, можно найти интересные примеры.
Если хотите задать вопрос – не стесняйтесь находить меня во всех социальных сетях.