В последнее время глубокое обучение получило широкое распространение во многих задачах NLP из-за замечательной производительности, которую алгоритмы глубокого обучения продемонстрировали во множестве сложных задач, таких как классификация изображений, распознавание речи и создание реалистичного текста. Ответим на вопрос «Что такое обработка естественного языка?».

Что такое обработка естественного языка?

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

Более того, НЛП распространено повсеместно и уже составляет большую часть человеческой жизни. Многочисленные задачи НЛП возникают, когда кто-то спрашивает ВА: «Можете ли вы показать мне поблизости хороший итальянский ресторан?» Во-первых, VA необходимо преобразовать высказывание в текст. Чтобы рассчитать общий рейтинг ресторана, хорошая система НЛП может учитывать как рейтинг, так и текстовое описание, предоставленное каждым пользователем.

Наконец, когда пользователь находится в ресторане, VA может помочь ему, переводя различные пункты меню с итальянского на английский. Этот пример показывает, что НЛП стало неотъемлемой частью жизни человека.

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

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

Задачи обработки естественного языка

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

NER является обязательной темой в таких областях, как поиск информации и представление знаний. Недавно OpenAI выпустила языковую модель, известную как OpenAI-GPT-4, которая может генерировать невероятно реалистичный текст.

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

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

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

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

Понимание традиционного подхода

Традиционный подход к решению задач НЛП включает набор отдельных подзадач. Во-первых, текстовые корпуса необходимо предварительно обработать, сосредоточив внимание на сокращении словарного запаса и отвлекающих факторов. Затем следует несколько шагов разработки функций. Основная цель разработки признаков — упростить обучение алгоритмов. Часто функции разрабатываются вручную и ориентированы на человеческое понимание языка. Разработка признаков имела первостепенное значение для классических алгоритмов НЛП, и, следовательно, наиболее производительные системы часто имели наиболее продуманные функции. Например, для задачи классификации настроений вы можете представить предложение с помощью дерева синтаксического анализа и назначить положительные, отрицательные или нейтральные метки каждому узлу/поддереву в дереве, чтобы классифицировать это предложение как положительное или отрицательное. Разработка функций используется для преобразования необработанных текстовых данных в привлекательное числовое представление, чтобы модель можно было обучить на этих данных, например, преобразовать текст в представление в виде набора слов или использовать представление в виде n-грамм, которое мы обсудим позже. . Однако помните, что современные классические модели основаны на гораздо более сложных методах разработки признаков. Далее мы создадим вектор признаков размера V для каждого предложения, показывающий, сколько раз каждое слово из словаря появляется в предложении. Важным ограничением метода мешка слов является то, что он теряет контекстуальную информацию, поскольку порядок слов больше не сохраняется.

Недостатки традиционного подхода

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

История глубокого обучения

Это вызвало желание воспроизвести подобное поведение машин, что привело к появлению концепции искусственных нейронных сетей. В последующие годы нейронные сети привлекли внимание многих исследователей. В 1965 году Ивахненко и другие представили нейронную сеть, обученную методом, известным как групповой метод обработки данных и основанным на знаменитом персептроне Розенблатта. Цепное правило, используемое со многими слоями, привело к практической проблеме, известной как проблема исчезающих градиентов, строго ограничивающей потенциальное количество слоев нейронной сети. Градиенты слоев ближе к входным данным, будучи очень маленькими, вызывают преждевременную остановку обучения модели, что приводит к недостаточной подгонке модели. Это известно как явление исчезающих градиентов. По сути, это позволило моделям нейронных сетей иметь больше слоев без вредных последствий исчезающего градиента. Также эти более глубокие модели смогли превзойти традиционные модели машинного обучения во многих задачах, в основном в компьютерном зрении. Благодаря этому прорыву глубокое обучение стало модным словом в сообществе машинного обучения. За это время были достигнуты успехи в распознавании речи, при этом с использованием глубоких нейронных сетей сообщалось о современной точности распознавания речи. Глубокие модели были дополнительно улучшены за счет улучшенных методов инициализации моделей, что сделало излишним трудоемкое предварительное обучение. Улучшенные методы оптимизации, такие как оптимизатор Адама, автоматически настраивали индивидуальные скорости обучения каждого параметра среди миллионов параметров, которые у нас есть в модели нейронной сети, что переписало современную производительность во многих различных областях машинного обучения. , такие как классификация объектов и распознавание речи. Эти достижения также позволили моделям нейронных сетей иметь большое количество скрытых слоев. Возможность увеличить количество скрытых слоев является одним из основных факторов значительного повышения производительности моделей нейронных сетей по сравнению с другими моделями машинного обучения. Кроме того, лучшие промежуточные регуляризаторы, такие как слои пакетной нормализации, улучшили производительность глубоких сетей для многих задач.

Глубокое обучение для НЛП

Многие различные глубинные модели увидели свет с момента их создания в начале 2000 года. Несмотря на то, что они имеют сходство, например, все они используют нелинейное преобразование входных данных и параметров, детали могут сильно различаться. Например, CNN может учиться на двумерных данных как таковых, в то время как многослойная модель персептрона требует, чтобы входные данные были развернуты в одномерный вектор, что приводит к потере важной пространственной информации. При обработке текста, поскольку одна из наиболее интуитивных интерпретаций текста состоит в том, чтобы воспринимать его как последовательность символов, модель обучения должна быть способна выполнять моделирование временных рядов, что требует памяти о прошлом. Одна из таких популярных моделей, которая включает в себя эту возможность, известна как рекуррентная нейронная сеть. Следует отметить, что память не является тривиальной операцией, присущей модели обучения. И наоборот, способы сохранения памяти должны быть тщательно разработаны. Кроме того, термин «память» не следует путать с изученными весами непоследовательной глубокой сети, которая смотрит только на текущий ввод, где последовательная модель будет рассматривать как изученные веса, так и предыдущий элемент последовательности, чтобы предсказать следующий. выход. Одним из заметных недостатков RNN является то, что они не могут запомнить более нескольких временных шагов, поэтому им не хватает долговременной памяти. Сети долговременной памяти являются расширением RNN, которые инкапсулируют долговременную память. Сети долговременной кратковременной памяти, чтобы лучше понять их. Раньше в области НЛП доминировали как рекуррентные, так и сверточные модели. Механизм внимания позволяет модели просматривать всю последовательность сразу, чтобы получить один результат. Механизм внимания позволяет модели Transformer изучать такие отношения. Эта возможность не может быть воспроизведена с помощью стандартных рекуррентных моделей или сверточных моделей. Последовательные модели подразделяются на модели кратковременной памяти, которые могут запоминать только краткосрочные паттерны, и модели долговременной памяти, которые могут запоминать более длительные паттерны.