- Кто в нашей компании отвечает за согласование доступа в выходные на объект N?
 - Александр Иванов.
 - А какой у него телефон?

С таким диалогом легко справится любой офисный клерк, но для чат-ботов и диалоговых помощников подобные сценарии беседы до сих пор являются проблемой. Для ответа на эти вопросы как человеку, так и машине требуется обратиться к структурированным данным, в нашем примере – к справочнику сотрудников и списку ответственных за согласование доступа на объекты.

Для ответа на подобные вопросы диалоговой системе нужно построить цепочку связей между обсуждаемыми объектами: компанией, ее сотрудниками, зданиями, полномочиями по согласованию доступа. Такие связи легко представить в виде графа, вершины которого представляют объекты, а ребра – связи между ними. Методы и технологии онтологического моделирования («Семантической сети», Semantic Web) предоставляют технологический базис и готовые концептуальные модели для работы с такой информацией. Технологии создания корпоративных графов знаний (Enterprise Knowledge Graph) и виртуализации данных (Data Virtualization) позволяют построить графы из огромных массивов данных, хранящихся в корпоративных хранилищах, связать их и наделить формальным смыслом. В таких графах содержится вся информация, необходимая для ответов на многие вопросы сотрудников предприятия, для поддержки принятия решений и качественной аналитики.

Современные диалоговые системы строятся с использованием жестко заданных сценариев и нейросетевых моделей. Для преобразования текста в запрос (задача text2sparql) нейросеть обучают на большом количестве вопросов и соответствующих им запросов к графу знаний. Существует несколько вариантов подобных методик, но все они имеют те или иные недостатки: сложность объяснения того, как получен результат, отсутствие уверенности в правильности результата (или в том, что выбран лучший результат из нескольких возможных), низкая эффективность или невозможность ответить на вопросы сложной структуры.

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

Подобно тому, как человек, которому задан вопрос, соотносит услышанные слова с понятиями предметной области (такими как «компания», «объект», «ответственный»), диалоговая система должна установить соответствие между словами и элементами концептуальной модели (классами и свойствами), чтобы затем сформировать запрос к корпоративному графу знаний. При этом возникает несколько сложностей:

  • Одни и те же слова обычного языка в разных контекстах могут означать разные понятия. Например, слово «раздел» может означать часть документа или процесс разделения чего-либо.

  • Слово может означать множество объектов («Отдел нашей компании» – любой из множества отделов) или конкретный объект («Отдел маркетинга»).

  • Нужно учитывать синтаксические связи, взаимную зависимость слов в предложении для того, чтобы правильно построить запрос к графу знаний. Например, фразы «отдел, в котором работает Иванов» и «Иванов как начальник отдела» приведут к формированию совершенно разных запросов к графу.

  • Необходимо «помнить» контекст разговора: в ответ на уточняющий вопрос «Какой у него телефон?» нужно понять, о чьем именно телефоне идет речь.

  • Если не получается построить запрос на основе вопроса пользователя, нужно задать ему уточняющий вопрос.

Для решения этих и других проблем мы создали конвейер преобразования текста в запрос к графу, который включает следующие элементы:

  • Анализ морфологии и синтаксиса фразы, разрешение ко-референсов (ссылок на элементы фразы при помощи местоимений и именных анафор).

  • Поиск упоминаний элементов онтологии, связывание слов вопроса с классами и свойствами модели.

  • Добавление связей (предикатов) между упоминаниями.

  • Разрешение смысловых неоднозначностей.

  • Добавление скрытых узлов для обозначения связующих сущностей, о которых в тексте умалчивается.

  • Поиск конкретных объектов, упоминаемых во фразе.

  • Выполнение запроса к корпоративному графу знаний.

  • Формирование ответа, понятного человеку.

В процессе выполнения этих шагов строится граф разбора фразы, который в конечном счете приобретает такой вид:

Граф разбора документа
Граф разбора документа

