Рекомендательный сервис на основе коллаборативной фильтрации на 1С. Расширение формы подбора для УТ 11.4

25.09.19

Учетные задачи - Оптовая торговля

В данной разработке реализован механизм рекомендаций товаров по принципу схожести товаров в корзине на основе алгоритма Item-to-Item от Amazon. Разобран алгоритм с демо базой и сделано расширение для УТ11.4 которое добавляет в форму подбора таблицу рекомендаций. Протестировано на 8.3.13.1865 на Управление торговлей, редакция 11 (11.4.8.63)

Скачать файлы

Наименование Файл Версия Размер
Расширение для УТ11.4.:
.cfe 217,29Kb
15
.cfe 217,29Kb 15 Скачать
Демо-база с примитивным набором данных (содержит тот же алгоритм что и расширение)
.dt 41,24Kb
7
.dt 41,24Kb 7 Скачать

Ко мне обращались клиенты с просьбой сделать рекомендации при подборе номенклатуры "как в интернет магазине". Небольшое исследование показало что подобные алгоритмы строятся на принципах коллаборативной фильтрации, которая бывает 2х видов "по схожести покупателей" и "по схожести предметов" (также есть гибрид этих методов). Первой мыслью было сделать алгоритм Slope One и выдавать в подборе те товары, которые покупают "похожие" покупатели, но вот Амазон в своей статье указывает на недостатки такого подхода https://www.cs.umd.edu/~samir/498/Amazon-Recommendations.pdf

На этой картинке изображено сравнение 2х подходов:

Ð%6;охожее изображение

И они используют свой алгоритм в своей интернет платформе - по схожести предметов "Item-to-Item".

В 1С есть механизм поиска ассоциаций, это реализовано в виде расчета регистра "Номенклатура продаваемая совместно", но он имеет некие настройки, которые надо подобрать эмпирическим путем, кроме того метод вычисления оценки недоступен (а он может быть разный). В то же время амазоновский и другие аналогичные методы считают "похожесть" разными способами . Например вот тут приведены различные оценки схожести векторов https://en.m.wikipedia.org/wiki/Cosine_similarity (я сразу извиняюсь за то что привожу в этой и других своих постах англоязычные тексты, но причина по которой я это делаю в том, что в русскоязычных просто недостаточно полная информация - недописанные статьи и просто не все есть. Это как начать смотреть сериал в котором не хватает серий. Проще уж сразу на англоязычных ресурсах все смотреть)

Детального описания "от и до" я не нашел, поэтому пришлось допускать свои вольности чтобы сделать применение.

Исходными данными являются продажи - документы реализации с товарами. На основе их строятся вектора. Если покупатель купил товар то присваивается "1", если не купил - "0". Т.е. количество не учитывается, учитывается только состав товара в корзине. В результате мы получаем набор векторов продаж для каждого товара . Что то типа такого: (0,1,1,0,0), (0,0,1,0,0) - размер векторов одинаковый.

Далее мы используем оценку от Амазон в виде косинуса между векторами:

Ну и получается для каждого товара мы получаем набор векторов со своими весовыми коэффициентами "похожести". Я беру для каждого товара не более 3х похожих товаров, сортирую их по убыванию коэффициентов и вывожу как рекомендуемые. Можно брать одного "победителя" для каждого товара. Тут возможны вариации.

 Сначала для разработки я использовал чистую демо базу где сделал такие исходные данные (номер продажи используется как группировка продаж, аналогично документу "Реализация товаров")

И написав алгоритм, получил такие данные в рекомендациях:

Это показывает что алгоритм работает. Эта демо база есть во вложении к статье по ней возможно будет проще разобраться с алгоритмом так как в базе простая структура и мало данных.

Также я сделал расширение для УТ11. Что оно делает:

1) там есть расчет рекомендаций по алгоритму написанному выше. Это длительная операция. Можно повесить на регл задание вызов этой функции в принципе. В результате у каждой номенклатуры вычисляются до 3-х рекомендованных товаров

 

2) изменена форма подбора: алгоритм смотрит на корзину, и по корзине заполняет табличная часть Рекомендации. Из рекомендаций также можно добавлять товары в корзину

 

