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

25.09.19

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование SM По подписке [?] Купить один файл
Расширение для УТ11.4.:
.cfe 217,29Kb
15
15
3 SM
Скачать Купить за 2 450 руб.
Демо-база с примитивным набором данных (содержит тот же алгоритм что и расширение)
.dt 41,24Kb
8
8
2 SM
Скачать Купить за 2 150 руб.

Ко мне обращались клиенты с просьбой сделать рекомендации при подборе номенклатуры "как в интернет магазине". Небольшое исследование показало что подобные алгоритмы строятся на принципах коллаборативной фильтрации, которая бывает 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) изменена форма подбора: алгоритм смотрит на корзину, и по корзине заполняет табличная часть Рекомендации. Из рекомендаций также можно добавлять товары в корзину

 

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

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

См. также

ККМ Кассовые операции Розничная торговля Системный администратор Программист Платформа 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

6000 руб.

27.02.2017    788213    4755    9507    

2817

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

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

8970 руб.

15.12.2015    168706    807    364    

394

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

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

28500 руб.

21.04.2017    93680    119    40    

210

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

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

35000 руб.

14.10.2022    8737    15    14    

11

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

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

5000 руб.

18.03.2019    111873    29    114    

182

SALE! %

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

Можно проверить до покупки, оставьте заявку! Воспользовались более 268 компаний! Перенос в продаже с 2015г., и мы постоянно работаем над его развитием. Перенос данных из УТ 10.3 в УТ 11 | из УТ 10.3 в КА 2 | из УТ 10.3 в ERP. Предлагаем качественное и проверенное временем решение для перехода с УТ 10.3. Можно перенести начальные остатки, нормативно-справочную информацию и все возможные документы. При выгрузке можно установить отбор по периоду, организациям и складам. При выходе новых релизов конфигураций 1C оперативно выпускаем обновление переноса данных.

45650 27000 руб.

24.04.2015    192605    143    241    

274

ККМ Кассовые операции Розничная торговля Системный администратор Программист Платформа 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    330540    1898    3031    

1013
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. wowik 889 25.09.19 08:58 Сейчас в теме
2. informa1555 2696 25.09.19 09:10 Сейчас в теме
20. obmanOZ 33 10.10.19 21:27 Сейчас в теме
(2) Добрый день! А правильно ли я понял, рекомендации работают только для "опта" по сути? Т.е. ТЧ ЧековККМ просматривается?
21. informa1555 2696 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 1721 25.09.19 10:00 Сейчас в теме
(4) начало положено - а оптимизацию придумаем, я думаю, это решаемо
9. informa1555 2696 25.09.19 10:16 Сейчас в теме
(4) Спасибо за коммент! Да расчет работает медленно, но результат расчета записывается и использование в подборе не может тормозить. Да, в 1С есть "поиск ассоциаций" и "кластеризация" я про это писал же.
5. RustIG 1721 25.09.19 09:59 Сейчас в теме
7. RustIG 1721 25.09.19 10:05 Сейчас в теме
(0) не получается скачать - выходит окно с тарифами
8. informa1555 2696 25.09.19 10:11 Сейчас в теме
(7) Наверное, это после обновления инфорстарта. Я как обычно публиковал...
10. RustIG 1721 25.09.19 11:29 Сейчас в теме
(8) скачал, проблема в моем впн-канале была. отключился от впн - скачал нормально. Сорри за дезинформацию.
11. stavrosoleg 10 25.09.19 14:37 Сейчас в теме
Как всегда супер!
informa1555; +1 Ответить
12. informa1555 2696 25.09.19 14:46 Сейчас в теме
13. AlX0id 26.09.19 12:27 Сейчас в теме
Я правильно понимаю, что количество измерений вектора будет равно количеству товарных позиций в базе?
14. informa1555 2696 26.09.19 12:41 Сейчас в теме
(13) Да, почти. Правильнее добавить "учавствующих в продажах"
15. AlX0id 26.09.19 13:37 Сейчас в теме
(14)
Ну да, фильтровать номенклатуру логично )

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