Интернет-реклама — поле для самых смелых математических экспериментов

Интервью с Дмитрием Фроловым. Дмитрий является техническим директором Natimatica и Performance Marketing Lab, а также занимается исследованиями в НИУ ВШЭ.

В закладки

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

Расскажите о вашей компании.

Наша группа компаний — крупный российский холдинг в сфере интернет-рекламы, по ряду направлений — лидер или один из лидеров нашего рынка. От многих других подобных компаний нас отличает, прежде всего, то, что мы обладаем собственным департаментом разработки и своим набором технологических решений: от системы управления данными (DMP) до DSP платформ и рекомендательных движков. Собственная разработка позволяет быть максимально гибкими, учитывать пожелания клиентов, и вместе с тем быть полностью уверенными в возможностях и качестве наших решений на всех этапах.

Сейчас у нас два географически разнесенных подразделения разработки — в Москве и в Саратове. В рамках московского подразделения в отдельное направление вынесена компания Natimatica, ставшая в январе 2019 года резидентом Сколково и его фокусной компанией в кластере «Big Data».

Дмитрий Фролов

Какие решения вы предлагаете рынку и какими технологическими задачами занимаетесь?

Я отмечу два решения, и соответственно, две группы из множества задач, которыми мы занимаемся.

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

Таким образом, рекламная система должна понять, показы для каких пользователей ей покупать, а также дать свою ставку (как правило, в аукционе участвует несколько систем). Это — одна из задач, которыми мы занимаемся. Как можно предположить, все здесь вертится вокруг данных о пользователях и математики, помогающей определить сегменты интересов пользователя, спрогнозировать вероятности целевых действий и так далее. Мы предлагаем своим клиентам множество рекламных форматов — текстово-графические блоки, видео, интерактивные инриды и другие.

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

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

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

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

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

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

Из относительно свежих (хотя уже далеко не rocket science в машинном обучении) я отмечу крайне полезный метод Field-aware Factorization Machines (FFM). FFM показали впечатляющие результаты в том числе на соревновательных платформах, таких как Kaggle. Эти методы особенно хорошо подходят именно для типовых датасетов, встречающихся в интернет-рекламе и рекомендательных системах. Мы реализовали несколько рекомендательных методов на основе FFM и весьма довольны результатами.

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

Поясните.

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

Так же и в практических задачах. Зачастую выбор стратегии решения, кстати, является одним из показателей квалификации специалиста. Приведу практический пример не из рекламы, с которым сталкивался. Есть популярная задача — автоматизированное составление расписаний. Распространенная, причем, везде, и в академическом мире тоже. Грубо говоря, есть набор работ с их характеристиками и набор ограничений, вам надо составить расписание, как выполнить все задачи, скажем, за наименьшее время, или распределить эти задачи, учтя ограничения.

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

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

Насколько полезно совмещать коммерческую карьеру и академическую деятельность?

Если в обеих областях вы делаете близкие вещи, то рождается симбиоз. Коммерческая деятельность, бизнес — это кладезь реальных задач, которые полезно и нужно решать. Бизнес получает решение, а наука — почву для исследований. Решение таких задач — и есть суть прикладной математики. Как кто-то хорошо выразился, если «чистая» математика должна решать то, что можно, так, как нужно, то прикладная — то, что нужно, так, как можно.

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

Это прекрасная тема для потенциального «холивара». Если ее рассматривать в такой широкой постановке — оба мнения имеют достаточную аргументацию.

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

С другой стороны, разговоры о бесполезности образования появляются не на пустом месте. Одна из проблем — в том, что во многих вузах для обучения используются сильно устаревшие программы обучения. Если, скажем, основы математического анализа были заложены Ньютоном и Лейбницем более 300 лет назад и уже не изменятся, то обучение программированию и технологиям в целом — это другая область знаний, ее необходимо постоянно актуализировать. Если в вузе на курсе веб-технологий вас учат 5-му PHP, то что-то здесь не так.

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

Если учиться, то на какую программу поступать?

Для классического разработчика это, чаще всего, либо прикладная математическая специальность - скажем, прикладная математика и информатика, либо более инженерное направление, такое как информационные системы и технологии, их несколько. Если вы хотите связать будущую карьеру с более узкой специальностью, скажем, биоинформатикой — можно либо поступать на специализированный факультет, либо учиться на более абстрактной специальности и «добирать» интересующие знания на спецкурсах по выбору. Сейчас многие вузы добавляют объемную вариативную компоненту в программе обучения. Часто в рамках обучения можно даже получить прикладную специализацию, такую как, скажем, «мобильный разработчик».

А необходимо ли наличие диплома о высшем образовании для приема на работу в технологическую компанию?

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

Спасибо за познавательную беседу, желаем успехов в вашей деятельности!

Материал опубликован пользователем.
Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Елизавета К.", "author_type": "self", "tags": [], "comments": 0, "likes": -2, "favorites": 4, "is_advertisement": false, "subsite_label": "dev", "id": 81986, "is_wide": true, "is_ugc": true, "date": "Thu, 05 Sep 2019 18:32:10 +0300", "is_special": false }
0
{ "id": 81986, "author_id": 357046, "diff_limit": 1000, "urls": {"diff":"\/comments\/81986\/get","add":"\/comments\/81986\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/81986"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 235819, "last_count_and_date": null }
Комментариев нет
Популярные
По порядку
{ "page_type": "article" }

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "Article Branding", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cfovx", "p2": "glug" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Баннер в ленте на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "disable": true, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } } ] { "page_type": "default" }