Pull to refresh
159.69
JUG Ru Group
Конференции для Senior-разработчиков

Big Data и Одноклассники: как поступают с данными во 2-й по посещаемости соцсети в России

Reading time 6 min
Views 13K
У Одноклассников не отнять главного — это вторая по посещаемости соцсеть в России (4-е место среди всех сайтов Рунета). А, например, в Армении и вовсе первая. Миллионы людей ежедневно заходят на сайт сети и оставляют там терабайты данных, которые можно анализировать. Какие данные соцсеть собирает с пользователей? На каком стеке можно влегкую обрабатывать десятки терабайт данных в сутки? И всегда ли больше данных — лучше?
 


Мы взяли интервью у Дмитрия Бугайченко, который рассказал нам про Big Data в Одноклассниках.
 
Дмитрий Бугайченко. Закончил Санкт-Петербургский Государственный Университет в 2004 году, там же защитил кандидатскую по формально-логическим методам в 2007. Почти 9 лет проработал в аутсорсинге, не теряя контакта с университетом и научной средой. Анализ больших данных в Одноклассниках стал для Дмитрия уникальным шансом совместить теоретическую подготовку и научный фундамент с разработкой реальных и востребованных продуктов.


 
Пара слов о вас и том, как давно вы занимаетесь машинным обучением и Big Data.
 
Дмитрий Бугайченко: Думаю, меня можно отнести к той категории программистов, которые не хотели просто программировать за деньги в своем ли или чужом бизнесе, а тяготели к тем областям, где вопросов пока больше, чем ответов, и для их решения нужно действительно задействовать весь свой потенциал и багаж знаний. Именно поэтому, скорее всего, я и пришел в область анализа данных. Первые мои серьезные проекты, связанные с тем, что принято считать «бигдатой», начались в конце 2011 года.
 
Можно ли озвучить суточную аудиторию сети и приблизительный объем данных, генерируемых пользователями?
 
Дмитрий Бугайченко: Можно. Наша суточная аудитория — это 40 миллионов человек, дневной объем данных (не считая объема загружаемых фото/видео) измеряется десятками терабайт.
 
Какие данные о пользователях вы собираете, и как они используются?
 
Дмитрий Бугайченко: Хороший вопрос. Хотел бы сразу отметить, что в Одноклассниках мы очень много внимания уделяем вопросам соблюдения приватности пользователей и этическим вопросам хранения и использования данных. Кроме того, мы уважаем и соблюдаем законодательство РФ, регламентирующее вопросы, связанные со сбором и использованием персональных данных. Практически все данные, с которыми мы работаем, в том или ином виде доступны и обычным пользователям соцсети через веб-интерфейс и мобильные приложения (посты, «классы», комменты и т. д.), а используем мы эти данные, в первую очередь, для улучшения user experience — стараемся упростить для пользователей получение нового интересного контента, понять их потребности, снизить негатив и т.д.
 
Если говорить о фото и видео, что полезного можно получить из таких данных?
 
Дмитрий Бугайченко: Анализ мультимедийных (фото, видео, звука) объектов действительно сопряжен с рядом сложностей. Эти данные идут в работу либо при реализации специфичных функций (например, дедупликации), либо на тех этапах, когда из «классических» данных по активности уже выжали 80% результата и надо дожимать оставшиеся 20%, подключая другие данные.
 
Какие инструменты задействуются при обработке данных? Расскажите про вашу кухню Big Data.
 
Дмитрий Бугайченко: Рассказывать про нее можно долго и увлекательно, что мы не раз делали на различных митапах, конференциях и DataFest-е. Если совсем вкратце — мы используем по большей части распространенные открытые технологии и паттерны анализа. Для сбора данных задействована очередь Apache Kafka, хранение Hadoop + Parquet, анализ, в зависимости от контекста: классический MapReduce, Spark, Hive, Pig, Samza, Spark Streaming, Python со scykit-learn и K, TensorFlow и Caffe для нейросетей. Новые технологии и паттерны внедряем достаточно активно, но с оглядкой на то, чтобы их внедрение было объективно оправдано, а не просто «потому что модно».
 
Случалось ли, что в процессе работы со временем вам приходилось переключаться с одного инструмента на другой? Если да, то по какой причине? Бывало ли так, что какой-то инструмент чуть лучше, но из-за него нагрузка на серверы выше, и затраты на обслуживание сводят на нет все преимущество?
 
Дмитрий Бугайченко: Поиск новых возможностей для роста, будь то технологии или алгоритмы, — это часть нашей повседневной работы. Но мы всегда стараемся рационально оценивать альтернативы: «хайп» вокруг технологии — это повод на неё посмотреть, но стоит ли инвестировать в ее внедрение, решается после оценки затрат и потенциального эффекта. Кроме того, в плане внедрения новых подходов мы стараемся придерживаться правила «одного нового» (либо новая задача на известных технологиях/алгоритмах, либо новая технология/алгоритм в известной задаче), хотя это и не догма.
 
Если же говорить про компромисс между производительностью и другими свойствами (удобство использования, качества прогноза моделей и т. д.), то здесь решения тоже принимаются рационально — если потенциальный эффект достаточен, мы дорабатываем открытые решения так, чтобы они давали приемлемую для наших задач производительность.
 
