Поделиться через


Латентное распределение Дирихле (LDA)

Важно!

Поддержка Студии машинного обучения (классической) будет прекращена 31 августа 2024 г. До этой даты рекомендуется перейти на Машинное обучение Azure.

Начиная с 1 декабря 2021 года вы не сможете создавать новые ресурсы Студии машинного обучения (классической). Существующие ресурсы Студии машинного обучения (классическая версия) можно будет использовать до 31 августа 2024 г.

Поддержка документации по ML Studio (классической) прекращается, а сама документация может не обновляться в будущем.

Использование библиотеки Vowpal Wabbit для выполнения VW LDA

категория: Анализ текста

Примечание

применимо к: только Машинное обучение Studio (классическая модель)

Подобные модули перетаскивания доступны в конструкторе машинного обучения Azure.

Обзор модуля

в этой статье описывается, как использовать модуль выделения скрытых дирихле метода в Машинное обучение Studio (классическая модель) для группирования неклассифицированного текста в несколько категорий. Скрытое выделение Дирихле метода (LDA) часто используется в обработке естественного языка (NLP) для поиска похожих текстов. Другой распространенный термин — тематическое моделирование.

Этот модуль принимает столбец текста и создает следующие выходные данные:

  • Исходный текст вместе с оценкой по каждой категории

  • Матрица функций, содержащая извлеченные термины и коэффициенты для каждой категории

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

Так как этот модуль использует библиотеку Vowpal Wabbit, он очень быстрый. дополнительные сведения о Vowpal Wabbit см. в репозитории GitHub , включающем учебники и описание алгоритма.

Дополнительные сведения о скрытом выделении Дирихле метода (LDA)

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

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

Для получения дополнительной информации см. раздел Технические примечания.

Как настроить латентное размещение Дирихле

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

  1. Добавьте в эксперимент модуль выделения скрытых Дирихле метода .

  2. В качестве входных данных для модуля укажите набор данных, содержащий один или несколько текстовых столбцов.

  3. Для поля целевые столбцывыберите один или несколько столбцов, содержащих текст для анализа.

    Можно выбрать несколько столбцов, но они должны иметь строковый тип данных.

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

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

    По умолчанию создано 5 тем.

  5. Для N-граммов укажите максимальную длину N-граммов, сгенерированных во время хэширования.

    По умолчанию — 2, что означает, что генерируются и биграммы, и униграммы.

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

    • Значения в наборе данных будут представлены как вероятность, где P(topic|document).

    • Значения в матрице тематических характеристик будут представлены как вероятность, где P(word|topic).

  7. Выберите параметр, Показать все параметрыи задайте для него значение true, если требуется просмотреть и затем задать дополнительные дополнительные параметры.

    Эти параметры относятся к реализации Vowpal Wabbit в LDA. Есть несколько хороших руководств по LDA в Vowpal Wabbit Online, а также официальный вики-сайт Vowpal Wabbit.

    Примеры в версии 8 и использование VW в Azure ML см. в этом примере .

    • Rho параметр. Обеспечьте априорную вероятность разреженности тематических распределений. Соответствует параметру VW lda_rho . Значение 1 следует использовать, если предполагается, что распределение слов является плоским; Например, все слова считаются екуипробабле. Если вы считаете, что большинство слов имеют разреженный вид, можно задать для него более низкое значение.

    • Альфа-параметр. Укажите априорную вероятность разреженности весов тем для отдельных документов. Соответствует параметру VW lda_alpha .

    • Примерное количество документов. Введите число, представляющее наиболее подходящую оценку количества документов (строк), которые будут обработаны. Это позволяет модулю выделить хэш-таблицу достаточного размера. lda_DСоответствует параметру в Vowpal Wabbit.

    • Размер партии. Введите число, которое указывает, сколько строк следует включить в каждый пакет текста, отправляемый в Vowpal Wabbit. batch_szСоответствует параметру в Vowpal Wabbit.

    • Начальное значение итерации, используемое в расписании обновления обучения. Укажите начальное значение для курса обучения. initial_tСоответствует параметру в Vowpal Wabbit.

    • Мощность, применяемая к итерации во время обновлений. Указывает уровень мощности, применяемый к количеству итераций во время обновлений в сети. power_tСоответствует параметру в Vowpal Wabbit.

    • Количество проходов по данным. Укажите, сколько раз алгоритм будет циклически перебирать данные. epoch_sizeСоответствует параметру в Vowpal Wabbit.

  8. Выберите параметр, построить словарь n-граммы или словарь сборки n-граммы до Lda, если хотите создать список n-грамм на начальном этапе перед классификацией текста.

    Если вы создадите исходный словарь заранее, вы можете позже использовать словарь при просмотре модели. Способность отображать результаты в виде текста, а не числовых индексов, как правило, легче интерпретировать. Однако сохранение словаря займет больше времени и потребует дополнительного места для хранения.

  9. Для параметра максимальный размер словаря ngramвведите общее число строк, которые могут быть созданы в словаре n-грамм.

    Этот параметр полезен для управления размером словаря. Однако если число n-граммы во входных данных превышает этот размер, могут возникать конфликты.

  10. Запустите эксперимент. Модуль LDA использует теорему Байеса, чтобы определить, какие темы могут быть связаны с отдельными словами. Слова не связаны только с какими либо разделами или группами. Вместо этого каждая n-грамма имеет определенную вероятность, связанную с любым из обнаруженных классов.

