"Привет, Siri, какая сейчас погода?" Если вы пользуетесь iPhone, скорее всего, вы экспериментировали с виртуальным помощником Apple Siri - буквально у вас под рукой. Однако как именно работает Siri?

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

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

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

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

Но как именно все это работает? В качестве примера возьмем малыша:

Дейзи - двухлетняя девочка, которая любит кусать своего брата Джека. Однако, когда Джек говорит: «Дейзи, перестань меня кусать», она, кажется, останавливается. Откуда Дейзи узнает, что Джек просит ее сделать? Когда Джек говорит ей остановиться, он также убирает руку. Поскольку это происходило много раз, Дейзи может объяснить «перестань кусать меня» тем фактом, что Джек не хочет, чтобы его укусили. Она может обработать эти данные и сохранить их для будущего, поэтому она знает, что делать, когда она слышит эту фразу. Дейзи дрессируют.

Точно так же в мире НЛП Дейзи будет считаться моделью данных, поскольку она содержит обученные данные. Обработка данных таким же образом, как показано на примере Daisy, хотя есть много других способов сделать это, известна как Распознавание именованных объектов. Этот процесс добавляет семантические знания к элементу и позволяет машине понять предмет данной задачи.

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

Чтобы лучше понять, как применяются НЛП, давайте подробнее рассмотрим, как работает Siri. Способность Siri обнаруживать «Привет, Siri» в первую очередь обусловлена ​​использованием повторяющейся нейронной сети, а также многостилем и учебной программой. Используя методы распознавания говорящего, Siri может избежать непреднамеренных активаций, например, когда пользователь произносит аналогичную фразу. Распознавание динамика позволяет Siri определить основного пользователя по его или ее голосу, включая регистрацию и распознавание пользователей.

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

Зеленые прямоугольники отображают этапы извлечения признаков, на которых ввод «Привет, Siri» преобразуется в вектор динамика фиксированной длины. На первом этапе речевой ввод преобразуется в речевой супервектор фиксированной длины, который включает в себя информацию о фонетическом содержании, фоновой среде записи и личности пользователя.

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

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

Наиболее распространенной частью любой системы распознавания говорящего является преобразование говорящего. Преобразование сводит к минимуму вариативность внутри говорящего и максимизирует вариативность между говорящим. Речевой вектор Siri имеет 442 измерения (26 MFCCS * 17).

Самая первая версия преобразования динамика, используемая для Siri, была обучена с помощью линейного дискриминантного анализа (LDA). Он использовал сигнатурные данные 800 продакшн-пользователей с более чем 100 высказываниями каждый, создавая 150-мерный вектор говорящего.

Преобразование говорящего было дополнительно улучшено за счет использования явных данных регистрации, улучшения внешнего речевого вектора и переключения на нелинейную дискриминационную технику в форме глубоких нейронных сетей (DNN). Обучено DNN от 16 000 пользователей, каждый из которых произносит ~ 150 высказываний. Сетевая структура состояла из:

  • 100-нейронный скрытый слой с сигмовидной активацией
  • 100-нейронный скрытый слой с линейной активацией
  • Слой Softmax, состоящий из 16000 выходных узлов

После обучения DNN (используя речевой вектор в качестве входных данных) слой softmax удаляется. Выход линейного активационного слоя затем используется как вектор динамика. Вот визуальное представление процесса:

Однако, основываясь на недавних экспериментах, сетевая структура из четырех слоев из 256 нейронов с сигмовидной активацией, за которыми следует линейный слой из 100 нейронов, доказала, что дает наилучшие результаты.

Основные выводы:

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

Чтобы узнать больше:

Вот над чем подумать: как научить компьютеры понимать сарказм?

Не стесняйтесь связаться со мной по адресу [email protected] или связаться со мной в LinkedIn! :)