Если бы сейчас, уже с текущим опытом, вы вернулись на пять лет назад, что бы вы сделали по-другому?
 
Дмитрий Бугайченко: В целом, на мой взгляд, канва развития нашей инфраструктуры работы с данными была выстроена грамотно, но несколько моментов, конечно, есть. В первую очередь, сразу бы использовали Hadoop для аналитики вместо решений на базе SQL. Раньше бы начали внедрять интерактивные инструменты аналитики (Hive, Hue). Это позволило бы сделать существенно более быстрый старт, так как работа с SQL и сложная процедура выкладки изменений алгоритмов серьезно замедляли работу.
 
С другой стороны, соответствующие технологии на тот момент были куда как менее зрелые, так что вероятность обратного эффекта тоже не нулевая. Не раз бывало, что при внедрении молодой технологии ее приходится активно патчить, что существенно усложняет переход на новые версии в будущем. Так что, будь у нас машина времени, думаю, рисковать мы бы не стали.
 
Как вы считаете, текущая система обработки данных оптимальна? И что можно было бы улучшить?
 
Дмитрий Бугайченко: Систему нельзя улучшить только в том случае, если она никому не нужна, и это не о нашей системе обработки данных. Есть, конечно, много маленьких и не очень технических улучшений: багфиксы, апгрейды. Есть много чего, что можно было бы улучшить в процессах (в первую очередь развивать внутренние и внешние образовательные программы). Но если говорить про что-то «большое и светлое», то это, в первую очередь, конечно, концепция semantic data lake: в этом случае данные — это не просто большая свалка логов и агрегатов, а единое эффективное хранилище с устаканившейся и определенной метамоделью, позволяющее формулировать и выполнять операции над данными в терминах предметной области (пользователь, пост, «класс» и т. д.), без привязки к техническим деталям хранения данных.
 
Анализ данных безумно интересен сам по себе, но можно ли как-то в цифрах озвучить, стоит ли вообще этим заниматься? Какой «выхлоп» для соцсети от того, что вы анализируете данные пользователей? Можно ли сказать, как в случае Одноклассников монетизируется (не обязательно именно в деньгах) Big Data?
 
Дмитрий Бугайченко: Это очень сложный вопрос с неоднозначным ответом. Все зависит от того, как и где внедряется анализ. Если, например, мы пытаемся заменить подборки контента, сделанные редакторами на основе собственных предпочтений или мнения о предпочтениях пользователей, то внедрение подборок на базе анализа данных может дать кратный прирост пользовательской активности (в нашей практике встречался и десятикратный рост). Если же, например, те же подборки строятся грамотными людьми на основе данных, но без использования машинного обучения, то часто внедрение алгоритмов для решения тех же задач дает куда более скромные результаты, измеряемые процентами.
 
Каким должен быть минимальный объем данных, чтобы социальная сеть адаптировалась под пользователя? И есть ли какой-то предел личных данных, когда дальше улучшения практически не происходит?
 
Дмитрий Бугайченко: Большинство наших систем начинают адаптироваться под пользователя с первого клика. При этом необходимый объем данных до «насыщения» сильно зависит от предметной области. И да, больше — не всегда лучше. При получении слишком большого количества данных система может перенасытится, создав для пользователя «пузырь мнений», когда рекомендации получаются релевантные, но неинтересные. Борьба с такими «пузырями» — это отдельная нетривиальная тема.
 
Есть ли какой-то симбиоз с другими проектами mail.ru в области Big Data? Ваши решения тиражируются на весь холдинг, или, наоборот, вы перенимаете удачные решения коллег?
 
Дмитрий Бугайченко: Обмен как идеями, так и данными активно идет в обе стороны. На самом деле, сторон больше, чем две, так как машинное обучение практикуют многие. Например, ВКонтакте строит свою аналитическую инфраструктуру во многом ориентируясь на наш опыт, в Поиск@Mail.Ru есть интересные эффективные реализации обучения деревьев, на которые смотрим мы и т.д.

Я думаю, вы помните нашумевшую историю в Das Magazin о том, как американского президента Трампа якобы привели к победе через рекламные объявления в социальных сетях, подобранные под конкретного пользователя на основании анализа их активности. Как профессионал, скажите, насколько эта история может соответствовать реальности? И если да, возможно ли такое таргетирование — не обязательно политическое — в Одноклассниках?

Дмитрий Бугайченко: На мой взгляд, история вполне реальна. Более того, по меркам области это вполне себе штатная история — персонализированное таргетирование с успехом используется в бизнесе уже годами, просто тут его применили в политической рекламной кампании. Персонализированное таргетирование в Одноклассниках, конечно, возможно и в бизнесе уже используется.  



Друзья, 21 октября в рамках конференции SmartData Дмитрий Бугайченко будет выступать с новым докладом "От клика к прогнозу и обратно: Data Science пайплайны в OK". Приходите!
Tags:
Hubs:
+32
Comments 10
Comments Comments 10

Articles

Information

Website
jugru.org
Registered
Founded
Employees
51–100 employees
Location
Россия
Representative
Алексей Федоров