Как создать набор метрик и оценок для ваших сценариев НЛП

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

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

Оценка полезности вашего бизнеса

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

Оценка ваших данных

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

Основные статистические измерения

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

Тематическое моделирование

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

Кластеризация

По аналогии с тематическим моделированием иногда можно использовать методы кластеризации. Если вы встраиваете свой корпус с помощью USE или GloVe, вы можете попытаться построить семантические кластеры. Некоторыми популярными вариантами кластеризации являются k-means и hdbscan. Для k-средних вам может потребоваться предварительное знание ваших данных, чтобы сделать обоснованное предположение о количестве кластеров (k). Hdbscan не требует, чтобы вы задавали количество кластеров, но сами кластеры, возможно, придется настроить, и, скорее всего, они не будут обобщаться, если будет введено больше данных. В определенных ситуациях кластеризация может помочь вам понять шум в ваших данных и даже определить несколько классов.

Ручная оценка данных

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

Оценка вашей модели

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

Точность

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

AUC

AUC обозначает площадь под кривой. Кривая, на которую ссылается AUC, называется кривой ROC (приемная рабочая характеристика). Кривая ROC измеряет частоту ложных срабатываний в сравнении с частотой истинных срабатываний. Чтобы по-настоящему понять суть ROC и AUC, вы можете обратиться к фантастическому сообщению в блоге моего старого коллеги об этом. Обычно ROC и AUC объясняются в контексте бинарных классификаторов, но многие сценарии НЛП обычно имеют более двух намерений. Чтобы адаптировать AUC к многоклассовым сценариям, вы можете использовать методы один против остальных или один против одного. OvR и OvO по существу разбивают ваш мультикласс на множество разных бинарных классификаторов.

Точность, отзыв и F1

Многие системы НЛП полагаются на классификацию намерений. Это когда работа модели состоит в том, чтобы предсказать намерение конкретного текста. В классификаторах точность, полнота и оценка F1 являются наиболее распространенными способами измерения качества этих прогнозов намерений. Точность сообщает вам обо всех элементах, по которым вы прогнозировали положительный результат (TP + FP), сколько из них действительно оказались положительными. Припоминание сообщает вам обо всех фактических положительно помеченных элементах (TP + FN), сколько вы предсказали положительных. F1 — гармоническое среднее точности и полноты.

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

Матрица путаницы

Матрицы путаницы не имеют единственной метрики, которую вы можете использовать для оценки того, насколько хорошо ваша модель работает с невидимыми данными. Тем не менее, они обеспечивают хороший способ качественно оценить предсказательную силу вашей модели. Часто при построении моделей на основе намерений в чат-ботах вы можете столкнуться с качественными проблемами с этими намерениями. Насколько похожи высказывания? Является ли намерение X подмножеством намерения Y? Матрица путаницы может помочь вам относительно быстро анализировать и диагностировать проблемы с вашими данными. Я часто использовал его в качестве дополнения к моему отчету о точности/отзыве/F1 по классам. Одним из недостатков матрицы путаницы является то, что если у вас слишком много намерений, страдает интерпретируемость. Матрицы путаницы также приводят к качественному анализу, поэтому оценка может быть необъективной.

БЛЕУ Оценка

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

Контрольный список показателей отказов

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

Контрольный список сам по себе является структурой, с помощью которой вы можете фактически протестировать свои модели НЛП с различными измерениями количественным и измеримым способом. Это позволяет вам проверить, насколько хорошо ваша модель реагирует на орфографические ошибки, случайные ошибки пунктуации, проблемы с распознаванием именованных объектов и другие распространенные ошибки, которые проявляются в реальном тексте. По сути, используя такие пакеты, как nlpaug или сам пакет checklist, вы фактически можете имитировать тип тестов, который вы хотите определить, и измерить коэффициент неудачных попыток для этих различных измерений в ваших данных. Недостаток реализации такого документа, как контрольный список, заключается в том, что вам придется генерировать текст самостоятельно, а это может быть дорогостоящим процессом. Контрольный список также просто описывает проблему, но решение проблем, обнаруженных в контрольном списке, может быть сложным.

Заключение

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