{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Label propagation and label spreading on graphs\n", "\n", "## Base class" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from abc import abstractmethod\n", "import torch\n", "\n", "class BaseLabelPropagation:\n", " \"\"\"Base class for label propagation models.\n", " \n", " Parameters\n", " ----------\n", " adj_matrix: torch.FloatTensor\n", " Adjacency matrix of the graph.\n", " \"\"\"\n", " def __init__(self, adj_matrix):\n", " self.norm_adj_matrix = self._normalize(adj_matrix)\n", " self.n_nodes = adj_matrix.size(0)\n", " self.one_hot_labels = None \n", " self.n_classes = None\n", " self.labeled_mask = None\n", " self.predictions = None\n", "\n", " @staticmethod\n", " @abstractmethod\n", " def _normalize(adj_matrix):\n", " raise NotImplementedError(\"_normalize must be implemented\")\n", "\n", " @abstractmethod\n", " def _propagate(self):\n", " raise NotImplementedError(\"_propagate must be implemented\")\n", "\n", " def _one_hot_encode(self, labels):\n", " # Get the number of classes\n", " classes = torch.unique(labels)\n", " classes = classes[classes != -1]\n", " self.n_classes = classes.size(0)\n", "\n", " # One-hot encode labeled data instances and zero rows corresponding to unlabeled instances\n", " unlabeled_mask = (labels == -1)\n", " labels = labels.clone() # defensive copying\n", " labels[unlabeled_mask] = 0\n", " self.one_hot_labels = torch.zeros((self.n_nodes, self.n_classes), dtype=torch.float)\n", " self.one_hot_labels = self.one_hot_labels.scatter(1, labels.unsqueeze(1), 1)\n", " self.one_hot_labels[unlabeled_mask, 0] = 0\n", "\n", " self.labeled_mask = ~unlabeled_mask\n", "\n", " def fit(self, labels, max_iter, tol):\n", " \"\"\"Fits a semi-supervised learning label propagation model.\n", " \n", " labels: torch.LongTensor\n", " Tensor of size n_nodes indicating the class number of each node.\n", " Unlabeled nodes are denoted with -1.\n", " max_iter: int\n", " Maximum number of iterations allowed.\n", " tol: float\n", " Convergence tolerance: threshold to consider the system at steady state.\n", " \"\"\"\n", " self._one_hot_encode(labels)\n", "\n", " self.predictions = self.one_hot_labels.clone()\n", " prev_predictions = torch.zeros((self.n_nodes, self.n_classes), dtype=torch.float)\n", "\n", " for i in range(max_iter):\n", " # Stop iterations if the system is considered at a steady state\n", " variation = torch.abs(self.predictions - prev_predictions).sum().item()\n", " \n", " if variation < tol:\n", " print(f\"The method stopped after {i} iterations, variation={variation:.4f}.\")\n", " break\n", "\n", " prev_predictions = self.predictions\n", " self._propagate()\n", "\n", " def predict(self):\n", " return self.predictions\n", "\n", " def predict_classes(self):\n", " return self.predictions.max(dim=1).indices" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Label propagation" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "class LabelPropagation(BaseLabelPropagation):\n", " def __init__(self, adj_matrix):\n", " super().__init__(adj_matrix)\n", "\n", " @staticmethod\n", " def _normalize(adj_matrix):\n", " \"\"\"Computes D^-1 * W\"\"\"\n", " degs = adj_matrix.sum(dim=1)\n", " degs[degs == 0] = 1 # avoid division by 0 error\n", " return adj_matrix / degs[:, None]\n", "\n", " def _propagate(self):\n", " self.predictions = torch.matmul(self.norm_adj_matrix, self.predictions)\n", "\n", " # Put back already known labels\n", " self.predictions[self.labeled_mask] = self.one_hot_labels[self.labeled_mask]\n", "\n", " def fit(self, labels, max_iter=1000, tol=1e-3):\n", " super().fit(labels, max_iter, tol)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Label spreading" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "class LabelSpreading(BaseLabelPropagation):\n", " def __init__(self, adj_matrix):\n", " super().__init__(adj_matrix)\n", " self.alpha = None\n", "\n", " @staticmethod\n", " def _normalize(adj_matrix):\n", " \"\"\"Computes D^-1/2 * W * D^-1/2\"\"\"\n", " degs = adj_matrix.sum(dim=1)\n", " norm = torch.pow(degs, -0.5)\n", " norm[torch.isinf(norm)] = 1\n", " return adj_matrix * norm[:, None] * norm[None, :]\n", "\n", " def _propagate(self):\n", " self.predictions = (\n", " self.alpha * torch.matmul(self.norm_adj_matrix, self.predictions)\n", " + (1 - self.alpha) * self.one_hot_labels\n", " )\n", " \n", " def fit(self, labels, max_iter=1000, tol=1e-3, alpha=0.5):\n", " \"\"\"\n", " Parameters\n", " ----------\n", " alpha: float\n", " Clamping factor.\n", " \"\"\"\n", " self.alpha = alpha\n", " super().fit(labels, max_iter, tol)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Testing models on synthetic data" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Label Propagation: The method stopped after 73 iterations, variation=0.0010.\n", "Label Spreading: The method stopped after 20 iterations, variation=0.0009.\n" ] } ], "source": [ "import pandas as pd\n", "import numpy as np\n", "import networkx as nx\n", "import matplotlib.pyplot as plt\n", "\n", "# Create caveman graph\n", "n_cliques = 4\n", "size_cliques = 10\n", "caveman_graph = nx.connected_caveman_graph(n_cliques, size_cliques)\n", "adj_matrix = nx.adjacency_matrix(caveman_graph).toarray()\n", "\n", "# Create labels\n", "labels = np.full(n_cliques * size_cliques, -1.)\n", "\n", "# Only one node per clique is labeled. Each clique belongs to a different class.\n", "labels[0] = 0\n", "labels[size_cliques] = 1\n", "labels[size_cliques * 2] = 2\n", "labels[size_cliques * 3] = 3\n", "\n", "# Create input tensors\n", "adj_matrix_t = torch.FloatTensor(adj_matrix)\n", "labels_t = torch.LongTensor(labels)\n", "\n", "# Learn with Label Propagation\n", "label_propagation = LabelPropagation(adj_matrix_t)\n", "print(\"Label Propagation: \", end=\"\")\n", "label_propagation.fit(labels_t)\n", "label_propagation_output_labels = label_propagation.predict_classes()\n", "\n", "# Learn with Label Spreading\n", "label_spreading = LabelSpreading(adj_matrix_t)\n", "print(\"Label Spreading: \", end=\"\")\n", "label_spreading.fit(labels_t, alpha=0.8)\n", "label_spreading_output_labels = label_spreading.predict_classes()" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Plot graphs\n", "color_map = {-1: \"orange\", 0: \"blue\", 1: \"green\", 2: \"red\", 3: \"cyan\"}\n", "input_labels_colors = [color_map[l] for l in labels]\n", "lprop_labels_colors = [color_map[l] for l in label_propagation_output_labels.numpy()]\n", "lspread_labels_colors = [color_map[l] for l in label_spreading_output_labels.numpy()]\n", "\n", "plt.figure(figsize=(14, 6))\n", "ax1 = plt.subplot(1, 4, 1)\n", "ax2 = plt.subplot(1, 4, 2)\n", "ax3 = plt.subplot(1, 4, 3)\n", "\n", "ax1.title.set_text(\"Raw data (4 classes)\")\n", "ax2.title.set_text(\"Label Propagation\")\n", "ax3.title.set_text(\"Label Spreading\")\n", "\n", "pos = nx.spring_layout(caveman_graph)\n", "nx.draw(caveman_graph, ax=ax1, pos=pos, node_color=input_labels_colors, node_size=50)\n", "nx.draw(caveman_graph, ax=ax2, pos=pos, node_color=lprop_labels_colors, node_size=50)\n", "nx.draw(caveman_graph, ax=ax3, pos=pos, node_color=lspread_labels_colors, node_size=50)\n", "\n", "# Legend\n", "ax4 = plt.subplot(1, 4, 4)\n", "ax4.axis(\"off\")\n", "legend_colors = [\"orange\", \"blue\", \"green\", \"red\", \"cyan\"]\n", "legend_labels = [\"unlabeled\", \"class 0\", \"class 1\", \"class 2\", \"class 3\"]\n", "dummy_legend = [ax4.plot([], [], ls='-', c=c)[0] for c in legend_colors]\n", "plt.legend(dummy_legend, legend_labels)\n", "\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.3" } }, "nbformat": 4, "nbformat_minor": 4 }