www.machinelearningmastery.ru

Машинное обучение, нейронные сети, искусственный интеллект
Header decor

Home
Занимательная история, выдающиеся люди, малоизвестные факты, находки, открытия, фальсификации. Присоединяйся!

Интуитивно понятное руководство по распределению скрытого дирихле

Дата публикации Aug 23, 2018

Тематическое моделирование относится к задаче определения тем, которые лучше всего описывают набор документов. Эти темы появятся только в процессе моделирования темы (поэтому и называются скрытыми). И один из популярных методов моделирования темы известен какСкрытое распределение Дирихле(ДАЛ). Несмотря на то, что это название довольно загадочное, концепция этого очень проста.

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

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

A BСD* E F G H I JКL MNO P Q R S T U VWX Y Z

* обозначает статьи за Medium Paywall.

Почему тема моделирования?

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

Что уникального в этой статье? Это еще одна рыба в море?

Короткий ответ - большое НЕТ! Я пролистал много разных статей там. И есть много отличных статей / видео, дающих интуицию. Однако большинство из них останавливаются на ответах на такие вопросы, как:

  • Какая интуиция стоит за LDA?
  • Что такое распределение Дирихле?

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

  • Какую математическую сущность мы хотим решить?
  • Как мы решаем за это?

В чем главная идея LDA?

Как только вы поймете основную идею, я думаю, она поможет вам понять, почему механика в LDA такая, какая она есть. Так что здесь идет;

Каждый документ может быть описан распределением тем, и каждая тема может быть описана распределением слов

Но почему мы используем эту идею? Давайте представим это на примере.

LDA с точки зрения непрофессионала

Скажем, у вас есть набор из 1000 слов (то есть наиболее часто встречающиеся 1000 слов во всех документах), и у вас есть 1000 документов. Предположим, что в каждом документе в среднем содержится 500 таких слов. Как понять, к какой категории относится каждый документ? Один из способов заключается в том, чтобы связать каждый документ с каждым словом потоком, основываясь на их появлении в документе. Что-то вроде ниже.

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

И тогда, когда вы видите, что некоторые документы связаны с одним и тем же набором слов. Вы знаете, что они обсуждают одну и ту же тему. Затем вы можете прочитать один из этих документов и узнать, о чем говорят все эти документы. Но для этого вам не хватает нити. Для этого вам понадобится около 500 * 1000 = 500 000 потоков. Но мы живем в 2100 году и исчерпали все ресурсы для производства нитей, поэтому они настолько дороги, что вы можете позволить себе только 10 000 нитей. Как вы можете решить эту проблему?

Идите глубже, чтобы уменьшить темы!

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

Теперь предположим, что у вас есть каждый документ, имеющий около 5 тем и каждая тема, относящаяся к 500 словам. То есть нам нужно 1000 * 5 потоков для соединения документов с темами и 10 * 500 потоков для соединения тем со словами, в сумме до 10000.

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

Заметка: Темы, которые я здесь использую («Животные», «Спорт», «Техника»), воображаемы. В реальном решении у вас не будет таких тем, но что-то вроде(0,3 * кошки, 0,4 * собаки, 0,2 * верные, 0,1 * зло)представляющий тему «Животные» То есть, как упоминалось ранее, каждый документ является распределением слов.

Другой взгляд: как LDA представляет документы?

Чтобы дать больше контекста тому, что происходит, LDA предполагает, что за любым документом, который вы видите, стоит следующий процесс генерации. Для простоты предположим, что мы генерируем один документ из 5 слов. Но тот же процесс обобщается наMдокументы сNслова в каждом. Надпись довольно хорошо объясняет, что здесь происходит. Так что я не буду повторять.

Как создается документ. Сначала α (альфа) организует основание θ (тета), а затем вы идете и выбираете мяч из θ. В зависимости от того, что вы выбрали, вас отправили на землю β (бета). β организован η (Eta). Теперь вы выбираете слово из β и помещаете его в документ. Вы повторяете этот процесс 5 раз, чтобы получить 5 слов.

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

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

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

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

Получать немного математики ...

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

Определения и обозначения

  • k - количество тем, к которым относится документ (фиксированное число)
  • V - размер словарного запаса
  • М - Количество документов
  • N - количество слов в каждом документе
  • вес- Слово в документе. Это представляется как один горячий закодированный вектор размераВ(Т.е.В- размер словарного запаса)
  • вес(смелыйвес): представляет документ (то есть вектор «весС) изNслова
  • D -Корпус, коллекцияMдокументы
  • z - тема из набораКтемы. Тема - это раздача слов. Например, это может быть,Животное = (0,3 кошки, 0,4 собаки, 0 AI, 0,2 лояльных, 0,1 зла)

Определение генерации документов более математически

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

Графическая модель LDA. Здесь я отмечаю формы всех возможных переменных (наблюдаемых и скрытых). Но помните, что θ, z и β - это распределения, а не детерминированные значения

