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

Хотя я не ученый, я участвовал в разработке рабочих процессов машинного обучения, чтобы повысить точность распознавания отдельных спикеров в рамках моей работы в Amazon. Традиционно стандартные системы на основе i-Vector и PLDA были развернуты для «независимой от текста» проверки говорящего. Но в последнее время сквозные архитектуры на основе DNN, вдохновленные i-Vector и PLDA, имели хороший успех благодаря начальной загрузке параметров сети DNN из предварительно обученных моделей i-Vector и PLDA.

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

Что такое моделирование на основе внимания?

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

В документе сначала освещается архитектура на основе LSTM для проверки говорящего в зависимости от текста, а затем вводятся различные типы слоев внимания и механизмы объединения для повышения коэффициента равной ошибки (EER) по сравнению с базовой архитектурой LSTM.

Базовая архитектура

Для этапа обучения входными данными является кортеж

  • Одно оценочное высказывание
  • N высказываний о зачислении

Каждый вход в кортеже X представляет функции энергий набора фильтров log-mel (LFBE) из сегмента фиксированной длины. Кортеж является положительным, если и оценочное высказывание, и зачисление исходят от одного и того же говорящего, в противном случае он отрицателен.

Для каждого кортежа высказывания, подаваемого в LSTM (xj, (xk1, … xkN); выход последнего слоя LSTM в кадре t представляет собой вектор фиксированной размерности h(t). Последний выход кадра представлен как d-вектор w=h (Т).

Тогда выходной кортеж будет следующим: {w(j), (w(k1), …. w(kN)). Здесь «j» представляет говорящего оценочное высказывание, а «k» представляет говорящего высказывания зачисления.

Центроид кортежа - это голосовой отпечаток, построенный из N высказываний о зачислении, и определяется как

Ck = En[W(kn)] = 1/N сигма (wkn)/||wkn||

Сходство определяется с помощью косинусной функции подобия

с = ш . cos(wj, ск) + б

с обучаемыми w и b

Базовый уровень внимания

При обычном обучении в качестве d-вектора w=h(T) принимается последний выходной кадр. Здесь скалярная оценка e(t) изучается для вывода LSTM h(t) в каждом кадре t.

e(t) = f(ht), t=1,2,…. T

Нормализованные веса альфа (t) могут быть вычислены с использованием этих оценок.

альфа (t) = exp (e (t)) / суммирование (i = 1, T) (exp (e (i))

D-вектор — это средневзвешенное значение выходных данных LSTM во всех кадрах.

w = суммирование (t = 1, T) [альфа (t) * h (t)]

Функции оценки

Используя разные функции оценки, мы получаем разные уровни внимания.

  • Смещение только внимания, где b(t) — скаляр. Это не зависит от вывода LSTM h(t). e(t) = f(BO) h(t) = b(t)
  • Линейное внимание, где w(t) — m-мерный вектор, а b(t) — скаляр. e (t) = f (L) (h (t)) = w (t) (транспонировать) h (t) + b (t)
  • Общий параметр линейного внимания, где m-мерный вектор w и скаляр b одинаковы для всех кадров. e (t) = w (транспонировать) h (t) + b
  • Нелинейное внимание, где W(t) — матрица m’ X m, bt и vt — m’-мерные векторы. e(t) = fNL(h(t) = v(t)(Транспонирование). tanh(W(t) h(t) + b(t))
  • Общий параметр нелинейного внимания. Где одинаковые W, b и v используются для всех. e(t) = fSNL(h(t)) = v(транспонировать) . танх(Втч(т) + б)

Внимание на разных уровнях

Здесь оценки e (t) и веса w (t) не вычисляются с использованием последнего слоя LSTM, вместо этого для вычисления оценки e (t) используются выходные данные предпоследнего слоя LSTM.

Внимание по разделенному слою

Для разделенного слоя удвойте размер вывода LSTM последнего слоя h (t) и поровну разделите его размер на 2 части.

  • Часть га(т)
  • Часть б (hb(t)

Используйте часть a, чтобы построить d-вектор, а часть b, чтобы узнать баллы.

Объединение весов

Вместо того, чтобы напрямую использовать нормализованные веса (альфа (t)) для усреднения выходных данных LSTM, используйте maxpooling, чтобы сделать его более устойчивым к временным изменениям. Два метода макспулинга

  • Максимальный пул скользящего окна, запустить скользящее окно для весов и сохранить только самое большое значение и установить другие значения на 0
  • Global top-K maxpooling: сохраняйте только самые большие значения K в весах.

Обучающий набор данных —150 млн высказываний от 630 тыс. говорящих.

Тестовый набор данных – сбор вручную 665 динамиков. Разделены на 2 набора регистрации и 2 набора подтверждения для каждого из «ОК, Google» и «Привет, Google». Каждое зачисление и оценка, соответственно, содержат в среднем 4,5 и 10 оценочных высказываний на говорящего. Каждый речевой кадр = 10 мс.

Результаты

EER (равная частота ошибок) — это метрика, используемая для оценки точности проверки говорящего. Основываясь на экспериментах автора, нелинейное внимание значительно улучшает производительность по сравнению со средним базовым EER от 1,72% до 1,63% при нелинейном внимании с общим параметром. что дополнительно улучшается до EER = 1,56% с учетом разделенного уровня. Наконец, с использованием метода максимального объединения (скользящее окно) EER снижается до 1,48%. Общее относительное улучшение на 14%.