На типовой тестовой базе работает несколько однобоко, так как там данных мало. А вот в рабочих базах уже интереснее. Внимание! В расширении в подборе, в рекомендациях не учитываются доступные остатки - я это не делал, в связи со спецификой задачи. Также расчет рекомендаций не работает по характеристикам - тут уже надо менять алгоритм, сейчас он только по товарам.

рекомендации товаров коллаборативная фильтрация алгоритм рекомендаций

См. также

SALE! 20%

Автоматический заказ поставщику в 1С: загрузка прайсов и анализ цен поставщиков для УТ 10.3, УТ 11, КА2, УНФ, УПП, ERP, Розница 2

Бюджетирование и планирование Оптовая торговля Розничная торговля Логистика, склад и ТМЦ Анализ продаж Платформа 1С v7.7 Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Система управления запасами для 1С помогает работать с запасами правильно: автоматически рассчитывает потребность и делает заказ поставщику, загружает прайсы, перемещает товары по филиалам, анализирует продажи и позволяет управлять ассортиментом.

28500 22800 руб.

21.04.2017    90178    105    39    

190

ККТ-ОНЛАЙН 54-ФЗ: Обработка для работы онлайн касс АТОЛ, ШТРИХ, VIKI PRINT и т.д. МАРКИРОВКА + ЭКВАЙРИНГ + БЕСПЛАТНЫЙ ДЕМО

ККМ Кассовые операции Розничная торговля Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Бухгалтерия государственного учреждения 1С:Бухгалтерия 1.6 1С:Бухгалтерия автономного учреждения 1С:CRM ПРОФ, КОРП Россия Платные (руб)

Универсальная обработка для обслуживания любых фискальных регистраторов (ККТ), в том числе Веб сервер АТОЛ. Работает в соответствии с 54-ФЗ. (ФФД 1.0, ФФД 1.05, ФФД 1.1). Подключайте любую онлайн кассу к практически любой конфигурации. Нет необходимости обновлять 1С. Можно бесплатно скачать и протестировать. Может работать одновременно с несколькими онлайн-кассами, либо одной с разных рабочих мест. (через RDP, TCP\IP или веб-сервер) Позволяет разделить один чек сразу на несколько ККТ или на несколько систем налогообложения. Можно настроить собственный шаблонов чека. Можно использовать эквайринг там, где он не поддерживается. Работает на LINUX и Windows ЭМУЛЯТОР + ЭКВАЙРИНГ + МАРКИРОВКА + ПОДДЕРЖКА ФФД 1.2

4800 руб.

27.02.2017    763104    4668    9495    

2781

ЕГАИС++. Опт, производство, импорт

Оптовая торговля Розничная торговля Обмен с ГосИС Платформа 1С v8.3 1С:Управление торговлей 10 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Рестораны, кафе и фаст-фуд Россия Бухгалтерский учет Управленческий учет Акцизы Платные (руб)

Полнофункциональное расширение (ранее известное как Модуль 1С-ЕГАИС) для взаимодействия типовых конфигураций 1С и ЕГАИС, предоставляющее максимум возможностей по работе с УТМ. Получение и отправка ТТН, отправка акта о постановке на баланс и акта о списании. Получение остатков. Загрузка и сопоставление номенклатуры и контрагентов. Оправка в ЕГАИС отчетов о производстве и импорте.

8970 руб.

15.12.2015    165966    679    362    

385

SALE! 10%

Загрузка номенклатуры из Excel в УТ11, КА 2, ERP 2, Розница 2. Дополнительные реквизиты и сведения, характеристики, картинки, цены, остатки

Загрузка и выгрузка в Excel Розничная торговля Логистика, склад и ТМЦ Ценообразование, анализ цен Прайсы Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Загрузка из файлов xls, xlsx, ods, csv, mxl в УТ11, КА 2, ERP 2, Розница 2. Задействованы все возможности конфигурации - заполнение реквизитов номенклатуры, дополнительных реквизитов и сведений, характеристики, доп.реквизиты и сведения характеристик. Дополнительные обработки для расширения возможностей.

10560 9504 руб.

29.10.2014    210169    620    524    

