ДРУГИЕ ЖАРГОНЫ ML

Другие жаргоны машинного обучения: разреженные и плотные представления текстов для машинного обучения

Краткое введение в векторизацию и ее важность в контексте НЛП

Введение

Матрицы и векторы — это количественная информация, которая требуется алгоритмам машинного обучения (ML) для изучения шаблонов и прогнозирования. Для применения этих методов и к текстовым данным числовые представления текстов разрабатываются для формирования матриц, которые содержат соответствующую информацию из этих текстов. Понятия «Разреженность» и «Плотность» позволяют эффективно проектировать и строить эти матрицы для всех вариантов использования многомерной обработки данных в мире искусственного интеллекта.

Значение векторных представлений для НЛП

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

  1. В случаях использования классификации текста, таких как категоризация запросов в службу поддержки, обнаружение спама, обнаружение поддельных новостей и анализ мнений в отзывах, тексты, содержащие похожие слова, классифицируются в определенную категорию.
  2. В Rсистемах рекомендаций люди со схожими данными профиля, историей посещенных страниц и прошлыми заказами указывают на схожий выбор или вкусы продуктов. Эта информация используется для рекомендаций.
  3. Неконтролируемая кластеризация ищет шаблоны и похожие слова в текстах для группировки документов и статей. Типичные приложения включают разделение новостных статей, анализ тенденций и сегментацию клиентов.
  4. В системах Information Retrieval проиндексированные документы сопоставляются с запросами, иногда «нечетким» образом, и коллекция соответствующих документов возвращается пользователю. Кроме того, мера сходства используется для ранжирования поиска.

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

Векторные схемы широко классифицируются как «разреженные» (что означает малонаселенные) и «плотные» (что означает густонаселенные) векторы. В этой статье я напомнил о понятиях матриц и векторов с математической точки зрения, а затем обсудил эти два класса методов векторизации — представления разреженных векторов и представления плотных векторов. включая демонстрацию с использованием Scikit Learn и Gensim соответственно. Я также завершил эту статью обзором приложений и удобства использования этих представлений.

Учебник по матрицам и векторам

Математически матрица определяется как двумерный прямоугольный массив чисел. Если массив состоит из m строк и n столбцов, то он матрица размера m × n.

Если матрица имеет только одну строку ИЛИ только один столбец, она называется вектором. Матрица или вектор 1×n — это вектор-строка (где есть n столбцов, но только 1 строка) и m × 1матрица или вектор — это вектор-столбец (где есть m строк, но только 1 столбец). Вот изображение, которое наглядно демонстрирует это:

Вот учебник по скалярам, ​​векторам и матрицам и Введение в векторы и матрицы с использованием Python для науки о данных.

Разреженные представления | Матрицы | Векторы

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

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

Теперь, если мы создадим вектор для каждой новой статьи, предполагая, что в каждой статье 50 слов, слово футбол будет встречаться примерно 5 раз. Следовательно, в 45 случаях из 50 элементы в векторе будут нулевыми, что указывает на отсутствие слова, на которое мы ориентируемся. Следовательно, 90% вектора длины 50 избыточны. Это пример генерации горячего вектора .

Другим типичным примером генерации разреженных матриц является Счетчик векторов, который определяет, сколько раз слово встречается в документе. Он генерирует матрицу векторов счета для каждого документа, чтобы составить матрицу размера d × v, где d — количество документов, а v — количество слов или словарный запас в наборе документов.

Вот демонстрация того, как работает Count Vectorizer:

Ниже приведены четыре различных значения слова «демонстрация, каждое из которых представляет один документ ~

Документ 1: демонстрация продукта или метода.

Документ 2: публичный митинг или марш протеста против чего-либо или выражения мнения по политическому вопросу.

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

Документ 4: демонстрация возможностей программного обеспечения или другого продукта.

Я использовал реализацию Scikit Learn’s CountVectorizer, чтобы сгенерировать эту разреженную матрицу для этих четырех документов. Ниже приведен код, который я использовал 👩‍💻

Вывод _cv.toarray() представляет собой числовое представление слов в массиве 4×34 (преобразовано с помощью .toarray() из вектора)как показано на снимке экрана ниже:

В матрице:

  • ноль означает отсутствие вообще (в основном нет информации)
  • все, что больше нуля, - это количество раз, когда слово встречается в четырех документах (некоторая полезная и некоторая избыточная информация).
  • 34 — это размер словаря (или общее количество уникальных слов в документах), поэтому форма — 4 х 34.

Простейшей мерой разреженности является доля общего количества нулей от общего числа элементов, в данном случае ~

  • Количество нулей = 93
  • Количество элементов в массиве = 4 ×34 = 136

