Узнайте больше о LDA2vec, модели, которая изучает плотные векторы слов вместе с распределенными по Дирихле скрытыми смесями тематических векторов на уровне документа.

В этом сообщении блога вы познакомитесь с lda2vec, тематической моделью, опубликованной Крисом Муди в 2016 году. lda2vec расширяет модель word2vec, описанную Mikolov et al. в 2013 , с векторами тем и документов и объединяет идеи как встраивания слов, так и моделей тем.

Общая цель тематической модели - создать интерпретируемые представления документов, которые можно использовать для обнаружения тем или структуры в коллекции немаркированных документов. Пример такого интерпретируемого представления документа: документ X - это 20% тема a, 40% тема b и 40% тема c.

Сегодняшний пост начнется с знакомства со скрытым распределением Дирихле (LDA). LDA - это вероятностная тематическая модель, которая рассматривает документы как набор слов, поэтому сначала вы собираетесь изучить преимущества и недостатки этого подхода.

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

Наконец, вы узнаете больше об общей идее lda2vec.

Скрытое распределение Дирихле: введение

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

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

Скрытое распределение Дирихле (LDA) является примером вероятностной тематической модели. Что именно это означает, вы узнаете в следующих разделах: сначала вы поймете, как LDA начинает с набора слов для представления различных документов. Затем вы увидите, как эти представления используются для поиска структуры в коллекции документов.

Мешок слов

Традиционно текстовые документы представлены в НЛП как набор слов.

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

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

Представление документа фиксированной длины означает, что вы можете легко загружать документы различной длины в модели машинного обучения (SVM, k-NN, случайные леса и т. Д.). Это позволяет выполнять кластеризацию или классификацию тем для документов. Структурная информация документа удаляется, и модели должны определить, какие векторные измерения семантически схожи. Отображение, например, «кошки» и «кошки» в разных измерениях менее интуитивно понятно, поскольку модель вынуждена изучать корреляцию между этими разными измерениями.

LDA-модель

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

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

Обучение модели LDA на N документах с M темами соответствует поиску документов и векторов тем, которые лучше всего объясняют данные.

Обратите внимание, что в этом руководстве не будет подробно рассмотрена вся теория, лежащая в основе LDA (см. Эту статью Blei et al.), Поскольку основное внимание уделяется более общему пониманию.

Предположим, что словарь в документах состоит из V слов.

Каждый из N документов будет представлен в модели LDA вектором длины M, который детализирует, какие темы встречаются в этом документе. Документ может состоять из 75% "темы 1" и 25% "темы 2". Часто LDA приводит к векторам документов с большим количеством нулей, что означает, что в одном документе встречается только ограниченное количество тем. Это соответствует идее, что в документах обычно говорится только об ограниченном количестве тем. Это значительно улучшает интерпретируемость этих векторов документов человеком.

Каждая из тем M представлена ​​вектором длины V, который детализирует, какие слова могут встречаться при наличии документа по этой теме. Поэтому для темы 1 наиболее употребительными словами могут быть «обучение», «моделирование» и «статистика». Это означает, что вы могли бы сказать, что это тема «науки о данных». Для темы 2 наиболее распространенными словами могут быть слова «GPU», «вычисления» и «хранилище». Вы могли бы интерпретировать это как тему «вычислений».

Следующее изображение визуально иллюстрирует модель LDA. Цель модели - найти векторы тем и документов, которые объясняют исходное краткое представление различных документов.

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

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

Вложения слов

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

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

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

Изображение выше - это проекция пространства вложения слов в 2D-пространство с использованием t-распределенного стохастического соседнего вложения (t-SNE). t-SNE - это метод уменьшения размерности, который можно использовать для визуализации данных большой размерности. В качестве входных данных метод принимает вложения слов и проецирует их на двумерное пространство, которое можно легко визуализировать в виде графика. Исследуется только часть пространства слов, уделяя особое внимание словам, близким к слову «учитель». Вместо представления слов неинформативными размерами в векторе, слова могут быть представлены семантически коррелированными векторами с использованием встраивания слов.

При использовании встраивания слов модель машинного обучения может использовать информацию из большой коллекции документов, также известной как «корпус», путем встраивания ее в векторные представления. Это невозможно с моделями набора слов, что может снизить производительность модели, когда доступно немного данных. Внедрение слов приводит к тому, что представления документов больше не имеют фиксированной длины. Вместо этого документы представлены последовательностью вложений векторов слов переменной длины. Хотя некоторые методы глубокого обучения, такие как Long Short-Term Memory (LSTM), сверточные сети с адаптивным объединением… могут работать с последовательностями переменной длины, для их правильного обучения часто требуется много данных.

word2vec

Как вы читали во введении, word2vec - очень популярная модель встраивания слов, разработанная Миколовым и др. Обратите внимание, что в области семантики распределения существует несколько других моделей встраивания слов. Хотя для получения высококачественных встраиваний слов требуется несколько уловок, в этом руководстве мы сосредоточимся только на основной идее word2vec.

Следующая процедура обучения используется в word2vec для получения вложений слов.

