большие данные что это такое
Что такое на самом деле Big Data и чем они прекрасны. Лекция Андрея Себранта в Яндексе
Директор по маркетингу сервисов Яндекса Андрей Себрант рассказал студентам Малого ШАДа о том, что такое большие данные, и о тех, зачастую неожиданных местах, где они находят своё применение.
Bid Data как понятие у всех на слуху уже не первый год. Но точное представление о том, что же представляет собой это понятие, есть далеко не у всех, особенно это касается людей за пределами IT-сферы. Проще всего несведущему человеку объяснить это на практическом примере.
Главная сложность в этой работе заключается в том, что обрабатываемые данные страдают неполнотой, в них много неточностей, а идентифицировать людей нужно по отнюдь не уникальным именам, фамилиям, датам рождения, смерти и т.п. Стандартные алгоритмы не справляются с обработкой таких данных. Однако машинное обучение позволяет учитывать все эти неточности и с большой вероятностью выдавать правильные результаты.
Другой пример – проект eHarmony. Это сайт знакомств, на котором сейчас есть около 40 миллионов зарегистрированных пользователей. В анкетах можно указывать до 1000 различных признаков. Ежедневно система делает около 100 миллионов предположений о том, что два человека могут подходить друг другу.
И предположения эти строятся не просто на банальном нахождении соответствий в указанных пользователями свойствах и пристрастиях. Например, выяснилось, что относительная площадь лица на фотографии в профиле может влиять на вероятность контакта между определенными людьми. Кроме того, оказалось, что люди с пристрастиями к определенным видам пищи могут обладать разной совместимостью друг с другом. Два вегетарианца с вероятностью в 44% найдут общий язык и начнут общение, в то время как два любителя гамбургеров с вероятностью 42% никаких отношений не заведут.
Самое интересное во всем этом, что применяя машинное обучение для принятия решений, мы перестаем понимать, на основе каких принципов они принимаются. Конечно, машинное обучение нельзя назвать искусственным интеллектом в прямом смысле, ведь решать он может только ту задачу, для которой был обучен. Но те сотни и тысячи факторов, которые принимает во внимание обученный алгоритм, могут просто не приходить нам в голову. Обучившись, алгоритм может лучше любого юзабелиста определять, какой дизайн кнопки показать конкретному пользователю, тут огромный объем данных сработает лучше опыта и умений человека. Но вот сконструировать хороший сайт с нуля при помощи машинного обучения пока не выйдет.
Посмотрев лекцию до конца, вы сможете составить общее представление о том, как работает машинное обучение. А подробнее ознакомиться с этой темой можно при помощи лекций о машинном обучении и компьютерном зрении.
Что такое большие данные и для чего они нужны
Большие данные
Большие данные – направление, о котором все говорят, но мало кто хорошо в нём разбирается. Гиганты электронной коммерции, промышленные компании и информационные корпорации инвестируют в эту технологию миллиарды. Что же такое Big Data, какие перспективы они предлагают и где используются?
Что такое большие данные
Большие данные – современное технологическое направление, связанное с обработкой крупных массивов данных, которые постоянно растут. Big Data – это сама информация, методы её обработки и аналитики. Перспективы, которые может принести Big Data интересны бизнесу, маркетингу, науке и государству.
В первую очередь большие данные – это всё-таки информация. Настолько большая, что ей сложно оперировать с помощью обычных программных средств. Она бывает структурированной (обработанной), и неструктурированной (разрозненной). Вот некоторые её примеры:
• Данные с сейсмологических станций по всей Земле.
• База пользовательских аккаунтов Facebook.
• Геолокационная информация всех фотографий, выложенных за сегодня в Instagram.
• Базы данных операторов мобильной связи.
Для Big Data разрабатываются свои алгоритмы, программные инструменты и даже машины. Чтобы придумать средство обработки, постоянно растущей информации, необходимо создавать новые, инновационные решения. Именно поэтому большие данные стали отдельным направлением в технологической сфере.
VVV — признаки больших данных
Чтобы уменьшить размытость определений в сфере Big Data, разработаны признаки, которым они должны соответствовать. Все начинаются с буквы V, поэтому система носит название VVV:
• Volume – объём. Объём информации измерим.
• Velocity – скорость. Объём информации не статичен – он постоянно увеличивается, и инструменты обработки должны это учитывать.
• Variety – многообразие. Информация не обязана иметь один формат. Она может быть неструктурированной, частично или полностью структурированной.
К этим трём принципам, с развитием отрасли, добавляются дополнительные V. Например, veracity – достоверность, value – ценность или viability – жизнеспособность.
Но для понимания достаточно первых трёх: большие данные измеримые, прирастающие и неоднообразные.
Для чего необходимы большие данные
Главная цель работы с большими данными – обуздать их (проанализировать) и направить. Человечество научилось производить и извлекать огромные массивы информации, а с их управлением ещё есть проблемы.
Прямо сейчас большие данные помогают в решении таких задач:
• повышение производительности труда;
• точная реклама и оптимизация продаж;
• прогнозирование ситуаций на внутренних и глобальных рынках;
• совершенствование товаров и услуг;
• улучшение логистики;
• качественное таргетирование клиентов в любой сфере бизнеса.
Большие данные делают услуги удобнее и выгоднее как для продавцов, так и для покупателей. Предприятия могут узнать, какая продукция популярнее, как сформировать ценовую политику, когда лучшее время для продаж, как оптимизировать ресурсы на производстве, чтобы сделать его эффективнее. За счёт этого клиенты получают точное предложение «без воды».
Где используются больше данные
• Облачные хранилища. Хранить всё на локальных компьютерах, дисках и серверах неудобно и затратно. Крупные облачные data-центры становятся надёжным способом хранения информации, доступной в любой момент.
• Блокчейн. Революционная технология, сотрясающая мир в последние годы, упрощает транзакции, делает их безопаснее, а, главное, хорошо справляется с обработкой операций между гигантским количеством контрагентов за счёт своего математического алгоритма.
• Самообслуживание. Роботизация и промышленная автоматизация снижают расходы на ведение бизнеса и уменьшают стоимость товаров или услуг.
• Искусственный интеллект и глубокое обучение. Подражание мышлению головного мозга помогает делать отзывчивые системы, эффективные в науке и бизнесе.
Эти сферы создаются и прогрессируют благодаря сбору и анализу данных. Пионерами в области таких разработок являются: поисковые системы, мобильные операторы, гиганты онлайн-коммерции, банки.
Big Data будет неотъемлемой частью Индустрии 4.0 и интернета вещей, когда сложные системы из огромного числа устройств работают, как единое целое. Вот простые, уже не футуристические, примеры этого:
• Автоматизированный завод сам изменяет линейку продукции, ориентируясь на анализ спроса, поставок, себестоимости и рыночной ситуации.
• Умный дом даёт рекомендации о том, как одеться по погоде и по какому маршруту быстрее всего добраться до работы утром.
• Компания анализирует производство и каналы сбыта с учётом изменений реальной обстановки на рынке.
• Дорожная безопасность повышается за счёт сбора данных о стиле вождения и нарушениях отдельных водителей, а также состояния их машин.
Кто использует большие данные
Наибольший прогресс отрасли наблюдается в США и Европе. Вот крупнейшие иностранные компании и ведомства, которые используют Big Data:
• HSBC повышает безопасность клиентов пластиковых карт. Компания утверждает, что в 10 раз улучшила распознавание мошеннических операций и в 3 раза – защиту от мошенничества в целом.
• Суперкомпьютер Watson, разработанный IBM, анализирует финансовые транзакции в режиме реального времени. Это позволяет сократить частоту ложных срабатываний системы безопасности на 50% и выявить на 15% больше мошеннических действий.
• Procter&Gamble проводит с использованием Big Data маркетинговые исследования, более точно прогнозируя желания клиентов и спрос новых продуктов.
• Министерство труда Германии добивается целевого расхода средств, анализируя большие данные при обработке заявок на пособия. Это помогает направить деньги тем, кто действительно в них нуждается (оказалось, что 20% пособий выплачивались нецелесообразно). Министерство утверждает, что инструменты Big Data сокращают затраты на €10 млрд.
Среди российских компаний стоит отметить следующие:
• Яндекс. Это корпорация, которая управляет одним из самых популярных поисковиков и делает цифровые продукты едва ли не для каждой сферы жизни. Для Яндекс Big Data – не инновация, а обязанность, продиктованная собственными нуждами. В компании работают алгоритмы таргетинга рекламы, прогноза пробок, оптимизации поисковой выдачи, музыкальных рекомендаций, фильтрации спама.
• Мегафон. Телекоммуникационный гигант обратил внимание на большие данные примерно пять лет назад. Работа над геоаналитикой привела к созданию готовых решений анализа пассажироперевозок. В этой области у Мегафон есть сотрудничество с РЖД.
• Билайн. Этот мобильный оператор анализирует массивы информации для борьбы со спамом и мошенничеством, оптимизации линейки продуктов, прогнозирования проблем у клиентов. Известно, что корпорация сотрудничает с банками – оператор помогает анонимно оценивать кредитоспособность абонентов.
• Сбербанк. В крупнейшем банке России супермассивы анализируются для оптимизации затрат, грамотного управления рисками, борьбы с мошенничеством, а также расчёта премий и бонусов для сотрудников. Похожие задачи с помощью Big Data решают конкуренты: Альфа-банк, ВТБ24, Тинькофф-банк, Газпромбанк.
И за границей, и в России организации в основном пользуются сторонними разработками, а не создают инструменты для Big Data сами. В этой сфере популярны технологии Oracle, Teradata, SAS, Impala, Apache, Zettaset, IBM, Vowpal.
Что такое «Big Data»?
Термин «большие данные» или «big data» начал набирать популярность с 2011 года. Сегодня его хотя бы раз слышал каждый. Проблема в том, что часто понятие используют не по определению. Поэтому давайте подробно разберемся, что это такое.
С развитием технологий количество данных стало увеличиваться в геометрической прогрессии. Традиционные инструменты перестали покрывать потребность в обработке и хранении информации. Для обработки данных, объем которых превышает сотни терабайт и постоянно увеличивается, были созданы специальные алгоритмы. Их принято называть «big data».
Сегодня информация собирается огромными объемами из разных источников: интернет, контакт-центры, мобильные устройства и т.д. Чаще всего такие данные не имеют четкой структуры и упорядоченности, поэтому человек не может использовать их для какой-либо деятельности. Для автоматизации анализа применяют технологии «big data».
Когда появились первые большие данные?
Большие данные появились в 60-70 годах прошлого столетия вместе с первыми ЦОД (центры обработки данных). В 2005 году компании начали понимать масштабы создаваемого контента пользователями интернет-сервисов (Facebook, YouTube и др.). Тогда же начала работу первая платформа, предназначенная для взаимодействия с большими наборами данных, — Hadoop. Сегодня она представляет собой большой стек технологий для обработки информации. Чуть позже популярность начала набирать NoSQL — совокупность методов для создания систем управления большими данными.
Объем генерируемой информации стал увеличиваться с появлением крупных интернет-сервисов. Пользователи загружают фотографии, просматривают контент, ставят «лайки» и т.п. Вся эта информация собирается в больших объемах для дальнейшего анализа, после которого можно вносить улучшения в работу сервисов. Например, социальные сети используют большие данные для показа пользователям релевантной рекламы (то есть той, которая соответствует их потребностям и интересам) в таргете. Это позволяет соцсетям продавать бизнесу возможность проведения точных рекламных кампаний.
Основные свойства больших данных
В самом начале статьи мы определили три основных свойства больших данных из общепринятого определения. Давайте раскроем их более подробно:
Как с ними работают?
Большие данные несут в себе много полезной информации, на основе которой компании создают новые возможности и формируют бизнес-модели. Работа с большими данными делится на 3 этапа: интеграция, управление и анализ.
На этом этапе компания интегрирует в свою работу технологии и системы, позволяющие собирать большие объемы информации из разных источников. Внедряются механизмы обработки и форматирования данных для упрощения работы аналитиков с «big data».
Полученные данные нужно где-то хранить, этот вопрос решается до начала работы с ними. Решение принимается на основе множества критериев, главными из которых считаются предпочтения по формату и технологии обработки. Как правило, для хранения компании используют локальные хранилища, публичные или частные облачные сервисы.
Большие данные начинают приносить пользу после анализа. Это заключительный этап взаимодействия с ними. Для этого применяют машинное обучение, ассоциацию правил обучения, генетические алгоритмы и другие технологии. После анализа данных остается только самое ценное для бизнеса.
Примеры использования больших данных
В общих чертах с «big data» разобрались. Но остался важный вопрос — где их можно применять практически? Ответ: в любой сфере деятельности, которая оперирует необходимыми для анализа данными. Давайте рассмотрим несколько реальных примеров. Это позволит лучше понять, для чего нужны большие данные и как от них можно получить пользу.
В российской банковской сфере большие данные первым начал использовать «Сбербанк». На основе «big data» и биометрической системы в 2014 году они разработали систему идентификации личности клиента по фотографии. Принцип работы очень простой: сравнение текущего снимка с фотографией из базы, которую делают сотрудники при выдаче банковской карты. Новая система сократила случаи мошенничества в 10 раз.
Сегодня «Сбербанк» продолжает использовать большие данные в работе: сбор и анализ информации позволяет управлять рисками, бороться с мошенничеством, оценивать кредитоспособность клиентов, управлять очередями в отделениях и многое другое.
Еще один пример из российского банковского сектора — ВТБ24. Внедрять «big data» компания начала чуть позже «Сбербанка». Сегодня они используют большие данные для сегментации и управления оттоком клиентов, формирования финансовой отчетности, анализа отзывов в интернете и многого другого.
«Альфа-Банку» большие данные помогают контролировать репутацию бренда в интернете, оценивать кредитоспособность новых клиентов, персонализировать контент, управлять рисками и т.п.
Большие данные в бизнесе
Многие ошибочно полагают, что работа с большими данными актуальна только для банковского сектора и ИТ-компаний. Это опровергает пример «Магнитогорского металлургического комбината», который разработал сервис «Снайпер» для снижения расходов сырья в производстве. Технология собирает большие объемы информации, анализирует их и дает рекомендации по оптимизации расходов материалов.
«Сургутнефтегаз» использует специальную систему для отслеживания основных бизнес-процессов в режиме реального времени. Это помогает в автоматизации учета продукции, ценообразовании, обеспечении персонала нужными данными и т.п.
Big Data в маркетинге
Маркетологи используют большие данные для прогнозирования результатов рекламных кампаний. Также анализ помогает в определении наиболее заинтересованной аудитории. Яркий пример «big data» в маркетинге — Google Trends. В систему поступает огромное количество данных, а после анализа пользователь может оценить сезонность того или иного товара (работы, услуги).
Сложности при использовании
Где есть большие возможности, там поджидают и большие трудности. Это правило не обошло стороной big data.
Первая сложность, с которой сталкиваются компании, — большие данные занимают много места. Да, технологии хранения постоянно улучшаются, но при этом и объем данных неуклонно растет (в среднем в два раза каждые два года).
Приобретение огромного хранилища не решает всех проблем. От простого хранения данных толку не будет, с ними нужно работать для получения выгоды. Отсюда вытекает другая сложность — налаживание обработки получаемых больших данных.
Сейчас аналитики тратят 50-80% рабочего времени для приведения информации в приемлемый для клиента вид. Компаниям приходится нанимать больше специалистов, что увеличивает расходы.
И еще одна проблема — стремительное развитие больших данных. Регулярно появляются новые инструменты и сервисы для работы (например, Hbase). Бизнесу приходится тратить много времени и средств, чтобы «быть в тренде» и не отставать от развития.
Таким образом, big data — это совокупность технологий обработки больших объемов информации (сотни терабайтов и более) и сегодня мало кто отрицает их важность в будущем. Их популярность будет расти и распространение в бизнесе увеличиваться. Впоследствии разработают технологии по автоматизации анализа и с big data будут работать не только крупные компании, но и средние с маленькими.
Big Data от А до Я. Часть 1: Принципы работы с большими данными, парадигма MapReduce
Привет, Хабр! Этой статьёй я открываю цикл материалов, посвящённых работе с большими данными. Зачем? Хочется сохранить накопленный опыт, свой и команды, так скажем, в энциклопедическом формате – наверняка кому-то он будет полезен.
Проблематику больших данных постараемся описывать с разных сторон: основные принципы работы с данными, инструменты, примеры решения практических задач. Отдельное внимание окажем теме машинного обучения.
Начинать надо от простого к сложному, поэтому первая статья – о принципах работы с большими данными и парадигме MapReduce.
История вопроса и определение термина
Термин Big Data появился сравнительно недавно. Google Trends показывает начало активного роста употребления словосочетания начиная с 2011 года (ссылка):
При этом уже сейчас термин не использует только ленивый. Особенно часто не по делу термин используют маркетологи. Так что же такое Big Data на самом деле? Раз уж я решил системно изложить и осветить вопрос – необходимо определиться с понятием.
В своей практике я встречался с разными определениями:
· Big Data – это когда данных больше, чем 100Гб (500Гб, 1ТБ, кому что нравится)
· Big Data – это такие данные, которые невозможно обрабатывать в Excel
· Big Data – это такие данные, которые невозможно обработать на одном компьютере
· Вig Data – это вообще любые данные.
· Big Data не существует, ее придумали маркетологи.
В этом цикле статей я буду придерживаться определения с wikipedia:
Большие данные (англ. big data) — серия подходов, инструментов и методов обработки структурированных и неструктурированных данных огромных объёмов и значительного многообразия для получения воспринимаемых человеком результатов, эффективных в условиях непрерывного прироста, распределения по многочисленным узлам вычислительной сети, сформировавшихся в конце 2000-х годов, альтернативных традиционным системам управления базами данных и решениям класса Business Intelligence.
Таким образом под Big Data я буду понимать не какой-то конкретный объём данных и даже не сами данные, а методы их обработки, которые позволяют распредёлено обрабатывать информацию. Эти методы можно применить как к огромным массивам данных (таким как содержание всех страниц в интернете), так и к маленьким (таким как содержимое этой статьи).
Приведу несколько примеров того, что может быть источником данных, для которых необходимы методы работы с большими данными:
· Логи поведения пользователей в интернете
· GPS-сигналы от автомобилей для транспортной компании
· Данные, снимаемые с датчиков в большом адронном коллайдере
· Оцифрованные книги в Российской Государственной Библиотеке
· Информация о транзакциях всех клиентов банка
· Информация о всех покупках в крупной ритейл сети и т.д.
Количество источников данных стремительно растёт, а значит технологии их обработки становятся всё более востребованными.
Принципы работы с большими данными
Исходя из определения Big Data, можно сформулировать основные принципы работы с такими данными:
1. Горизонтальная масштабируемость. Поскольку данных может быть сколь угодно много – любая система, которая подразумевает обработку больших данных, должна быть расширяемой. В 2 раза вырос объём данных – в 2 раза увеличили количество железа в кластере и всё продолжило работать.
2. Отказоустойчивость. Принцип горизонтальной масштабируемости подразумевает, что машин в кластере может быть много. Например, Hadoop-кластер Yahoo имеет более 42000 машин (по этой ссылке можно посмотреть размеры кластера в разных организациях). Это означает, что часть этих машин будет гарантированно выходить из строя. Методы работы с большими данными должны учитывать возможность таких сбоев и переживать их без каких-либо значимых последствий.
3. Локальность данных. В больших распределённых системах данные распределены по большому количеству машин. Если данные физически находятся на одном сервере, а обрабатываются на другом – расходы на передачу данных могут превысить расходы на саму обработку. Поэтому одним из важнейших принципов проектирования BigData-решений является принцип локальности данных – по возможности обрабатываем данные на той же машине, на которой их храним.
Все современные средства работы с большими данными так или иначе следуют этим трём принципам. Для того, чтобы им следовать – необходимо придумывать какие-то методы, способы и парадигмы разработки средств разработки данных. Один из самых классических методов я разберу в сегодняшней статье.
MapReduce
Про MapReduce на хабре уже писали (раз, два, три), но раз уж цикл статей претендует на системное изложение вопросов Big Data – без MapReduce в первой статье не обойтись J
MapReduce – это модель распределенной обработки данных, предложенная компанией Google для обработки больших объёмов данных на компьютерных кластерах. MapReduce неплохо иллюстрируется следующей картинкой (взято по ссылке):
MapReduce предполагает, что данные организованы в виде некоторых записей. Обработка данных происходит в 3 стадии:
1. Стадия Map. На этой стадии данные предобрабатываются при помощи функции map(), которую определяет пользователь. Работа этой стадии заключается в предобработке и фильтрации данных. Работа очень похожа на операцию map в функциональных языках программирования – пользовательская функция применяется к каждой входной записи.
Функция map() примененная к одной входной записи и выдаёт множество пар ключ-значение. Множество – т.е. может выдать только одну запись, может не выдать ничего, а может выдать несколько пар ключ-значение. Что будет находится в ключе и в значении – решать пользователю, но ключ – очень важная вещь, так как данные с одним ключом в будущем попадут в один экземпляр функции reduce.
2. Стадия Shuffle. Проходит незаметно для пользователя. В этой стадии вывод функции map «разбирается по корзинам» – каждая корзина соответствует одному ключу вывода стадии map. В дальнейшем эти корзины послужат входом для reduce.
3. Стадия Reduce. Каждая «корзина» со значениями, сформированная на стадии shuffle, попадает на вход функции reduce().
Функция reduce задаётся пользователем и вычисляет финальный результат для отдельной «корзины». Множество всех значений, возвращённых функцией reduce(), является финальным результатом MapReduce-задачи.
Несколько дополнительных фактов про MapReduce:
1) Все запуски функции map работают независимо и могут работать параллельно, в том числе на разных машинах кластера.
2) Все запуски функции reduce работают независимо и могут работать параллельно, в том числе на разных машинах кластера.
3) Shuffle внутри себя представляет параллельную сортировку, поэтому также может работать на разных машинах кластера. Пункты 1-3 позволяют выполнить принцип горизонтальной масштабируемости.
4) Функция map, как правило, применяется на той же машине, на которой хранятся данные – это позволяет снизить передачу данных по сети (принцип локальности данных).
5) MapReduce – это всегда полное сканирование данных, никаких индексов нет. Это означает, что MapReduce плохо применим, когда ответ требуется очень быстро.
Примеры задач, эффективно решаемых при помощи MapReduce
Word Count
Начнём с классической задачи – Word Count. Задача формулируется следующим образом: имеется большой корпус документов. Задача – для каждого слова, хотя бы один раз встречающегося в корпусе, посчитать суммарное количество раз, которое оно встретилось в корпусе.
Раз имеем большой корпус документов – пусть один документ будет одной входной записью для MapRreduce–задачи. В MapReduce мы можем только задавать пользовательские функции, что мы и сделаем (будем использовать python-like псевдокод):
Функция map превращает входной документ в набор пар (слово, 1), shuffle прозрачно для нас превращает это в пары (слово, [1,1,1,1,1,1]), reduce суммирует эти единички, возвращая финальный ответ для слова.
Обработка логов рекламной системы
Второй пример взят из реальной практики Data-Centric Alliance.
Задача: имеется csv-лог рекламной системы вида:
Необходимо рассчитать среднюю стоимость показа рекламы по городам России.
Функция map проверяет, нужна ли нам данная запись – и если нужна, оставляет только нужную информацию (город и размер платежа). Функция reduce вычисляет финальный ответ по городу, имея список всех платежей в этом городе.
Резюме
В статье мы рассмотрели несколько вводных моментов про большие данные:
· Что такое Big Data и откуда берётся;
· Каким основным принципам следуют все средства и парадигмы работы с большими данными;
· Рассмотрели парадигму MapReduce и разобрали несколько задач, в которой она может быть применена.
Первая статья была больше теоретической, во второй статье мы перейдем к практике, рассмотрим Hadoop – одну из самых известных технологий для работы с большими данными и покажем, как запускать MapReduce-задачи на Hadoop.
В последующих статьях цикла мы рассмотрим более сложные задачи, решаемые при помощи MapReduce, расскажем об ограничениях MapReduce и о том, какими инструментами и техниками можно обходить эти ограничения.
Спасибо за внимание, готовы ответить на ваши вопросы.






