Введение

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

Нашим кейсом будет теория вероятностей. Я выбрал эту тему по двум основным причинам: во-первых, моя докторская степень. основное внимание уделяется теории вероятностей, что позволяет мне эффективно интерпретировать результаты, а во-вторых, Интернет не изобилует библиометрическими анализами вероятностных исследований.

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

Источник данных и предварительная обработка данных

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

Хотя существуют наборы данных, состоящие из таких метаданных arXiv, во всех тех, с которыми я столкнулся, отсутствует значительное количество статей и, в частности, обычно содержится очень мало статей по теории вероятностей. В частности, нас интересуют материалы, перечисленные с идентификатором темы math.PR, который соответствует вероятности.

Моя цель состояла в том, чтобы собрать данные за период около 6 лет теории вероятностей. В конечном итоге я собрал метаданные для 21 898 статей, охватывающих период с января 2017 года по конец декабря 2022 года.

Разработка функций

Поэкспериментировав с рядом подходов, я в конце концов остановился на следующем наборе функций, которые, кажется, дают очень значимые результаты. Я хотел использовать информацию, содержащуюся в заголовке, а также в аннотации. Аннотация, конечно, немного зашумлена, поэтому, чтобы уменьшить сложность, я решил использовать GPT-3.5-turbo через API OpenAI, чтобы сначала сгенерировать набор коротких описательных фраз для каждой аннотации. Затем эти слова и фразы использовались в качестве признаков кластеризации. В конечном итоге каждая статья была представлена ​​в виде строки, образованной путем объединения названия статьи с сгенерированными описательными фразами аннотации.

BERTopic

Для извлечения тем мы используем BERTopic, инструмент, использующий основанный на классах подход TF-IDF. Этот инструмент имеет высокую модульность и состоит из нескольких этапов, а именно:

  • Встраивания. С помощью предварительно обученных вложений, таких как🤗 Transformers или SBERT, текст преобразуется в многомерные векторные представления, фиксирующие семантические отношения.
  • Уменьшение размерности. Методы уменьшения размерности, такие как TruncatedSVD или UMAP, применяются к встраиваниям, чтобы уменьшить их сложность и шум, тем самым повышая эффективность последующего этапа кластеризации.
  • Алгоритм кластеризации. Такие алгоритмы, как HDBSCAN или k-Means, используются для группировки похожих документов на основе близости их вложений с уменьшенным размером. Каждый документ относится к определенному кластеру или помечен как шум, если его соответствующий кластер неясен.
  • Tokenizer: содержимое каждого кластера объединяется в один документ путем объединения текстов всех документов в этом кластере. Эти объединенные документы затем размечаются с помощью метода набора слов, такого как CountVectorizer, который преобразует текст в векторы подсчета слов. Представления нормализованы, чтобы свести к минимуму влияние размеров кластеров.
  • Взвешивание слов. Наконец, токенизированные представления кластеров подвергаются анализу TF-IDF для определения отличительных слов. Слова с наивысшим баллом с точки зрения TF-IDF выбираются в качестве репрезентативных ключевых слов для каждой темы.
from bertopic import BERTopic
from sentence_transformers import SentenceTransformer
from hdbscan import HDBSCAN
from umap import UMAP

hdbscan_model = HDBSCAN(min_cluster_size=120, metric='euclidean', 
                        cluster_selection_method='eom', prediction_data=True, min_samples=5)

umap_model = UMAP(n_neighbors=15, n_components=10, min_dist=0.0, metric='cosine', random_state=42)
 
embedding_model = SentenceTransformer("paraphrase-MiniLM-L6-v2")

topic_model = BERTopic(umap_model = umap_model, hdbscan_model = hdbscan_model, 
                       verbose=True, embedding_model=embedding_model, min_topic_size=125)

topics, probs = topic_model.fit_transform(titles_and_topics); 

Полученные результаты

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

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

Очень приятно видеть, что почти каждая из тем аккуратно сопоставляется с хорошо известными подполями вероятности, включая стохастические дифференциальные уравнения в качестве темы 0, финансовую математику в качестве темы 2, спиновые модели в качестве темы 10 и оптимальный транспорт в качестве темы 26.

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

Исследователь может попытаться использовать дендрограмму, чтобы помочь в изучении предмета. Например, вы можете попытаться изучить смежные темы. После того, как вы изучите свободные поля Гаусса (тема 27), вы можете решить немного изучить гауссовский мультипликативный хаос (тема 32), учитывая, что некоторые инструменты и набор навыков должны быть сохранены. Безусловно, некоторые из навыков, которые вы приобрели для ветвящихся процессов (тема 4), будут весьма актуальны для моделирования распространения эпидемий (тема 23).

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

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

Заключение

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

Репо

https://github.com/DavidMichaelH/BERTopic_probability_trends