Часть 1. Создание пользовательской модели машинного обучения с помощью AutoML

Некоторое время назад я использовал Cloud Natural Language (NL), чтобы проанализировать тональность сотен отзывов о конкретной аренде для отпуска. Это оказался быстрый и последовательный способ выделить и обобщить, о чем говорили рецензенты и что они думали по этому поводу. Место хорошее или плохое? А как насчет стоимости? Cloud NL смогла определить, о чем говорили рецензенты, и присвоить количественные оценки настроениям, выраженным по каждой теме.

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

Но что модель знает о том, чтобы сидеть на асфальте?

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

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

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

Примечание. Если вы последуете инструкциям, затраты на вычисления составят ~ 15 долларов. Это может быть компенсировано бесплатным кредитом в размере 300 долларов США, если вы зарегистрируете новую учетную запись Google Cloud Platform.

Подготовьте свои данные

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

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

  1. Загрузите Tweets.csv на свой рабочий стол и импортируйте его в новую таблицу Google.
  2. Удалите все столбцы, кроме текста и Airlines_sentiment, и разместите их как столбцы A и B соответственно.
  3. В столбце air_sentiment замените «отрицательный» на 0, «нейтральный» на 1 и «положительный» на 2. Вы можете использовать вложенный оператор IF или найти и заменить что-нибудь быстро.
  4. Загрузите текущий лист в виде файла CSV.

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

Загрузка набора данных в AutoML

Для создания пользовательской модели с AutoML требуется Проект Google Cloud Platform, и когда он будет готов, перейдите к AutoML Natural Language.

  1. Нажмите + НОВЫЙ НАБОР ДАННЫХ на верхней панели веб-страницы.
  2. Дайте набору данных имя и выберите «Анализ настроений» в разделе «Цель».
  3. Выберите вариант загрузки CSV-файла со своего компьютера и выберите подготовленный файл.
  4. Нажмите СОЗДАТЬ НАБОР ДАННЫХ. Загрузка займет несколько минут, и вы получите уведомление по электронной почте, когда она будет завершена.
  5. Получив электронное письмо, щелкните ссылку, чтобы просмотреть загруженные элементы.

Обучение вашей модели

После того, как ваш набор данных создан, пора приступить к обучению вашей пользовательской модели. Обучение стоит 3 доллара / час и занимает несколько часов (в этой модели 3–4 часа).

  1. Перейдите в подменю ПОЕЗД и нажмите ПОЕЗДАТЬ НОВУЮ МОДЕЛЬ.

Вот и все!

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

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

Чтобы проверить, работает ли эта модель лучше, чем при использовании предварительно обученной модели, я запустил подмножество твитов через Cloud Natural Language API, чтобы проанализировать тональность на уровне документа. Классифицируя диапазоны оценок тональности для «положительного» (от 0,25 до 1), «нейтрального» (от -0,25 до 0,25) и «отрицательного» (от -1 до -0,25), общая оценка точности колебалась около 60%. Итак, для моих целей пользовательская модель AutoML имеет заметное повышение точности по сравнению с предварительно обученной моделью.

Анализируйте тональность нового текста

Попробуйте свою модель, проанализировав настроения прямо в продукте!

  1. Перейдите в подменю ПРОГНОЗ, введите новый образец текста в текстовое поле и нажмите ПРОГНОЗ.

Созданная вами модель возьмет текст и спрогнозирует оценку тональности с обученной детализацией (0 = отрицательное, 1 = нейтральное, 2 = положительное).

AutoML не может сказать мне, почему настраиваемая модель присваивает оценку тональности 0 («отрицательно»), в то время как результат предварительно обученной модели является нейтральным. Возможно, лучше понять упоминание о гудронированном шоссе, которое 90 раз встречается в тренировочных данных. Возможно, это обучение нестандартной модели фразам, похожим на твиты, а не формальному написанию. Возможно, пользовательская модель решила, что каждый твит с @United отрицателен (шучу! По крайней мере, здесь не так).

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

Следующие шаги

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

Обновление: Часть 2 доступна здесь!