Интервью с Дмитрием Фроловым. Дмитрий — технический директор компании Natimatica, член Российской Ассоциации искусственного интеллекта (РАИИ), Ph.D. in Computer Science, исследователь в НИУ ВШЭ.
Мы поговорили с ним о машинном обучении, о технических трендах в интернет-рекламе, а также о том, полезно ли совмещать карьеру в коммерческой организации с научными исследованиями.
Пожалуйста, расскажите о вашей компании.
Наша компания — крупный российский игрок в сфере интернет-рекламы, по ряду направлений — лидер или один из лидеров этого рынка. От многих других подобных организаций нас прежде всего отличает то, что мы обладаем собственным департаментом разработки и своим набором технологических решений — от системы управления данными (DMP) до DSP-платформ и рекомендательных движков. Собственная разработка позволяет быть максимально гибкими, учитывать пожелания клиентов, и вместе с тем сохранять абсолютную уверенность в возможностях и качестве наших решений на всех этапах.
Сейчас у нас два географически разнесенных подразделения разработки — в Москве и в Саратове. В рамках московского подразделения Natimatica в январе 2019 года стала резидентом Сколкова и его фокусной компанией в кластере «Big Data».
Какие решения вы предлагаете рынку и какими технологическими задачами занимаетесь?
Отмечу два решения и соответственно две группы из множества задач, которыми мы занимаемся.
Если говорить о современной интернет-рекламе, то для рекламодателя это задача донести нужную информацию до релевантной аудитории за минимальную цену. Одним из классических инструментов решения подобной задачи закупок, как можно предположить, является аукцион. В программатик-модели, которая уже много лет набирает популярность, типичной единицей аукциона является показ — конкретный показ конкретному пользователю, открывшему определенную веб-страницу. Если максимально упростить и даже утрировать, то можно сказать, что есть две стороны торгов — сайт, который представляет собой систему продажи инвентаря, и система, обслуживающая интересы рекламодателя. Понятно, что цель первого — продать рекламные места на сайте как можно дороже, а цель второй — закупить высококачественные показы как можно дешевле.
Таким образом, рекламная система должна понять, показы для каких пользователей ей нужно покупать, а также дать свою ставку (как правило, в аукционе участвует несколько систем). Это — одна из задач, которыми мы занимаемся. Как можно предположить, всё здесь вертится вокруг данных о пользователях и математики, помогающей определить сегменты интересов пользователя, спрогнозировать вероятности целевых действий и так далее.
В рамках сервиса для владельцев интернет-площадок мы предлагаем решения, позволяющие комплексно улучшить показатели вовлеченности пользователя и монетизировать сайты; среди них — продвинутый рекомендатор контента. Это, пожалуй, самое «технически объемное» наше решение, включающее сейчас около двух десятков семейств алгоритмов, а также методы компоновки рекомендательной выдачи, которые мы планируем в ближайшем будущем запатентовать.
Конечно, рекомендатор — очень наукоемкий сервис. Разнообразие площадок означает, что нужно иметь множество рекомендательных методов: то, что работает на новостной площадке, вовсе не обязано хорошо работать на сайтах с видеоконтентом. Наше преимущество в том, что мы умеем подбирать алгоритмы, работающие для конкретного сайта, и сейчас это делается автоматически.
Насколько важно следить за развитием технологий, чтобы создавать современные программные сервисы?
Если вы хотите создать программный сервис, который будет конкурировать за лидерство, — без этого невозможно обойтись. Технологии развиваются очень быстро, и, естественно, нужно стараться за ними следить. Следить за развитием — это не только читать новости и просматривать появляющиеся программные библиотеки. Нужно также изучать свежие научные публикации, бывать на конференциях, тематических семинарах и воркшопах.
Приведите какой-нибудь пример из современных алгоритмов, которые вы внедрили на практике.
Из относительно свежих (хотя уже далеко не rocket science в машинном обучении) я отмечу крайне полезный метод Field-aware Factorization Machines (FFM). FFM показали впечатляющие результаты в том числе на соревновательных платформах, таких как Kaggle. Эти методы особенно хорошо подходят именно для типовых датасетов, встречающихся в интернет-рекламе и рекомендательных системах. Мы реализовали несколько рекомендательных методов на основе FFM и весьма довольны результатами.
Вообще интернет-реклама — это кладезь огромного множества задач для применения машинного обучения и поле для самых смелых экспериментов. Здесь вы встречаетесь и с редкими событиями, и с несбалансированными датасетами, и с огромным размером данных, в конце концов. Всё это дает широкий простор для мысли. Главное — не переусердствовать. Если можно эффективно решить задачу, не прибегая к сложным технологиям и даже к машинному обучению вообще, нужно стараться делать именно так.
Поясните, будьте добры.
В мире множество задач, допускающих различные пути их решения. Программистам это особенно близко — отсортировать массив можно, скажем, пирамидой, а можно случайным перетасовыванием. Результат будет один, но время получения решения — разное.
Так же и в практических задачах. Зачастую выбор стратегии решения, кстати, является одним из показателей квалификации специалиста. Приведу практический пример не из рекламы, с которым пришлось столкнуться. Есть популярная задача — автоматизированное составление расписаний. Она распространена везде, и в академическом мире тоже. Грубо говоря, есть набор работ с их характеристиками и набор ограничений, вам надо составить расписание, чтобы выполнить все задачи, скажем, за наименьшее время или распределить эти задачи, учтя ограничения.
Когда я учился в бакалавриате, у нас на факультете ходила байка, что в каждом выпуске найдется человек, писавший диплом на тему автоматизированного составления расписаний. Хотя в целом эта задача хорошо проработана, находится огромное количество ее частных случаев. Конечно, вполне можно решать ее методами машинного обучения, обучить, например, нейронную сеть. Но сложно придумать случай, для которого не подойдут методы дискретной математики или исследования операций, предложенные добрую сотню лет назад. Нужно только их освоить и правильно применить.
Насколько полезно совмещать коммерческую карьеру и академическую деятельность?
Если в обеих областях вы делаете близкие вещи, то рождается симбиоз. Коммерческая деятельность, бизнес — это кладезь реальных задач, которые полезно и нужно решать. Бизнес получает решение, а наука — почву для исследований. Решение таких задач и составляет суть прикладной математики. Как кто-то хорошо выразился, если «чистая» математика должна решать то, что можно, так, как нужно, то прикладная — то, что нужно, так, как можно.
Спасибо за познавательную беседу, желаем успехов в вашей деятельности!