20 элементов, отличающих подход Cognigy к NLU

С Cognigy целое больше, чем сумма его частей

Введение

«Целое больше, чем сумма его частей», — Аристотель, древнегреческий философ.

Это в значительной степени относится к Cognigy: вся экосистема Cognigy Conversational AI намного больше, чем сумма множества компонентов, составляющих продукт Cognigy.

Их секрет заключается в оркестровке… многие элементы, составляющие структуру Cognigy, сами по себе не уникальны. Но немногие среды организуют эти элементы так же хорошо, как Cognigy.

Еще один ключ к успеху Cognigy — противоречие интуиции. Они не пытаются обесценить одну ногу или конкретный элемент традиционной архитектуры чат-бота. А скорее слияние или стирание границ между потоками, сущностями, намерениями и ответами клиентов.

Это целое, созданное Cognigy, дает гештальт решения. Подробнее об целом далее…

Можно сказать, что традиционно чат-боты или диалоговые агенты ИИ состоят из четырех столпов архитектуры.

Эта архитектура очень универсальна для коммерческих платформ чат-ботов; существование:

  • Намерения
  • Сущности
  • Ответы бота (он же скрипт/диалог бота)
  • Sate Machine (Диалоговое) Управление

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

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

Таким образом, это прямолинейная и жесткая установка, которой трудно управлять, и она далека от искусственного интеллекта в целом и разговорного ИИ в частности.

Существует два подхода к решению этой негибкости чат-ботов.

Первая цель состоит в том, чтобы отказаться от части функциональных возможностей NLU.

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

Когнитивный подход

Познавательный подход, чтобы никоим образом не осуждать поток вызовов. Или каким-либо образом отказаться от компонента NLU. Но скорее увеличьте и то, и другое, чтобы решить эту жесткость и подход, основанный на правилах.

На рынке вообще происходит слияние Намерений и Сущностей. Где сущности назначаются или выделяются для определенных намерений. Это делает модель более предсказуемой. Cognigy продвигает этот принцип еще дальше, связывая элементы NLU (намерения и объекты) с определенными диалоговыми потоками или частями потоков.

Элементы, из которых состоит чат-бот в Cognigy: намерения, потоки, прикрепленные к намерениям, прикрепленные лексиконы, состояния и заполнители слотов.

В этой статье мы сосредоточимся на подходе Cognigy к NLU.

Cognigy в целом имеет сбалансированный подход. Учитывая сочетание моделей машинного обучения для NLU, а также конфигураций, правил и ключевых слов.

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

Cognigy добавила гибкости и инноваций в свой компонент NLU следующими способами:

  1. Конкретные потоки разговора связаны с конкретными намерениями. И внутри этих намерений связаны конкретные сущности. Эта тесная связь NLU и секций диалогового потока позволяет повысить точность и улучшить управление.
  2. Иерархические намерения. Другими словами, вложенные намерения или поднамерения.
  3. Намерения, основанные на правилах. Намерения могут быть вызваны правилами и ключевыми словами.
  4. Условные намерения. Инициировать намерение X только в том случае, если условие Y истинно.
  5. Намерения могут быть включены или отключены в зависимости от состояния разговора.
  6. Обратный вызов; с сущностью, вызывающей намерение.
  7. Намерения могут быть занесены в черный или белый список. Следовательно, этапы пути можно отключить.
  8. К намерению можно добавить подтверждение.
  9. Пороги подтверждения и достоверности могут быть установлены для каждого намерения.
  10. Значение неоднозначности может быть установлено для намерений.
  11. Отступление возможно за счет слияния намерений потоков
  12. NLU API для использования сторонними NLU.
  13. Расширенные готовые составные системные сущности.
  14. Управление контекстом поддерживает NLU.
  15. Объекты. Лексиконы можно рассматривать как группы доменных Ключевых фраз (Сущностей), которые, в свою очередь, связаны с Потоком. Сущности называются слотами и определяются в редакторе лексикона. Слоты, в свою очередь, могут быть связаны с намерениями.
  16. Условия намерений
  17. Точки входа намерения могут быть определены на разных этапах потока.
  18. Варианты быстрой сборки.
  19. Дополненная информация о каждом диалоге.
  20. Посреднический уровень NLU.

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

Но комплексное решение, предложенное Cognigy, безусловно, уникально; опять же, в этом случае можно утверждать, что целое больше, чем сумма признаков.

