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

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

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

Мои вопросы были:

Что такое Дирихле и зачем использовать Дирихле в LDA?

Что представляют различные переменные в модели?

Что такое Дирихле?

Оказывается, распределение Дирихле — это обобщение бета-распределения, расширенное до нескольких измерений. Что такое бета-распределение? Это одномерное распределение случайных величин, принадлежащих диапазону от 0 до 1 и параметризованных параметрами альфа и бета. Бета также является сопряженным априором для биномиального распределения с вероятностью p. Тогда дело в том, что апостериорное распределение p также является бета-распределением с параметрами alpha_dash=alpha+ количество успехов и beta_dash= beta+ количество неудач. Точно так же, когда мы принимаем распределение Дирихле в качестве априорного, в случае LDA апостериорное распределение также будет Дирихле.

Зачем использовать Дирихле в LDA?

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

Алгоритмические проблемы

Нас в первую очередь интересует решение первого вопроса:

1. Каковы распределения или темы по терминам, которые создали скрытую, лежащую в основе структуру темы?

Кроме того, мы также можем быть заинтересованы в ответах на следующие вопросы:

2. Для каждой темы: какие темы создали документы в соответствии с этими предположениями?

3. Для каждого документа: каково распределение по темам, связанным с документом?

4. Для каждого слова: какая тема породила каждое слово?

Модель и предположения

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

Начнем с рассмотрения модели:

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

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

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

Другими примечательными предположениями являются:

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

Что представляют различные переменные в модели?

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

Элементы, отмеченные желтым цветом, относятся к распределению Дирихле.

Апостериорный вывод LDA

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

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

Идея VB заключается в следующем:

  • Мы выбираем семейство распределений по скрытым переменным со своим набором параметров
  • Затем выберите приближенное распределение (назовем приближенное распределение q), которое будет наиболее близким к апостериорному распределению
  • Затем найдите параметрическую настройку для q
  • Мы оптимизируем алгоритм по плотности q, чтобы найти оптимальное приближение
  • Наконец, мы можем использовать аппроксимативное распределение q с подобранными параметрами вместо апостериорного распределения

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

Проблема логического вывода

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

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

2. Найти сложное апостериорное распределение.

Чтобы реализовать вывод с помощью метода VB, важно знать, что такое дивергенция Кульбака-Лейблера (далее KLD). Почему?

Ну, напомним, что у нас на руках два дистрибутива:

  • Генеративное вероятностное распределение, которое мы получили, подгоняя модель LDA к нашим данным.
  • Распределение приближения (q) к истинному апостериорному распределению, которое мы ожидаем от LDA

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

Но оказывается, что на самом деле мы не можем минимизировать эту величину, поэтому мы предполагаем вогнутую функцию через неравенство Дженсена (я знаю правильно!) и добавляем константу. Эта функция известна как нижняя граница доказательства (далее ELBO). Напомним, что «свидетельство» — это термин, используемый для обозначения предельной вероятности наблюдений (или ее логарифма). Предполагая X как наблюдаемую переменную и Z как скрытую или латентную переменную, ELBO можно записать как:

Пришло время викторины; ты готов?

Вопрос: Какое второе математическое ожидание вы видите в приведенном выше уравнении?

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

И ответ: Энтропия

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

Мы можем показать, что KLD равен отрицательному ELBO плюс константа следующим образом:

Наконец, оптимизация

Мы используем алгоритм оптимизации для итеративного обновления q с его параметрами. Sklearn использует алгоритм максимизации ожиданий (EM). E-шаг оценивает вариационные параметры γ и φ по q путем минимизации KL-дивергенции (мы уже видели, как это делается) до p (при фиксированных α и β). M-шаг максимизирует (по α и β) нижнюю границу логарифмического правдоподобия при фиксированных γ и φ. ELBO сходится к локальному минимуму, что позволяет нам использовать полученное q в качестве прокси для истинного апостериорного значения.

Справочник

http://www.jmlr.org/papers/volume3/blei03a/blei03a.pdf

https://www.seas.upenn.edu/~cis520/lectures/LDA.pdf

https://www.cs.cmu.edu/~epxing/Class/1070815/notes/10708_scribe_lecture13.pdf

http://users.umiacs.umd.edu/~xyang35/files/understanding-variational-lower.pdf

https://stats.stackexchange.com/questions/193465/what-is-the-gradient-log-normalizer