На этом рисунке Token – слова предложения, красными стрелками показаны их синтаксические связи. Mention – упоминания элементов онтологии и смысловые отношения между ними. Object – конкретные объекты корпоративного графа знаний, упоминаемые во фразе. При анализе синтаксиса фразы и поиске упоминаний могут использоваться нейросети, но в основном мы опираемся на алгоритмы, использующие онтологическую модель.

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

  • Модель предметной области описывает структуру корпоративного графа знаний. Ее можно изменять по ходу работы системы, добавляя в сферу ее «компетенций» новые типы сущностей и свойств.

  • Лексическая модель описывает способы употребления слов для обозначения элементов модели предметной области. Управление этой моделью позволяет обогащать «словарный запас» диалогового помощника по ходу работы, учить его лучше определять различия смысла слов в разных контекстах.

Если диалоговой системе не удалось построить на основе фразы связный граф и затем сформировать запрос к корпоративному графу знаний, она задаст пользователю уточняющий вопрос.

Реализованный нами вариант диалоговой системы по сравнению с другими чат-ботами имеет следующие особенности:

  1. В нем нет «заскриптованных сценариев» для поиска ответов на вопросы – распознавание любого вопроса выполняется с помощью обобщенного, универсального алгоритма. Это значит, что система потенциально может ответить на любой вопрос пользователя, а не только на заданный определенным образом.

  2. Для ответов на вопросы диалоговая система обращается к структурированным данным. Это главное и принципиальное преимущество нашего решения, именно оно обеспечивает практическую ценность и достоверность ответов системы.

  3. Управление набором лексики, «понятной» помощнику, осуществляется через онтологическую модель и может происходить по ходу работы системы.

На странице http://88.86.209.139:3025/chat/ мы разместили демо-версию, с помощью которой можно попробовать пообщаться с диалоговой системой. Справа на этой странице показаны примеры вопросов, на которые система дает верные ответы; среди них есть примеры с уточняющими вопросами как со стороны пользователя, так и со стороны бота.

Подобные помощники могут пригодиться для обсуждения таких «сложных» тем, как характеристики и применимость изделий или товаров, структурные или функциональные отношения в больших организациях и на предприятиях, поиск и анализ событий в сложных системах. Иными словами – во всех случаях, когда и человеку для ответа на большую часть вопросов пришлось бы обращаться к базам данных и документам.

Комментарии (2)


  1. ihouser
    09.11.2021 16:43

    – Кто в нашей компании отвечает за согласование доступа в выходные на объект N?
    – Александр Иванов.
    Он же уволился на прошлой неделе?

    Информация со временем меняется. Следить за этим и исправлять граф будет адский труд. Через пол года бот станет без полезным.


    1. SergeIndex Автор
      09.11.2021 17:59

      Как раз для этого нужна виртуализация данных, упомянутая в статье. Корпоративный граф знаний в нашем понимании - это не просто слепок информации из корпоративных приложений. Это виртуальная конструкция, которая формируется по частям "на лету" во время выполнения запросов.

      Чтобы это воплотить в реальности, мы делаем следующее:

      • создаем онтологическую модель предметной области, в которой описаны классы и атрибуты: сотрудник, объект, согласование доступа и др.

      • создаем адаптеры для доступа к данным корпоративных систем с помощью веб-сервисов на их стороне, или прямого доступа к их СУБД на чтение

      • создаем в онтологии правила сопоставления элементов модели предметной области элементам структуры данных корпоративных систем: список актуальных сотрудников находится в таком-то справочнике системы кадрового учета, сведения о маршрутах согласования - в таком-то виде в СЭД, и так далее

      • платформа виртуализации данных умеет принимать SPARQL-запросы в терминах модели предметной области (их она получает в результате преобразования вопросов пользователей), с помощью правил мэппинга извлекать на лету данные из систем-источников, строить временный граф, необходимый для ответа на запрос, и формировать ответ.

      Благодаря такому подходу информация в корпоративном графе знаний всегда актуальна.