1. Связывание потоков и NLU

Функция вложения Flow устраняет необходимость дублирования функций в потоках агента Cognigy AI. Потоки можно просто присоединить друг к другу, чтобы распознать намерения, созданные в других местах.

Функциональность потока распределяется между потоками, делая их намерения доступными в другом потоке. Если Намерение присоединенного Потока имеет наивысшую оценку, присоединенный Поток выполняется вместо основного Потока.

Этот принцип реализован в Microsoft Composer, где модель NLU рассредоточена и сегментирована по диалогам. Следовательно, модель NLU не управляется централизованно. Однако реализация Microsoft Composer не так чиста, как реализация Cognigy.

Узел Lookup можно использовать для поиска Intent. Можно установить уровень иерархии намерений, на котором находятся намерения. По умолчанию соответствует Intent на самом подробном уровне.

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

Я предвижу сценарии, в которых основное намерение приведет пользователя к потоку, а вспомогательное намерение может быть использовано для управления беседой.

2. Вложенные намерения

Основные действия на рынке чат-ботов в отношении намерений и сущностей:

До сих пор я встречал две реализации вложенных намерений или уровней намерений или дочерних намерений; HumanFirst и Cognigy.

Как видно выше, намерение Balances(красный) имеет три вспомогательных намерения (зеленые) и намерения третьего уровня (желтые).

На фразу «сберегательный баланс для моего собственного счета» НЛУ возвращает:

"intentLevel": {
    "level1": "Balances",
    "level2": "Personal Accounts",
    "level3": "Savings"
  }

Вы можете увидеть преимущество вложенных намерений, зная, что был запрошен баланс для личной учетной записи, а тип учетной записи — Сбережения.

3. Намерения, основанные на правилах

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

Как видно выше, цель Forex Trader вызывается, когда текст, введенный пользователем, включает «форекс трейдер».

Правило можно использовать в сочетании с примерами намерений.

"text": "Do you have support for forex traders?",
"intent": "Forex Trader",
"intentScore": 1,
"intentFlow": "3bc95377-c78d-4198-bed3-d45357fe9fbd",
"slots": {},

Имейте в виду, правило должно быть верным для родителя и ребенка. Вы не доберетесь до дочернего элемента, если родитель не соответствует действительности.

Опять же, это не уникальная функция Cognigy, а случай, когда целое больше, чем сумма его частей.

4. Условные намерения

Условия могут быть установлены для намерения, чтобы вызвать намерение только в том случае, если определенное условие истинно. Это поле может содержать условия CognigyScript. Намерение будет найдено, только если условие true.

Как показано выше, для намерения можно задать условия, при которых намерение срабатывает только в том случае, если определенное условие истинно.

5. Включите или выключите намерения

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

Когда намерение отключено, вы не можете изменить намерение. Намерение также не будет срабатывать в потоке.

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

Как видно выше, включить или отключить намерения легко, особенно если нет необходимости удалять намерение.

6. Обратный вызов

Ниже приведен пример, когда я ввел фразу, которая не соответствовала каким-либо намерениям, но из этой фразы была извлечена ценная информация с точки зрения лексики. Лексиконы в Cognigy охватывают slogs/entities. Ниже вы можете увидеть ключевую фразу с синонимом, найденным в лексиконе.

В случаях, когда намерение не обнаружено, данные, возвращенные из лексикона, могут использоваться для надлежащего управления вызовом.

Ниже приведен образец JSON, возвращаемый поворотом диалога, с подробным описанием лексикона.

