Спектральная кластеризация
Материал из MachineLearning.
(Новая: {{well|Статья написана с использованием LLM ChatGPT и проверена участником ....}} {{TOCright}} '''Спектр...) |
|||
| Строка 1: | Строка 1: | ||
| - | + | '''Спектральная кластеризация''' — семейство методов [[Кластеризация|кластеризации]], основанных на представлении данных в виде графа сходства и анализе спектральных свойств соответствующего [[Лапласиан графа|лапласиана]]. В отличие от методов, работающих непосредственно с координатами объектов, спектральная кластеризация использует структуру связей между объектами и позволяет обнаруживать кластеры сложной формы. | |
| - | + | Основная идея метода заключается в построении графа, вершины которого соответствуют объектам, а веса рёбер отражают их сходство. Затем вычисляются несколько собственных векторов лапласиана графа. Полученное низкоразмерное представление объектов кластеризуется стандартными методами, чаще всего [[k-means]]. | |
| - | + | Спектральная кластеризация занимает промежуточное положение между методами машинного обучения и теорией графов. Она связана с задачами разбиения графов, случайными блужданиями, снижением размерности и методами анализа сетей.<ref name="Luxburg2007">U. von Luxburg. A Tutorial on Spectral Clustering. Statistics and Computing, 17(4):395–416, 2007.</ref> | |
| - | + | ||
| - | + | ||
== Постановка задачи == | == Постановка задачи == | ||
| - | Пусть дана выборка объектов | + | Пусть дана выборка объектов: |
| - | :: <tex>X=\{x_1,\ldots,x_n\}, \qquad x_i\in\mathbb R^d.</tex> | + | :: <tex>X=\{x_1,x_2,\ldots,x_n\}, \qquad x_i\in\mathbb R^d.</tex> |
| - | + | Требуется разбить множество объектов на <tex>K</tex> кластеров: | |
:: <tex>X=C_1\cup C_2\cup\dots\cup C_K.</tex> | :: <tex>X=C_1\cup C_2\cup\dots\cup C_K.</tex> | ||
| - | В | + | В классических алгоритмах кластеризации близость объектов определяется расстоянием в исходном пространстве признаков. Спектральная кластеризация использует другой подход: сначала строится граф сходства. |
| + | |||
| + | Граф задаётся тройкой: | ||
:: <tex>G=(V,E,W),</tex> | :: <tex>G=(V,E,W),</tex> | ||
| Строка 23: | Строка 23: | ||
где: | где: | ||
| - | * <tex>V</tex> — множество вершин | + | * <tex>V</tex> — множество вершин; |
* <tex>E</tex> — множество рёбер; | * <tex>E</tex> — множество рёбер; | ||
| - | * <tex>W=(w_{ij})</tex> — матрица весов | + | * <tex>W=(w_{ij})</tex> — матрица весов рёбер. |
| - | + | Каждому объекту <tex>x_i</tex> соответствует вершина <tex>v_i</tex>. Вес | |
| - | + | :: <tex>w_{ij}</tex> | |
| - | + | характеризует степень сходства объектов <tex>x_i</tex> и <tex>x_j</tex>. | |
| - | + | Если два объекта похожи, то | |
| + | |||
| + | :: <tex>w_{ij}</tex> | ||
| + | |||
| + | имеет большое значение. Если объекты различаются, вес близок к нулю. | ||
| + | |||
| + | После построения графа задача кластеризации преобразуется в задачу поиска слабо связанных групп вершин. | ||
| + | |||
| + | == Граф сходства == | ||
| + | |||
| + | Построение графа является одним из наиболее важных этапов спектральной кластеризации. Ошибки на этом этапе могут привести к неправильному разбиению даже при идеальном вычислении собственных векторов. | ||
| + | |||
| + | Основные способы построения графа: | ||
| + | |||
| + | * полносвязный граф; | ||
| + | * граф ближайших соседей; | ||
| + | * ε-граф. | ||
=== Полносвязный граф === | === Полносвязный граф === | ||
| - | В | + | В полносвязном графе каждая пара объектов соединена ребром: |
:: <tex>w_{ij}>0,\qquad i\neq j.</tex> | :: <tex>w_{ij}>0,\qquad i\neq j.</tex> | ||
| - | + | Чаще всего используется гауссово ядро: | |
| - | :: <tex>w_{ij}=\exp\left(-\frac{\|x_i-x_j\|^2}{2\sigma^2}\right).</tex> | + | :: <tex> |
| + | w_{ij}= | ||
| + | \exp | ||
| + | \left( | ||
| + | -\frac{\|x_i-x_j\|^2}{2\sigma^2} | ||
| + | \right). | ||
| + | </tex> | ||
| + | |||
| + | Параметр <tex>\sigma</tex> определяет масштаб локальности. Малое значение приводит к тому, что близкими считаются только очень похожие объекты, большое — делает все объекты похожими. | ||
| + | |||
| + | Преимущества полносвязного графа: | ||
| - | + | * используется информация обо всех парах объектов; | |
| + | * хорошо подходит для небольших выборок. | ||
| - | + | Недостаток: | |
| - | :: <tex>O(n^2) | + | :: <tex>O(n^2)</tex> |
| - | + | по памяти и времени для построения матрицы сходства. | |
=== Граф ближайших соседей === | === Граф ближайших соседей === | ||
| - | В | + | В графе ближайших соседей объект соединяется только с наиболее близкими объектами. |
| - | + | Для <tex>k</tex>-NN графа: | |
| - | После построения граф обычно симметризуется: | + | :: <tex> |
| + | (i,j)\in E | ||
| + | \Longleftrightarrow | ||
| + | x_j\in kNN(x_i). | ||
| + | </tex> | ||
| + | |||
| + | После построения граф обычно симметризуется. | ||
| + | |||
| + | Используются два варианта: | ||
| - | * объединённый граф — ребро существует, если | + | * объединённый граф — ребро существует, если одна из вершин выбирает другую; |
| - | * взаимный граф — ребро существует | + | * взаимный граф — ребро существует только при взаимном выборе. |
| - | Граф ближайших соседей уменьшает | + | Граф ближайших соседей уменьшает количество рёбер и лучше сохраняет локальную структуру данных. |
=== ε-граф === | === ε-граф === | ||
| - | В ε-графе связь | + | В ε-графе связь определяется расстоянием: |
| - | :: <tex>(i,j)\in E \Longleftrightarrow \|x_i-x_j\|\leq\varepsilon.</tex> | + | :: <tex> |
| + | (i,j)\in E | ||
| + | \Longleftrightarrow | ||
| + | \|x_i-x_j\|\leq\varepsilon. | ||
| + | </tex> | ||
| + | |||
| + | Преимущество такого подхода — простая геометрическая интерпретация. | ||
| - | Недостаток | + | Недостаток — необходимость выбора параметра <tex>\varepsilon</tex>. Если он слишком мал, граф может стать несвязным. Если слишком велик, различные кластеры могут соединиться. |
| - | == Матрица смежности | + | == Матрица смежности == |
Матрица весов | Матрица весов | ||
| - | :: <tex>W=(w_{ij})</tex> | + | :: <tex> |
| + | W=(w_{ij}) | ||
| + | </tex> | ||
называется матрицей смежности или матрицей сходства. | называется матрицей смежности или матрицей сходства. | ||
| Строка 84: | Строка 127: | ||
Для невзвешенного графа: | Для невзвешенного графа: | ||
| - | :: <tex>w_{ij}= | + | :: <tex> |
| + | w_{ij}= | ||
\begin{cases} | \begin{cases} | ||
1,&(i,j)\in E,\\ | 1,&(i,j)\in E,\\ | ||
0,&(i,j)\notin E. | 0,&(i,j)\notin E. | ||
| - | \end{cases}</tex> | + | \end{cases} |
| + | </tex> | ||
| - | + | Для взвешенного графа элементы матрицы принимают значения, характеризующие силу связи. | |
| - | : | + | Обычно предполагается, что граф неориентированный: |
| - | + | :: <tex>w_{ij}=w_{ji}.</tex> | |
| - | :: <tex>D= | + | Это условие позволяет использовать свойства симметричных матриц и стандартную теорию собственных значений. |
| + | |||
| + | == Матрица степеней == | ||
| + | |||
| + | Степенью вершины называется сумма весов всех исходящих рёбер: | ||
| + | |||
| + | :: <tex> | ||
| + | d_i=\sum_{j=1}^{n}w_{ij}. | ||
| + | </tex> | ||
| + | |||
| + | На основе степеней строится диагональная матрица: | ||
| + | |||
| + | :: <tex> | ||
| + | D= | ||
\begin{pmatrix} | \begin{pmatrix} | ||
d_1&0&\dots&0\\ | d_1&0&\dots&0\\ | ||
| Строка 105: | Строка 163: | ||
</tex> | </tex> | ||
| - | + | Матрица степеней играет важную роль в нормализованных вариантах спектральной кластеризации. | |
| + | |||
| + | Если вершина имеет большую степень, это означает, что она сильно связана с большим числом других объектов. | ||
== Лапласианы графа == | == Лапласианы графа == | ||
| + | |||
| + | Лапласиан графа является центральным объектом спектральной кластеризации. | ||
=== Ненормализованный лапласиан === | === Ненормализованный лапласиан === | ||
| - | Классический лапласиан определяется как | + | Классический лапласиан определяется как: |
| - | :: <tex>L=D-W.</tex> | + | :: <tex> |
| + | L=D-W. | ||
| + | </tex> | ||
| - | + | Для любого вектора <tex>f</tex> выполняется: | |
| - | :: <tex> | + | :: <tex> |
| + | f^TLf= | ||
| + | \frac12 | ||
| + | \sum_{i,j} | ||
| + | w_{ij}(f_i-f_j)^2. | ||
| + | </tex> | ||
| - | + | Это выражение показывает, что лапласиан минимизирует различия между сильно связанными вершинами. | |
| - | + | Если два объекта имеют большой вес связи, то соответствующие значения вектора <tex>f</tex> должны быть близкими. | |
| - | : | + | Основные свойства: |
| - | + | * <tex>L</tex> симметрична; | |
| + | * собственные значения неотрицательны; | ||
| + | * минимальное собственное значение равно нулю. | ||
| - | = | + | Количество нулевых собственных значений равно числу компонент связности графа.<ref name="Chung1997">F. Chung. Spectral Graph Theory. American Mathematical Society, 1997.</ref> |
| - | + | === Симметричный нормализованный лапласиан === | |
| - | :: <tex>L_{sym}=D^{-1/2}LD^{-1/2} | + | Для уменьшения влияния различий в степенях используется: |
| - | =I-D^{-1/2}WD^{-1/2}.</tex> | + | |
| + | :: <tex> | ||
| + | L_{sym} | ||
| + | = | ||
| + | D^{-1/2}LD^{-1/2}. | ||
| + | </tex> | ||
| + | |||
| + | Эквивалентная форма: | ||
| + | |||
| + | :: <tex> | ||
| + | L_{sym} | ||
| + | = | ||
| + | I-D^{-1/2}WD^{-1/2}. | ||
| + | </tex> | ||
| + | |||
| + | Нормализация делает вклад вершин более сопоставимым и особенно полезна для графов с различными плотностями. | ||
| + | |||
| + | === Лапласиан случайного блуждания === | ||
Другой вариант: | Другой вариант: | ||
| - | :: <tex>L_{rw}=D^{-1}L.</tex> | + | :: <tex> |
| + | L_{rw}=D^{-1}L. | ||
| + | </tex> | ||
| - | Он связан | + | Он связан с вероятностями переходов случайного блуждания: |
| - | + | :: <tex> | |
| + | P=D^{-1}W. | ||
| + | </tex> | ||
| - | + | Тогда: | |
| - | + | :: <tex> | |
| + | L_{rw}=I-P. | ||
| + | </tex> | ||
| - | + | Этот оператор показывает, насколько быстро случайное блуждание распространяется по графу. | |
| - | + | == Собственные значения и собственные векторы == | |
| - | + | Спектральная кластеризация использует решение задачи: | |
| - | :: <tex> | + | :: <tex> |
| + | Lu=\lambda u. | ||
| + | </tex> | ||
| - | + | где: | |
| - | + | * <tex>\lambda</tex> — собственное значение; | |
| + | * <tex>u</tex> — собственный вектор. | ||
| - | + | Собственные значения упорядочиваются: | |
| - | :: <tex>\lambda_1 | + | :: <tex> |
| + | 0=\lambda_1\leq\lambda_2\leq\dots\leq\lambda_n. | ||
| + | </tex> | ||
| - | + | Малые собственные значения соответствуют направлениям, в которых структура графа изменяется медленно. | |
| - | + | Если граф имеет несколько почти независимых компонент, первые собственные векторы приближают индикаторы этих компонент. | |
| - | + | В идеальном случае граф из <tex>K</tex> компонент имеет: | |
| - | + | :: <tex> | |
| + | \lambda_1=\lambda_2=\dots=\lambda_K=0. | ||
| + | </tex> | ||
| + | |||
| + | Поэтому первые <tex>K</tex> собственных векторов содержат информацию о структуре кластеров. | ||
== Спектральное вложение == | == Спектральное вложение == | ||
| - | Пусть найдены собственные векторы | + | Пусть найдены собственные векторы: |
| - | :: <tex>u_1,\ldots,u_K.</tex> | + | :: <tex> |
| + | u_1,u_2,\ldots,u_K. | ||
| + | </tex> | ||
Из них формируется матрица: | Из них формируется матрица: | ||
| - | :: <tex>U=[u_1,\ldots,u_K].</tex> | + | :: <tex> |
| + | U=[u_1,u_2,\ldots,u_K]. | ||
| + | </tex> | ||
| - | Каждый объект заменяется строкой | + | Каждый объект заменяется строкой: |
| - | :: <tex>y_i=U_{i,:}.</tex> | + | :: <tex> |
| + | y_i=U_{i,:}. | ||
| + | </tex> | ||
| - | Таким образом | + | Таким образом исходные данные переводятся в новое пространство размерности <tex>K</tex>. |
| - | После этого | + | После этого выполняется обычная кластеризация: |
| - | :: <tex> | + | :: <tex> |
| + | y_1,y_2,\ldots,y_n | ||
| + | \rightarrow | ||
| + | C_1,C_2,\ldots,C_K. | ||
| + | </tex> | ||
| - | Чаще всего | + | Чаще всего применяется алгоритм [[k-means]]. |
| - | Для нормализованной версии Нга — Джордана — Вайса | + | Для нормализованной версии Нга — Джордана — Вайса выполняется дополнительная нормировка строк: |
| - | :: <tex>y_i= | + | :: <tex> |
| - | \frac{U_{i,:}}{\|U_{i,:}\|_2}. | + | y_i= |
| + | \frac{U_{i,:}} | ||
| + | {\|U_{i,:}\|_2}. | ||
</tex> | </tex> | ||
<ref name="Ng2002">A. Ng, M. Jordan, Y. Weiss. On Spectral Clustering: Analysis and an Algorithm. Advances in Neural Information Processing Systems, 2002.</ref> | <ref name="Ng2002">A. Ng, M. Jordan, Y. Weiss. On Spectral Clustering: Analysis and an Algorithm. Advances in Neural Information Processing Systems, 2002.</ref> | ||
| - | == Связь с | + | == Связь с задачами разбиения графов == |
| + | |||
| + | Спектральная кластеризация тесно связана с задачами минимального разреза графа. Идея состоит в поиске такого разбиения: | ||
| + | |||
| + | :: <tex> | ||
| + | V=A_1\cup A_2\cup\dots\cup A_K, | ||
| + | </tex> | ||
| + | |||
| + | при котором связи между различными группами минимальны, а внутри групп — максимальны. | ||
=== Разрез графа === | === Разрез графа === | ||
| - | Для двух множеств вершин <tex>A</tex> и <tex>B</tex> определяется | + | Для двух непересекающихся множеств вершин <tex>A</tex> и <tex>B</tex> определяется: |
| - | :: <tex>cut(A,B)= | + | :: <tex> |
| - | \sum_{i\in A}\sum_{j\in B}w_{ij}. | + | cut(A,B)= |
| + | \sum_{i\in A} | ||
| + | \sum_{j\in B} | ||
| + | w_{ij}. | ||
</tex> | </tex> | ||
| - | Минимизация только этого | + | Минимизация только этого критерия приводит к вырожденному решению: можно отделить одну вершину или небольшую группу вершин. |
| + | |||
| + | Поэтому используются нормированные критерии, учитывающие размер кластеров. | ||
=== RatioCut === | === RatioCut === | ||
| - | Критерий RatioCut | + | Критерий RatioCut определяется как: |
:: <tex> | :: <tex> | ||
RatioCut(A_1,\ldots,A_K)= | RatioCut(A_1,\ldots,A_K)= | ||
\sum_{i=1}^{K} | \sum_{i=1}^{K} | ||
| - | \frac{cut(A_i,\ | + | \frac{cut(A_i,\overline{A_i})} |
{|A_i|}. | {|A_i|}. | ||
</tex> | </tex> | ||
| - | Он | + | Он нормирует значение разреза количеством вершин в кластере. |
| - | Спектральная релаксация | + | Спектральная релаксация этой задачи приводит к поиску собственных векторов ненормализованного лапласиана: |
| + | |||
| + | :: <tex> | ||
| + | L=D-W. | ||
| + | </tex> | ||
=== Normalized Cut === | === Normalized Cut === | ||
| - | + | Вместо количества вершин используется объём: | |
:: <tex> | :: <tex> | ||
| Строка 235: | Строка 367: | ||
</tex> | </tex> | ||
| - | Критерий: | + | Критерий Normalized Cut: |
:: <tex> | :: <tex> | ||
Ncut(A_1,\ldots,A_K)= | Ncut(A_1,\ldots,A_K)= | ||
\sum_{i=1}^{K} | \sum_{i=1}^{K} | ||
| - | \frac{cut(A_i,\ | + | \frac{cut(A_i,\overline{A_i})} |
{vol(A_i)}. | {vol(A_i)}. | ||
</tex> | </tex> | ||
| - | Его спектральная релаксация приводит к | + | Этот критерий учитывает количество связей вершины с остальным графом. |
| + | |||
| + | Его спектральная релаксация приводит к нормализованному лапласиану: | ||
| + | |||
| + | :: <tex> | ||
| + | L_{sym}=D^{-1/2}LD^{-1/2}. | ||
| + | </tex> | ||
| + | |||
| + | Normalized Cut был предложен для задачи сегментации изображений и стал одной из наиболее известных интерпретаций спектральной кластеризации.<ref name="ShiMalik2000">J. Shi, J. Malik. Normalized Cuts and Image Segmentation. IEEE Transactions on Pattern Analysis and Machine Intelligence, 22(8):888–905, 2000.</ref> | ||
| - | |||
== Алгоритм спектральной кластеризации == | == Алгоритм спектральной кластеризации == | ||
| - | === | + | === Ненормализованный вариант === |
Вход: | Вход: | ||
| - | * | + | * объекты <tex>X</tex>; |
* число кластеров <tex>K</tex>; | * число кластеров <tex>K</tex>; | ||
| - | * функция сходства | + | * функция сходства. |
| - | + | ||
| - | + | Шаги алгоритма: | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
# Построить матрицу сходства <tex>W</tex>. | # Построить матрицу сходства <tex>W</tex>. | ||
# Вычислить матрицу степеней <tex>D</tex>. | # Вычислить матрицу степеней <tex>D</tex>. | ||
| - | # Построить | + | # Построить лапласиан: |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | = | + | :: <tex> |
| + | L=D-W. | ||
| + | </tex> | ||
| - | + | # Найти <tex>K</tex> собственных векторов, соответствующих минимальным собственным значениям. | |
| + | # Сформировать матрицу вложения: | ||
| - | + | :: <tex> | |
| + | U=[u_1,\ldots,u_K]. | ||
| + | </tex> | ||
| - | + | # Выполнить [[k-means]] над строками матрицы <tex>U</tex>. | |
| - | + | # Назначить исходным объектам найденные метки. | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | |||
| - | === | + | === Нормализованный вариант === |
| - | + | Для нормализованной версии: | |
| - | + | # Строится граф сходства. | |
| + | # Вычисляется: | ||
:: <tex> | :: <tex> | ||
| - | + | L_{sym}=I-D^{-1/2}WD^{-1/2}. | |
</tex> | </tex> | ||
| - | + | # Находятся первые <tex>K</tex> собственных векторов. | |
| + | # Формируется матрица: | ||
| - | + | :: <tex> | |
| + | U=[u_1,\ldots,u_K]. | ||
| + | </tex> | ||
| - | + | # Каждая строка нормируется: | |
| - | + | :: <tex> | |
| + | y_i= | ||
| + | \frac{U_i}{\|U_i\|}. | ||
| + | </tex> | ||
| - | + | # Выполняется [[k-means]]. | |
| - | |||
| - | |||
| - | |||
| - | + | === Псевдокод === | |
| - | + | Вход: X, K | |
| - | + | ||
| - | + | ||
| - | + | 1. Построить граф сходства W. | |
| + | 2. Вычислить D. | ||
| + | 3. Построить лапласиан L. | ||
| + | 4. Найти K минимальных собственных векторов. | ||
| + | 5. Получить спектральное представление объектов. | ||
| + | 6. При необходимости нормировать строки. | ||
| + | 7. Выполнить k-means. | ||
| + | 8. Вернуть метки кластеров. | ||
| + | |||
| + | |||
| + | == Выбор параметров == | ||
| + | |||
| + | === Число кластеров === | ||
| - | + | Число кластеров <tex>K</tex> является одним из главных параметров алгоритма. | |
| - | + | Часто используется анализ спектрального зазора: | |
:: <tex> | :: <tex> | ||
| - | + | \Delta_k=\lambda_{k+1}-\lambda_k. | |
| - | \ | + | |
| - | + | ||
| - | + | ||
| - | \ | + | |
</tex> | </tex> | ||
| - | + | Большой разрыв может указывать на естественное число кластеров. | |
| - | + | Однако этот критерий является эвристикой. Спектральный зазор зависит от построенного графа и не всегда соответствует реальной структуре данных. | |
| - | + | === Число соседей === | |
| - | + | ||
| - | + | Для графа ближайших соседей параметр <tex>k</tex> определяет размер локального окружения. | |
| - | + | Малое значение: | |
| - | + | ||
| - | + | * сохраняет локальную структуру; | |
| + | * может привести к несвязности графа. | ||
| - | : | + | Большое значение: |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | * увеличивает связность; | |
| + | * может создавать ложные связи между кластерами. | ||
| - | + | На практике рекомендуется проверять устойчивость результата при разных значениях <tex>k</tex>. | |
| - | === | + | === Масштаб ядра === |
| - | + | В гауссовом ядре: | |
:: <tex> | :: <tex> | ||
| - | + | w_{ij}= | |
| + | \exp | ||
| + | \left( | ||
| + | -\frac{\|x_i-x_j\|^2}{2\sigma^2} | ||
| + | \right) | ||
</tex> | </tex> | ||
| - | + | параметр <tex>\sigma</tex> задаёт масштаб близости. | |
| - | + | При малом <tex>\sigma</tex> граф становится слишком разреженным. | |
| - | + | При большом <tex>\sigma</tex> различия между объектами уменьшаются. | |
| - | + | ||
| - | + | ||
| - | + | Для неоднородных данных используют локальные масштабы: | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
:: <tex> | :: <tex> | ||
| - | + | w_{ij} | |
| + | = | ||
| + | \exp | ||
| + | \left( | ||
| + | -\frac{\|x_i-x_j\|^2} | ||
| + | {\sigma_i\sigma_j} | ||
| + | \right). | ||
</tex> | </tex> | ||
| - | + | === Число собственных векторов === | |
| + | |||
| + | В стандартном алгоритме число собственных векторов совпадает с числом кластеров: | ||
:: <tex> | :: <tex> | ||
| - | + | r=K. | |
</tex> | </tex> | ||
| - | + | Использование большего количества компонент возможно, но требует дополнительного выбора и уже не является прямой релаксацией исходной задачи разбиения графа. | |
| - | |||
| - | + | == Масштабируемые методы == | |
| - | + | ||
| - | + | ||
| - | + | Классическая спектральная кластеризация плохо масштабируется на больших данных из-за необходимости хранить матрицу сходства. | |
| - | + | Для решения этой проблемы используются приближённые методы. | |
| - | + | === Метод Nyström === | |
| - | + | Метод Nyström заменяет полную матрицу сходства низкоранговым приближением. | |
| - | + | Пусть выбрано <tex>m</tex> опорных объектов: | |
| - | + | ||
| - | </tex> | + | |
| - | + | ||
| - | + | ||
:: <tex> | :: <tex> | ||
| - | + | m\ll n. | |
</tex> | </tex> | ||
| - | + | Матрица сходства приближается: | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
:: <tex> | :: <tex> | ||
| Строка 445: | Строка 555: | ||
</tex> | </tex> | ||
| - | + | Это позволяет вычислять спектральное представление без полного разложения матрицы размера <tex>n\times n</tex>. | |
Преимущества: | Преимущества: | ||
| - | * снижение памяти; | + | * снижение требований к памяти; |
* ускорение вычислений; | * ускорение вычислений; | ||
| - | * возможность работы с большими | + | * возможность работы с большими наборами данных. |
| + | |||
| + | Недостаток: | ||
| + | |||
| + | * качество зависит от выбора опорных точек.<ref name="Fowlkes2004">C. Fowlkes, S. Belongie, F. Chung, J. Malik. Spectral Grouping Using the Nyström Method. IEEE Transactions on Pattern Analysis and Machine Intelligence, 26(2):214–225, 2004.</ref> | ||
| - | |||
=== Разреженная спектральная кластеризация === | === Разреженная спектральная кластеризация === | ||
| - | Вместо полного графа используется | + | Вместо полного графа используется граф ближайших соседей. |
| - | Количество рёбер: | + | Количество рёбер становится: |
:: <tex> | :: <tex> | ||
| Строка 465: | Строка 578: | ||
</tex> | </tex> | ||
| - | Это позволяет применять итерационные методы поиска собственных векторов | + | Это позволяет применять итерационные методы поиска собственных векторов. |
Преимущества: | Преимущества: | ||
| Строка 472: | Строка 585: | ||
* возможность работы с большими графами; | * возможность работы с большими графами; | ||
* сохранение локальной структуры. | * сохранение локальной структуры. | ||
| + | |||
| + | Ограничение — результат зависит от качества построенного разреженного графа. | ||
| + | |||
=== Landmark-based методы === | === Landmark-based методы === | ||
| - | + | Вместо всех объектов выбирается небольшое число представителей: | |
:: <tex> | :: <tex> | ||
| Строка 481: | Строка 597: | ||
</tex> | </tex> | ||
| - | + | Строится только сходство объектов с этими представителями. | |
| - | + | Такие методы позволяют применять спектральную кластеризацию к очень большим наборам данных, но требуют правильного выбора landmarks. | |
| - | == Расширения | + | == Расширения спектральной кластеризации == |
=== Многопредставленческая спектральная кластеризация === | === Многопредставленческая спектральная кластеризация === | ||
| - | + | Во многих задачах объекты могут быть описаны несколькими наборами признаков: | |
:: <tex> | :: <tex> | ||
| - | X^{(1)},X^{(2)}, | + | X^{(1)},X^{(2)},\ldots,X^{(m)}. |
</tex> | </tex> | ||
| - | + | Например, объект может иметь одновременно: | |
| - | + | * текстовое представление; | |
| + | * визуальные признаки; | ||
| + | * биологические характеристики; | ||
| + | * сетевую информацию. | ||
| + | |||
| + | Для каждого представления строится собственный граф сходства: | ||
:: <tex> | :: <tex> | ||
| - | W | + | W^{(1)},W^{(2)},\ldots,W^{(m)}. |
</tex> | </tex> | ||
| - | + | Простейший вариант объединения: | |
| - | + | :: <tex> | |
| - | + | W=\sum_{i=1}^{m}\alpha_iW^{(i)}, | |
| - | + | </tex> | |
| - | + | где: | |
| - | = | + | :: <tex> |
| + | \alpha_i\geq0,\qquad \sum_i\alpha_i=1. | ||
| + | </tex> | ||
| - | + | Более сложные методы совместно оптимизируют несколько представлений и учитывают их согласованность. | |
| - | + | Преимущество многопредставленческих методов заключается в использовании дополнительной информации. | |
| - | + | Ограничение состоит в том, что различные представления могут содержать противоречивую структуру, поэтому простое объединение графов не всегда улучшает качество. | |
| - | + | ||
| - | + | ||
| - | + | ||
| + | === Робастная спектральная кластеризация === | ||
| + | |||
| + | Классическая спектральная кластеризация чувствительна к ошибкам в матрице сходства. | ||
| + | |||
| + | Пусть наблюдаемая матрица: | ||
:: <tex> | :: <tex> | ||
| Строка 527: | Строка 653: | ||
</tex> | </tex> | ||
| - | где <tex>W_0</tex> — истинная структура | + | где: |
| + | |||
| + | * <tex>W_0</tex> — истинная структура графа; | ||
| + | * <tex>E</tex> — шум или ошибки. | ||
| + | |||
| + | Робастные методы пытаются восстановить устойчивое представление графа перед выполнением кластеризации. | ||
| + | |||
| + | Используются: | ||
| + | |||
| + | * удаление выбросов; | ||
| + | * регуляризация степеней; | ||
| + | * устойчивые функции сходства; | ||
| + | * модели разреженных ошибок; | ||
| + | * совместное обучение графа и кластеров. | ||
| + | |||
| + | Такие методы особенно важны для реальных сетей, где часть рёбер может быть случайной или ошибочной. | ||
| - | |||
=== Глубокая спектральная кластеризация === | === Глубокая спектральная кластеризация === | ||
| Строка 541: | Строка 681: | ||
</tex> | </tex> | ||
| - | + | Цель обучения — получить представление, близкое к спектральному вложению. | |
Преимущества: | Преимущества: | ||
| - | * | + | * возможность обработки больших наборов данных; |
| - | * | + | * работа с новыми объектами; |
* использование сложных признаковых представлений. | * использование сложных признаковых представлений. | ||
Недостатки: | Недостатки: | ||
| - | * | + | * необходимость обучения; |
| - | * зависимость от архитектуры; | + | * зависимость от архитектуры сети; |
* отсутствие точного совпадения с классическим спектральным решением. | * отсутствие точного совпадения с классическим спектральным решением. | ||
| - | + | Примером является SpectralNet, где нейронная сеть обучается приближать спектральное вложение.<ref name="SpectralNet2018">U. Shaham, K. Stanton, H. Li, B. Nadler, R. Basri, Y. Kluger. SpectralNet: Spectral Clustering Using Deep Neural Networks. International Conference on Learning Representations, 2018.</ref> | |
| + | |||
== Применения == | == Применения == | ||
| Строка 561: | Строка 702: | ||
=== Сегментация изображений === | === Сегментация изображений === | ||
| - | Одно из | + | Одно из наиболее известных применений спектральной кластеризации — сегментация изображений. |
| - | Вершинами графа являются пиксели или суперпиксели | + | Вершинами графа являются пиксели или суперпиксели, а веса отражают: |
| - | + | ||
| - | + | ||
* сходство цвета; | * сходство цвета; | ||
| - | * близость | + | * близость положения; |
| - | * | + | * сходство текстуры. |
Например: | Например: | ||
:: <tex> | :: <tex> | ||
| - | w_{ij} | + | w_{ij}= |
| - | = | + | |
\exp | \exp | ||
\left( | \left( | ||
-\frac{\|I_i-I_j\|^2}{2\sigma_I^2} | -\frac{\|I_i-I_j\|^2}{2\sigma_I^2} | ||
-\frac{\|p_i-p_j\|^2}{2\sigma_p^2} | -\frac{\|p_i-p_j\|^2}{2\sigma_p^2} | ||
| - | \right) | + | \right), |
</tex> | </tex> | ||
| - | + | где: | |
| - | + | * <tex>I_i</tex> — цветовые характеристики; | |
| + | * <tex>p_i</tex> — координаты пикселя. | ||
| - | + | Normalized Cut стал одним из классических методов сегментации изображений.<ref name="ShiMalik2000"/> | |
| - | |||
| - | * | + | === Анализ социальных и информационных сетей === |
| - | * | + | |
| - | * | + | В сетях: |
| + | |||
| + | * вершины соответствуют пользователям или объектам; | ||
| + | * рёбра отражают взаимодействия. | ||
| + | |||
| + | Спектральная кластеризация применяется для поиска: | ||
| + | |||
| + | * сообществ; | ||
| + | * групп пользователей; | ||
| + | * скрытой структуры сети. | ||
| + | |||
| + | Метод особенно эффективен, если связи внутри групп сильнее связей между ними. | ||
| - | |||
=== Текстовые данные === | === Текстовые данные === | ||
| Строка 604: | Строка 752: | ||
* веса — сходство текстовых представлений. | * веса — сходство текстовых представлений. | ||
| - | + | В качестве признаков используются: | |
* TF-IDF; | * TF-IDF; | ||
* эмбеддинги слов; | * эмбеддинги слов; | ||
| - | * | + | * представления трансформеров. |
| + | |||
| + | Спектральная кластеризация позволяет выделять тематические группы документов без заранее заданной модели распределения текстов. | ||
| - | |||
=== Биоинформатика === | === Биоинформатика === | ||
| - | + | В биоинформатике метод применяется для: | |
| - | * | + | * анализа экспрессии генов; |
| - | * | + | * поиска групп клеток; |
| - | * | + | * анализа биологических сетей; |
| + | * исследования взаимодействий белков. | ||
| + | |||
| + | Особенно полезна возможность учитывать графовую структуру взаимодействий между объектами. | ||
| - | |||
=== Рекомендательные системы === | === Рекомендательные системы === | ||
| - | + | Пользователей и объекты можно представить как двудольный граф: | |
| + | |||
| + | * одна группа вершин — пользователи; | ||
| + | * другая — товары или услуги; | ||
| + | * рёбра — взаимодействия. | ||
Спектральные методы применяются для: | Спектральные методы применяются для: | ||
| - | * | + | * сегментации пользователей; |
| - | * поиска похожих | + | * поиска похожих объектов; |
| - | * анализа структуры взаимодействий. | + | * анализа структуры предпочтений. |
| + | |||
| + | |||
| + | === Графовые данные === | ||
| + | |||
| + | Если данные уже представлены графом, спектральная кластеризация является естественным методом анализа. | ||
| + | |||
| + | Примеры: | ||
| + | |||
| + | * графы цитирования; | ||
| + | * транспортные сети; | ||
| + | * молекулярные графы; | ||
| + | * графы знаний; | ||
| + | * сети взаимодействий. | ||
| + | |||
== Сравнение с другими методами == | == Сравнение с другими методами == | ||
| - | + | === k-means === | |
| - | + | ||
| - | + | [[k-means]] минимизирует расстояние объектов до центров кластеров: | |
| - | + | ||
| - | + | :: <tex> | |
| - | + | J= | |
| - | + | \sum_{i=1}^{K} | |
| - | + | \sum_{x\in C_i} | |
| - | + | \|x-\mu_i\|^2. | |
| - | + | </tex> | |
| - | |- | + | |
| - | | Иерархическая кластеризация | + | Преимущества: |
| - | + | ||
| - | + | * высокая скорость; | |
| - | + | * простота; | |
| - | + | * хорошая масштабируемость. | |
| - | + | ||
| - | + | Недостатки: | |
| - | + | ||
| - | + | * требуется число кластеров; | |
| - | + | * плохо работает для кластеров сложной формы; | |
| - | + | * зависит от инициализации. | |
| - | + | ||
| - | | | + | Спектральная кластеризация предпочтительнее, если структура данных определяется связями, а не расстояниями до центроидов. |
| - | + | ||
| - | + | ||
| - | + | === Иерархическая кластеризация === | |
| - | + | ||
| - | + | Иерархические методы строят дерево кластеров. | |
| - | + | ||
| - | + | Преимущества: | |
| - | + | ||
| - | + | * позволяют исследовать несколько уровней структуры; | |
| - | + | * не требуют заранее задавать число кластеров. | |
| - | + | ||
| - | + | Недостатки: | |
| + | |||
| + | * высокая вычислительная сложность; | ||
| + | * решения ранних этапов трудно исправить. | ||
| + | |||
| + | Спектральная кластеризация использует глобальную информацию о графе. | ||
| + | |||
| + | |||
| + | === DBSCAN === | ||
| + | |||
| + | [[DBSCAN]] основан на плотности данных. | ||
| + | |||
| + | Преимущества: | ||
| + | |||
| + | * обнаружение кластеров произвольной формы; | ||
| + | * выделение шума. | ||
| + | |||
| + | Недостатки: | ||
| + | |||
| + | * чувствительность к параметрам плотности; | ||
| + | * проблемы при различной плотности кластеров. | ||
| + | |||
| + | Спектральный метод использует структуру графа, а не только локальную плотность. | ||
| + | |||
| + | |||
| + | === Gaussian Mixture Models === | ||
| + | |||
| + | Gaussian Mixture Models предполагают: | ||
| + | |||
| + | :: <tex> | ||
| + | p(x)= | ||
| + | \sum_{k=1}^{K} | ||
| + | \pi_kN(x|\mu_k,\Sigma_k). | ||
| + | </tex> | ||
| + | |||
| + | Преимущества: | ||
| + | |||
| + | * вероятностная интерпретация; | ||
| + | * оценка степени принадлежности. | ||
| + | |||
| + | Недостатки: | ||
| + | |||
| + | * необходимость предполагать форму распределений; | ||
| + | * локальные оптимумы EM-алгоритма. | ||
| + | |||
| + | Спектральная кластеризация не требует конкретной вероятностной модели. | ||
| + | |||
| + | |||
| + | === Mean Shift === | ||
| + | |||
| + | Mean Shift ищет максимумы оценки плотности. | ||
| + | |||
| + | Преимущества: | ||
| + | |||
| + | * число кластеров определяется автоматически; | ||
| + | * подходит для сложных форм. | ||
| + | |||
| + | Недостатки: | ||
| + | |||
| + | * высокая вычислительная стоимость; | ||
| + | * зависимость от ширины окна. | ||
| + | |||
| + | |||
| + | === Affinity Propagation === | ||
| + | |||
| + | Affinity Propagation выбирает представителей кластеров через передачу сообщений между объектами. | ||
| + | |||
| + | Преимущества: | ||
| + | |||
| + | * не требует заранее задавать число кластеров; | ||
| + | * центры являются реальными объектами. | ||
| + | |||
| + | Недостатки: | ||
| + | |||
| + | * квадратичная память; | ||
| + | * ограниченная масштабируемость. | ||
Версия 11:40, 19 июля 2026
Спектральная кластеризация — семейство методов кластеризации, основанных на представлении данных в виде графа сходства и анализе спектральных свойств соответствующего лапласиана. В отличие от методов, работающих непосредственно с координатами объектов, спектральная кластеризация использует структуру связей между объектами и позволяет обнаруживать кластеры сложной формы.
Основная идея метода заключается в построении графа, вершины которого соответствуют объектам, а веса рёбер отражают их сходство. Затем вычисляются несколько собственных векторов лапласиана графа. Полученное низкоразмерное представление объектов кластеризуется стандартными методами, чаще всего k-means.
Спектральная кластеризация занимает промежуточное положение между методами машинного обучения и теорией графов. Она связана с задачами разбиения графов, случайными блужданиями, снижением размерности и методами анализа сетей.[1]
Постановка задачи
Пусть дана выборка объектов:
Требуется разбить множество объектов на кластеров:
В классических алгоритмах кластеризации близость объектов определяется расстоянием в исходном пространстве признаков. Спектральная кластеризация использует другой подход: сначала строится граф сходства.
Граф задаётся тройкой:
где:
-
— множество вершин;
-
— множество рёбер;
-
— матрица весов рёбер.
Каждому объекту соответствует вершина
. Вес
характеризует степень сходства объектов и
.
Если два объекта похожи, то
имеет большое значение. Если объекты различаются, вес близок к нулю.
После построения графа задача кластеризации преобразуется в задачу поиска слабо связанных групп вершин.
Граф сходства
Построение графа является одним из наиболее важных этапов спектральной кластеризации. Ошибки на этом этапе могут привести к неправильному разбиению даже при идеальном вычислении собственных векторов.
Основные способы построения графа:
- полносвязный граф;
- граф ближайших соседей;
- ε-граф.
Полносвязный граф
В полносвязном графе каждая пара объектов соединена ребром:
Чаще всего используется гауссово ядро:
-
Параметр
определяет масштаб локальности. Малое значение приводит к тому, что близкими считаются только очень похожие объекты, большое — делает все объекты похожими.
Преимущества полносвязного графа:
- используется информация обо всех парах объектов;
- хорошо подходит для небольших выборок.
Недостаток:
по памяти и времени для построения матрицы сходства.
Граф ближайших соседей
В графе ближайших соседей объект соединяется только с наиболее близкими объектами.
Для
-NN графа:
-
После построения граф обычно симметризуется.
Используются два варианта:
- объединённый граф — ребро существует, если одна из вершин выбирает другую;
- взаимный граф — ребро существует только при взаимном выборе.
Граф ближайших соседей уменьшает количество рёбер и лучше сохраняет локальную структуру данных.
ε-граф
В ε-графе связь определяется расстоянием:
-
Преимущество такого подхода — простая геометрическая интерпретация.
Недостаток — необходимость выбора параметра
. Если он слишком мал, граф может стать несвязным. Если слишком велик, различные кластеры могут соединиться.
Матрица смежности
Матрица весов
-
называется матрицей смежности или матрицей сходства.
Для невзвешенного графа:
-
Для взвешенного графа элементы матрицы принимают значения, характеризующие силу связи.
Обычно предполагается, что граф неориентированный:
Это условие позволяет использовать свойства симметричных матриц и стандартную теорию собственных значений.
Матрица степеней
Степенью вершины называется сумма весов всех исходящих рёбер:
-
На основе степеней строится диагональная матрица:
-
Матрица степеней играет важную роль в нормализованных вариантах спектральной кластеризации.
Если вершина имеет большую степень, это означает, что она сильно связана с большим числом других объектов.
Лапласианы графа
Лапласиан графа является центральным объектом спектральной кластеризации.
Ненормализованный лапласиан
Классический лапласиан определяется как:
-
Для любого вектора
выполняется:
-
Это выражение показывает, что лапласиан минимизирует различия между сильно связанными вершинами.
Если два объекта имеют большой вес связи, то соответствующие значения вектора
должны быть близкими.
Основные свойства:
-
симметрична;
- собственные значения неотрицательны;
- минимальное собственное значение равно нулю.
Количество нулевых собственных значений равно числу компонент связности графа.[1]
Симметричный нормализованный лапласиан
Для уменьшения влияния различий в степенях используется:
-
Эквивалентная форма:
-
Нормализация делает вклад вершин более сопоставимым и особенно полезна для графов с различными плотностями.
Лапласиан случайного блуждания
Другой вариант:
-
Он связан с вероятностями переходов случайного блуждания:
-
Тогда:
-
Этот оператор показывает, насколько быстро случайное блуждание распространяется по графу.
Собственные значения и собственные векторы
Спектральная кластеризация использует решение задачи:
-
где:
-
— собственное значение;
-
— собственный вектор.
Собственные значения упорядочиваются:
-
Малые собственные значения соответствуют направлениям, в которых структура графа изменяется медленно.
Если граф имеет несколько почти независимых компонент, первые собственные векторы приближают индикаторы этих компонент.
В идеальном случае граф из
компонент имеет:
-
Поэтому первые
собственных векторов содержат информацию о структуре кластеров.
Спектральное вложение
Пусть найдены собственные векторы:
-
Из них формируется матрица:
-
Каждый объект заменяется строкой:
-
Таким образом исходные данные переводятся в новое пространство размерности
.
После этого выполняется обычная кластеризация:
-
Чаще всего применяется алгоритм k-means.
Для нормализованной версии Нга — Джордана — Вайса выполняется дополнительная нормировка строк:
-
Связь с задачами разбиения графов
Спектральная кластеризация тесно связана с задачами минимального разреза графа. Идея состоит в поиске такого разбиения:
-
при котором связи между различными группами минимальны, а внутри групп — максимальны.
Разрез графа
Для двух непересекающихся множеств вершин
и
определяется:
-
Минимизация только этого критерия приводит к вырожденному решению: можно отделить одну вершину или небольшую группу вершин.
Поэтому используются нормированные критерии, учитывающие размер кластеров.
RatioCut
Критерий RatioCut определяется как:
-
Он нормирует значение разреза количеством вершин в кластере.
Спектральная релаксация этой задачи приводит к поиску собственных векторов ненормализованного лапласиана:
-
Normalized Cut
Вместо количества вершин используется объём:
-
Критерий Normalized Cut:
-
Этот критерий учитывает количество связей вершины с остальным графом.
Его спектральная релаксация приводит к нормализованному лапласиану:
-
Normalized Cut был предложен для задачи сегментации изображений и стал одной из наиболее известных интерпретаций спектральной кластеризации.[1]
Алгоритм спектральной кластеризации
Ненормализованный вариант
Вход:
- объекты
;
- число кластеров
;
- функция сходства.
Шаги алгоритма:
- Построить матрицу сходства
.
- Вычислить матрицу степеней
.
- Построить лапласиан:
-
- Найти
собственных векторов, соответствующих минимальным собственным значениям.
- Сформировать матрицу вложения:
-
- Выполнить k-means над строками матрицы
.
- Назначить исходным объектам найденные метки.
Нормализованный вариант
Для нормализованной версии:
- Строится граф сходства.
- Вычисляется:
-
- Находятся первые
собственных векторов.
- Формируется матрица:
-
- Каждая строка нормируется:
-
- Выполняется k-means.
Псевдокод
Вход: X, K
1. Построить граф сходства W. 2. Вычислить D. 3. Построить лапласиан L. 4. Найти K минимальных собственных векторов. 5. Получить спектральное представление объектов. 6. При необходимости нормировать строки. 7. Выполнить k-means. 8. Вернуть метки кластеров.
Выбор параметров
Число кластеров
Число кластеров
является одним из главных параметров алгоритма.
Часто используется анализ спектрального зазора:
-
Большой разрыв может указывать на естественное число кластеров.
Однако этот критерий является эвристикой. Спектральный зазор зависит от построенного графа и не всегда соответствует реальной структуре данных.
Число соседей
Для графа ближайших соседей параметр
определяет размер локального окружения.
Малое значение:
- сохраняет локальную структуру;
- может привести к несвязности графа.
Большое значение:
- увеличивает связность;
- может создавать ложные связи между кластерами.
На практике рекомендуется проверять устойчивость результата при разных значениях
.
Масштаб ядра
В гауссовом ядре:
-
параметр
задаёт масштаб близости.
При малом
граф становится слишком разреженным.
При большом
различия между объектами уменьшаются.
Для неоднородных данных используют локальные масштабы:
-
Число собственных векторов
В стандартном алгоритме число собственных векторов совпадает с числом кластеров:
-
Использование большего количества компонент возможно, но требует дополнительного выбора и уже не является прямой релаксацией исходной задачи разбиения графа.
Масштабируемые методы
Классическая спектральная кластеризация плохо масштабируется на больших данных из-за необходимости хранить матрицу сходства.
Для решения этой проблемы используются приближённые методы.
Метод Nyström
Метод Nyström заменяет полную матрицу сходства низкоранговым приближением.
Пусть выбрано
опорных объектов:
-
Матрица сходства приближается:
-
Это позволяет вычислять спектральное представление без полного разложения матрицы размера
.
Преимущества:
- снижение требований к памяти;
- ускорение вычислений;
- возможность работы с большими наборами данных.
Недостаток:
- качество зависит от выбора опорных точек.[1]
Разреженная спектральная кластеризация
Вместо полного графа используется граф ближайших соседей.
Количество рёбер становится:
-
Это позволяет применять итерационные методы поиска собственных векторов.
Преимущества:
- меньшая память;
- возможность работы с большими графами;
- сохранение локальной структуры.
Ограничение — результат зависит от качества построенного разреженного графа.
Landmark-based методы
Вместо всех объектов выбирается небольшое число представителей:
-
Строится только сходство объектов с этими представителями.
Такие методы позволяют применять спектральную кластеризацию к очень большим наборам данных, но требуют правильного выбора landmarks.
Расширения спектральной кластеризации
Многопредставленческая спектральная кластеризация
Во многих задачах объекты могут быть описаны несколькими наборами признаков:
-
Например, объект может иметь одновременно:
- текстовое представление;
- визуальные признаки;
- биологические характеристики;
- сетевую информацию.
Для каждого представления строится собственный граф сходства:
-
Простейший вариант объединения:
-
где:
-
Более сложные методы совместно оптимизируют несколько представлений и учитывают их согласованность.
Преимущество многопредставленческих методов заключается в использовании дополнительной информации.
Ограничение состоит в том, что различные представления могут содержать противоречивую структуру, поэтому простое объединение графов не всегда улучшает качество.
Робастная спектральная кластеризация
Классическая спектральная кластеризация чувствительна к ошибкам в матрице сходства.
Пусть наблюдаемая матрица:
-
где:
-
— истинная структура графа;
-
— шум или ошибки.
Робастные методы пытаются восстановить устойчивое представление графа перед выполнением кластеризации.
Используются:
- удаление выбросов;
- регуляризация степеней;
- устойчивые функции сходства;
- модели разреженных ошибок;
- совместное обучение графа и кластеров.
Такие методы особенно важны для реальных сетей, где часть рёбер может быть случайной или ошибочной.
Глубокая спектральная кластеризация
Современные методы объединяют спектральные идеи с нейронными сетями.
Вместо явного вычисления собственных векторов обучается отображение:
-
Цель обучения — получить представление, близкое к спектральному вложению.
Преимущества:
- возможность обработки больших наборов данных;
- работа с новыми объектами;
- использование сложных признаковых представлений.
Недостатки:
- необходимость обучения;
- зависимость от архитектуры сети;
- отсутствие точного совпадения с классическим спектральным решением.
Примером является SpectralNet, где нейронная сеть обучается приближать спектральное вложение.[1]
Применения
Сегментация изображений
Одно из наиболее известных применений спектральной кластеризации — сегментация изображений.
Вершинами графа являются пиксели или суперпиксели, а веса отражают:
- сходство цвета;
- близость положения;
- сходство текстуры.
Например:
-
где:
-
— цветовые характеристики;
-
— координаты пикселя.
Normalized Cut стал одним из классических методов сегментации изображений.[1]
Анализ социальных и информационных сетей
В сетях:
- вершины соответствуют пользователям или объектам;
- рёбра отражают взаимодействия.
Спектральная кластеризация применяется для поиска:
- сообществ;
- групп пользователей;
- скрытой структуры сети.
Метод особенно эффективен, если связи внутри групп сильнее связей между ними.
Текстовые данные
Для документов строится граф сходства:
- вершины — документы;
- веса — сходство текстовых представлений.
В качестве признаков используются:
- TF-IDF;
- эмбеддинги слов;
- представления трансформеров.
Спектральная кластеризация позволяет выделять тематические группы документов без заранее заданной модели распределения текстов.
Биоинформатика
В биоинформатике метод применяется для:
- анализа экспрессии генов;
- поиска групп клеток;
- анализа биологических сетей;
- исследования взаимодействий белков.
Особенно полезна возможность учитывать графовую структуру взаимодействий между объектами.
Рекомендательные системы
Пользователей и объекты можно представить как двудольный граф:
- одна группа вершин — пользователи;
- другая — товары или услуги;
- рёбра — взаимодействия.
Спектральные методы применяются для:
- сегментации пользователей;
- поиска похожих объектов;
- анализа структуры предпочтений.
Графовые данные
Если данные уже представлены графом, спектральная кластеризация является естественным методом анализа.
Примеры:
- графы цитирования;
- транспортные сети;
- молекулярные графы;
- графы знаний;
- сети взаимодействий.
Сравнение с другими методами
k-means
k-means минимизирует расстояние объектов до центров кластеров:
-
Преимущества:
- высокая скорость;
- простота;
- хорошая масштабируемость.
Недостатки:
- требуется число кластеров;
- плохо работает для кластеров сложной формы;
- зависит от инициализации.
Спектральная кластеризация предпочтительнее, если структура данных определяется связями, а не расстояниями до центроидов.
Иерархическая кластеризация
Иерархические методы строят дерево кластеров.
Преимущества:
- позволяют исследовать несколько уровней структуры;
- не требуют заранее задавать число кластеров.
Недостатки:
- высокая вычислительная сложность;
- решения ранних этапов трудно исправить.
Спектральная кластеризация использует глобальную информацию о графе.
DBSCAN
DBSCAN основан на плотности данных.
Преимущества:
- обнаружение кластеров произвольной формы;
- выделение шума.
Недостатки:
- чувствительность к параметрам плотности;
- проблемы при различной плотности кластеров.
Спектральный метод использует структуру графа, а не только локальную плотность.
Gaussian Mixture Models
Gaussian Mixture Models предполагают:
-
Преимущества:
- вероятностная интерпретация;
- оценка степени принадлежности.
Недостатки:
- необходимость предполагать форму распределений;
- локальные оптимумы EM-алгоритма.
Спектральная кластеризация не требует конкретной вероятностной модели.
Mean Shift
Mean Shift ищет максимумы оценки плотности.
Преимущества:
- число кластеров определяется автоматически;
- подходит для сложных форм.
Недостатки:
- высокая вычислительная стоимость;
- зависимость от ширины окна.
Affinity Propagation
Affinity Propagation выбирает представителей кластеров через передачу сообщений между объектами.
Преимущества:
- не требует заранее задавать число кластеров;
- центры являются реальными объектами.
Недостатки:
- квадратичная память;
- ограниченная масштабируемость.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Находятся первые
-
- Выполнить k-means над строками матрицы
-
- Найти
-
- объекты
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-

