NLPx

Tales of Data Science

Тематическая сегментация: ARTM + TopicTiling

В предыдущем посте о возрождении блога я упомянул, что мы часть прошлого года отдали тематическому моделированию в виде ARTM + TopicTiling в попытках обеспечить качественную сегментацию текстов и выделение ключевых сегментов — что-то вроде необычной версии аннотирования/суммаризации текстов.

Я решил, что есть смысл чутка рассказать, а что это за штука, и с чем ее едят.

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

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

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

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

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

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

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

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

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

Одна из сильных идей использования тематической сегментации — кросс-языковой поиск, которым мы сейчас активно занимаемся — т.е. даже есть внедрения. Здорово!

Мы потратили почти год на исследование эффективности тематической сегментации, написали парочку научных статей:

  1. Shtekh G., Kazakova P., Nikitinsky N., Skachkov N. (2018) Exploring Influence of Topic Segmentation on Information Retrieval Quality. In Internet Science. INSCI 2018. Lecture Notes in Computer Science, vol 11107. Springer.
  2. Shtekh, G., Kazakova, P., Nikitinsky, N., & Skachkov, N. (2018, October). Applying Topic Segmentation to Document-Level Information Retrieval. In Proceedings of the 14th Central and Eastern European Software Engineering Conference Russia (pp. 1-6).

Публикации серьезные, индексируются в Скопус, не хухры-мухры тут. А вторая так вообще получила вполне материальную премию Бертрана Майера (кто это?!) за лучший научный доклад конференции. Вообще, самое большое спасибо тут Полине Казаковой, которая написала эти публикации, а потом еще и рассказала на конференциях.

И да, я уже о них писал в 2018. Но если они классные, почему бы не напомнить, если случай выдался?

Ну и еще мы на исследование этого еще потратили целый научный год гранта РНФ, о чем я писал в предыдущем посте.

И что же мы получили по итогу года исследований? Тематическая сегментация при помощи ARTM — это классная идея, причем вполне понятная и логичная. Мы много проверяли ее на корпусе публикаций ArXiv (это который https://arxiv.org/) — и путем множества экспериментов пришли к выводу, что в тамошних статьях в общем случае выходит сразу несколько основных тематик за раз, при этом каждый из их сегментов тематически слабо отличим от другого. Да, не идеально. Но еще не вечер. Продолжаем наблюдение.

Ссылки

  1. Блог нашего предыдущего проекта IRELA, где опубликована часть этого поста, без моих умных комментариев: https://medium.com/@irela/%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F-%D1%81%D0%B5%D0%B3%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%86%D0%B8%D1%8F-%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2-ced2308156dc
  2. Сайт конторы, в которой мы теперь фигачим крутую науку: https://embedika.ru/
  3. Посвящается Пупусе

Благодарности

Лучше поблагодарить достойных людей несколько раз, чем не поблагодарить ни разу:

  1. Игорь Ляхов — Старший разработчик машинного обучения
  2. Полина Казакова — разработчик машинного обучения

А еще никогда не забывайте

Data Science Jokes

272 просмотров всего, 8 просмотров сегодня

Тематическая сегментация: ARTM + TopicTiling
5 1 vote

Leave a Reply

avatar