439

Обмен с системой ЦРПТ (Универсальная конфигурация ХамелеонЦРПТ + маркировка табака, обуви, одежды, лекарств, фото, молока, духов(парфюма), питьевой воды, велосипедов и шин)

Оптовая торговля Розничная торговля Обмен с ГосИС Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Россия Бухгалтерский учет Управленческий учет Платные (руб)

Данная публикация создана для помощи разработчикам, интеграторам и другим заинтересованным лицам по настройке системы маркировки обуви, одежды, лекарств, табака, фото, молока, духов(парфюма), питьевой воды, велосипедов и шин. Смело задавайте нам вопросы по работе с ЦРПТ, GS1, ЭДО, Национальным каталогом, мы накопили достаточно большую базу знаний по данным темам и готовы ответить на все Ваши вопросы.

104000 руб.

18.03.2019    110327    34    114    

178

Печать кассовых чеков на одну ККМ с нескольких рабочих мест для 1С:УТ11.х, КА2.х, Розница 2.х, УНФ, ERP 2.х, БП 3, БГУ2

ККМ Кассовые операции Розничная торговля Обмен с ГосИС Бухгалтерский учет Оперативный учет Управляемые формы 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Расширение конфигурации для УТ 11.4, 11.5, КА 2.4, 2.5, Розница 3.0, 2.3 и 2.2, УНФ 1.6, УНФ 3x, ERP 2.4, 2.5, БП 3, БГУ2 (Управляемые формы) позволяет выполнять печать кассовых чеков на одну ККМ 54-ФЗ с нескольких рабочих мест. НИКАКИХ НАСТРОЕК В РАЗРАБОТКЕ - ПОДКЛЮЧИЛ И ПЕЧАТАЙ. Если у вас несколько отделов и одна ККМ - печатайте на одной ККМ! Если у вас две ККМ и одна поломалась - печатайте на одной ККМ, пока ремонтируете другую!

4000 руб.

27.08.2018    115986    981    564    

827

54-ФЗ. Очередь печати для ККМ. Обработки для подключения онлайн-касс к 1С 8 (поддержка Маркировки) + Эмулятор + ФФД 1.2

ККМ Кассовые операции Розничная торговля Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Бухгалтерия государственного учреждения 1С:Бухгалтерия автономного учреждения Россия Платные (руб)

Обработка осуществляет обслуживание ККТ АТОЛ, Штрих и Меркурий для конфигураций "УТ 10.3", "КА 1.1", "УПП 1.3", "Розница 1.0", "БП 2.0" и других отраслевых решений, построенных на основе указанных выше конфигурациях. Поддерживает возможность параллельно пробития чеков на одной ККМ несколькими пользователями. Поддерживает Веб-сервер Атол. Соответствует требованиям 54-ФЗ. Поддерживает ФФД 1.0, 1.05, 1.1 и 1.2. Разделяет чеки по нескольким СНО. Поддерживает механизмы подключения ККТ по TCP/IP, для работы через RDP или интернет. Поддержка маркировки.

5400 руб.

25.05.2015    316548    1844    3008    

994
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. wowik 885 25.09.19 08:58 Сейчас в теме
2. informa1555 2646 25.09.19 09:10 Сейчас в теме
20. obmanOZ 33 10.10.19 21:27 Сейчас в теме
(2) Добрый день! А правильно ли я понял, рекомендации работают только для "опта" по сути? Т.е. ТЧ ЧековККМ просматривается?
21. informa1555 2646 11.10.19 05:46 Сейчас в теме
(20) Да для чеков не делал. Если надо чеки надо добавить в запрос по аналогии с реализациями
3. sersoft 25.09.19 09:21 Сейчас в теме
Дима как всегда плюшки реализует :) Спасибо. Попробуем использовать у себя.
informa1555; +1 Ответить
4. VmvLer 25.09.19 09:56 Сейчас в теме
за идеи спасибо.
на демках будет работать и можно "удивлять" заказчиков с целью раскошелиться.

