Как стать автором
Обновить

Диалоговые помощники для работы со структурированными данными

Семантика *Natural Language Processing *

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Теги:
Хабы:
Всего голосов 4: ↑4 и ↓0 +4
Просмотры 981
Комментарии Комментарии 2