В эпоху ChatGPT давайте изучим основы

Я начал эту серию «Демистификация ИИ для всех», чтобы объяснить основные строительные блоки НЛП на языке непрофессионала. Чтобы в эпоху Chat GPT все понимали, каковы основные строительные блоки такой сложной языковой модели.

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

Если вы не читали первую часть «Основы НЛП», прочтите ее.

Часть 1-Основы НЛП

Векторизация простых слов — это не что иное, как преобразование слов в векторные форматы, чтобы компьютеры могли их понимать

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

Вот некоторые распространенные методы векторизации, используемые в НЛП:

Набор слов (BoW):

Этот метод представляет текст как матрицу количества слов, где каждая строка соответствует документу, а каждый столбец соответствует слову в словаре. Значения в матрице представляют частоту каждого слова в каждом документе.

BoW подсчитывает частоту каждого слова в документе и создает вектор, в котором каждый элемент представляет количество определенного слова в документе.

Например, рассмотрим 3 предложения, с которыми мы работаем.

  1. Кот в мешке
  2. Собака на улице
  3. Птица в клетке

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

каждое предложение является документом, и все предложения составляют корпус

документ = отдельное предложение

корпус = все документы вместе взятые

предложение (документ) «Кот в шляпе» будет представлено как [1, 1, 1, 0, 0, 0] для слов «the», «кот», «в», «шляпа», «собака». », и «птица» соответственно.

По сути, слову, присутствующему в документе, присваивается 1, а отсутствующему слову присваивается 0 в методе векторизации BoW.

Термин Частота Обратной Частоты Документа (TF-IDF):

Этот метод похож на BoW, но он взвешивает количество слов по их частоте в корпусе.

Слова, которые часто встречаются в документе, но нечасто в корпусе, считаются более важными, и им присваивается более высокий вес.

Чтобы объяснить это простыми словами, слово, которое появляется во всех предложениях, не даст столько информации, сколько слова, которые появляются в нескольких предложениях, верно?

Например: «the» встречается во всех предложениях. Дает ли это какую-либо информацию? Скорее всего нет.

В то же время «кошка/собака/птица» встречается только в 1 предложении, поэтому вероятность того, что они сообщат информацию, намного выше, чем «the».

Формула для Term Frequency-Inverse Document Frequency (TF-IDF):

TF-IDF(w,d) = TF(w,d) x IDF(w)

где:

  • TF(w,d) — частота слова w в документе d.
  • IDF(w) — обратная частота слова w в документе, вычисляемая как:
  • IDF(w) = log(N/n)
  • где N — общее количество документов в корпусе, а n — количество документов в корпусе, содержащих слово w.

Таким образом, если слово присутствует во всех документах, значение IDF становится равным 0 (log(1)). Короче говоря, слову присваивается 0 важности.

Вложения Word:

Этот метод представляет слова как плотные векторы в многомерном пространстве, где расстояние между векторами представляет собой семантическое сходство между соответствующими словами. К популярным моделям встраивания слов относятся Word2Vec и GloVe.

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

Примеры представлений Word следующие:

«собака» = [0,1548, 0,4848, …, 1,864]

«кошка» = [0,8785, 0,8974, …, 2,794]

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

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

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

Внедрение символов:

Этот метод представляет слова как последовательности символов и изучает векторное представление для каждого символа. Затем эти векторы символов объединяются для формирования векторного представления слова.

Контекстуализированные вложения слов:

Это встраивания слов, которые учитывают контекст, в котором появляется слово. Популярные модели включают BERT, GPT-2 и XLNet.

Встраивание подслов:

Эти вложения представляют слова как последовательность подслов, которые могут собирать морфологическую информацию и обрабатывать слова, не входящие в словарь. Популярные модели включают FastText и Byte Pair Encoding (BPE).

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

Например, если у вас очень маленький корпус, возможно, будет лучше, если мы попробуем TF-IDF. Если у нас есть огромный корпус, то, возможно, Word Embeddings — лучший способ сделать это.

Опять же, у всех методов есть специальные библиотеки, и нам не придется ничего писать с нуля (в большинстве случаев).

Надеюсь, вам понравился этот пост; Я попытался объяснить это очень просто.

В следующих частях этой серии я поделюсь другими концепциями НЛП.

Если вам понравился этот пост, рассмотрите возможность подписаться на меня для подобного контента и поделитесь своими мыслями.

Всего наилучшего в вашем путешествии. Вперед и вверх люди…