Тематическое моделирование
Рассмотрим работу с текстовыми данными, представляющими собой набор текстовых документов.
Стандартное представление документов вида "мешок слов" (bag-of-words) порождает признаковое пространство высокой размерности, равной числу уникальных слов текстовой коллекции, которое имеет порядок нескольких десятков или даже сотен тысяч уникальных слов. В таком высокоразмерном пространстве признаков модели легко переобучаются, а интерпретация объектов и моделей затруднена из-за слишком большого числа признаков.
Однако слова в языке не независимы: они группируются в скрытые темы (latent topics).
Например, слова "инфляция", "банк" и "кредит" часто встречаются вместе, сигнализируя о финансовой тематике текста.
А слова "модель", "переобучение" и "бустинг", в свою очередь, выражают тему машинного обучения.
Тематическое моделирование (topic modeling) - это метод снижения размерности для текстовых данных, в котором объект (являющийся документом) представляется не как набор слов, а как распределение по темам. Это позволяет сжать информацию и находить семантически близкие документы, даже если в них нет общих слов.
Пример: "ремонт машины" и "обслуживание автомо биля" семантически близки, хоть и состоят из разных слов.
Анализируя же вектора полученных тем, можно быстро составить общее представление о типах текстов в большой текстовой коллекции.
Например, если документы - это обращения пользователей в справочную службу, то, используя тематическое моделирование, мы можем быстро понять, по каким основным темам у пользователей возникают вопросы.
Каждый документ представляется последовательностью слов длины :
В тематическом моделировании предполагается предполагается двухуровневая вероятностная модель порождения каждого слова в документе:
-
Сначала сэмплируется тема из распределения тем в документе.
-
Затем из темы сэмплируется уже само слово.
По итогам настройки тематической модели автоматически определяются:
-
Основные темы текстовой коллекции, где каждая тема - это распределение на словах. Для интерпретации каждой темы визуализируют топ-K самых популярных слов темы.
-
Распределение тем в каждом документе (что даёт высокоуровневое семантическое описание каждого документа, с которым просто работать, а не низкоуровневое описание на уровне отдельных слов).
В тематических моделях требуется заранее задавать число тем - это внешний гиперпараметр. Настроив темы, можно в онлайн-режиме восстанавливать их распределение в новых документах без переобучения модели на всех данных.
Вероятностный латентно-семантический анализ (PLSA)
Впервые тематическое моделирование было предложено в методе вероятностный латентно-семантический анализа (Probabilistic Latent Semantic Analysis, PLSA [1]).
Пусть у нас есть набор из документов и словарь из слов. Мы предполагаем наличие скрытых тем. Появление слова в документе моделируется через описанный выше двухуровневый вероятностный процесс порождения темы , а затем уже порождения слова в рамках темы . Итоговая вероятность появления слова тогда по формуле полной вероятности записывается следующим образом:
где мы использовали обозначения:
-
- распределение тем в документе
-
- распределение слов в теме .
Настройка модели
Для настройки используется метод максимального правдоподобия (Maximum Likelihood Estimation). Мы максимизируем логарифм вероятности всей коллекции текстов:
где - количество вхождений слова в документ . Оптимизация проводится с помощью EM-алгоритма (Expectation-Maximization algorithm [2]).
В результате настройки модели мы получаем:
-
компактное семантичес кое представление каждого документа в виде распределения представленных в нём тем: .
-
расшифровку каждой темы в виде распределения слов в ней: .
Пример нескольких автоматически извлечённых тем из коллекции TDP-1 представлен ниже [1]:

Латентное размещение Дирихле (LDA)
Латентное размещение Дирихле (Latent Dirichlet Allocation, LDA [3]) является развитием PLSA. В этой модели параметры и сами являются не настраиваемыми параметрами, а сами являются случайными величинами, подчиняющимися распределению Дирихле [4].
Распределение Дирихле выбрано потому, что для него проще получить оценку модели через байесовский вывод.
Формулы и гиперпараметры
В LDA вводится иерархический процесс:
- Для каждого документа сэмплируется вектор распределения тем: .
- Для каждой темы сэмплируется вектор распределения слов: .
Модель LDA гибче модели PLSA тем, что введённые гиперпараметры и позволяют контролировать распределения слов в темах и распределение тем в документах:
- Концентрация тем определяет разреженность тем в документах. При малых документ будет значимо содержать всего 1–3 темы, а при больших - будет содержать все темы с большими весами. Обычно берут малой, поскольку стандартные документы содержат небольшое число тем.
- Концентрация слов определяет разреженность слов в темах. Малые заставляют темы состоять в основном всего из нескольких характерных слов, а при увеличении гиперпараметра распределение слов в темах становится более равномерным. Обычно берут малой чтобы сделать каждую тему более интерпретируемой за счёт узкой специализации.
С кодом настройки LDA-модели можно ознакомиться в [5] (библиотека scikit-learn) и в [6] (библиотека gensim).
Основные сценарии использования
- Высокоуровневая обработка текст ов на основе не низкоуровневого многомерного представления (слов), а на основе высокоуровневого маломерного представления (тем) - классификация, суммаризация текстов, поисковая система, рекомендация новостей.
- Борьба с переобучением моделей за счёт снижения размерности признаков, описывающих тексты.
- Группировка документов по темам, например, в новостных агрегаторах (по рубрикам: политика, спорт, наука, культура и т.д.).
- Анализ отзывов: выделение ключевых аспектов продукта, которыми недовольны клиенты (доставка, качество, цена, ограничения функционала и т.д.).
Литература
- Hofmann T. Probabilistic latent semantic indexing //Proceedings of the 22nd annual international ACM SIGIR conference on Research and development in information retrieval. – 1999. – С. 50-57.
- Википедия: EM-алгоритм.
- Blei D. M., Ng A. Y., Jordan M. I. Latent dirichlet allocation //Journal of machine Learning research. – 2003. – Т. 3. – №. Jan. – С. 993-1022.
- Wikipedia: Dirichlet distribution.
- Документация scikit-learn: Topic extraction with Non-negative Matrix Factorization and Latent Dirichlet Allocation.
- GeeksForGeeks: Topic Modeling Using Latent Dirichlet Allocation (LDA).