В конце мая 2020 года исследователи из Университета Карнеги-Меллона сообщили, что из 200 миллионов комментариев, посвященных коронавирусу в Twitter, 45% были созданы машинами. Трудно определить, как это повлияло на общественные дебаты и разработчиков политики, но потенциальный риск распространения дезинформации и не только. Насколько «умны» эти мощные и столь же ценные, но, возможно, вредные машины? Как они устроены?

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

Что такое языковая модель?

Языковая модель - это модель, которая была обучена понимать контекст языка и, таким образом, способна правильно предсказывать вероятность последовательности слов. Ранее статистические языковые модели использовались для изучения вероятностного распределения слов с помощью традиционных статистических методов (N-граммы, скрытые марковские модели (HMM)), однако с прорывным успехом машинного и глубокого обучения, Модели нейронного языка стали использоваться для моделирования языка.

Как строятся модели нейронного языка?

Чтобы проиллюстрировать, как можно построить модель нейронного языка, я воспользуюсь примером для прогнозирования четвертой цифры в последовательности из 4 чисел с помощью библиотеки fast.ai.

Слева изображена структура базовой нейронной сети, которую мы используем для нашей модели нейронного языка. Нам потребуется 3 слоя, как показано слева.

  • Слой внедрения (от ввода до скрытого)
  • Линейный слой для создания активаций для следующего слова (от скрытого до скрытого)
  • Последний линейный слой для предсказания четвертого слова (от скрытого до вывода)
  • Стрелка представляет фактическое вычисление слоя.

Чтобы поместить эту структуру в контекст языковой модели, которую мы намереваемся построить (предсказать правильное четвертое число в последовательности из 4 чисел), модель выглядит примерно так:

  1. На уровне ввода мы берем первое слово / число в качестве ввода и пропускаем его через линейный слой в сочетании с функцией нелинейной активации, чтобы дать нам некоторые активации (FC1).
  2. Теперь мы пропустим их через другой линейный слой и нелинейную функцию активации и добавим набор активаций к набору ввода слова 2 после прохождения вычислений того же уровня.
  3. Мы повторяем это для ввода слова 3, чтобы в конечном итоге предсказать результат.

Интересной частью этой четырехуровневой модели нейронного языка и тем, что отделяет ее от классификаторов изображений, является то, что мы получаем входные данные на более поздних уровнях (входные данные слова 2, слова 3). Кроме того, все стрелки одного цвета используют одинаковые весовые матрицы.

В кодовой форме эта языковая модель выглядит следующим образом.

Как вы можете видеть, каждый вход (вход слова 1,2,3) проходит через слой встраивания (вход в скрытый → зеленая стрелка), в котором активации каждого входа будут складываться вместе. После добавления вложения к новому набору активаций мы пропускаем его через линейный слой (скрытый за скрытым → оранжевая стрелка). Таким образом, эти наборы активаций находятся в скрытом состоянии. Наконец, мы переходим от скрытого состояния к выходу, проходя через другой линейный слой (скрытый для выхода → синяя стрелка).

Вы можете задаться вопросом, почему вы не можете определить функцию активации вывода (в нашем случае softmax). Это потому, что он напрямую включен в функцию потери кросс-энтропии с помощью PyTorch.

Трансферное обучение в языковых моделях

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

Как можно использовать языковые модели?

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

Генерация текста

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

Мне понравился этот фильм, потому что было здорово увидеть в фильме Вирджинию Мэдсен. Она великолепна в этом фильме. Ее персонаж - настоящая личность, и за ней так интересно наблюдать. Фильм был развлекательным.

Мне этот фильм понравился спектаклями. Хотя Бетт, казалось, не соответствовала всей своей физической привлекательности, я счел ее присутствие правдоподобным. Фильм был снят красиво, а диалоги действительно были

Вы поймете, что риск создания текста с помощью модели машинного обучения очень высок и уже используется злыми организациями. Поскольку очень сложно отличить текст, созданный человеком от текста, созданный машиной, мы можем увидеть будущее или настоящее, где люди будут вести онлайн-дебаты с машинами. Чтобы понять это, найдите спор между двумя машинами в Twitter ниже.

Анализ настроений

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

И более…

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

  • Обобщение
  • Машинный перевод
  • Распознавание речи

Заключение

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

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

Источники:



Https://course.fast.ai/