ВВЕДЕНИЕ 5
1. Требования, предъявляемые к разрабатываемой системе 6
1.1. Архитектура разрабатываемой системы 6
1.2. Модуль формирования пользовательских оценок 8
1.3. Описание хранилища данных магазинов 9
1.4. Организация распределенных вычислений 13
2. Обзор технологий 14
2.2. Технологии обработки больших объемов данных 14
2.2.1. Общая информация 14
2.2.2. Фреймворк для распределенных вычислений - Hadoop 16
2.2.3. Сравнение Hadoopи реляционных баз данных 17
2.2.4. Парадигма распределенных вычислений - MapReduce 19
2.1. Рекомендательные системы 21
2.1.1. Основные подходы при формировании рекомендаций 21
2.1.2. Коллаборативная фильтрация 23
2.1.3. Субъект-субъектная модель коллаборативной фильтрации 25
3. Разработка модуля формирования пользовательских оценок 27
3.1. Формирование неявных пользовательских оценок 27
3.2. Первичный анализ - извлечение данных из транзакционной базы 28
3.3. Анализ полученных данных и проблема холодного старта 30
3.4. Решение проблемы холодного старта 32
3.5. Блок-схема алгоритма формирования оценок по ГОСТ 19.701-90 34
3.6. Программная реализация разработанного алгоритма 36
4. Разработка модуля обсчёта оценок 37
4.1. Подробнее о HDFS 38
4.1.1. Репликация данных в HDFS 39
4.1.2. Команды для работы с распределенной файловой системой 41
4.2. Подробнее о демонах Hadoop 42
4.3. Менеджер ресурсов Hadoop - YARN 43
4.4. Операционная база данных в модуле обсчёта 44
4.5. Работа программы на фазе map 45
4.6. Работа программы на фазе reduce 50
4.7. Конфигурация распределенной программы 51
4.8. Автоматизация запуска и отладки программы 53
4.9. Блок-схема алгоритма работы модуля обсчёта по ГОСТ 19.701-90.... 56
5. Тестирование системы 57
ЗАКЛЮЧЕНИЕ 58
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
Мировой объем продаж в сети Интернет растёт из года в год. На данный момент онлайн-торговля составляет более 5% мирового объема торговли [1]. В связи с этим набирают популярность e-commerceплатформы, которые позволяют автоматизировать процесс торговли в сети. Как правило, магазины, работающие на этих платформах, имеют схожую структуру хранилищ данных. Это позволяет внедрить в платформу рекомендательную систему, которая сможет работать с различными магазинами, построенными по одной и той же схеме.
Построение рекомендаций производится с использованием данных, которые уже хранятся в магазинах. В данной работе алгоритм построения рекомендаций использует историю покупок пользователей, а также историю просмотров различных товаров этими пользователями. Используя эти данные, можно предсказать список товаров, которые будут интересовать конечного пользователя магазина.
С технической точки зрения, построение рекомендаций - это сложный вычислительный процесс, который занимает чрезвычайно много времени при работе на отдельной машине. Поэтому целесообразно обратиться к стеку технологий, называемых термином Big Data. Big Dataпозволяет работать с большими объемами данных (как правило, начиная с терабайтов информации). [7] Реализуемый алгоритм требует больших вычислительных мощностей, поэтому обсчёт в системе производится на Hadoop,который целесообразно использовать из-за его гибкой настройки.
В рамках проекта рассмотрены современные методы построения рекомендательных систем. Реализован метод коллаборативной фильтрации - его использование позволяет рассмотреть совокупность пользователей он-лайн-магазинов в качестве системы коллективного разума. Анализ поведения этой системы приводит к нахождению скрытых закономерностей в покупках пользователей, найденные взаимосвязи невозможно обнаружить вручную. Обнаружение таких закономерностей позволяет сформировать индивидуальные рекомендации по приобретению товаров для каждого пользователя он-лайн-магазина, что, безусловно, является важным экономическим фактором использования разработанной системы в коммерческих целях.
Кроме того, разработанная система максимально адаптирована под реалии современного рынка. Она обладает достаточно низким порогом использования - возможен запуск для тех магазинов, в которых объём информации о пользовательском поведении крайне мал (в частности, удалось запустить систему для магазина, в котором матрица предпочтений пользователей изначально заполнена всего на 0,02%). Зачастую, проблема нехватки обучающих данных действительно имеет место в реальной жизни.
Вычисление индивидуальных рекомендаций - это задача, требующая огромных вычислительных мощностей, поэтому применены технологии обработки больших объемов информации, вычисления производятся распределённо с использованием Hadoop.Использование этих технологий позволяет многократно ускорить процесс обсчёта, а также проводить своевременную актуализацию рекомендаций при наличии оборудования. Для ускорения вычислений, достаточно всего лишь расширить кластер, не изменяя программной архитектуры системы. Этот фактор также повышает экономическую эффективность использования разработанной системы.
В следующих версиях системы планируется внедрение функциональности модерации получаемых рекомендаций - это вызвано потребностями в более точной настройке работы системы, а также в возможности администрирования со стороны представителей магазинов - пользователей продукта.
Особенностью моей работы является тот факт, что разработанная рекомендательная система уже внедрена на реально функционирующем предприятии и приносит прибыль компании-владельцу системы.