правда, я бы предупреждал заказчика, что механизмы поиска ассоциаций, кластеризации и пр. в 1С то есть,
но на базах больше демки раз в 10 будут работать очень-очень-очень медленно и после нескольких
долгих попыток получить результат сведут на нет всю прелесть момента.
6. RustIG 1351 25.09.19 10:00 Сейчас в теме
(4) начало положено - а оптимизацию придумаем, я думаю, это решаемо
9. informa1555 2646 25.09.19 10:16 Сейчас в теме
(4) Спасибо за коммент! Да расчет работает медленно, но результат расчета записывается и использование в подборе не может тормозить. Да, в 1С есть "поиск ассоциаций" и "кластеризация" я про это писал же.
5. RustIG 1351 25.09.19 09:59 Сейчас в теме
7. RustIG 1351 25.09.19 10:05 Сейчас в теме
(0) не получается скачать - выходит окно с тарифами
8. informa1555 2646 25.09.19 10:11 Сейчас в теме
(7) Наверное, это после обновления инфорстарта. Я как обычно публиковал...
10. RustIG 1351 25.09.19 11:29 Сейчас в теме
(8) скачал, проблема в моем впн-канале была. отключился от впн - скачал нормально. Сорри за дезинформацию.
11. stavrosoleg 10 25.09.19 14:37 Сейчас в теме
Как всегда супер!
informa1555; +1 Ответить
12. informa1555 2646 25.09.19 14:46 Сейчас в теме
13. AlX0id 26.09.19 12:27 Сейчас в теме
Я правильно понимаю, что количество измерений вектора будет равно количеству товарных позиций в базе?
14. informa1555 2646 26.09.19 12:41 Сейчас в теме
(13) Да, почти. Правильнее добавить "учавствующих в продажах"
15. AlX0id 26.09.19 13:37 Сейчас в теме
(14)
Ну да, фильтровать номенклатуру логично )

Осталось дождаться, когда Ильдарович научит обсчитывать все это одним запросом %)
16. informa1555 2646 26.09.19 13:49 Сейчас в теме
(15) Я кстати видел на нативном SQL запрос для этого
17. nomadon 367 29.09.19 08:25 Сейчас в теме
(15) я на скд считал разность векторов по Евклидову расстоянию, расчет вектора товара тоже, думаю, можно запилить
18. user1199510 08.10.19 07:48 Сейчас в теме
Здравствуйте. Подскажите пожалуйста,если у нас в базе есть номенклатура например телефон красный, но он идёт с серийным номером ,то есть с индивидуальной характеристикой, будет ли ваша обработка работать с такими товарами или нужно будет что-то менять? Если нужно будет то как долго и сложно будет это сделать? Например обычно с таким телефоном продаётся чехол и защитное стекло, плюс ещё всевозможные допы.
19. informa1555 2646 08.10.19 11:18 Сейчас в теме
(18) Эта обраблтка работает только с номенклатурой не учитывая характеристики. Если надо учитывать характеристики то можно переделать алгоритм. Насколько я понимаю вам как раз не нужно их учитывать
22. AlexeyPapanov 458 24.12.19 23:41 Сейчас в теме
Крутая вещь, мое почтение!
Одно огорчило. В копии боевой базы УТ с 12 000 позиций номенклатуры и около 2 лет работы расчет идет весь день и не заканчивается.
Комп у меня обычный (Xeon E3-1240 - аналог старого i-7700). База на обычном HDD. Я так понимаю, что очень все ресурсоемко.
Наверное надо будет отборы накладывать по периоду и номенклатуре.
23. informa1555 2646 25.12.19 06:54 Сейчас в теме
(22) Спасибо! 12000 позиций... Там без характеристик наверное надо как то свернуть. Грубо говоря если у вас есть одна и та же модель но 5 разных цветов то рекомендовать возможно нужно именно модель а не модель конкретного цвета. Ну и HDD...))
24. AlexeyPapanov 458 25.12.19 11:58 Сейчас в теме
(23) У меня нет характеристик. Скорее всего не вывозит. В моем случае надо будет сделать отборы.
Плюс еще как я понял, все делается в транзакции. Т.е., если закрываешь процесс, никаких результатов не будет записано.
В общем, дальше уже самому можно крутить. Вам спасибо за труд!
Оставьте свое сообщение