Рекомендательная система с настраиваемым блоком анализа данных
|
АННОТАЦИЯ 2
ВВЕДЕНИЕ 7
1. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ 9
1.1. Введение в основные методы: построения рекомендательных систем 9
1.2. Анализ существующих реализаций рекомендательных систем 12
1.2.1. Сервисные рекомендательные системы 12
1.2.2. Библиотечные рекомендательные системы 15
1.3. Выбор средства разработки рекомендательной системы 16
1.4. Вывод 19
2. ОПРЕДЕЛЕНИЕ ТРЕБОВАНИЙ 20
2.1. Функциональные требования 20
2.2. Нефункциональные требования 21
3. ПРОЕКТИРОВАНИЕ И РЕАЛИЗАЦИЯ 22
3.1. Архитектура предлагаемого решения 22
3.2. Алгоритм блока анализа данных 23
3.3. Алгоритм модификации групп пользователей 25
3.4. Реализация хранилища данных 27
3.5. Описание основных классов 28
3.6. Вывод 31
4. ТЕСТИРОВАНИЕ 32
ЗАКЛЮЧЕНИЕ 36
БИБЛИОГРАФИЧЕСКИЙ СПИСОК 37
ПРИЛОЖЕНИЕ А 39
ПРИЛОЖЕНИЕ Б 41
ПРИЛОЖЕНИЕ В 47
ВВЕДЕНИЕ 7
1. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ 9
1.1. Введение в основные методы: построения рекомендательных систем 9
1.2. Анализ существующих реализаций рекомендательных систем 12
1.2.1. Сервисные рекомендательные системы 12
1.2.2. Библиотечные рекомендательные системы 15
1.3. Выбор средства разработки рекомендательной системы 16
1.4. Вывод 19
2. ОПРЕДЕЛЕНИЕ ТРЕБОВАНИЙ 20
2.1. Функциональные требования 20
2.2. Нефункциональные требования 21
3. ПРОЕКТИРОВАНИЕ И РЕАЛИЗАЦИЯ 22
3.1. Архитектура предлагаемого решения 22
3.2. Алгоритм блока анализа данных 23
3.3. Алгоритм модификации групп пользователей 25
3.4. Реализация хранилища данных 27
3.5. Описание основных классов 28
3.6. Вывод 31
4. ТЕСТИРОВАНИЕ 32
ЗАКЛЮЧЕНИЕ 36
БИБЛИОГРАФИЧЕСКИЙ СПИСОК 37
ПРИЛОЖЕНИЕ А 39
ПРИЛОЖЕНИЕ Б 41
ПРИЛОЖЕНИЕ В 47
В современном мире не малый процент экономических ресурсов сосредоточен в сфере Интернет. Это может быть, как непосредственная продажа товаров или услуг на сайтах компаний, так и сбор средств для start-up-ов, продажа рекламы на различных сайтах, ускоренный обмен информацией, который может принести какую-либо прибыль так и многое другое.
В продаже каких-либо товаров или услуг у продавцов встает вопрос о том, как продавать свои товары и услуги более эффективно. Существует множество способов реализовать подобное. Владельцы магазинов могут нанимать консультантов, которые будут помогать в выборе товаров покупателям. Однако данный способ не всегда будут полез ен, например для таких интернет-магазинов, как AliExpress или eBuy, где одновременно находится огромное количество продавцов, реализовать консультацию клиентов по всем этим магазинам одновременно невозможно, разве что отдельные магазины могут рекомендовать товары в пределах их магазинов. Так же следует отметить, что наём консультантов так же приносит фирмам дополнительные затраты.
Чтобы реализовать помощь клиентам в выборе товара и при этом убрать или уменьшить влияние вышеописанных проблем были придуманы специальные средства - рекомендательные системы.
Рекомендательная система - это программа, имеющая свой логику работы, алгоритм, который осуществляет анализ поступающей на него информации пользователя и на её основании выводящий какой-либо продукт, который предположительно может быть интересен данному пользователю. При этом стоит отметить, что данный продукт не обязательно должен иметь материальную форму, это может быть, например услуга, фильм, игра, музыка, и многое другое. Принцип работы любой рекомендательной системы графически изображен на рисунке 1.
Рисунок 1 - Принцип работы рекомендательных систем
В первую очередь рекомендательные системы используются в интернет - коммерции. В таких фирмах анализируют информацию пользователей для продвижения своих товаров или услуг. Примерами таких фирм являются Amazon, eBuy, AliExpress, iTunes, Steam и другие...
Другое место применения рекомендательных систем заключается в продвижении фильмов, игр, книг и музыки на сайтах, где не осуществляется прямая продажа этих продуктов, а лишь их возможное размещение для просмотра или скачивания. Другими словами применение рекомендательных систем на подобных сайтах не является основным средством повышения прибыли, но может косвенно способствовать этому. Примерами подобных сервисов являются GoodReads, IMDb и другие.
На текущий момент времени существует огромное количество различных вариаций реализации данных систем. Самые простые вариации зачастую в качестве рекомендованных продуктов выставляют самые популярные продукты, возможно с небольшими дополнениями в виде, например для книг предлагать самые популярные книги подобного, просматриваемому жанру. Подобные системы строятся достаточно просто, и любой сайт очень легко может использовать их. Такие системы отличаются относительно низкой эффективностью и обычно в Интернет-торговле не применяются.
Наиболее мощные средства же, уже включают в себя мощные средства оценивания потребностей клиентов. Такие системы обычно очень тесно связаны со многими отраслями искусственного интеллекта. Такие системы тоже не лишены своих недостатков: слишком мощные аналитические системы могут эффективно работать далеко не на всех серверных машинах, что для маленьких сайтов или магазинов так же не позволяет использовать их.
В данной работе преследуется цель разработать программный продукт рекомендательной системы, который позволит владельцам сайтов самостоятельно настраивать эту систему в зависимости от их обстоятельств и таким образом позволить им обойти, хотя бы частично, эти недостатки.
Детальное рассмотрение предметной области содержится в следующих главах выпускной квалификационной работы.
В продаже каких-либо товаров или услуг у продавцов встает вопрос о том, как продавать свои товары и услуги более эффективно. Существует множество способов реализовать подобное. Владельцы магазинов могут нанимать консультантов, которые будут помогать в выборе товаров покупателям. Однако данный способ не всегда будут полез ен, например для таких интернет-магазинов, как AliExpress или eBuy, где одновременно находится огромное количество продавцов, реализовать консультацию клиентов по всем этим магазинам одновременно невозможно, разве что отдельные магазины могут рекомендовать товары в пределах их магазинов. Так же следует отметить, что наём консультантов так же приносит фирмам дополнительные затраты.
Чтобы реализовать помощь клиентам в выборе товара и при этом убрать или уменьшить влияние вышеописанных проблем были придуманы специальные средства - рекомендательные системы.
Рекомендательная система - это программа, имеющая свой логику работы, алгоритм, который осуществляет анализ поступающей на него информации пользователя и на её основании выводящий какой-либо продукт, который предположительно может быть интересен данному пользователю. При этом стоит отметить, что данный продукт не обязательно должен иметь материальную форму, это может быть, например услуга, фильм, игра, музыка, и многое другое. Принцип работы любой рекомендательной системы графически изображен на рисунке 1.
Рисунок 1 - Принцип работы рекомендательных систем
В первую очередь рекомендательные системы используются в интернет - коммерции. В таких фирмах анализируют информацию пользователей для продвижения своих товаров или услуг. Примерами таких фирм являются Amazon, eBuy, AliExpress, iTunes, Steam и другие...
Другое место применения рекомендательных систем заключается в продвижении фильмов, игр, книг и музыки на сайтах, где не осуществляется прямая продажа этих продуктов, а лишь их возможное размещение для просмотра или скачивания. Другими словами применение рекомендательных систем на подобных сайтах не является основным средством повышения прибыли, но может косвенно способствовать этому. Примерами подобных сервисов являются GoodReads, IMDb и другие.
На текущий момент времени существует огромное количество различных вариаций реализации данных систем. Самые простые вариации зачастую в качестве рекомендованных продуктов выставляют самые популярные продукты, возможно с небольшими дополнениями в виде, например для книг предлагать самые популярные книги подобного, просматриваемому жанру. Подобные системы строятся достаточно просто, и любой сайт очень легко может использовать их. Такие системы отличаются относительно низкой эффективностью и обычно в Интернет-торговле не применяются.
Наиболее мощные средства же, уже включают в себя мощные средства оценивания потребностей клиентов. Такие системы обычно очень тесно связаны со многими отраслями искусственного интеллекта. Такие системы тоже не лишены своих недостатков: слишком мощные аналитические системы могут эффективно работать далеко не на всех серверных машинах, что для маленьких сайтов или магазинов так же не позволяет использовать их.
В данной работе преследуется цель разработать программный продукт рекомендательной системы, который позволит владельцам сайтов самостоятельно настраивать эту систему в зависимости от их обстоятельств и таким образом позволить им обойти, хотя бы частично, эти недостатки.
Детальное рассмотрение предметной области содержится в следующих главах выпускной квалификационной работы.
Таким образом, данная выпускная квалификационная работа по разработке рекомендательной системы с настраиваемым блоком анализа данных завершена успешно.
В ходе данной работы был проведен анализ основных подходов к реализации рекомендательных систем, а также существующие решения рекомендательных систем. По результату анализа были выделены основные преимущества и недостатки, на основании которых была доказана актуальность рассматриваемой темы.
По результату анализа были выделены, основные требования, которые должны быть реализованы в результирующем программном продукте и на основании которых была спроектирована архитектура рекомендательной системы с настраиваемым блоком анализа данных и затем реализована, как программный продукт.
Рекомендательная система успешно прошла тестирование по нескольким критериям. В результате тестирования была проанализирована эффективность разработанного алгоритма по методике RMSE, была оценена скорость работы, из которой следует, что скорость работы в первую очередь зависит от количества рассматриваемых товаров, в случае тестов - фильмов.
Помимо этого был проведен дополнительный тест над испытуемым - разработчиком рекомендательной системы, который позволил на практике оценить качество рекомендаций.
К дальнейшим планам по развитию программного продукта относится:
• доработка используемого алгоритма для повышения эффективности;
• разработка дополнительных вариантов алгоритмов, предоставляемых вместе с основным блоком;
• расширение функционала.
В дальнейшем данный программный продукт можно использовать, как инструмент для создания рекомендательных систем на различных сайтах, так и, как основу для дальнейших программных продуктов, например: сервисной рекомендательной системы или плагина для браузера.
В ходе данной работы был проведен анализ основных подходов к реализации рекомендательных систем, а также существующие решения рекомендательных систем. По результату анализа были выделены основные преимущества и недостатки, на основании которых была доказана актуальность рассматриваемой темы.
По результату анализа были выделены, основные требования, которые должны быть реализованы в результирующем программном продукте и на основании которых была спроектирована архитектура рекомендательной системы с настраиваемым блоком анализа данных и затем реализована, как программный продукт.
Рекомендательная система успешно прошла тестирование по нескольким критериям. В результате тестирования была проанализирована эффективность разработанного алгоритма по методике RMSE, была оценена скорость работы, из которой следует, что скорость работы в первую очередь зависит от количества рассматриваемых товаров, в случае тестов - фильмов.
Помимо этого был проведен дополнительный тест над испытуемым - разработчиком рекомендательной системы, который позволил на практике оценить качество рекомендаций.
К дальнейшим планам по развитию программного продукта относится:
• доработка используемого алгоритма для повышения эффективности;
• разработка дополнительных вариантов алгоритмов, предоставляемых вместе с основным блоком;
• расширение функционала.
В дальнейшем данный программный продукт можно использовать, как инструмент для создания рекомендательных систем на различных сайтах, так и, как основу для дальнейших программных продуктов, например: сервисной рекомендательной системы или плагина для браузера.





