Как стать автором
Обновить
1028.34
МТС
Про жизнь и развитие в IT

End2End-подход к пониманию разговорной речи

Время на прочтение 11 мин
Количество просмотров 22K
Существует несколько подходов к понимаю машиной разговорной речи: классический трехкомпонентный подход (включает компонент распознавания речи, компонент понимания естественного языка и компонент, отвечающий за некую бизнес-логику) и End2End-подход, который предполагает четыре модели реализации: прямую, совместную, многоступенчатую и многозадачную. Рассмотрим все плюсы и минусы этих подходов, в том числе на основе экспериментов компании Google, и подробно разберем, почему End2End-подход решает проблемы классического подхода.



Передаем слово ведущему разработчику центра AI МТС Никите Семенову.

Привет! В качестве предисловия хочу процитировать всем известных ученых Яна Лекуна, Иошуа Бенджио и Джеффри Хинтона — это три пионера искусственного интеллекта, которые недавно получили одну из самых престижных премий в области информационных технологий — премию Тьюринга. В одном из выпусков журнала Nature в 2015 году они выпустили очень интересную статью «Deep learning», в которой была занимательная фраза: «Deep learning came with the promise of its capability to deal with raw signals without the need for hand-crafted features». Ее трудно корректно перевести, но смысл примерно такой: «Глубокое обучение пришло с обещанием возможности справляться с сырыми сигналами без необходимости ручного создания признаков». На мой взгляд, для разработчиков это главный мотиватор из всех существующих.

Классический подход



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

Как решается такая задача? В классическом варианте используется система, которая, как было сказано выше, состоит из трех крупных компонентов: компонента распознавания речи, компонента понимания естественного языка и компонента, отвечающего за некую бизнес-логику. Понятно, что вначале пользователь создает некий звуковой сигнал, который попадает на компонент распознавания речи и превращается из звука в текст. Затем текст попадает в компонент понимания естественного языка, откуда вытаскивается некая семантическая структура, которая необходима для компонента, отвечающего за бизнес-логику.





Что из себя представляет семантическая структура? Это некое обобщение/агрегация нескольких задач в одну — для удобства понимания. Структура включает в себя три важных части: классификацию домена (некое определение тематики), классификацию интента (понимание, а что собственно нужно сделать) и выделение именованных сущностей для заполнения карточек, которые необходимы для конкретных бизнес-задач на следующем этапе.

Чтобы понять, что такое семантическая структура, можно рассмотреть простой пример, который чаще всего приводит компания Google. У нас имеется простой запрос: «Пожалуйста, проиграй какую-то песню какого-то артиста».



Домен и тематика в этом запросе — музыка; интент — проиграй песню; атрибуты карточки «проиграй песню» — что за песня, какой артист. Такая структура — результат понимания естественного языка.

Если говорить про решение комплексной и многоэтапной задачи понимание разговорной речи, то она, как я уже сказал, состоит из двух этапов: первый — распознавание речи, второй — понимание естественного языка. Классический подход подразумевает полное разделение этих этапов. В качестве первого шага у нас есть некая модель, которая на входе получает акустический сигнал, и на выходе, используя языковую и акустические модели и лексикон, определяет наиболее вероятную словесную гипотезу из этого акустического сигнала. Это полностью вероятностная история — ее можно разложить по известной формуле Байеса и получить формулу, которая позволяет записать функцию правдоподобия выборки и воспользоваться методом максимального правдоподобия. У нас есть условная вероятность сигнала Х при условии словесной последовательности W, которая умножается на вероятность этой словесной последовательности.



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

У нас есть вероятность семантической структуры S при условии словесной последовательности W на входе.



Чем плох классической подход, состоящий из двух этих элементов/шагов, которые обучаются раздельно (т.е. мы сначала обучаем модель первого элемента, а затем модель второго)?

  • Компонент понимания естественного языка работает с высокоуровневыми словесными гипотезами, которые генерирует ASR. Это большая проблема, потому что первый компонент (сам ASR) работает с низкоуровневыми сырыми данными и генерирует высокоуровневую словесную гипотезу, а второй компонент берет на вход уже гипотезу — не сырые данные из первоисточника, а гипотезу, которую дает первая модель — и строит свою гипотезу над гипотезой первого этапа. Это довольно проблематичная история, потому что она становится слишком «условной».
  • Следующая проблема: мы никак не можем построить связь между важностью слов, которые необходимы для построения той самой семантической структуры, и тем, чему отдает предпочтение первый компонент, строя свою словесную гипотезу. То есть если перефразировать, у нас получается, что гипотеза уже построена. Она строится на основе трех компонентов, как я уже сказал: акустическая часть (то, что пришло на вход и как-то моделируется), языковая часть (полностью моделирует какие-нибудь языковые энграммы — вероятность речи) и лексикон (произношение слов). Это три большие части, которые нужно совместить и найти в них какую-то гипотезу. Но нет возможности влиять на выбор той самой гипотезы так, чтобы эта гипотеза была важна следующему этапу (что в принципе заключается в пункте, что они обучаются полностью раздельно и никак друг на друга не влияют).

