На ACL2019 мы представили nex-cv »: метрику, основанную на перекрестной проверке, адаптированную для улучшения небольших несбалансированных наборов данных на естественном языке, используемых при разработке чат-ботов. Основная идея - использовать правдоподобные отрицательные примеры при оценке классификации текста.

Наш опыт основан на создании чат-ботов по набору персонала, которые являются посредниками в общении между соискателями и рекрутерами, предоставляя набор данных ML / NLP
команде по подбору персонала.
Команды рекрутеров, мотивированные масштабом и доступностью, создают и поддерживают чат-ботов, которые дают ответы на часто задаваемые вопросы (FAQ) на основе наборов данных ML / NLP.

Корпоративные клиенты могут иметь до 100 тысяч сотрудников и соразмерную норму найма. Более 50% трафика конечных пользователей (ищущих работу) происходит в нерабочее время или в праздничные дни (в соответствии с анекдотическими сообщениями о том, что использование чат-бота снижает нагрузку на электронную почту и тикеты) - мы копаемся в этом в другом посте.

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

Улучшения качества данных

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

  • дает оценки точности в большей степени в соответствии с человеческим суждением, чем, например, F1 при перекрестной проверке (подробности в документе)
  • гарантирует, что данные из классов с низкой численностью населения включены как в обучение, так и в тестирование, по крайней мере, в качестве «отрицательного примера»
  • может использоваться для выработки внутренних рекомендаций и как часть постоянного поддержания качества данных

Принцип этих «рекомендаций» заключается в том, чтобы в первую очередь решать наихудшие проблемы. Самая распространенная проблема, с которой мы сталкиваемся, - это когда меньшая категория перекрывается по значению с более крупной и ухудшает и то, и другое. На приведенном выше рисунке показаны рекомендуемые пары, на которых следует сосредоточиться. В категории Remote_work меньше вопросов (всего 15), чем в категории Company_location (в которой 26). Это может означать, что Remote_work следует объединить с Company_location; перераспределены где-то еще в наборе данных; или обогащенный и очищенный. Наши внутренние инструменты используют эту метрику для предоставления действенных рекомендаций, которые помогают значительно и постоянно улучшать общее качество данных. Вышеупомянутая рекомендация представляет собой сгенерированное текстовое резюме результатов матрицы неточностей, которое используется персоналом, не являющимся разработчиком, для улучшения качества данных.

Качество и обслуживание данных в чат-ботах

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

Например, когда дело доходит до вызовов голосового агента (Ali et al., 2018) *, конструкция набора данных кодирует данные о том, как пользователи представляют себе просьбу о действии: авторы используют краудсорсинг для достижения согласованности, полезной для классификации, и отражение ожиданий пользователей в наборе данных.

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

Очистка данных актуальна не только для чат-ботов. Не зависящие от модели системы для понимания машинного обучения могут помочь итеративно разрабатывать модели машинного обучения (Zhang et al., 2019) *. Функциональная инженерия может быть доступна не разработчикам или экспертам в предметной области, например (Рибейро и др., 2016) *. Мы используем репрезентативные примеры в процессе, который открывает nex-cv для лиц, не являющихся разработчиками; с использованием подхода проверки-объяснения-уточнения, использованного в (Zhang et al., 2019) *. Возможность эффективно очищать данные, не являющиеся разработчиками, позволяет разработчикам сосредоточиться на корректировке модели и проектировании функций.

Есть много способов измерить общее качество чат-бота, например, ручные контрольные списки наличия высокоуровневых функций (Kuligowska, 2015; Pereira and Díaz, 2018) *. Измерения поведения пользователей - как явные, такие как оценки или отзывы, так и неявные, такие как выбор времени или настроения, - исследуются в (Hung et al., 2009) *. Во время разработки показателей мы использовали качественные отзывы пользователей-экспертов в предметной области и ключевые показатели эффективности (KPI), такие как скорость автоматического ответа. Использование классификатора в качестве компонента в сложном потоке требует надежной и действенной оценки этого компонента.

* - полный список см. В статье.

Код и реализация

Код, доступный в Интернете - https://github.com/jobpal/nex-cv - предоставляет оценочную реализацию, абстрактное определение черного ящика для классификатора и две стратегии, помогающие протестировать реализацию. Для тестирования интеграции можно использовать CustomClassifier.test () для проверки согласованности оболочки классификатора. Для функционального тестирования nex-cv с K = 0 (Alg. 2) и P = 0 (Alg. 2) должен давать результаты, аналогичные 5-кратной перекрестной проверке.

Оценка и повышение качества данных классификации текста чат-бота с использованием достоверных отрицательных примеров. Кит Куксенок и Андрей Мартынов - представлены на семинаре ACL 2019 по НЛП для разговорного ИИ, 1 августа 2019 г.

Код: https://github.com/jobpal/nex-cv