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

За счет постоянного совершенствования продукта команда IBM Watson Assistant старается сделать процесс создания и запуска виртуального ассистента максимально простым. Сегодня мы расскажем о Dialog Skill Analysis Notebook — фреймворк для Python, который позволяет в кратчайшие сроки разработать высококачественного ИИ ассистента в IBM Watson. Неважно, создаете ли вы своего первого чат-бота или вы — эксперт в области создания виртуальных помощников, в любом случае данный фреймворк поможет вам, если перед вами стоят вопросы:

  • Насколько эффективно работает мой чат-бот?
  • Как мне измерить эффективность ассистента?
  • Почему бот неверно отвечает на вопросы?
  • Как повысить уровень понимания вопросов ассистентом?

Как это работает?


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

Примечание: данный материал предназначен для тех, кто имеет базовое представление о создании чат-ботов на платформе IBM Watson Assistant. Если вы незнакомы с нашей платформой, или хотели бы научиться создавать качественных виртуальных ассистентов на базе IBM Watson, приглашаем вас на бесплатные обучающие семинары, которые будут проводиться в Москве и Санкт-Петербурге в марте 2020 года, включая двухдневный практический семинар по созданию виртуальных ассистентов.

Часть 1: Анализ обучающих данных


Мы будем использовать тестовый сценарий «Customer Care», доступный в Watson Assistant, в котором чат-бот обучен распознавать вопросы о магазине, например: «Where is your store located?» или «What time does it open?» и относить их к интентам Customer_Care_Store_Location and Customer_Care_Store_Hours

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



Часть 2: Анализ диалоговых навыков


Когда вы впервые создаете диалоговый навык, вы можете проверить его работу используя панель Try it out в Watson Assistant, чтобы оценить способность ассистента предсказывать принадлежность текста к определенному интенту.



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

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

Оценка производится по следующим метрикам: Accuracy, Precision, Recall и F1-мера



Рассмотрим интент «Help»:

  • Высокое значение Recall [100%] показывает, что принадлежность тестовых предложений к этому интенту была распознана абсолютно верно.
  • Значение Precision [66.67%] показывает, что некоторые тестовые предложения, относящиеся к другим интентам, были распознаны моделью, как относящиеся к интенту Help. На это необходимо обратить внимание, чтобы корректировкой обучающей выборки добиться более высокого результата
  • F1-мера [80%] является обобщающей метрикой учитывая значения Precision и Recall сообщает об общем качестве исследуемой модели

Часть 3. Расширенный анализ


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

Рассмотрим пример визуализации относительной важности слов в предложении.

Примечание
Напомним, что все примеры рассматриваются на общедоступном тестовом наборе данных, который включает в себя следующие интенты: Customer_Care_Store_Location, Cancel, Customer_Care_Appointments General_Connect_to_Agent, Thanks, Customer_Care_Store_Hours, General_Greetings, Help

При абсолютно правильной работе ассистент должен относить предложение «If you are closed on Sunday, can you slot me in for tomorrow afternoon?» к интенту Customer_Care_Appointments, поскольку пользовател просит о встрече вечером воскресенья. Однако на текущий момент данное предложение относится ассистентом к интенту Customer_Care_Store_Hours.

Посмотрев на диаграмму, становится понятно, что подобный ответ обоснован наличием в предложении слов «closed» и «afternoon», относящихся к интенту Customer_Care_Store_Hours и одновременно с этим отсутствием в предложении слов, которые могли бы быть свидетельствовать о принадлежности к необходимому интенту.
Функционал фреймворка позволяет Вам определить ключевые слова в предложении, которые ассистент «воспринимает» как наиболее важные, а значит, Вы с легкостью сможете определить причину возникновения ошибки и исправить её.

Заключение


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

Как получить доступ к фреймворку?


Вы можете скачать его с GitHub репозитория по ссылке.

Для тех, кто не хочет или не может скачать фреймворк или запустить IPython Notebook, мы создали онлайн версию фреймворка, доступную в IBM Gallery по ссылке. Такую онлайн версию можно запустить в облаке IBM в рамках сервиса Watson Studio.