End2End-подход


Мы поняли, что такое классический подход, какие у него есть проблемы. Попробуем решить эти проблемы при помощи End2End-подхода. 



Под End2End мы подразумеваем модель, которая соединит различные компоненты в единый компонент. Моделировать мы будем с помощью моделей, которые состоят из архитектуры encoder-decoder, содержащие модули внимание (attention). Такие архитектуры часто используются в задачах распознавания речи и в задачах, связанных с обработкой естественного языка, в частности, машинного перевода.

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

Прямая модель


Прямая модель берет на вход низкоуровневые сырые признаки, т.е. низкоуровневый аудиосигнал, а на выходе мы сразу получаем семантическую структуру. То есть у нас получается один модуль — вход первого модуля из классического подхода и выход второго модуля из того же классического подхода. Просто такой «черный ящик». Отсюда возникают некоторые плюсы и некоторые минусы. Модель не учится полностью транскрибировать входной сигнал — это явный плюс, потому что нам не нужно собирать большую-большую разметку, не нужно собирать много аудиосигнала, а потом отдавать его ассесорам на разметку. Нам лишь нужен этот аудиосигнал и соответствующая ему семантическая структура. И все. Это во много раз снижает трудозатраты на разметку данных. Наверное, самый большой минус такого подхода в том, что задача слишком сложная для такого «черного ящика», который пытается решить сразу, условно, две задачи. Сначала внутри себя он пытается построить некую транскрипцию, а потом из этой транскрипции выявить ту самую семантическую структуру. Тут встает довольно сложная задача — научиться игнорировать части транскрипции. А это очень сложно. Этот фактор является довольно большим и колоссальным минусом такого подхода.



Если говорить про вероятности, то данной моделью решается задача поиска наиболее вероятной семантической структуры S из акустического сигнала X с параметрами модели θ.



Совместная модель


Какая существует альтернатива? Это совместная модель. То есть какая-то модель очень похожая на прямую, но за одним исключением: выход у нас уже состоит из словесных последовательностей и к ним просто конкатенируется семантическая структура. То есть у нас на входе есть звуковой сигнал и нейросетевая модель, которая на выходе уже дает одновременно и словесную транскрипцию, и семантическую структуру.



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

Опять-таки нам надо найти наиболее вероятную последовательность слов W и соответствующие им семантические структуры S из акустического сигнала X с параметрами θ.

Многозадачная модель


Следующий подход — это многозадачная модель. Опять-таки энкодер-декодер подход, но за одним исключением.



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



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

Многоступенчатая модель


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



Тут существует возможность установить связь между модулями и сделать их одномодульными. Поэтому семантическая структура считается условно зависимой от транскрипции. Есть два варианта работы с этой моделью. Мы можем обучать по отдельности два эти мини-блока: первый и второй энкодер-декодер. Или совместить их и обучать одновременно обе задачи.

В первом случае параметры для двух задач не связаны (мы можем обучать, используя разные данные). Допустим, у нас есть большой корпус звука и соответствующие ему словесные последовательности и транскрипции. Мы «загоняем» их, обучаем только первую часть. Получаем в хорошем моделировании транскрипции. Потом берем вторую часть, обучаем на другом корпусе. Соединяем и получаем решение, которое в таком подходе на 100% соответствует классическому подходу, потому что мы отдельно взяли и обучили первую часть и отдельно — вторую. А дальше мы обучаем соединенную модель на корпусе, который уже содержит триады данных: звуковой сигнал, соответствующая ему транскрипция и соответствующая ей семантическая структура. Если у нас есть такой корпус, мы можем дообучить обученную по отдельности на больших корпусах модель на нашу конкретную небольшую задачку и получить вот таким вот хитрым способом максимальный выигрыш по точности. Такой подход нам позволяет учитывать важность разных частей транскрипции и их влияние на предсказание семантической структуры с помощью учета ошибки второго этапа в первом.

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