Результаты

Модуль имеет два выхода:

  • Преобразованный набор данных: содержит входной текст и указанное число обнаруженных категорий вместе с показателями для каждого текстового примера для каждой категории.

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

Дополнительные сведения см. в разделе Пример результатов Lda.

Преобразование LDA

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

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

Уточнение модели или результатов LDA

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

  • Изменение параметров модели
  • Использование визуализации для понимания результатов
  • Получите отзывы экспертов, чтобы узнать, полезны ли созданные разделы.

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

  • Точность — аналогичные элементы похожи?
  • Разнообразие — может ли модель отличать похожие элементы, когда это требуется для бизнес-задачи?
  • Масштабируемость. работает ли она для широкого спектра текстовых категорий или только для узких целевых доменов?

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

  • Удаление стоп-слов

  • Нормализация регистра

  • Лемматизация или извлечение корней

  • Распознавание именованных сущностей

Дополнительные сведения см. в разделе Предварительная обработка текста и Распознавание сущностей.

В Studio (классическая модель) можно также использовать библиотеки R или Python для обработки текста: выполнение скрипта r, выполнение скрипта Python

Примеры

Примеры анализа текста см. в следующих экспериментах в Коллекция решений ии Azure:

Дополнительные сведения и пример, основанный на тексте проверки клиента, см. в разделе Основные сведения о результатах Lda.

Пример результатов LDA

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

Исходный набор данных

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

В этой таблице приведено лишь несколько репрезентативных примеров.

text
В этой книге есть хорошие баллы. Если что-либо, оно поможет Вам заключить свои слова от супервизора...
Я согласен, я еще не закончил эту книгу. Дружественная помощь мне рекомендовала мне, так как у меня возникли проблемы с не переходящих спящий...
Плохо написана я попытался прочитать эту книгу, но нашел ее, чтобы Тургид и плохо написали, что я поместил ее в разочарование. ...
Так как вы получаете копию Dog-еаред из друзей, которые передавали его в течение нескольких лет назад, я не смог получить мои руки в этой книге, которая стала кратковременной культов избранного
Эта книга была интересной, и она могла бы быть хорошей книгой. Увы, это не было. Основная проблема в том, что...

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

LDA преобразованный набор данных

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

Имя фильма Раздел 1 Раздел 2 Раздел 3 Раздел 4 Раздел 5
у этой книги есть хорошие баллы 0,001652892 0,001652892 0,001652892 0,001652892 0,9933884
дружественная рекомендация 0,00198019 0,001980198 0,9920791 0,001980198 0,001980198
попытка чтения этой книги 0,002469135 0,002469135 0,9901233 0,002469135 0,002469135
позаимствовано из друга 0,9901232 0,002469135 0,002469135 0,002469135 0,002469135
график этой книги — интересное 0,001652892 0,001652892 0,9933884 0,001652892 0,001652892

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

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

