EN
DG4All
DG4All
49 subscribers

ИИ для именования объектов КМД или грабли, на которые мы наступаем

Возникла задача автоматизировать процесс присвоения имён сущностям и атрибутам концептуальной модели данных. Также замахнулись на использование ИИ для решения этой задачи в каком-нибудь приемлемом виде ))
AS IS процесс или Что у нас есть
Если кратко, у нас есть процесс ведения бизнес-глоссария, в котором заполняется ряд полей, необходимых для дальнейшей идентификации данных на ИТ-пространстве и применения этой инфо в других процессах управления данными. И одним из таких полей является поле "Уникальное имя объекта в КМД" (концептуальная модель данных).
Для решения поставленной задачи, располагаем:
- Бизнес-глоссарий, а в нём: краткое имя термина на русском/английском языке и Описание термина на русском языке.
- Концептуальная модель, которая является классификатором всех данных в компании.
- Архитектор данных, который глазками смотрит на всё это безобразие и присваивает "Уникальное имя объекта КМД" - некий мнемокод.
Мнемокод - это уникальный ключ объекта данных на всём ИТ-пространстве. Про ключи читайте тут.
Автоматизация любого процесса предполагает наличие алгоритма - правил, которые расскажут машине (ИИ) как нужно присваивать мнемокод новым объектам данным. Привожу тут общие правила присвоения мнемокода, чтобы дальше было понятнее как сейчас работаем:
Имена объектам (мнемокоды) присваиваются на английском языке, допускаются сокращения. Желательно придерживаться Upper Camel case. Мнемокод состоит из двух частей Концепт_УникальноеИмя
Концепт. Мнемокод Концепту присваивается без сокращений. Пример: Заказ - Order, Договор - Agreement, Физическое лицо - Person. На картинке ниже найдёте концепты (супер-домен Показатели).
Бизнес-сущности. Мнемокод бизнес-сущности состоит из двух частей: Часть 1 - Имя концепта, подтипом которого является бизнес-сущность. Часть 2 - уникальное имя бизнес-сущности, отражающее бизнес-контекст, в котором она работает. Пример, Концепт "Заказ" - Order, бизнес-сущность "Заказ на поставку ТМЦ" - мнемокод бизнес-сущности Order_Purch.
Атрибуты. Мнемокод атрибута состоит из 2-х частей: Часть 1 - Имя концепта, подтипом которого является бизнес-сущность, атрибуты которой мы описываем. Часть 2 - уникальное имя атрибута, отражающее его назначение. Пример: атрибут "Номер заказа на поставку ТМЦ" - Order_Number, атрибут "Дата доставки заказа" - Order_DeliveryDate.
Алгоритм работы архитектора КМД по общим правилам выглядит так (если кратко):
1. Проанализировать Термин и описание - вычленить смысловой контекст. Если недостаточно информации:
- Проанализировать формулу формирования значения термина (доп.поле методика формирования).
- Проанализировать скрипт формирования значения термина (доп.поле скрипт в DWH).
2. Отфильтровать и проанализировать подобные термины - контроль дублей ))
3. Присвоить мнемокод - всё!
Чтобы проверить нашу гипотезу - возможность применения ИИ для задачи присвоения имен КМД, решили провести небольшой пилот на реальных данных и людях.
Пилот - проверка гипотезы
В пилот взяли самый больной кусок - показатели )). Поэтому привожу вам тут картинку-структуру нашего супер-домена Показатели (фрагмент)
Общих правил для автоматизации нам оказалось недостаточно, искусственный интеллект работать настолько автономно как человек, а именно архитектор КМД, не может.
Также проблема возникла при трансляции общих правил на группу младших сотрудников, которые ранее не сталкивались с задачами моделирования данных. Попытка масштабировать процесс и передать его с архитектора данных на группу аналитиков (любых), потерпела крах из-за недостатка вводных (инструкций).
При этом основной вопрос был не в поиске концепта Часть 1, а именно в формировании уникального имени - Часть 2. Поэтому пошли детализировать и дорабатывать наш алгоритм именования данных конкретно по второй части имени, тем более что это важно/нужно для создания модели под AI. 
Вот пример одного из предложенных вариантов для формирования мнемокода. Чтобы создать уникальное имя, нам нужно выделить из описания термина в бизнес-глоссарии следующие части:
1. Объект - подлежащее
2. Характеристика объекта - прилагательное
3. Действия, совершаемые с/над объектом - сказуемое
4. Дополнительные условия - дополнение
Как вы видите, по сути, мы произвели синтаксический разбор предложения. Ну и как водится пошли экспериментировать и применять эти правила на живых людях ))
Термины для эксперимента:
Логистический срок доставки
Клиентский срок доставки
Клиентская доставка вовремя, %
Логистическая доставка вовремя, %
Синтаксический разбор - в нашем случае получается такой расклад:
1. Объект - доставка, Delivery
2. Характеристика - логистическая или клиентская, Logistic or Client 
3. Действие - нет
4. Дополнительные условия - вовремя, OnTime
В каком порядке выстраивать вычлененные элементы синтаксического разбора - дело второе, но об этом тоже надо договориться и объяснить ИИ (искусственному интеллекту).
Полученные мнемокоды:
Duration_LogisticDelivery
Duration_ClientDelivery
Ratio_ClientDeliveryOnTime
Ratio_LogisticDeliveryOnTime
Больше инфо про примеры в файле:
Показатели_пример.xls29.50 KbDownload
Проблемы, с которыми столкнулись итого
1. При ручном формировании мнемокодов сработал человеческий фактор:
- трудно и долго выделять части в предложении при анализе Определения термина;
- сомнения и вариативность выбора при переводе на английский язык и компоновке уникального имени тоже замедляет процесс.
Кажется, что с этими задачами лучше и быстрее справится модель ИИ (вот тут мы вдохновились).
2. При автоматизированном формировании вылез машинный фактор:
- невозможность разобрать предложенное определение термина, так как оно криво составлено (информации слишком мало или много);
- для устранения проблем, необходимость идти и обучать бизнес-аналитиков правильно формировать описание термина и его  определение.
Вывод: основная проблема не в том, что машина или аналитик данных не может сформировать уникальное имя сущности или атрибута, а в том, что описание этой сущности выполнено не корректно с точки зрения возможности применения к нему правил и алгоритмов машинного обучения.
А с какими проблемами столкнулись вы? Если у вас нет таких проблем, то каким образом вы ведёте КМД? - Пишите в комментариях.

Subscription levels

Юзверь

$ 1,13 per month
Оставить чаевые автору :)
и получить ранний доступ к статьям и  материалам к ним (скачать можно в течение месяца с момента публикации)

Дата-Котик

$ 4,6 per month
Бессрочный доступ к статьям и материалам к ним

Мастодонт

$ 11,3 per month
Доступ ко всем статьям, материалам и к дополнительному контенту.
Или просто Большое спасибо автору
Go up