[Перевод] Разметка данных: неочевидные затраты на голосовые технологии
В голосовых технологиях используется глубокое обучение (особый вид машинного обучения), позволяющее обучать Speech-to-Text (STT) — компонент обработки голоса, получающий от пользователя в аудиоформате входные данные (например, речь) и преобразующий этот фрагмент в текст. [Ссылка] В этом отношении большинство обучающих модели STT компаний полностью зависят от ручной транскрипции всех обучающих фрагментов, однако затраты на связанное с этой методикой аннотирование данных оказываются очень высокими.
Эта проблема применения ручного труда также влияет и на Natural Language Understanding (NLU) — компонент, получающий текстовое описание пользовательского ввода и извлекающий из него структурированные данные (например, запросы действий и сущности), которые позволяют системе понимать человеческий язык. [Ссылка] Например, в некоторых задачах NLU (например, в Named Entity Recognition, распознавании именованных сущностей) требуется присвоение метки каждому слову во фразе, чтобы система поняла, что это слово означает в пользовательском вводе.
Учитывая, что эта задача многократно выполняется для сотен тысяч предложений, легко понять, насколько трудозатратны транскрибирование и разметка, и почему они так дороги!
В этой статье мы хотим:
- Рассказать о проблеме, связанной с высокими затратами на ручную разметку в машинном обучении, и
- Поделиться альтернативными методиками обучения моделей STT и NLU.
Компания IBM формулирует машинное обучение (ML) как одну из сфер искусственного интеллекта (AI), нацеленную на создание приложений, обучающихся на данных и постепенно повышающих свою точность. [Ссылка] Microsoft описывает его как процесс применения математических моделей данных для обучения компьютера без прямых команд. [Ссылка]
Если вкратце, ML — это проектирование моделей ИИ, обучающихся принимать решения или делать прогнозы на основании больших объёмов обучающих данных. Эти модели обучаются распознавать паттерны в данных, например, в тексте, изображениях или речи. Но как всё это относится к голосовым технологиям, в частности, к тем, которые применяются в умных колонках?
Чаще всего при взаимодействии с голосовым устройством используется некое «пробуждающее» слово для начала взаимодействия, за которым следует команда. Эти два действия могут показаться похожими, однако при обучении системы методики разнятся. Для распознавания пробуждающего слова система обучается на несегментированных данных фрагментов, в которые включено и не включено пробуждающее слово. Для распознавания пользовательских команд модель STT обучается на сегментированных фрагментах, чтобы иметь возможность распознавать паттерны речи, окружающие каждое отдельное слово во фразе. Обе модели обучаются на большом разнообразии речевых сэмплов (например, на сэмплах фраз детей, женщин и мужчин из разных стран, разных национальностей, с различными интонациями, высотой тона и так далее), что позволяет системе достичь приемлемой точности вне зависимости от таких переменных, как пол, акцент, интонация или даже фоновый шум. [Ссылка]
Когда система научится стабильно преобразовывать пользовательскую команду из аудио в текст, она может интерпретировать текст в команду при помощи NLU, то есть определять намерение пользователя и основные элементы информации в команде, необходимые для её выполнения. Далее компонент Dialogue Manager выполняет соответствующее действие. Это может быть запуск какого-то приложения, создание напоминания или события календаря, доступ к удалённым ресурсам и/или взаимодействие с пользователем голосовым ответом, генерируемым компонентом Text-to-Speech (TTS). [Ссылка] В случае, если NLU неспособна интерпретировать команду пользователя, Dialogue Manager может попросить пользователя уточнить запрос или конкретизировать команду. [Ссылка]
Однако представленное выше объяснение максимально упрощено. Как говорилось во введении, ML в общем случае включает в себя множество парадигм, в том числе обучение с учителем и без учителя, обучение со слабым контролем, обучение с подкреплением, непрерывное обучение, активное обучение и так далее. Ниже мы вкратце объясним, как размечаются и/или передаются данные для STT и NLU.
Обучение с учителем (supervised learning) — это разновидность ML, обучающая алгоритмические модели на известных входных и выходных данных (например, на размеченных сэмплах данных). [Ссылка] Это самый распространённый подход в голосовых технологиях. Обучающие датасеты для STT состоят из аудиофайлов и соответствующих транскрипций на уровне слов в виде меток, а обучающие датасеты для NLU состоят из текстовых файлов и соответствующих действий и ключевых элементов информации, которые нужно извлечь. [Ссылка]
Затраты, связанные с ручной транскрипцией в обучении с учителем
Не всем компонентам в системе голосового взаимодействия требуются огромные массивы обучающих данных. Например, для TTS требуется всего лишь несколько десятков часов обучающих данных с одним голосом. Некоторые другие компоненты, например, STT и NLU, требуют для достижения высокой точности огромного количества размеченных данных. Например, в статье «Deep Speech 2: End-to-End Speech Recognition in English and Mandarin» [ссылка] приводится предположение о том, что для создания качественной системы STT требуется не менее 10 тысяч часов транскрибированных данных речи. Эти транскрибированные данные не только являются текстовой записью того, что произнёс говорящий, но и обозначают шум (например, свист, пение птиц и так далее) и звуки окружающей среды (например, будильники, автомобили, закрывание дверей и так далее) в структурированной и подходящей для ML форме. Поэтому людям нужно вручную транскрибировать такие звуки в письменный текст, что позволяет добавлять информацию о звуках с метками (например, «речь», «шум», «смех» и так далее) и разбивать аудио на категории для более глубокого понимания данных. [Ссылка]
Ручная разметка данных требует огромных затрат, что не позволяет заниматься ею мелким и средним бизнесам. Более того, модели STT и NLU имеют свою предметную область, то есть должны обучаться под конкретную ситуацию, в которой предполагается их применение. Например, модель STT, обученная для применения в медицине, должна обучаться на аудиозаписях с медицинской терминологией, которая варьируется в зависимости от региона и специалиста. Модели, обученные в одной предметной области или на данных общего назначения, нельзя использовать в других областях, потому что это приведёт к низкой точности и повышенной погрешности распознавания слов/действий. Из-за этого сложно распределять затраты на разработку между разными проектами/предметными областями.
Например, стоимость Amazon SageMaker Ground Truth сильно варьируется в зависимости от количества размечаемых за месяц объектов (аудиофайлов, изображений и так далее). При менее чем 50 тысячах объектов стоимость одного размеченного объекта будет составлять $0,08, для 50 тысяч-миллиона объектов $0,04, и $0,02 для более чем одного миллиона объектов в месяц. [Ссылка] Labelbox предлагает полностью управляемый сервис разметки со стоимостью от $6 за час разметки. Для транскрибирования одного часа речи требуется 2–5 часов, в зависимости от желаемого качества. Если компания хочет обучить свою модель STT на 10 тысячах часов речи, то на разметку ей понадобится выделить $200–500 тысяч!
Обучение без учителя
В отличие от методики обучения с учителем, алгоритмам обучения без учителя (unsupervised learning) передаются большие объёмы неразмеченных данных, в которых они должны искать правила, скрытые паттерны или структуры без участия человека, и группировать примеры данных, которые наилучшим образом помогают извлекать полезную информацию. [ссылка]
В голосовых технологиях обучение без учителя использовалось для выявления таких единиц слов, как фонемы и слоги, а также для создания моделей с недостаточным количеством ресурсов, например, для языков, на которых доступно лишь несколько часов речевых данных. Однако по различным причинам в сообществе STT такой подход используется крайне редко [ссылка]:
- Транскрибирование нескольких часов данных не требует особых трудозатрат
- Обучение полностью без учителя достигает меньшей точности, чем обучение с учителем при том же объёме речевых данных.
Обучение с частичным привлечением учителя
Как понятно из названия, обучение с частичным привлечением учителя (semi-supervised learning) — это сочетание обучения с учителем и без учителя. Для моделей с частичным привлечением учителя используют небольшой объём размеченных обучающих данных вместе с большими объёмами неразмеченных данных, чтобы устранить недостатки ML с учителем и без учителя. Для этого выполняется высококачественная транскрипция и аннотирование небольшой части данных, чтобы создать сильную модель, используемую как образец для остальной части данных. Однако эффективность такой методики зависит от качества модели, созданной на размеченных данных. [Ссылка]
Обучение со слабым контролем
Обучение со слабым контролем (weakly supervised learning) возникло как экономичная альтернатива транскрипций и аннотирования для обучения моделей STT и NLU.
Обученные в этой парадигме модели используют частично размеченные сэмплы. Они пытаются использовать готовые слабые метки, которые обычно получать проще и дешевле. В частноси, паттерны ошибок (например, перепутанные слова) или побочную информацию (например. сущности, которые допустимы в конкретном запросе).
Для дополнительного повышения точности обучение со слабым контролем можно использовать поверх обучения с частичным привлечением учителя. Однако его можно применять и иным образом. [Ссылка]
Например, проект COMPRISE в рамках программы H2020 разработал ПО автоматической разметки данных и обучения моделей для STT и NLU. COMPRISE Weakly Supervised STT состоит из двух модулей — модуля Automatic Transcription, обрабатывающего нетранскрибированные фразы и выводящий одну или несколько транскрипций для каждой фразы (при этом может использоваться информация о предметной области диалога), и модуля ML, получающего на входе транскрибированные предложения, оценивающего их надёжность и передающего на выход обученную модель STT.
COMPRISE Weakly Supervised NLU тоже состоит из двух модулей — модуля Automated Sequence Labelling, обеспечивающего автоматическую или полуавтоматическую разметку при помощи технологий NLP, и модуля ML, комбинирующего вручную и автоматически размеченные данные, чтобы модели постепенно находили различия между ними; это позволяет использовать несовершенную автоматически сгенерированную информацию для улучшения прогнозирования реальных меток в продакшен-системе.
Обучение с подкреплением
Также существует обучение с подкреплением (reinforcement learning, RL) — модель поведенческого обучения, в которой алгоритм предоставляет обратную связь в виде анализа данных, что позволяет системе учиться методом проб и ошибок. [Ссылка] RL в научной литературе считается самым современным методом обработки диалогов, однако на практике он сегодня редко применяется в голосовых помощниках. Хотя RL считается отличной методикой для создания Dialog Manager, учитывая, что она получает признаки текущего состояния диалога и стремится найти наилучшее для этих признаков действие, на практике бывает сложно найти подмножество, достаточно большое для того, чтобы содержать полезную информацию, и достаточно компактное, чтобы качественно обучить модель. [Ссылка]
Хотя обучение с учителем остаётся фундаментом для подавляющего большинства современных коммерческих голосовых технологий, с ним связаны огромные затраты на разметку данных.
Исследовательское сообщество активно изучает альтернативные подходы, не требующие или почти не требующие контроля человека. Некоторые исследователи даже изучают методики обучения систем STT, заменяющие записанные речевые данные генерируемыми TTS синтетическими данными, что позволяет полностью избавиться от речевых данных. Нет никаких сомнений, что такие альтернативные методики вскоре проложат себе дорогу и в коммерческие технологии, позволяя использовать голосовые технологии с большим количеством языков и принося выгоду более широкому спектру компаний.
[1.] Petraytite J. «Cómo construir un asistente de voz con herramientas de código abierto como Rasa y Mozilla». September 2019.
[2.] IBM Cloud Education. «Machine Learning. July 2020».
[3.] «What is machine learning?».
[4.] Trollope R.»7 Things You Didn«t Know About Wake Words». November 2017.
[5.] CNIL. «Exploring the ethical, technical and legal issues of voice assistants». November 2020.
[6.] Campoy A. «Voice Assistants 101: A Look at How Conversational AI Works» .August 2019.
[7.]Perez Lopez A. «Supervised learning techniques: Time series forecasting».
[8.] Deng L., Xiao L. «Machine Learning Paradigms for Speech Recognition: An Overview». May 2013.
[9.] Amodei D., Anubhai R. & others. «Deep Speech 2: End-to-End Speech Recognition in English and Mandarin»
[10.] «What is data labeling for machine learning?». December 2015
[11.] «Amazon SageMaker Ground Truth pricing».
[12.] Fumo D. «Types of Machine Learning Algorithms You Should Know». June 2017.
[13.] Zero Resource Speech Challenge.
[14.] Vincent E. «Cost Effective Speech-to-Text with Weakly and Semi Supervised Training». December 2020.
[15.] Ribeiro J. «Reinforcement Learning and 9 examples of what you can do with it». October 2020.
[16.] Lihong L, Williams D. & others. «Reinforcement Learning for Dialog Management using Least-Squares Policy Iteration and Fast Feature Selection».