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

25.09.19

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

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
Расширение для УТ11.4.:
.cfe 217,29Kb
16
16 Скачать (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    796334    4903    9546    

2858

SALE! 20%

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

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

8970 7176 руб.

15.12.2015    170789    955    364    

400

SALE! 20%

Загрузка и выгрузка в Excel Оптовая торговля Печатные формы Бухгалтер Пользователь Платформа 1С v8.3 Управляемые формы Платформа 1C v8.2 Конфигурации 1cv8 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Универсальная обработка для загрузки документов из Excel в 1С одним нажатием. Не требует указания параметров (номера колонок, номер первой строки таблицы и т.д.) и предварительной настройки. Просто выбираете файл Excel, документ 1С и нажимаете кнопку "Загрузить". Обработка сама находит таблицу в файле Excel, необходимые для загрузки данные в ней (номенклатура, количество, НДС, цена, сумма) и загружает ее в 1С. Вместе с номенклатурой может найти контрагента, номер и дату документа, штрих-коды, серии ГТД, страну и т.д. Распознает документы ЛЮБОЙ ФОРМЫ (УПД, ТОРГ-12, заказ, отчет комиссионера и т.д.). Не требует MS Office. Для поиска таблиц используются методы эвристического поиска. Загружает только то, что нужно, т.е. пропускает повторы шапки таблицы, заголовки, промежуточные итоги, подписи и т.д. Содержит модуль работы с электронной почтой и api-загрузчик отчетов о продажах маркетплейсов.

6000 5100 руб.

09.11.2016    234089    1062    898    

1003

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

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

4500 руб.

27.08.2018    122181    1025    584    

864

SALE! 25%

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

5880 4410 руб.

25.05.2015    335549    1956    3058    

1031

SALE! 10%

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

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

55778 50200 руб.

24.04.2015    194949    150    243    

280

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

Универсальная конфигурация Хамелеон Меркурий для взаимодействия с системой Меркурий (тестовый+рабочий+демо контур) может использоваться для интеграции в любую конфигурацию на базе 1С, версии ПРОФ и выше. Основное отличие от других решений - работа через веб-интерфейс и API 2.0(API 2.1). Для удобства реализован общий интерфейс в виде обработки, схожей с интерфейсом Меркурий, но возможностей гораздо больше, т.к. при интеграции в Вашу учетную систему, можно на основании Ваших справочников и документов, создавать соответствующие документы и справочники в системе Меркурий и наоборот.

44000 руб.

08.11.2017    122939    292    140    

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

Осталось дождаться, когда Ильдарович научит обсчитывать все это одним запросом %)
16. informa1555 2715 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 2715 08.10.19 11:18 Сейчас в теме
(18) Эта обраблтка работает только с номенклатурой не учитывая характеристики. Если надо учитывать характеристики то можно переделать алгоритм. Насколько я понимаю вам как раз не нужно их учитывать
22. AlexeyPapanov 466 24.12.19 23:41 Сейчас в теме
Крутая вещь, мое почтение!
Одно огорчило. В копии боевой базы УТ с 12 000 позиций номенклатуры и около 2 лет работы расчет идет весь день и не заканчивается.
Комп у меня обычный (Xeon E3-1240 - аналог старого i-7700). База на обычном HDD. Я так понимаю, что очень все ресурсоемко.
Наверное надо будет отборы накладывать по периоду и номенклатуре.
23. informa1555 2715 25.12.19 06:54 Сейчас в теме
(22) Спасибо! 12000 позиций... Там без характеристик наверное надо как то свернуть. Грубо говоря если у вас есть одна и та же модель но 5 разных цветов то рекомендовать возможно нужно именно модель а не модель конкретного цвета. Ну и HDD...))
24. AlexeyPapanov 466 25.12.19 11:58 Сейчас в теме
(23) У меня нет характеристик. Скорее всего не вывозит. В моем случае надо будет сделать отборы.
Плюс еще как я понял, все делается в транзакции. Т.е., если закрываешь процесс, никаких результатов не будет записано.
В общем, дальше уже самому можно крутить. Вам спасибо за труд!
Оставьте свое сообщение