Кластерный анализ сайта stackexchange.com

21
Алгоритмы обработки больших объёмов данных с элементами машинного обучения Константин Слисенко, Магистрант кафедры Информатики Научный руководитель: Сиротко Сергей Иванович

Upload: kslisenko

Post on 26-Dec-2014

167 views

Category:

Technology


5 download

DESCRIPTION

Презентация для защиты диссертации в магистратуре. Рассказывается про мой проект по анализу текстовых данных сайта stackexchange.com, алгоритмы машинного обучения, Apache Hadoop, Apache Mahout и многое другое

TRANSCRIPT

Page 1: Кластерный анализ сайта stackexchange.com

Алгоритмы обработки больших объёмов данных с элементами

машинного обучения

Константин Слисенко, Магистрант кафедры Информатики

Научный руководитель:

Сиротко Сергей Иванович

Page 2: Кластерный анализ сайта stackexchange.com

Объект исследования

❏ Средства, методы и алгоритмы обработки больших объёмов данных

❏ Методы машинного обучения

Предмет исследования

❏ Особенности применения различных программных средств для обработки больших объёмов данных

❏ Применимость методов машинного обучения для больших объёмов данных

Введение

Данные сайта вопросов и ответов

Синтаксическая взаимосвязь вопросов и ответов, публикуемых на сайте stackexchange.com

Page 3: Кластерный анализ сайта stackexchange.com

Применение машинного обучения для больших

объёмов данных

❏ Системы рекомендаций❏ интернет-магизины❏ социальные сети

❏ Классификация почтовых сообщений на предмет спама

❏ Нахождение шаблонов поведения пользователей информационной системы

❏ Определение ключевых тем в коллекциях документов, а так же взаимосвязей

❏ Ранжирование выдачи поисковой системы

Page 4: Кластерный анализ сайта stackexchange.com
Page 5: Кластерный анализ сайта stackexchange.com

Актуальность темы

❏ В научно-исследовательских и практических задачах большой объём данных может представлять нетривиальную проблему

❏ Тенденции к сохранению любой информации, появляются технические возможности для её обработки, в том числе и в облачных средах

❏ Машинное обучение перетекает из теоретических наработок в практические задачи

❏ Большое количество неструктурированных данных, требующих связывания❏ в том числе на сайте stackexchange.com

Page 6: Кластерный анализ сайта stackexchange.com

1. Изучение a. Средств и систем обработки больших объёмов данныхb. Принципов их работыc. Возникающих проблем и путей их решений

2. Исследование применимости алгоритмов машинного обучения для больших объёмов данных

3. Разработка и реализация алгоритма анализа данных сайта stackexchange.com

4. Построение специализированной системы анализа данных и из последующей визуализации

Цели и задачи работы

Page 7: Кластерный анализ сайта stackexchange.com

Обзор stackexchange.com

Вручную невозможно разобрать и понять всю информациюПоиск не всегда даёт лучший результат

Page 8: Кластерный анализ сайта stackexchange.com

Маркетинговая платформа

bicycles.stackexchange.com

judaism.stackexchange.com1. 2.

3.Я - производитель или продавец комплектующих для велосипедов, хочу продавать и улучшать продукцию

Я - писатель книг по Иудейству, хочу ответить в своей книге на наиболее обсуждаемые вопросы

Я - журналист тематического ресурса, хочу знать актуальные и обсуждаемые вопросы и писать популярные статьи

Page 9: Кластерный анализ сайта stackexchange.com

❏ 15.7 Гб (архив, Январь 2014)❏ в распакованном виде ~ 700ГБ

❏ 6.7 миллионов вопросов

❏ 12 миллионов ответов

❏ 2.8 миллионов пользователей

https://archive.org/details/stackexchange

Открытые данные stackexchange.com

<posts> <row Id="0" Title="Title1"

Body="Question 1 text" ... /> <row Id="1" Title="Title1"

Body="Question 2 text" ... /></posts>

Исходные данные в формате XML

PostTypeId, AcceptedAnswerId, CreationDate, Score, ViewCount, OwnerUserId, LastEditorUserId, LastEditorDisplayName, LastEditDate, LastActivityDate, Tags, AnswerCount, CommentCount, FavoriteCount

Page 10: Кластерный анализ сайта stackexchange.com

Масштабируемость

Проблемы при обработке больших объёмов данных

Хранение

Отказоустойчивость Кросплатформенность

❏ одна программа - разные объемы данных

❏ увеличение количества машин - не меняем программу

❏ локальные вычисления❏ множество копий, репликация

❏ не теряем ничего❏ автоматическое восстановление

после сбоев

❏ не хотим затачивать софт под конкретное железо

❏ не хотим покупать дорогое железо, запуск на обычных компьютерах

Page 11: Кластерный анализ сайта stackexchange.com

Средства анализа данных Apache Hadoop и Mahout

Apache Mahouthttp://mahout.apache.org

Библиотека алгоритмов машинного обучения, работает поверх Hadoop

Системы рекомендаци

й

КластеризацияКлассификация

Apache Hadoophttp://hadoop.apache.org

Фреймворк для распределённой обработки данных

❏ Map-Reduce - функции❏ Локальные

вычисления❏ Специальная

файловая система

Предоставляется как облачный сервис:

Page 12: Кластерный анализ сайта stackexchange.com

Кластеризация stackexchange.com

XML Text [0, 1, 0, 1, 1, 0][1, 0, 0, 1, 1, 1]

1. Выделение текста из XML

2. Обработка текста

3. Векторизация

4. Кластеризация 5. Отображение результатов

1. Hadoop MapReduce2. Mahout + Lucene (фильтр слов, начальная форма, ...)3. Mahout, алгоритм TF-IDF4. Mahout, алгоритм К-средних5. Hadoop MapReduce, HTML, JavaScript, Database

Page 13: Кластерный анализ сайта stackexchange.com

1. Разбивка на слова, удаление нетекстовых слов

2. Приведение к нижнему регистру3. Удаление слов по длине меньше 4 и больше

154. Обработка стеммером Портера*

5. Удаление незначащих слов"what", "where", "how","when", "why", "which", "were", "find", "myself", "these", "know","anybody", "somebody", "differences", "good", "best", …

*использовалась версия алгоритма для английского языка

TF - частота слова (term frequency), отношение числа вхождения слова к общему количеству слов документа

t - слово,d - документni - число вхождений

IDF - обратная частота документа (inverse document frequency), отношение общего количества документов к документам, содержащим слово

d - количество документов

TF-IDF - произведение значений

❏ Учитывались N-граммы (“Unit testing”, “coca cola”, ...)❏ Удаление частых слов с DF > 25%

Обработка и векторизация текста

consign consign consigning consign

consigned consign consignment consignment

Page 14: Кластерный анализ сайта stackexchange.com

КластеризацияИспользуемые метрики

❏ Квадратичная эвклидова

❏ Косинусное расстояние

❏ Манхеттенское расстояние

Распределённый алгоритм K-средних

1. Выбираем k случайных точек как центры кластеров

2. Фаза Map - ассоциируем каждую точку с ближайшим центром кластера

3. Агрегация по новым кластерам

4. Фаза Reduce - пересчитываем центры кластеров

Page 15: Кластерный анализ сайта stackexchange.com

Архитектура вычислительного процесса

Page 16: Кластерный анализ сайта stackexchange.com

Специализированная система анализа данных

Web-приложение для визуализации

Граф-ориенти-рованная БД

Утилита импорта данных

VM1 VM2 VM3 VMn

Файловая система HDFS

Подсистема Map-Reduce

Библиотека Apache Mahout

Сервер миграции данных

Сайт stackexchange.com

Приложение анализа данных

БД сайтаДокументно-ориенти-

рованная БД

VM4

Загружает дамп в HDFS

Распределённые вычисления

Импорт данных на основе Map-Reduce

Инфраструктура Apache Hadoop

Вычислительные машины

In-memory database

Хранит хеш-ключи

загруженных данных для фильтрации дубликатов

...

Page 17: Кластерный анализ сайта stackexchange.com

Результаты визуализации

Page 18: Кластерный анализ сайта stackexchange.com

1. Изучен стек технологий обработки больших объёмов данных Apache Hadoop

2. Изучены алгоритмы кластеризации машинного обучения, а так же возможности библиотеки Apache Mahout

3. Разработан алгоритм анализа данных сайта stackexchange.com

4. Проведены вычисления на 500 МБ и 20 ГБ данных

Заключение5. Создана архитектура специали- зированной системы анализа данных

6. Получено облако тегов, соответствующее содержимому вопросов-ответов

7. Получена визуализация кластеров

Page 19: Кластерный анализ сайта stackexchange.com

1. Использовать атрибут “дата публикации” чтобы определять наиболее “горячие” для обсуждения темы

2. Попробовать использование других алгоритмов кластеризацииa. оценивать изначальное

количество кластеров динамически

b. перекрывание кластеров

3. Построение классификатора на основе кластеризованных данных

Планы на будущее4. Доработка визуализации

5. Добавление оценки качества кластеризации

6. Разработка механизма индексации для поиска в кластеризованных данных

7. Применение базы данных частоупотребимых слов

8. Контрибуции новых алгоритмов и идей в библиотеку Apache Mahout

Page 20: Кластерный анализ сайта stackexchange.com

Публикации1. Слисенко К.Ю., Сиротко С.И, Кириченко А.Н. - Организация

процесса распределённой обработки больших объёмов данных с использованием кластера Apache Hadoop – материалы международной научной конференции Информационные технологии и системы 2013 (ИТС 2013), Минск: БГУИР, 2013.

2. Слисенко К.Ю., Сиротко С.И. - Кластерный анализ содержимого сайта вопросов-ответов STACKEXCHANGE.COM - материалы международной научно-технической конференции 50-летия БГУИР (2014), Минск: БГУИР, 2014

3. Слисенко К.Ю., Пушкина Т.А. - Проблема человека в информационном пространстве - 50-я научно-техническая конференция аспирантов, магистрантов и студентов БГУИР 2014

4. Внедрение http://jazzteam.org/ru/portfolio/#project10

4. http://machinelearningmastery.com

Page 21: Кластерный анализ сайта stackexchange.com

Вопросы?

Спасибо за внимание!

[email protected]