Матрица раздела возможностей

Вторым выходом модуля является Матрица раздела функций. Это табличный набор данных, содержащий текст признаками, в функциистолбца, а также показатель для каждой категории, в оставшихся столбцах, разделе 1, раздел 2,... Раздел N. Показатель представляет коэффициент.

Функция Раздел 1 Раздел 2 Раздел 3 Раздел 4 Раздел 5
самое 0.0240282071983144 0.0354678954779375 0.363051866576914 0.0276637824315893 0.660663576149515
была 0.0171478729532397 0.0823969031108669 0.00452966877950789 0.0408714510319233 0.025077322689733
из 0.0148224220349217 0.0505086981492109 0.00434423322461094 0.0273389126293824 0.0171484355106826
plot 0.0227415889348212 0.0408709456489325 0.182791041345191 0.086937090812819 1 0.0169680136708971
чтение 0.0227415889348212 0.0408709456489325 0.182791041345191 0.0869370908128191 0.0169680136708971
снова 0.0269724979147211 0.039026263551767 0.00443749106785087 0.0628829816088284 0.0235340728818033
я 0.0262656945140134 0.0366941302751921 0.00656837975179138 0.0329214576160066 0.0214121851106808
значение 0.0141026103224462 0.043359976919215 0.00388640531859447 0.0305925953440055 0.0228993750526364
it 0.0264490547105951 0.0356674440311847 0.00541759897864314 0.0314539386250293 0.0140606468587681
friend 0.0135971322960941 0.0346118171467234 0.00434999437350706 0.0666507321888536 0.018156863779311
точки 0.0227415889348212 0.0396233855719081 0.00404663601474112 0.0381156510019025 0.0337788009496797
good 0.651813073836783 0.0598646397444108 0.00446809691985617 0.0358975694646062 0.0138989124411206
its 0.0185385588647078 0.144253986783184 0.00408876416453866 0.0583049240441475 0.015442805566858
of 0.0171416780245647 0.0559361180418586 0.0100633904544953 0.087093930106723 0.0182573833869842
позаимствовал 0.0171416780245647 0.0559361180418586 0.0100633904544953 0.087093930106723 0.0182573833869842
has 0.0171416780245647 0.0559361180418586 0.0100633904544953 0.087093930106723 0.0182573833869842
книга 0.0143157047920681 0.069145948535052 0.184036340170983 0.0548757337823903 0.0156837976985903
рекомендуется 0.0161486848419689 0.0399143326399534 0.00550113530229642 0.028637149142764 0.0147675139039372
this 0.0161486848419689 0.0399143326399534 0.00550113530229642 0.028637149142764 0.0147675139039372

Технические примечания

В этом разделе содержатся сведения о реализации, советы и ответы на часто задаваемые вопросы.

Сведения о реализации

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

  • Преобразованный набор данных нормализуется как условная вероятность тематики данного документа. В этом случае сумма каждой строки равна 1.

  • Матрица тематика-тема нормализована как условная вероятность слов, заданных в теме. В этом случае сумма каждого столбца равна 1.

Совет

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

LDA и тематическое моделирование

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

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

Раздел , идентифицированный процессом Lda, может представлять рецензии для отдельного продукта а или представлять группу проверок продукта. Для LDA сама тема — это просто распределение вероятностей во времени для набора слов.

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

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

Ожидаемые входные данные

Имя Тип Описание
Dataset Таблица данных Входной набор данных

Параметры модуля