1. Выберите (поворотное) слово в тексте. Контекстные слова текущего ключевого слова - это слова, которые встречаются вокруг ключевого слова. Это означает, что вы работаете в пределах окна слов фиксированной длины. Комбинации ключевых слов и слов контекста составляют набор пар слово-контекст. Изображение ниже было взято из блога Криса Муди на lda2vec. В этом фрагменте текста awesome является ключевым словом, а слова вокруг него используются как контекстные, в результате получается 7 пар слово-контекст.

2. Существуют два варианта модели word2vec: a. В архитектуре «мешок слов» (CBOW) ключевое слово предсказывается на основе набора окружающих контекстных слов (например, учитывая «спасибо», «такой», «вы», «верх», модель должна предсказывать «потрясающе». ). Это называется архитектурой набора слов, поскольку порядок контекстных слов не имеет значения. б. В архитектуре skip-gram ключевое слово используется для предсказания окружающих контекстных слов (т. Е. Заданный «awesome» предсказывает «спасибо», «такой», «вы», «наверху»). На следующем изображении показаны две разные архитектуры word2vec. Обратите внимание, что используется относительно простая (двухслойная) нейронная модель (по сравнению с глубокими нейронными моделями в компьютерном зрении).

Обучая модель на большом корпусе, вы получите вложения слов (веса в проекционном слое), которые кодируют семантическую информацию, а также некоторые интересные свойства: можно выполнять векторную арифметику, такую ​​как king - man + женщина = королева.

Векторы слов являются полезным представлением по сравнению, например, с простым представлением с горячим кодированием. Они позволяют кодировать статистическую информацию из большого корпуса в другие модели, такие как тематическая классификация или диалоговые системы. Векторы слов часто бывают плотными, многомерными и не интерпретируемыми. Рассмотрим следующий пример: [-0,65, -1,223,…, -0,252, +3,2]. В то время как в LDA размеры приблизительно соответствуют темам, это обычно не относится к векторам слов. Каждому слову назначается контекстно-независимый вектор слов. Однако семантическое значение слов сильно зависит от контекста. Модель word2vec изучает вектор слов, который предсказывает контекстные слова в разных документах. В результате информация, относящаяся к конкретному документу, смешивается во вложениях слов.

lda2vec

Вдохновленная скрытым распределением Дирихле (LDA), модель word2vec расширена для одновременного изучения векторов слов, документов и тем.

Lda2vec получается путем модификации варианта пропуска грамматики word2vec. В исходном методе skip-gram модель обучается предсказывать контекстные слова на основе ключевого слова. В lda2vec вектор ключевого слова и вектор документа добавляются для получения вектора контекста. Этот вектор контекста затем используется для предсказания слов контекста.

В следующем разделе вы увидите, как создаются эти векторы документов и как их можно использовать аналогично векторам документов в LDA.

lda2vec Архитектура

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

Обратной стороной этого подхода является то, что векторы контекста / абзаца напоминают типичные векторы слов, что делает их менее интерпретируемыми, как, например, вывод LDA.

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

Рассмотрим следующий пример: в исходной модели word2vec, если ключевым словом является «французский», то возможными контекстными словами могут быть «немецкий», «голландский», «английский». Без какой-либо глобальной (связанной с документами) информации это были бы наиболее правдоподобные предположения.

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

Если вектор документа представляет собой комбинацию тем "еда" и "напитки", то более подходящими могут быть "багет", "сыр" и "вино". Если вектор документа похож на темы «город» и «география», то «Париж», «Лион» и «Гренобль» могут быть более подходящими.

Обратите внимание, что эти векторы тем изучаются в пространстве слов, что позволяет легко интерпретировать: вы просто смотрите на векторы слов, которые наиболее близки к векторам тем. Кроме того, на векторы веса документа накладываются ограничения, чтобы получить разреженный вектор (аналогичный LDA) вместо плотного вектора. Это позволяет легко интерпретировать тематическое содержание различных документов.

Короче говоря, конечным результатом lda2vec является набор разреженных векторов веса документа, а также легко интерпретируемых векторов тем.

Хотя производительность, как правило, аналогична традиционному LDA, использование методов автоматического дифференцирования делает метод масштабируемым для очень обширных наборов данных. Кроме того, комбинируя вектор контекста и вектор слов, вы получаете «специализированные» векторы слов, которые могут использоваться в других моделях (и могут превосходить более «общие» векторы слов).

Библиотеки lda2vec

Lda2vec - довольно новая и специализированная техника НЛП. Поскольку он основан на существующих методах, любая реализация word2vec может быть расширена до lda2vec. Крис Муди реализовал этот метод в Chainer, но также можно было использовать другие системы автоматического дифференцирования (CNTK, Theano,…). Реализация Tensorflow также стала общедоступной.

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

Наконец, lda2vec обсуждалась как тематическая модель, но идея добавления контекстных векторов к модели word2vec также может быть определена в более общем плане. Рассмотрим, например, документы, написанные разными авторами из разных регионов. Затем векторы автора и региона также могут быть добавлены к вектору контекста, что приведет к неконтролируемому методу получения векторных представлений документа, региона и автора.

Заключение

В этом сообщении в блоге представлен только краткий обзор LDA, word2vec и lda2vec. Обратите внимание, что первоначальный автор также опубликовал отличную запись в блоге о технических деталях lda2vec.