AutoML Natural Language позволяет создавать и развертывать пользовательские модели машинного обучения, которые анализируют документы, классифицируют их, идентифицируют сущности в них или оценивают отношения внутри них.

Если вам не нужно решение для пользовательской модели, Cloud Natural Language API предоставляет классификацию контента, анализ сущностей и настроений и многое другое.

Руководство для начинающих по AutoML Natural Language

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

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

Почему машинное обучение (ML) - правильный инструмент для решения этой проблемы?

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

Подходит ли мне Natural Language API или AutoML Natural Language?

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

Попробуйте API естественного языка: https://cloud.google.com/natural-language/docs

Начните работу с AutoML: https://cloud.google.com/natural-language/automl/docs

Что включает в себя машинное обучение на AutoML Natural Language?

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

Подготовка данных

Чтобы обучить пользовательскую модель с помощью AutoML Natural Language, вам необходимо будет предоставить помеченные примеры типов текстовых элементов (входных данных), которые вы хотите классифицировать, а также категории или метки (ответ), которые системы машинного обучения должны предсказывать. .

Оцените свой вариант использования

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

  • Какого результата вы пытаетесь достичь?
  • Какие категории вам нужно распознать, чтобы достичь такого результата?
  • Могут ли люди распознать эти категории? Хотя AutoML Natural Language может обрабатывать большее количество категорий, чем люди могут запомнить и назначить за один раз, если человек не может распознать конкретную категорию, AutoML Natural Language также будет испытывать трудности.
  • Какие виды примеров лучше всего отражают тип и диапазон данных, которые будет классифицировать ваша система?

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

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

Источник ваших данных

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

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

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

Включите достаточно примеров с пометками в каждую категорию

Минимум, необходимый AutoML Natural Language для обучения, - это 10 примеров текста для каждой категории / метки. Вероятность успешного распознавания лейбла возрастает с увеличением количества примеров высокого качества для каждого; в общем, чем больше размеченных данных вы можете использовать в процессе обучения, тем лучше будет ваша модель. Таргетинг по крайней мере 1000 примеров на ярлык.

Распределите примеры поровну по категориям

Важно собрать примерно одинаковое количество обучающих примеров для каждой категории. Даже если у вас много данных для одной метки, лучше всего иметь равное распределение для каждой метки. Чтобы понять, почему, представьте, что 80% комментариев клиентов, которые вы используете для построения модели, являются оценочными запросами. При таком несбалансированном распределении ярлыков ваша модель, скорее всего, поймет, что безопасно всегда говорить вам, что комментарий клиента является оценочным запросом, вместо того, чтобы пытаться предсказать гораздо менее распространенный ярлык. Это похоже на написание теста с несколькими вариантами ответов, в котором почти все правильные ответы - это «C» - скоро ваш опытный тестируемый поймет, что он может отвечать на «C» каждый раз, даже не глядя на вопрос.

Мы понимаем, что не всегда можно найти примерно одинаковое количество примеров для каждого лейбла. Получить качественные, объективные примеры для некоторых категорий труднее. В таких обстоятельствах вы можете следовать этому практическому правилу - метка с наименьшим количеством примеров должна содержать не менее 10% примеров в качестве метки с наибольшим количеством примеров. Таким образом, если на самой большой этикетке содержится 10 000 примеров, то на самой маленькой этикетке должно быть не менее 1000 примеров.

Захватите вариации в вашем проблемном пространстве

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

Сопоставьте данные с предполагаемым выходом для вашей модели

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

Подумайте, как AutoML Natural Language использует ваш набор данных при создании пользовательской модели.

Ваш набор данных содержит наборы для обучения, проверки и тестирования. Если вы не укажете разделение (см. Подготовка данных), AutoML Natural Language автоматически использует 80% документов содержимого для обучения, 10% для проверки и 10% для тестирования.

Обучающий набор

Подавляющее большинство ваших данных должно быть в обучающем наборе. Это данные, которые ваша модель «видит» во время обучения: они используются для изучения параметров модели, а именно весов связей между узлами нейронной сети.

Набор для проверки

Набор для проверки, иногда также называемый набором «dev», также используется в процессе обучения. После того, как структура обучения модели включает обучающие данные во время каждой итерации процесса обучения, она использует производительность модели на проверочном наборе для настройки гиперпараметров модели, которые представляют собой переменные, которые определяют структуру модели. Если вы попытались использовать обучающий набор для настройки гиперпараметров, вполне вероятно, что модель в конечном итоге будет чрезмерно сфокусирована на ваших обучающих данных, и вам будет трудно обобщать примеры, которые не совсем соответствуют им. Использование несколько новаторского набора данных для точной настройки структуры модели означает, что ваша модель будет лучше обобщать.

Набор тестов

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

Ручное разделение

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

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

Подготовьте свои данные к импорту