AccountType": [
{
"keyphrase": "Credit",
"lower": "credit",
"neg": false,
"synonym": "credit card account",
"offset": {
"start": 0,
"end": 19
},

Эти данные можно использовать для дальнейшего разговора…

7. Намерения черного и белого списков

Для диалогов можно определить несколько состояний, а намерения, которые может вызвать NLU, можно контролировать.

Можно создать одно или несколько состояний, к каждому состоянию можно добавить белый список или черный список.

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

Это удобный способ управления этапами разговора для обслуживания, оптимизации и т. д.

8. Подтверждение намерения

Эта функция во многом напоминает подход AWS с Lex и Alexa. Но в случае с AWS это связано с заполнением слотов.

Вопрос к пользователю, является ли это намерение предполагаемым. Запускается, когда показатель намерения выше повторного подтверждения и ниже порога достоверности.

9. Пороги подтверждения и уверенности

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

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

Во время тестирования оценку намерений можно получить на вкладке информации, где видны полезные данные JSON.

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

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

10. Устранение неоднозначности намерения

Определите предложение, которое будет представлено пользователю для устранения неоднозначности.

Выше это часть представления намерения в Cognigy с возможностью ввести предложение с устранением неоднозначности.

11. Отступление

Отступление также можно назвать переключением потоков. Три сценария:

  • Поток может быть выполнен один раз и вернуться к точке входа исходного потока.
  • Получите доступ к потоку и оставайтесь потоком, не возвращаясь.
  • Присоединить поток: объединить NLU одного потока с NLU другого потока.

Выше объедините NLU одного потока с NLU другого потока.

12. API НЛУ

Есть несколько вариантов для выбора API NLU со списком существующих интеграций, Cognigy NLU или любого стороннего API NLU.

Выше приведены варианты поставщиков API NLU с Cognigy NLU API, а также сторонним механизмом NLU.

13. Составные системные сущности

По умолчанию Cognigy имеет мощное средство обнаружения системных сущностей, которое является контекстным и составным. Ниже приведен пользовательский ввод и часть вывода…

Ввод:

We are traveling on Saturday by car with three friends and return on the 1st of March. The plan is to visit Madrid

Часть вывода:

"start": 
  {
          "year": 2022,
          "month": 3,
          "day": 1,
          "hour": 0,
          "minute": 0,
          "second": 0,
          "milliseconds": 0,
          "weekday": 2,
          "dayOfWeek": "Tuesday",
          "ISODate": "2022-03-01T00:00:00+01:00",
          "plain": "March 1, 2022",
          "grain": "day"
        }
"end": null,
        "text": "on Saturday"
  
  
     "detailedSlots": {
      "DATE": [
        {
          "data": {
            "start": {
              "year": 2022,
              "month": 2,
              "day": 26,
              "hour": 0,
              "minute": 0,
              "second": 0,
              "milliseconds": 0,
              "weekday": 6,
              "dayOfWeek": "Saturday",
              "ISODate": "2022-02-26T00:00:00+01:00",
              "plain": "February 26, 2022",
              "grain": "day"
            },
   
 
 "NUMBER": [
        {
          "data": {
            "value": 3
          },
          "text": "three",
          "offset": {
            "start": 63,
            "end": 68
          }
        },

14. Управление контекстом поддерживает NLU

Детали намерения можно использовать для контекстуального управления вызовом с точки зрения управления состоянием диалога. Имена намерений и оценки намерений можно использовать для управления потоком диалога.

Узлы дела можно настроить на основе имен намерений и уровня намерения. Уровень может быть 1, 2 или 3.

15. Подход к сущностям

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

16. Условия намерений

Это поле может содержать условие CognigyScript. Намерение будет найдено только в том случае, если условие истинно.

17. Точки входа намерения

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

Выше, определение точек входа намерения для потока.

18. Быстрая сборка

Нажав стрелку на кнопке Построить модель, можно выбрать параметр Быстрая сборка.

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

19. Дополненная диалоговая информация

Во время тестирования вашего чат-бота на вкладке информации вы найдете документ JSON с подробными данными, относящимися к вводу и выводу вашего хода диалога.

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

20. Посреднические слои

Существует возможность написания сценариев для интерфейса NLU, до и после интеграции NLU. Следовательно, для входных и выходных данных.

Это полезно для любого преобразования данных при вводе или выводе из API NLU. Этот уровень преобразования/посредника добавляет гибкости решению и уровень настройки.

Заключение

Как я упоминал ранее в этой истории, некоторые из этих элементов NLU определенно являются частью других платформ разговорного ИИ. Но ключевым отличием Cognizy являются:

  1. То, как намерения, потоки, лексиконы, состояния и заполнители слотов согласовываются с различными параметрами. Эти элементы организованы и дополнены новыми и инновационными настройками.
  2. Cognigy NLU — это не только NLU, к намерениям добавлено множество настроек и параметров, связанных с диалогами.



«Подпишитесь на мою рассылку.
НЛП/НЛУ, Чат-боты, Голос, Разговорный UI/UX, CX Designer, Разработчик, Вездесущие пользовательские интерфейсы, Ambient…кобусгрейлинг. мне"