Изучение языка из речи с помощью BERT

С момента выпуска оригинальной статьи wav2vec в 2019 году самоконтролируемое обучение теперь все больше и больше используется для речи. HuBERT делает следующий шаг в этом отношении.

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

В этом посте мы пройдемся по статье, объяснив компоненты модели и способы ее использования в ваших проектах.

Краткое содержание

  1. Краткое введение в BERT
  2. Почему мы не можем использовать модели НЛП для аудио
  3. Архитектура HuBERT и процедура обучения
  4. Как использовать HuBERT в своих проектах
  5. Заключение

Краткое введение в BERT

BERT — это двунаправленная модель НЛП с самоконтролем, основанная на архитектуре преобразователя.

Давайте пошагово

Архитектура трансформатора — это архитектура глубокого обучения, основанная на механизме внутреннего внимания, но ее объяснение выходит за рамки этого поста, чтобы узнать больше, вы можете прочитать это отличное руководство.

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

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

Моделирование маскированного языка состоит из замены определенного процента входных токенов на [MASK] токены и обучения модели прогнозированию исходного значения замаскированных входных данных.

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

Более подробные пояснения по BERT можно найти в этом замечательном посте TDS или в оригинальной статье [1].

Почему мы не можем использовать модели НЛП для аудио

При попытке применить BERT или другие модели НЛП к речевым данным возникают 3 основные проблемы:

  1. В каждом входном выражении есть несколько звуковых единиц.
  2. Нет лексикона дискретных звуковых единиц
  3. Звуковые единицы имеют переменную длину и не имеют явной сегментации.

Проблема 1 препятствует использованию таких методов, как классификация экземпляров, которые используются в Computer Vision для предварительного обучения.

Проблема 2 препятствует использованию прогнозируемых потерь из-за отсутствия надежной цели для сравнения прогноза.

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

Для решения этих проблем авторы предлагают HuBERT.

Архитектура HuBERT и процедура обучения

Архитектура модели HuBERT соответствует архитектуре wav2vec 2.0, состоящей из:

  • Сверточный энкодер
  • Кодер BERT
  • Слой проекции
  • Слой внедрения кода

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

Каждый компонент и его задача будут лучше объяснены при объяснении тренировочного цикла.

Обучение состоит из 2-х шагов:

Генерация скрытых юнитов

Первый этап обучения состоит из обнаружения скрытых единиц, и процесс начинается с извлечения MFCC (частотный кепстр Мел) из звуковой волны.

Это необработанные акустические функции, полезные для представления речи.

Затем каждый сегмент аудио передается алгоритму кластеризации K-средних и назначается одному из K кластеров.

Затем все аудиокадры будут помечены в соответствии с тем, к какому кластеру они принадлежат, и это будут скрытые блоки.

После этого эти единицы преобразуются в векторы встраивания, которые будут использоваться на этапе B обучения.

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

Маскированный прогноз

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

CNN отвечает за создание функций из необработанного звука, которые затем случайным образом маскируются и передаются в кодировщик BERT.

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

Затем кросс-энтропийная потеря используется в логитах для наказания за неправильные прогнозы.

Как использовать HuBERT в своих проектах

Все официальные версии HuBERT (базовая, большая и X-большая) доступны в библиотеке Transformers от Huggingface:

Заключение

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

Чтобы узнать больше о модели и результатах, ознакомьтесь с оригинальной статьей!

Ссылки:

[1] Хсу, Вэй-Нинг и др. HuBERT: самоконтролируемое обучение репрезентации речи путем маскированного предсказания скрытых единиц (2021).

[2] Трансформеры с нуля Питера Блума

[3] Девлин, Джейкоб и др. «Берт: предварительная подготовка глубоких двунаправленных преобразователей для понимания языка (2018).

[4] Баевский, Алексей и др. «wav2vec 2.0: платформа для самоконтролируемого изучения речевых представлений (2020).