После того, как вы определились, подходит ли вам ручное или автоматическое разделение данных, есть три способа добавить данные в AutoML Natural Language:

  • Вы можете импортировать данные с вашими текстовыми примерами, отсортированными и сохраненными в папках, соответствующих вашим этикеткам.
  • Вы можете импортировать данные со своего компьютера или Google Cloud Storage в формате CSV со встроенными метками, как указано в нашем руководстве по форматированию данных. Если вы хотите вручную разделить набор данных, вы должны выбрать этот вариант и соответствующим образом отформатировать CSV-файл. Чтобы узнать, как указать разделение в CSV, посетите нашу документацию.
  • Если ваши данные еще не были помечены, вы также можете загрузить примеры текста без ярлыков и использовать пользовательский интерфейс AutoML Natural Language для применения ярлыков к каждому из них.

Оценивать

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

Что мне следует иметь в виду, прежде чем оценивать мою модель?

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

Какие виды анализа я могу выполнять в AutoML Natural Language?

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

  • Выход модели
  • Порог оценки
  • Истинно-положительные, истинно-отрицательные, ложноположительные и ложно-отрицательные
  • Точность и отзыв
  • Кривые точности / отзыва
  • Средняя точность

Как интерпретировать результаты модели?

AutoML Natural Language извлекает примеры из ваших тестовых данных, чтобы представить совершенно новые задачи для вашей модели. Для каждого примера модель выводит серию чисел, которые показывают, насколько прочно она связывает каждую метку с этим примером. Если число велико, модель с высокой степенью уверенности в том, что этикетка должна быть нанесена на этот документ.

Что такое порог оценки?

Мы можем преобразовать эти вероятности в двоичные значения "включено" / "выключено", установив порог оценки. Порог оценки относится к уровню уверенности, который модель должна иметь для присвоения категории элементу теста. Ползунок порога оценки в пользовательском интерфейсе - это визуальный инструмент для проверки влияния различных пороговых значений в вашем наборе данных. В приведенном выше примере, если мы установим пороговое значение 0,8 для всех категорий, будут назначены «Отличное обслуживание» и «Предложение», но не «Запрос информации». Если ваш порог оценки низкий, ваша модель будет классифицировать больше текстовых элементов, но существует риск неправильной классификации нескольких текстовых элементов в процессе. Если ваш порог оценки высокий, ваша модель будет классифицировать меньше текстовых элементов, но будет иметь меньший риск неправильной классификации текстовых элементов. Вы можете настроить пороговые значения категорий в пользовательском интерфейсе, чтобы поэкспериментировать. Однако при использовании вашей модели в производстве вам придется обеспечить соблюдение пороговых значений, которые вы сочли оптимальными на своей стороне.

Что такое истинно положительные, истинно отрицательные, ложные и ложно отрицательные?

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

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

Что такое точность и отзыв?

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

Следует ли мне оптимизировать точность или отзыв?

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

Пример использования: срочные документы

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

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

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

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

Пример использования: фильтрация спама

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

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

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

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

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

Как использовать Матрицу неточностей?

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

Как интерпретировать кривые Precision-Recall?

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

После того, как вы выбрали порог, который кажется приемлемым для вашей модели в целом, вы можете щелкнуть отдельные метки и посмотреть, где этот порог попадает на их кривую точности-отзыва для каждой метки. В некоторых случаях это может означать, что вы получаете много неверных прогнозов для нескольких ярлыков, что может помочь вам выбрать пороговое значение для каждого класса, настроенное для этих ярлыков. Например, предположим, что вы смотрите на свой набор данных комментариев клиентов и замечаете, что порог 0,5 имеет разумную точность и запоминаемость для каждого типа комментариев, кроме «Предложение», возможно, потому, что это очень общая категория. Для этой категории вы видите множество ложных срабатываний. В этом случае вы можете решить использовать порог 0,8 только для «Предложение» при вызове классификатора для прогнозов.

Что такое средняя точность?

Полезным показателем точности модели является площадь под кривой точности-отзыва. Он измеряет, насколько хорошо ваша модель работает по всем пороговым значениям. В AutoML Natural Language этот показатель называется средней точностью. Чем ближе этот балл к 1.0, тем лучше ваша модель работает на тестовом наборе; модель, выбирающая случайным образом для каждой метки, получит среднюю точность около 0,5.

Тестирование вашей модели

AutoML Natural Language автоматически использует 10% ваших данных (или, если вы сами выбрали разделение данных, любой процент, который вы выбрали) для тестирования модели, а на странице «Оценить» вы узнаете, как модель работает с этими тестовыми данными. Но на всякий случай, если вы хотите проверить свою модель на работоспособность, есть несколько способов сделать это. Самый простой - ввести текстовые примеры в текстовое поле на странице «Прогноз» и посмотреть на метки, которые модель выбирает для ваших примеров. Надеюсь, это соответствует вашим ожиданиям. Попробуйте привести несколько примеров каждого типа комментариев, которые вы ожидаете получить.

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

Если вместо этого вы хотите использовать свою модель в собственных автоматизированных тестах, на странице «Прогнозирование» вы также узнаете, как выполнять вызовы модели программно.

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

Подробнее о AutoML Natural Language. Проверьте ссылку ниже: