Кластерный анализ сайта stackexchange.com
DESCRIPTION
Презентация для защиты диссертации в магистратуре. Рассказывается про мой проект по анализу текстовых данных сайта stackexchange.com, алгоритмы машинного обучения, Apache Hadoop, Apache Mahout и многое другоеTRANSCRIPT
![Page 1: Кластерный анализ сайта stackexchange.com](https://reader034.vdocuments.site/reader034/viewer/2022051313/549e758eb37959d7618b46a7/html5/thumbnails/1.jpg)
Алгоритмы обработки больших объёмов данных с элементами
машинного обучения
Константин Слисенко, Магистрант кафедры Информатики
Научный руководитель:
Сиротко Сергей Иванович
![Page 2: Кластерный анализ сайта stackexchange.com](https://reader034.vdocuments.site/reader034/viewer/2022051313/549e758eb37959d7618b46a7/html5/thumbnails/2.jpg)
Объект исследования
❏ Средства, методы и алгоритмы обработки больших объёмов данных
❏ Методы машинного обучения
Предмет исследования
❏ Особенности применения различных программных средств для обработки больших объёмов данных
❏ Применимость методов машинного обучения для больших объёмов данных
Введение
Данные сайта вопросов и ответов
Синтаксическая взаимосвязь вопросов и ответов, публикуемых на сайте stackexchange.com
![Page 3: Кластерный анализ сайта stackexchange.com](https://reader034.vdocuments.site/reader034/viewer/2022051313/549e758eb37959d7618b46a7/html5/thumbnails/3.jpg)
Применение машинного обучения для больших
объёмов данных
❏ Системы рекомендаций❏ интернет-магизины❏ социальные сети
❏ Классификация почтовых сообщений на предмет спама
❏ Нахождение шаблонов поведения пользователей информационной системы
❏ Определение ключевых тем в коллекциях документов, а так же взаимосвязей
❏ Ранжирование выдачи поисковой системы
![Page 4: Кластерный анализ сайта stackexchange.com](https://reader034.vdocuments.site/reader034/viewer/2022051313/549e758eb37959d7618b46a7/html5/thumbnails/4.jpg)
![Page 5: Кластерный анализ сайта stackexchange.com](https://reader034.vdocuments.site/reader034/viewer/2022051313/549e758eb37959d7618b46a7/html5/thumbnails/5.jpg)
Актуальность темы
❏ В научно-исследовательских и практических задачах большой объём данных может представлять нетривиальную проблему
❏ Тенденции к сохранению любой информации, появляются технические возможности для её обработки, в том числе и в облачных средах
❏ Машинное обучение перетекает из теоретических наработок в практические задачи
❏ Большое количество неструктурированных данных, требующих связывания❏ в том числе на сайте stackexchange.com
![Page 6: Кластерный анализ сайта stackexchange.com](https://reader034.vdocuments.site/reader034/viewer/2022051313/549e758eb37959d7618b46a7/html5/thumbnails/6.jpg)
1. Изучение a. Средств и систем обработки больших объёмов данныхb. Принципов их работыc. Возникающих проблем и путей их решений
2. Исследование применимости алгоритмов машинного обучения для больших объёмов данных
3. Разработка и реализация алгоритма анализа данных сайта stackexchange.com
4. Построение специализированной системы анализа данных и из последующей визуализации
Цели и задачи работы
![Page 7: Кластерный анализ сайта stackexchange.com](https://reader034.vdocuments.site/reader034/viewer/2022051313/549e758eb37959d7618b46a7/html5/thumbnails/7.jpg)
Обзор stackexchange.com
Вручную невозможно разобрать и понять всю информациюПоиск не всегда даёт лучший результат
![Page 8: Кластерный анализ сайта stackexchange.com](https://reader034.vdocuments.site/reader034/viewer/2022051313/549e758eb37959d7618b46a7/html5/thumbnails/8.jpg)
Маркетинговая платформа
bicycles.stackexchange.com
judaism.stackexchange.com1. 2.
3.Я - производитель или продавец комплектующих для велосипедов, хочу продавать и улучшать продукцию
Я - писатель книг по Иудейству, хочу ответить в своей книге на наиболее обсуждаемые вопросы
Я - журналист тематического ресурса, хочу знать актуальные и обсуждаемые вопросы и писать популярные статьи
![Page 9: Кластерный анализ сайта stackexchange.com](https://reader034.vdocuments.site/reader034/viewer/2022051313/549e758eb37959d7618b46a7/html5/thumbnails/9.jpg)
❏ 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](https://reader034.vdocuments.site/reader034/viewer/2022051313/549e758eb37959d7618b46a7/html5/thumbnails/10.jpg)
Масштабируемость
Проблемы при обработке больших объёмов данных
Хранение
Отказоустойчивость Кросплатформенность
❏ одна программа - разные объемы данных
❏ увеличение количества машин - не меняем программу
❏ локальные вычисления❏ множество копий, репликация
❏ не теряем ничего❏ автоматическое восстановление
после сбоев
❏ не хотим затачивать софт под конкретное железо
❏ не хотим покупать дорогое железо, запуск на обычных компьютерах
![Page 11: Кластерный анализ сайта stackexchange.com](https://reader034.vdocuments.site/reader034/viewer/2022051313/549e758eb37959d7618b46a7/html5/thumbnails/11.jpg)
Средства анализа данных Apache Hadoop и Mahout
Apache Mahouthttp://mahout.apache.org
Библиотека алгоритмов машинного обучения, работает поверх Hadoop
Системы рекомендаци
й
КластеризацияКлассификация
Apache Hadoophttp://hadoop.apache.org
Фреймворк для распределённой обработки данных
❏ Map-Reduce - функции❏ Локальные
вычисления❏ Специальная
файловая система
Предоставляется как облачный сервис:
![Page 12: Кластерный анализ сайта stackexchange.com](https://reader034.vdocuments.site/reader034/viewer/2022051313/549e758eb37959d7618b46a7/html5/thumbnails/12.jpg)
Кластеризация 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](https://reader034.vdocuments.site/reader034/viewer/2022051313/549e758eb37959d7618b46a7/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051313/549e758eb37959d7618b46a7/html5/thumbnails/14.jpg)
КластеризацияИспользуемые метрики
❏ Квадратичная эвклидова
❏ Косинусное расстояние
❏ Манхеттенское расстояние
Распределённый алгоритм K-средних
1. Выбираем k случайных точек как центры кластеров
2. Фаза Map - ассоциируем каждую точку с ближайшим центром кластера
3. Агрегация по новым кластерам
4. Фаза Reduce - пересчитываем центры кластеров
![Page 15: Кластерный анализ сайта stackexchange.com](https://reader034.vdocuments.site/reader034/viewer/2022051313/549e758eb37959d7618b46a7/html5/thumbnails/15.jpg)
Архитектура вычислительного процесса
![Page 16: Кластерный анализ сайта stackexchange.com](https://reader034.vdocuments.site/reader034/viewer/2022051313/549e758eb37959d7618b46a7/html5/thumbnails/16.jpg)
Специализированная система анализа данных
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](https://reader034.vdocuments.site/reader034/viewer/2022051313/549e758eb37959d7618b46a7/html5/thumbnails/17.jpg)
Результаты визуализации
![Page 18: Кластерный анализ сайта stackexchange.com](https://reader034.vdocuments.site/reader034/viewer/2022051313/549e758eb37959d7618b46a7/html5/thumbnails/18.jpg)
1. Изучен стек технологий обработки больших объёмов данных Apache Hadoop
2. Изучены алгоритмы кластеризации машинного обучения, а так же возможности библиотеки Apache Mahout
3. Разработан алгоритм анализа данных сайта stackexchange.com
4. Проведены вычисления на 500 МБ и 20 ГБ данных
Заключение5. Создана архитектура специали- зированной системы анализа данных
6. Получено облако тегов, соответствующее содержимому вопросов-ответов
7. Получена визуализация кластеров
![Page 19: Кластерный анализ сайта stackexchange.com](https://reader034.vdocuments.site/reader034/viewer/2022051313/549e758eb37959d7618b46a7/html5/thumbnails/19.jpg)
1. Использовать атрибут “дата публикации” чтобы определять наиболее “горячие” для обсуждения темы
2. Попробовать использование других алгоритмов кластеризацииa. оценивать изначальное
количество кластеров динамически
b. перекрывание кластеров
3. Построение классификатора на основе кластеризованных данных
Планы на будущее4. Доработка визуализации
5. Добавление оценки качества кластеризации
6. Разработка механизма индексации для поиска в кластеризованных данных
7. Применение базы данных частоупотребимых слов
8. Контрибуции новых алгоритмов и идей в библиотеку Apache Mahout
![Page 20: Кластерный анализ сайта stackexchange.com](https://reader034.vdocuments.site/reader034/viewer/2022051313/549e758eb37959d7618b46a7/html5/thumbnails/20.jpg)
Публикации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