В статье рассматривается проектирование ИС, настройка взаимодействия через API и разработка item-based алгоритма.
Ключевые слова: проектирование ИС, фильтрация, рекомендательный алгоритм, item-based, корреляционный анализ
В современном мире многие предприятия, стремясь максимизировать прибыль открывают сайты и переходят на Интернет-торговлю, e-commerce. Однако, деятельность существующих предприятий и организаций связана с различными производственными процессами. Стремительно растущий спрос на интернет-ресурсы и переход на e-commerce в целом требует от бизнеса перевод своей деятельности в онлайн формат. Таким образом встает вопрос создания некого последовательного алгоритма, который мог бы рекомендовать товары для небольшого интернет-магазина.
Одной из основных технологий в описании существующих бизнес-процессов организации является BPM (business procecess management — управление бизнес-процессами). Она позволяет спроектировать процесс «как есть», проанализировать узкие места и привести его в состояние «как должно быть». Построение данной диаграммы дает представление о существующем процессе и дальнейшем понимании, что нужно сделать.
Существующие персонализированные рекомендательные системы используют метод рекомендации товаров путем анализа похожих пользователей с использованием прошлой истории или рейтингов пользователей. Например, Amazon — они предоставляют систему рекомендаций, использующую методы коллаборативной фильтрации на основе элементов, и скорость приобретения рекомендуемых элементов составляет большой процент от общего объема продаж. Однако существующие методы рекомендаций не включают в себя основную информацию или социальные отношения, такие как пол и возраст, и не используются надлежащим образом, даже если они включены. Когда услуги социальных сетей применяются к существующим рекомендациям по персонализации, могут применяться различные характеристики, такие как «реальное время», «большие данные», «социальные отношения» и «последние тенденции».
При использовании подхода item-based пользователи характеризуется теми объектами, которые они оценили или просмотрели. Для каждого такого объекта определяется массив из объектов-соседей, т. е. должны быть определены наиболее похожие объекты с точки зрения оценок и просмотров пользователей. При построении рекомендательного алгоритма, например, для системы просмотра кино, массив принимает значения от 10 до 30. Все соседи таких объектов объединяются во множество, из которого исключаются объекты, просмотренные или оцененные пользователем. Из выделенного множества строится топ рекомендаций.
Для анализа предметной области требуется смоделировать процесс заказа. Настоящий бизнес-процесс построен в BPMN. Система не имеет варианта покупки онлайн и регистрации пользователя. Клиент выбирает те товары, которые ему захотелось приобрести, затем товары складываются в корзину, после чего в окне он вводит свой номер телефона, e-mail, имя и адрес.
На почту магазина приходит уведомление о поступлении заказа. Ответственный работник открывает данные по заказу в системе интернет-магазина, смотрит структуру. Затем переносит данные о заказе из интернет-платформы во внутреннюю систему. Только после переноса заявки сотрудники магазина, проверяют наличие товара у себя на складе, связываются с клиентом для подтверждения или изменения заказа и после этого подтверждают или отменяют заказ по решению клиента.
Для оптимизации процесса переноса заявок из интернет-магазина в систему управления продажами было принято решение о настройки интеграции между ними. Платформа будет осуществлять интеграцию посредствам REST API. Данное решение было выбрано так как существующий интернет-магазин имеет данной технологии.
Рис.1. Модель «как должно быть»
Настройка передача данных из интернет-магазина должна быть осуществлена на несколько событий: создание заказа, отмена заказа, обновление данных по заказу, закрытие (доставка осуществлена).
Изменения в заказе, сделанные в системе управления продажами офлайн точки, автоматически передаются в онлайн-магазин. Остатки товаров также обновляются автоматически. Это обусловлено настройкой взаимодействия. Интервал между автоматическими загрузками данных настроен на каждые 10 минут. Данное обновление является наиболее оптимальным. Итоговый процесс представлен на рис.1.
Однако же для данной системы остро стоит вопрос, касающийся улучшения продаж ввиду ее особенностей, например, такой, что основной канал продаж — это обычный магазин, а не онлайн и основные данные по продажам хранятся все еще в другой системе. В связи с этим актуальным становится разработка такого средства, которое смогло бы улучшить продажи, опираясь на имеющиеся данные. Таким средством может и должен стать рекомендательный алгоритм.
Сам интернет-магазин имеет небольшой ассортимент в отличии от физического отдела. Так как ассортимент невелик, то при создании алгоритма имеет место проблема холодного старта. Данная проблема характерна для предметов, которые не оценены пользователем и не были ранее куплены.
Для создания алгоритма используется метод топ-K рекомендаций. Сначала вычисляется k самых похожих предметов для каждого предмета, соответствующего «схожести». После этого определяется набор A тех объектов, которые будут рекомендованы как наиболее похожие. Результирующий набор предметов A, сортируемый в порядке от наиболее к менее рекомендуемым и будет являться результатом рекомендаций.
Первым шагом для реализации алгоритма стала подготовка БД. Для реализации алгоритма была выбрана реляционная база данных MySQL.
Для реализации вычисления наиболее подходящего товара из приходящего на вход таргетного чека или таргетного товара был использован встроенные классы Map и HashTable. Для сравнения объектов классов был использован Comparator. Интерфейс Map в Java представляет объекты в виде ключ-значение, что облегчает поиск элемента. Ключ — это объект.
Рис. 2. Диаграмма БД для алгоритма
Рис. 3. Веб интерфейс
Далее были проведены тестирования алгоритма. Для товара А выберем все чеки, в которых он содержится. Это чеки 1 и 5 из таблицы.
В таблице повторяющимся является только таргетный товар, поэтому его во внимание брать не будем. Присвоим каждому из товаров коэффициент и посчитаем, сколько товаров находится в результирующей таблице.
, |
(1) |
где x — количество повторяющихся элементов,
n — уникальные элементы.
Каждой характеристике товара был присвоен вес, соответственно при создании результирующей таблицы был присвоен итоговый вес. Наиболее популярным товаром будет являться синие итальянские слаксы, синий немецкий портфель и синие итальянские брюки в соотношениях 2, 2 и 1,8 соответственно.
Таблица 1
Результирующая таблица для товара «А»
Чек |
Товар |
Цвет |
Страна |
Коэффициент |
1 |
Брюки |
Синий |
Италия |
1,8 |
1 |
Портфель |
Синий |
Германия |
2 |
1 |
Слаксы |
Черный |
Германия |
1,6 |
5 |
Слаксы |
Синий |
Италия |
2 |
5 |
Портфель |
Зеленый |
Германия |
1,6 |
5 |
Пиджак |
Фиолетовый |
Италия |
1,4 |
5 |
Сорочка |
Серый |
Франция |
0,733333333 |
Перейдем в раздел web-приложения и проверим данные. Вбиваем данные по товару А. Запускаем алгоритм, проверяем результат, который представлен на рис. 4.
Рис.4. Проверка алгоритма
Данные абсолютно совпадают и показывают актуальность и состоятельность рекомендательного алгоритма.
Выводы исследования:
1) было проведено исследование бизнес-процессов магазина;
2) была спроектирована ИС управления магазина и реализована модель ее оптимизации;
3) был проведен анализ продаж и реализован алгоритм, основанный на «item-based» подходе;
4) проведено тестирование и анализ полученных результатов.
Литература:
- Инюшкина О. Г. Проектирование информационных систем (на примере методов структурного системного анализа) [Текст]: учебное пособие / О. Г. Инюшкина. — Екатеринбург: «Форт-Диалог Исеть», 2014. — 240 с.
- Das, A. Google News Personalization: Scalable Online Collaborative Filtering [Текст] / A. Das, M. Datar, A. Garg // Communications of the ACM. –2007. — Vol.16. — P. 271–280.
- Pazzani, M. J. Content-based recommendation systems [Текст] / M. Pazzani, D. Billius // The Adaptive Web. — 2007. — Vol. 4321. — P.325–341.