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