Тематическая сегментация документов

Привет! Мы тут подумали: а почему бы нам не рассказать подробнее о технологиях, которые используем в нашей платформе? Во-первых, так аудитория сможет лучше понять принципы работы IRELA, а во-вторых, это может быть интересно и нашим коллегам по Data Science: у нас накопилось много полезных ссылок, статей и книг, а также — рассказов из собственного опыта, историй потрясающих побед и провалов о том, почему внедрение решений Data Science это долго/дорого/и не всегда эффективно.

Всем этим мы будем понемногу делиться здесь, а начнём сегодня с тематической сегментации документов.

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

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

В наших инструментах мы используем метод, основанный на подходе аддитивной регуляризации тематических моделей (additive regularization of topic models, ARTM) и алгоритме TopicTiling. В этой статье мы кратко опишем его суть простыми словами. Подробнее этот метод описан в этой статье. Она написана Константином Воронцовым в соавторстве со студентом его научной группы Николаем Скачковым.

ARTM — это подход к построению тематических моделей. Он отличается от других, более старых и известных алгоритмов тематического моделирования (LDA, pLSA) тем, что он не чисто вероятностный, а предполагает возможность наложения дополнительных ограничений на модель — внешних лингвистических или специфических для конкретной задачи критериев. Эти критерии формулируются в виде регуляризаторов.

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

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

На первом шаге при построении тематической модели помимо стандартных для ARTM регуляризаторов разреживания и сглаживания, мы используем также дополнительный регуляризатор, который учитывает сегментную структуру текста. Мы ожидаем, что в текстовом сегменте содержится небольшое число тем, причем в двух соседних сегментах не должно быть много общих тем. Это предположение можно сформулировать математически в виде регуляризатора (он применяется на каждом E-шаге EM-алгоритма, с помощью которого строится модель). Для построения такой модели мы используем инструмент BigARTM.

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

Мы используем тематическую сегментацию текстов в том числе и в кросс-язычном поиске: все длинные документы делятся на тематически связанные сегменты, которые формируют общую “коллекцию смыслов” (мы называем их смыслами именно потому, что это небольшие отрывки текста, описывающие обычно что-то одно).

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