Давайте расшифруем, что это говорит. У нас есть единственное значение α (то есть организатор основания θ), которое определяет θ; распределение тем для документов будет таким же. У нас естьMдокументы и получили θ распространение для каждого такого документа. Теперь, чтобы понять вещи более ясно, косите глаза и сделайте этоMтабличка исчезает (при условии, что есть только один документ), вау!

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

Теперь начинает работать верхняя пластина. На основе η β имеет некоторое распределение (то есть распределение Дирихле, чтобы быть точным - скоро будет обсуждено), и в соответствии с этим распределением β генерирует k отдельных слов для каждой темы. Теперь вы вводите слово для каждого заполнителя (в наборе из N заполнителей) в зависимости от темы, которую он представляет.

Виола, у тебя есть документ сNслова сейчас!

Почему α и η постоянны?

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

Давайте разберемся с θ и β более подробно

θ - случайная матрица, где θ(I, J)представляет вероятностьядокумент, содержащий слова, принадлежащиеJом тема. Если вы посмотрите на то, как выглядит основание θ в приведенном выше примере, вы можете увидеть, что шары красиво разложены по углам, а не посередине. Преимущество наличия такого свойства в том, что слова, которые мы производим, скорее всего, принадлежат к одной теме, как это обычно бывает с реальными документами. Это свойство, которое возникает при моделировании θ какРаспределение Дирихле, Точно так же β (i, j) представляет вероятностьяТема, содержащаяJслово А β также является распределением Дирихле Ниже я приведу краткий обзор, чтобы понять распределение Дирихле.

Быстрый обход: Понимание распределения Дирихле

Распределение Дирихле является многомерным обобщениемБета-версия, Здесь мы обсуждаем пример трехмерной задачи, где у нас есть 3 параметра в α, которые влияют на форму θ (то есть распределение). Для N-мерного распределения Дирихле у вас есть вектор N длины как α. Вы можете видеть, как форма θ изменяется с различными значениями α. Например, вы можете увидеть, как верхний средний график показывает форму, аналогичную θ-земле.

Основной вынос заключается в следующем:

Большие значения α смещают распределение к середине треугольника, где меньшие значения α смещают распределение к углам.

Как распределение θ изменяется с различными значениями α

Как мы узнаем LDA?

Мы до сих пор не ответили на реальную проблему: откуда мы знаем точные значения α и η? Перед этим позвольте мне перечислить скрытую (скрытую) переменную, которую нам нужно найти.

  • α - параметр, связанный с распределением, который определяет, как выглядит распределение тем для всех документов в корпусе
  • θ - случайная матрица, где θ (i, j) представляет вероятность того, что i-й документ содержит j-ую тему
  • η - параметр, связанный с распределением, который определяет, как выглядит распределение слов в каждой теме
  • β - случайная матрица, где β (i, j) представляет вероятность i-й темы, содержащей j-е слово.

Формулировать, что нам нужно учиться

Если я хочу математически заявить, что я заинтересован в его нахождении, как показано ниже:

Это выглядит страшно, но содержит простое сообщение. Это в основном говорит,

У меня есть набор из M документов, каждый из которых имеет N слов, где каждое слово генерируется одной темой из набора K тем. Я ищу совместную апостериорную вероятность:

  • θ - распределение тем, по одной на каждый документ,
  • Z- N Тем для каждого документа,
  • β - распределение слов, по одному на каждую тему,

данный,

  • D - Все данные, которые у нас есть (например, корпуса),

и используя параметры,

  • α - Вектор параметров для каждого документа (документ - Распределение тем)
  • η - вектор параметров для каждой темы (тема - распределение слов)

Но мы не можем рассчитать это красиво, так как эта сущность неразрешима. Соу, как мы решаем это?

Как мне это решить? Вариационный вывод на помощь

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

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

Но мы кратко рассмотрим проблему оптимизации.

γ, ϕ и λ представляют собой свободные вариационные параметры, которые мы аппроксимируем θ,Zи β с соответственно. Здесь D (q || p) представляет дивергенцию KL междуQа такжеп, И, изменяя γ, ϕ и λ, мы получаем разныеQраспределения, имеющие различные расстояния от истинного апостериорногоп, Наша цель - найти γ *, ϕ * и λ *, которые минимизируют расхождение KL между приближениемQи истинный апостериорп,

Когда все хорошо определено, это просто вопрос итеративного решения вышеуказанной задачи оптимизации до тех пор, пока решение не сходится. Если у вас есть γ *, ϕ * и λ *, у вас есть все, что вам нужно в окончательной модели LDA.

Заворачивать

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

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

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

Ссылки

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

ПрофессорОригинальная статья Дэвида Блея

Интуитивное видео, объясняющее основную идею LDA

Лекция профессора Дэвида Блея

Оригинальная статья

Footer decor

© www.machinelearningmastery.ru | Ссылки на оригиналы и авторов сохранены. | map