Здесь также важно отметить, что второй компонент зависит от параметров первой и второй модели.

Методика оценки точности подходов


Теперь стоит определиться с методикой оценки точности. Как, собственно, эту точность мерить, чтобы учитывать особенности, которые нас не устраивают в классическом подходе? Существуют классические метки для этих раздельных задач. Для оценки компонентов распознавания речи мы можем взять классическую метрику WER. Это Word Error Rate. Считаем по не очень сложной формуле количество вставок, замен, перестановок слова и делим их на количество всех слов. И получаем некую оценочную характеристику качества нашего распознавания. Для семантической структуры покомпонентно мы можем просто считать F1 score. Это тоже некая классическая метрика для задачи классификации. Тут все плюс-минус понятно. Есть полнота, есть точность. И это просто гармоническое среднее между ними.

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

Возьмем запрос: «Поставь будильник на 5 часов». Данная семантическая структура содержит такой аргумент, как «пять часов», аргумент типа «date time». Важно понимать, если компонент распознавания речи выдает этот аргумент, значит метрика ошибок данного аргумента, то есть WER, равняется 0%. Если это значение не соответствует пяти часам, то метрика имеет 100% WER. Таким образом, мы просто считаем средневзвешенное значение по всем аргументам и в целом получаем некую агрегированную метрику, оценивающую важность ошибок транскрипций, которые создают компонент распознавания речи.

Приведу в пример эксперименты компании Google, которые она провела в одном из своих исследований на данную тематику. Они использовали данные пяти доменов, пяти тематик: Media, Media_Control, Productivity, Delight, None — с соответствующим им распределением данных на обучающих тестовых наборах данных. Важно отметить, что все модели обучались с нуля. Использовалась cross_entropy, параметр beam search был равен 8, оптимизатор они использовали, естественно, Adam. Считали, конечно же, на большом облаке своих ТПУ. Что получилось в итоге? Такие вот интересные цифры:



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

Почем многоступенчатых моделей две? Просто на стыке первой и второй частей использовались разные слои. В первом случае — это ArgMax, во втором случае — SampedSoftmax.

На что стоит обратить внимание? Классический подход проигрывает по всем трем метрикам, которые являются оценкой непосредственно совместной работы двух этих компонентов. Да, нам не интересно, насколько хорошо там делается транскрипция, нам интересно только, насколько хорошо работает элемент, который предсказывает семантическую структуру. Он оценивается тремя метриками: F1 — по тематике, F1 — по интенту и метрикой ArgWer, которая считается по аргументам сущностей. F1 считается средневзвешенной между точностью и полнотой. То есть эталон — это 100. ArgWer — наоборот, это не успешность, это ошибочность, то есть здесь эталон – 0.

Стоит отметить, что наша связанная и мультизадачная модели полностью выигрывают у всех моделей классификации тематик и интентов. А модель, которая является многоступенчатой, имеет очень большой прирост по итоговым ArgWer. Почему это важно? Потому что в задачах, связанных с пониманием разговорной речи, важно конечное действие, которое будет совершаться в компоненте, отвечающем за бизнес-логику. Оно напрямую зависит не от транскрипций, созданной ASR, а от качества работы компонентов ASR и NLU вместе. Поэтому различие почти в три пункта метрики argWER является очень крутым показателем, который говорит об успешности данного подхода. Также стоит отметить, что у всех подходов сопоставимы значения по определению тематики и интентов.

Приведу пару примеров использования таких алгоритмов понимания разговорной речи. Компания Google, когда говорит про задачи понимания разговорной речи, в первую очередь отмечает интерфейсы «человек-компьютер», то есть это всякие виртуальные помощники типа Google Assistant, Apple Siri, Amazon Alexa и так далее. В качестве второго примера стоит отметить такой пул задач как Interactive Voice Response. То есть это некая история, которая занимается автоматизацией call-центров.

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

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

На самом деле, можно на этом не останавливаться. И если сейчас мы объединили два подхода, два компонента общей структуры, то можно замахнуться и на большее. Объединить и три компонента, и четыре — просто продолжить объединять эту логическую цепочку и «протаскивать» важность ошибок на уровень ниже, учитывая критичность уже там. Это позволит нам увеличить точность решения задачи.
Теги:
Хабы:
+7
Комментарии 1
Комментарии Комментарии 1

Публикации

Информация

Сайт
www.mts.ru
Дата регистрации
Дата основания
Численность
свыше 10 000 человек
Местоположение
Россия