Имя Type Диапазон Необязательно Значение по умолчанию Описание
Число хэш-битов Целочисленный тип [1;31] Применяется, если флажок " Показывать все параметры " не установлен 12 Число битов, используемых для хэширования компонентов
Целевые столбцы Выполните действия на странице Выбор столбцов. Обязательно StringFeature Имя или индекс целевого столбца
Количество тем для моделирования Целочисленный тип [1;1000] Обязательно 5 Моделирование распределения документов по N темам
N-граммы Целочисленный тип [1;10] Обязательно 2 Порядок N-датаграмм, созданных во время хэширования
Normalize Логическое Обязательно Да Нормализовать вывод до вероятностей. Преобразованный набор данных будет иметь вид P (раздел | документ), а матрица с тем или другими компонентами будет иметь значение P (Word | Topic).
Показать все варианты Логическое Значение true или false Обязательно Неверно Предоставляет дополнительные параметры, относящиеся к Vowpal Wabbit Online LDA
Rho параметр Тип с плавающей запятой [0.00001;1.0] Применяется, если установлен флажок " Показывать все параметры " 0,01 Rho параметр
Альфа-параметр Тип с плавающей запятой [0.00001;1.0] Применяется, если установлен флажок " Показывать все параметры " 0,01 Альфа-параметр
Примерное количество документов Целочисленный тип [1;int.MaxValue] Применяется, если установлен флажок " Показывать все параметры " 1000 Предполагаемое число документов (соответствует параметру lda_D)
Размер партии Целочисленный тип [1;1024] Применяется, если установлен флажок " Показывать все параметры " 32 Размер партии
Начальное значение итерации, используемое в расписании обновления скорости обучения Целочисленный тип [0;int.MaxValue] Применяется, если установлен флажок " Показывать все параметры " 0 Начальное значение числа итераций, использованное в расписании обновления темпов обучения (соответствует параметру initial_t)
Мощность, применяемая к итерации во время обновлений Тип с плавающей запятой [0.0;1.0] Применяется, если установлен флажок " Показывать все параметры " 0,5 Питание, применяемое к счетчику итераций во время обновлений в сети (соответствует параметру power_t)
Число итераций обучения Целочисленный тип [1;1024] Применяется, если установлен флажок " Показывать все параметры " 25 Число итераций обучения
Сборка словаря n-грамм Логическое Значение true или false Применяется, если флажок " Показывать все параметры " не установлен Верно Создает словарь n-грамм до вычисления LDA. Полезно для проверки и интерпретации модели
Число битов, используемых для хэширования компонентов Целочисленный тип [1;31] Применяется, если параметр Build Dictionary объекта n-граммы имеет значение false 12 Число битов, используемых при хэшировании компонентов
Максимальный размер словаря n-грамм Целочисленный тип [1;int.MaxValue] Применяется, когда для параметра Построить словарь n-грамм установлено значение True 20 000 Максимальный размер словаря n-грамм. Если количество токенов во входных данных превышает этот размер, могут возникать конфликты
Создайте словарь n-грамм до LDA Логическое Значение true или false Применяется, если установлен флажок " Показывать все параметры " Верно Создайте словарь n-грамм до LDA. Полезно для проверки и интерпретации модели
Максимальное количество n-грамм в словаре Целочисленный тип [1;int.MaxValue] Применяется, когда параметр " построить словарь n-граммы " имеет значение true и установлен флажок " Показывать все параметры ". 20 000 Максимальный размер словаря. Если количество токенов во входных данных превышает этот размер, могут возникать конфликты

Выходные данные

Имя Тип Описание
Преобразованный набор данных Таблица данных Выходной набор данных
Матрица раздела возможностей Таблица данных Матрица раздела компонентов, созданная с помощью LDA
Преобразование LDA Интерфейс ITransform Преобразование, которое применяет LDA к набору данных

Исключения

Исключение Описание
Ошибка 0002 Исключение возникает, если не удалось найти один или несколько столбцов указанного набора данных.
Ошибка 0003 Исключение возникает, если один или несколько входных аргументов имеют значение NULL или пусты.
Ошибка 0004 Исключение возникает, если параметр меньше или равен определенному значению.
Ошибка 0017 Исключение возникает, если один или несколько указанных столбцов относятся к типу, который не поддерживается в текущем модуле.

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

список исключений API см. в разделе Машинное обучение REST API коды ошибок.

См. также раздел

Анализ текста
Хэширование признаков
Распознавание именованных сущностей
Оценка модели Vowpal Wabbit 7-4
Обучение модели Vowpal Wabbit 7-4
Обучение модели Vowpal Wabbit 8