Введение
Кластеризация представляет собой одну из ключевых и востребованных задач в области машинного обучения. В общем смысле, её можно описать как процесс разделения группы объектов на подгруппы таким образом, чтобы схожие объекты оказались в одной и той же подгруппе. Эта задача актуальна в различных областях, таких как биология, психология, маркетинг, социология, лингвистика и компьютерная безопасность.
В прошлом посте мы писали про задачу кластеризации и важность выбора гиперпараметров. В реальной практике выбор и настройка алгоритмов машинного обучения требуют значительных усилий и времени, поскольку эти задачи часто выполняются вручную специалистами. Это подчеркивает необходимость разработки алгоритмических и программных инструментов для автоматизации поиска и создания решений для задач кластеризации. Стоит также отметить, что большинство современных моделей машинного обучения, применяемых к неструктурированным данным (изображения, текст), использует графический процессор.
На сегодняшний день не существует полноценного инструментария для кластеризации на графическом процессоре, что стало основным стимулом для создания универсальной библиотеки, способной автоматически решать задачи кластеризации данных различных представлений. Из похожих решений есть autocluster, однако оно не поддерживает мультимодальные данные изначально, что требует отдельной предобработки вне библиотеки. Также стоит упомянуть CuML, работающий на GPU, однако, cuML не предоставляет возможности реализации автоматического машинного обучения без дополнительных компонентов.
GaMAC
В этом посте мы представляем GaMAC (GPU accelerated Multimodal Automatic Clustering) - система автоматической оптимизации кластеризации с поддержкой с GPU.

Поговорим про основные возможности
Авто-подбор внутренней меры качества для конкретного набора данных
В библиотеке реализованы следующие внутренние меры: МcСlain Rao (MCR), OS, Banfield Raftery (BR), SYM; а также внешняя F-мера. Приведенные меры качества были реализованы через библиотеку cupy, как с помощью стандартного API, так и написанием собственных функций ядер.
Для реализации авто-подбора был разработан и обучен мета-классификатор, где в качестве мета-набора данных были отобраны 75 табличных наборов данных из открытого источника OpenML.
Aвтоматический выбор и настройка гиперпараметров наилучшего из реализованных алгоритмов кластеризации под GPU
Для решения задачи подбора гиперпараметров Optuna, реализующая концепцию SMBO. Поиск оптимального решения достигается благодаря последовательному изучению пространства гиперпараметров, сбору статистики по значениям оптимизируемой функции и обучению суррогатной модели для сэмплирования очередной конфигурации гиперпараметров.
Работа с мультимодальными данными: таблицы, изображения, текст
Под капотом используется модуль обработки данных. Табличные данные обрабатываются в зависимости от типа признака: категориальный или вещественный признак. На уровне признаков происходит нормализация данных, заполнение или удаление отсутствующих значений.
Для обработки изображений и текстов была выбрана контрастивная модель CLIP, которая по экспериментам показала наилучшую способность векторизации обеих модальностей.
В проекте приводятся все модальности к единому векторному пространству. Преимущество такого подхода заключается в том, что по сравнению с другими подходами при каждом новом наборе данных не придется переобучать модель кодировщика.
Табличные данные предобрабатываются этапами и конвертируются в numpy массив. Изображения и текстовые данные отправляются в процессор и в модель CLIP, на выходе получаем эмбеддинги текста и картинки, которые конкатенируются совместно, а далее конкатенируются с вектором табличных данных.
Реализованные алгоритмы кластеризации и меры качества с поддержкой CUDA
В библиотеке реализованы и адаптированы под GPU следующие алгоритмы: KMeans, Bisecting K_Means, DBSCAN, HDBSCAN, BIRCH и Meanshift.
Для каких направлений задач работает GaMAC
1. Компьютерное зрение и анализ изображений
2. Обработка естественного языка (NLP)
3. Биоинформатика и медицинская диагностика
4. Финансы и финтех
5. Рекомендательные системы
6. Маркетинг и поведенческая аналитика
7. Геопространственный анализ
Саммари
В итоге, на сегодняшний день ни одна из ранее реализованных библиотек не обладает AutoML функционалом для задач обучения без учителя, поддерживающих вычисления на GPU и работу с табличными данные, изображениями, текстовыми данными и мультимодальными.
GaMAC является одним из первых решений для автоматического решения задачи кластеризации данных различных представлений с использованием графического процессора (GPU). На текущий момент GaMAC доступен как исходный код в репозитории, так и отдельным модулем в тестовом PyPI.
