Примените Labeled LDA к большим данным

Вопрос или проблема

Я использую набор данных, содержащий около 1,5 миллиона документов. Каждый документ сопровождается ключевыми словами, описывающими темы данного документа (то есть многоярлык). Каждый документ принадлежит нескольким авторам (не одному автору для документа). Я хотел выяснить, какие темы интересуют каждого автора, анализируя документы, которые они пишут. В данный момент я рассматриваю вариант LDA (метод с маркировкой LDA, предложенный Д. Рамагой: https://www.aclweb.org/anthology/D/D09/D09-1026.pdf). Я использую все документы в своем наборе данных для обучения модели и использую модель для прогнозирования ярлыков автора (здесь я использую агрегирование всех документов, принадлежащих автору, чтобы представить его, рассматривая авторов как документы).

Я использую Python и нашел несколько реализаций в GitHub:
https://github.com/JoeZJH/Labeled-LDA-Python
https://github.com/shuyo/iir/blob/master/lda/llda.py

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

Итак, вот мои вопросы:

  1. Правильный ли мой метод с теоретической точки зрения? (Я буду признателен, если кто-то предложит другие модели, подходящие для этой задачи)

  2. Существует ли какой-либо метод для уменьшения размерности при сохранении как можно большего количества информации? Например, является ли TF-IDF вариантом для уменьшения?

Я был бы признателен, если бы вы могли дать некоторые советы по этим двум вопросам.

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

https://en.wikipedia.org/wiki/Locality-sensitive_hashing

Правильный ли мой метод с теоретической точки зрения? (Я буду признателен, если кто-то предложит другие модели, подходящие для этой задачи)

Да, но вам нужно помнить о стемматизации, лемматизации и удалении стоп-слов и знаков препинания.

Существует ли какой-либо метод для уменьшения размерности при сохранении как можно большего количества информации? Например, является ли TF-IDF вариантом для уменьшения?

Один из лучших вариантов.

Я хотел выяснить, какие темы интересуют каждого автора, анализируя документы, которые они пишут.

В 2024 году вы могли бы сделать это с помощью брутфорса, запрашивая LLM и используя RAG (хотя это все еще дорого).

Ответ или решение

Применение Labeled LDA на больших данных

Введение

Используя ваш обширный набор данных, состоящий из 1,5 миллионов документов, задача извлечения тематических интересов авторов путем анализа их публикаций является актуальной и сложной. Вы рассматриваете вариант модели LDA, который называется Labeled LDA, предложенный Д. Рамагой. Этот метод позволяет учитывать ярлыки тем документов и отчитываться о многократных метках, что, безусловно, является полезной стратегией для вашей задачи.

Теоретическая корректность метода

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

Тем не менее, стоит рассмотреть и альтернативные модели, которые могут оказаться более эффективными для вашей задачи:

  1. Hierarchical Dirichlet Process (HDP): Этот метод позволяет автоматически определять количество тем, что может быть полезно при работе с большими наборами данных и непредсказуемыми темами.

  2. Supervised LDA (sLDA): Эта модель также учитывает метки и может быть нацелена на изучение взаимосвязей между документами и метками, что может быть полезным для получения более целенаправленных результатов.

  3. Latent Semantic Analysis (LSA): Хотя эта модель не является такой же специфичной, как Labeled LDA, она может предложить хороший старт для извлечения тем, особенно если вы используете методы снижения размерности, такие как SVD.

Методы уменьшения размерности

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

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

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

  3. Выбор наиболее частых терминов: Рассматривая только наиболее частые термины (например, топ-5000 или 10000), вы можете целенаправленно уменьшить размерность вашего корпуса, сосредоточившись на наиболее распространенных и, как правило, более значимых словах.

  4. Модели для сжатия данных: Проверьте методы, такие как Locality Sensitive Hashing (LSH), для создания более сбалансированных представлений ваших данных и сохранения дистанции между документами.

Заключение

Ваша методология имеет груз теоретической целесообразности. Тем не менее, исследование альтернативных моделей, таких как HDP и sLDA, может дать вам дополнительные подходы к вашей задаче. Кроме того, использование TF-IDF и предварительная обработка текста с удалением стоп-слов и стеммингом помогут вам сохранить как можно больше информации при уменьшении размеров данных.

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

Оцените материал
Добавить комментарий

Капча загружается...