Таким образом, более 50% массива вообще не содержат информации (93 из 136), но это матрица высокой размерности, требующая большего объема памяти (повышенная пространственная сложность) и времени вычислений. (увеличена Временная сложность). Если модель машинного обучения питается этими многомерными данными, ей будет трудно

  • найти закономерности
  • будет слишком дорого настраивать веса для всех измерений
  • это в конечном итоге приведет к проблемам с задержкой во время прогнозирования

Разреженность аналогична концепции проклятия размерности. Рекомендательные системы и методы совместной фильтрации, представления данных на основе подсчета, включая знаменитый TF-IDF, подвержены проблемам, связанным с разреженностью текстовых данных.

Плотные представления | Матрицы | Векторы

Выход? Представление, которое содержит больше информации и меньше избыточности, математически определяется как матрица или вектор, где большинство элементов не равны нулю. Такие представления данных называются плотными матрицами или плотными векторами. Кроме того, они обычно меньше по размеру, чем разреженные матрицы.

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

  1. Чем меньше размер, тем быстрее и проще оптимизировать веса для моделей машинного обучения.
  2. Несмотря на то, что плотные векторы могут иметь меньшие размеры, чем разреженные матрицы, они также могут быть достаточно большими, чтобы бросить вызов вычислительной инфраструктуре (представьте себе Word2Vec или представления на основе BERT), но при этом содержать богатую и полезную информацию, такую ​​как синтаксические, семантические или морфологические отношения.
  3. Они лучше обобщают отношения между текстовыми элементами, что наглядно демонстрирует успех алгоритмов word2vec.

Общие методы НЛП для преобразования разреженных представлений в плотные:

  1. Word2Vec: это одна из самых популярных школ алгоритмов, которая изучает плотное представление с использованием неглубоких нейронных сетей (NN), пытаясь предсказать вероятные слова и зафиксировать семантические отношения.
  2. FastText: другой алгоритм с той же целью, использующий неглубокие NN, за исключением n-грамм на уровне символов FastText. Однако было отмечено, что Word2Vec лучше всего работает для английского языка, а FastText лучше подходит для морфологически богатых языков, таких как арабский, немецкий и русский. Кроме того, он лучше улавливает синтаксические особенности, чем семантические.
  3. GloVe: Опять же! Изучает плотное представление, но на основе вероятности совпадения.

Вот компактная демонстрация того, как получить плотные представления с помощью алгоритма Gensim’s word2vec.

Ниже приведено плотное представление слова «демонстрация» длиной 10 (обратите внимание, что значение аргумента vector_size для модели word2vec равно 10). Обратите внимание, что в этом числовом представлении нет нулей.

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

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

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

  • Google: обучено с использованием набора данных Google News, содержащего около 100 миллиардов слов. Векторы слов размером 300 доступны для скачивания здесь. Размер словарного запаса составляет 3 миллиона.
  • GloVe: подготовлено на основе статей из Википедии и содержит 50, 100, 300 и 500-мерные векторы слов, готовые для загрузки здесь. Размер словарного запаса составляет 400 тыс.

Заключение

Традиционно для текстовой аналитики использовались горячие векторы, матрицы частоты слов (или векторы счета) и оценки TF-IDF (разреженные представления). Они не сохраняют никакой информации о семантике. Однако современный подход к получению вложений слов с использованием нейронных сетей (например, Word2Vec) или более сложных статистических подходов с методами нормализации (например, GloVe) лучше сохраняет «значения» слов и позволяет нам группировать слова, встречающиеся в схожих контекстах. . Но они также сопряжены со сложностями с точки зрения более высокого времени вычислений, что делает их дорогостоящими для масштабирования (в зависимости от гиперпараметров обучения, особенно с более высоким размером векторного представления). Кроме того, их также сложнее объяснить.

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

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

Вот блокнот Jupyter с полной демонстрацией Pythonic получения разреженных и плотных векторов (Word2Vec с использованием Gensim) для одного и того же примера.

💡 Хотите узнать больше о Matrix Designs для НЛП? Вот статья для дальнейшего изучения:



💡Хотите внедрить Word2Vec для классификации текста? Вот практическое руководство по мультиклассовой классификации текста, в котором изучаются плотные представления с использованием слоя встраивания Keras, а также алгоритма Gensim Word2Vec:



Ссылки:

  1. https://machinelearningmastery.com/sparse-matrices-for-machine-learning/
  2. https://kavita-ganesan.com/fasttext-vs-word2vec/#.Y-OP7XbP02w

Спасибо за визит!

Мои ссылки:Средний | ЛинкедИн | Гитхаб