Кластерный анализ сайта stackexchange.com
Post on 26-Dec-2014
167 Views
Preview:
DESCRIPTION
TRANSCRIPT
Алгоритмы обработки больших объёмов данных с элементами
машинного обучения
Константин Слисенко, Магистрант кафедры Информатики
Научный руководитель:
Сиротко Сергей Иванович
Объект исследования
❏ Средства, методы и алгоритмы обработки больших объёмов данных
❏ Методы машинного обучения
Предмет исследования
❏ Особенности применения различных программных средств для обработки больших объёмов данных
❏ Применимость методов машинного обучения для больших объёмов данных
Введение
Данные сайта вопросов и ответов
Синтаксическая взаимосвязь вопросов и ответов, публикуемых на сайте stackexchange.com
Применение машинного обучения для больших
объёмов данных
❏ Системы рекомендаций❏ интернет-магизины❏ социальные сети
❏ Классификация почтовых сообщений на предмет спама
❏ Нахождение шаблонов поведения пользователей информационной системы
❏ Определение ключевых тем в коллекциях документов, а так же взаимосвязей
❏ Ранжирование выдачи поисковой системы
Актуальность темы
❏ В научно-исследовательских и практических задачах большой объём данных может представлять нетривиальную проблему
❏ Тенденции к сохранению любой информации, появляются технические возможности для её обработки, в том числе и в облачных средах
❏ Машинное обучение перетекает из теоретических наработок в практические задачи
❏ Большое количество неструктурированных данных, требующих связывания❏ в том числе на сайте stackexchange.com
1. Изучение a. Средств и систем обработки больших объёмов данныхb. Принципов их работыc. Возникающих проблем и путей их решений
2. Исследование применимости алгоритмов машинного обучения для больших объёмов данных
3. Разработка и реализация алгоритма анализа данных сайта stackexchange.com
4. Построение специализированной системы анализа данных и из последующей визуализации
Цели и задачи работы
Обзор stackexchange.com
Вручную невозможно разобрать и понять всю информациюПоиск не всегда даёт лучший результат
Маркетинговая платформа
bicycles.stackexchange.com
judaism.stackexchange.com1. 2.
3.Я - производитель или продавец комплектующих для велосипедов, хочу продавать и улучшать продукцию
Я - писатель книг по Иудейству, хочу ответить в своей книге на наиболее обсуждаемые вопросы
Я - журналист тематического ресурса, хочу знать актуальные и обсуждаемые вопросы и писать популярные статьи
❏ 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
Масштабируемость
Проблемы при обработке больших объёмов данных
Хранение
Отказоустойчивость Кросплатформенность
❏ одна программа - разные объемы данных
❏ увеличение количества машин - не меняем программу
❏ локальные вычисления❏ множество копий, репликация
❏ не теряем ничего❏ автоматическое восстановление
после сбоев
❏ не хотим затачивать софт под конкретное железо
❏ не хотим покупать дорогое железо, запуск на обычных компьютерах
Средства анализа данных Apache Hadoop и Mahout
Apache Mahouthttp://mahout.apache.org
Библиотека алгоритмов машинного обучения, работает поверх Hadoop
Системы рекомендаци
й
КластеризацияКлассификация
Apache Hadoophttp://hadoop.apache.org
Фреймворк для распределённой обработки данных
❏ Map-Reduce - функции❏ Локальные
вычисления❏ Специальная
файловая система
Предоставляется как облачный сервис:
Кластеризация 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
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
КластеризацияИспользуемые метрики
❏ Квадратичная эвклидова
❏ Косинусное расстояние
❏ Манхеттенское расстояние
Распределённый алгоритм K-средних
1. Выбираем k случайных точек как центры кластеров
2. Фаза Map - ассоциируем каждую точку с ближайшим центром кластера
3. Агрегация по новым кластерам
4. Фаза Reduce - пересчитываем центры кластеров
Архитектура вычислительного процесса
Специализированная система анализа данных
Web-приложение для визуализации
Граф-ориенти-рованная БД
Утилита импорта данных
VM1 VM2 VM3 VMn
Файловая система HDFS
Подсистема Map-Reduce
Библиотека Apache Mahout
Сервер миграции данных
Сайт stackexchange.com
Приложение анализа данных
БД сайтаДокументно-ориенти-
рованная БД
VM4
Загружает дамп в HDFS
Распределённые вычисления
Импорт данных на основе Map-Reduce
Инфраструктура Apache Hadoop
Вычислительные машины
In-memory database
Хранит хеш-ключи
загруженных данных для фильтрации дубликатов
...
Результаты визуализации
1. Изучен стек технологий обработки больших объёмов данных Apache Hadoop
2. Изучены алгоритмы кластеризации машинного обучения, а так же возможности библиотеки Apache Mahout
3. Разработан алгоритм анализа данных сайта stackexchange.com
4. Проведены вычисления на 500 МБ и 20 ГБ данных
Заключение5. Создана архитектура специали- зированной системы анализа данных
6. Получено облако тегов, соответствующее содержимому вопросов-ответов
7. Получена визуализация кластеров
1. Использовать атрибут “дата публикации” чтобы определять наиболее “горячие” для обсуждения темы
2. Попробовать использование других алгоритмов кластеризацииa. оценивать изначальное
количество кластеров динамически
b. перекрывание кластеров
3. Построение классификатора на основе кластеризованных данных
Планы на будущее4. Доработка визуализации
5. Добавление оценки качества кластеризации
6. Разработка механизма индексации для поиска в кластеризованных данных
7. Применение базы данных частоупотребимых слов
8. Контрибуции новых алгоритмов и идей в библиотеку Apache Mahout
Публикации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
Вопросы?
Спасибо за внимание!
kslisenko@gmail.com
top related