{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Bipartite collaboration graph to simplicial complex and cochains\n", "\n", "\n", "In this notebook we show how to build a collaboration complex (where each collaboration of authors is represented by a simplex) and citation cochains (which are the number of citations attributed to the collaborations). \n", "\n", "As point 3 of Section [Data], we will follow the following steps:\n", "\n", "[Data]:https://github.com/stefaniaebli/simplicial_neural_networks#data\n", "\n", "1) Downsample the bipartite graph to have a connected simplicial complex.\n", "\n", "2) From a bipartite graph to a simplicial complex with k-cochains.\n", "\n", "3) From a simplicial complex to k-degree Laplacians.\n", "\n", "4) Artificially insert missing data on k-cochains.\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import scipy\n", "from scipy import sparse\n", "import matplotlib.pyplot as plt\n", "import pandas as pd\n", "\n", "import sys\n", "sys.path.append('..')\n", "from data.s2_4_bipartite_to_downsampled import subsample_node_x,starting_node_random_walk\n", "from data.s2_5_bipartite_to_complex import bipart2simpcochain\n", "from data.s2_6_complex_to_laplacians import build_boundaries, build_laplacians\n", "from data.s2_7_cochains_to_missingdata import build_missing_values, build_damaged_dataset,built_known_values\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1) Downsample the bipartite graph to have a connected simplicial complex.\n", "\n", "First we load the bipartite graph from the Semantic Scholar dataset together with the citations of the articles. Then we will downasample the set of papers to obtain a connected simplicial complex," ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "scrolled": true }, "outputs": [], "source": [ "adjacency_papers = sparse.load_npz('../data/s2_2_bipartite_graph/papers_adjacency.npz')\n", "adjacency = scipy.sparse.load_npz('../data/s2_2_bipartite_graph/paper_author_biadjacency.npz')\n", "papers = pd.read_csv('../data/s2_2_bipartite_graph/papers.csv', index_col=0)\n", "citations=np.array(papers['citations_2019'])" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The starting node of the random walk has ID 134702\n", "The number of downsampled papers is 109\n" ] } ], "source": [ "starting_node=starting_node_random_walk(adjacency,weights_x=citations, min_weight=100, max_dim=10 )\n", "print(\"The starting node of the random walk has ID {}\".format(starting_node))\n", "downsample= subsample_node_x(adjacency_papers,adjacency,weights_x=citations, min_weight=5, max_dim=10,length_walk=80)\n", "print(\"The number of downsampled papers is {}\".format(len(downsample)))\n", "#np.save('../data/s2_3_collaboration_complex/'+str(starting_node)+'_downsampled.npy',downsample" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2) From a bipartite graph to a simplicial complex with k-cochains." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "##load downsampling\n", "s_node=150250 ###starting node of the random walk\n", "\n", "output=str(s_node)\n", "downsample_papers=np.load('../data/s2_3_collaboration_complex/'+str(s_node)+'_downsampled.npy')\n", "\n", "simplices, cochains, signals_top = bipart2simpcochain(adjacency, citations, indices_x=downsample_papers, dimension=10)\n", "#np.save('../data/s2_3_collaboration_complex/'+output+'_cochains.npy',cochains)\n", "#np.save('../data/s2_3_collaboration_complex/'+output+'_simplices.npy',simplices)\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Printing the number of simplices of the simplicial complex" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The number of 0-simplices is 352\n", "The number of 1-simplices is 1,474\n", "The number of 2-simplices is 3,285\n", "The number of 3-simplices is 5,019\n", "The number of 4-simplices is 5,559\n", "The number of 5-simplices is 4,547\n", "The number of 6-simplices is 2,732\n", "The number of 7-simplices is 1,175\n", "The number of 8-simplices is 343\n", "The number of 9-simplices is 61\n", "The number of 10-simplices is 5\n" ] } ], "source": [ "for k, simp in enumerate(simplices):\n", " print('The number of {}-simplices is {:,}'.format(k, len(simp)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Plotting the distribution of the values of the cochains in dimension $1$, $2$ and $3$." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "target_cochain=np.load('../data/s2_3_collaboration_complex/'+output+'_cochains.npy',allow_pickle=True)\n", "target_cochain_0=np.array(list(target_cochain[0].values())) \n", "target_cochain_1=np.array(list(target_cochain[1].values())) \n", "target_cochain_2=np.array(list(target_cochain[2].values())) \n", "n_bins = 50\n", "\n", "#plt.figure(figsize=(8,4))\n", "fig, axs = plt.subplots(1, 3, sharey=True, tight_layout=True,figsize=(12,5))\n", "\n", "axs[0].hist(target_cochain_0, bins=n_bins,color = \"lightgreen\", ec='black',lw=0.2)\n", "axs[0].set_xlabel(\"Citations\")\n", "axs[0].set_ylabel(\"Count\")\n", "axs[0].set_title('Dimension 0')\n", "axs[1].hist(target_cochain_1, bins=n_bins,color = \"skyblue\", ec='black',lw=0.2)\n", "axs[1].set_title('Dimension 1')\n", "axs[1].set_xlabel(\"Citations\")\n", "axs[1].set_ylabel(\"Count\")\n", "axs[2].hist(target_cochain_2, bins=n_bins,color = \"lightsalmon\", ec='black',lw=0.2)\n", "axs[2].set_title('Dimension 2')\n", "axs[2].set_xlabel(\"Citations\")\n", "axs[2].set_ylabel(\"Count\")\n", "fig.suptitle('Distribution citations for seed {} '.format(s_node), y=1.05,fontsize=\"x-large\");\n", "#plt.savefig('distribution_cochains_{}.png'.format(s_node))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 3) From a simplicial complex to k-degree Laplacians." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "simplices=np.load(f'../data/s2_3_collaboration_complex/{s_node}_simplices.npy',allow_pickle=True)\n", "\n", "boundaries=build_boundaries(simplices)\n", "laplacians=build_laplacians(boundaries)\n", "#np.save(f'../data/s2_3_collaboration_complex/{s_node}_laplacians.npy', laplacians)\n", "#np.save(f'../data/s2_3_collaboration_complex/{s_node}_boundaries.npy', boundaries)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Plot density Laplacians" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0-simplices: 352 simplices, 2.66335% dense\n", "1-simplices: 1,474 simplices, 1.17210% dense\n", "2-simplices: 3,285 simplices, 0.04353% dense\n", "3-simplices: 5,019 simplices, 0.02151% dense\n", "4-simplices: 5,559 simplices, 0.01812% dense\n", "5-simplices: 4,547 simplices, 0.02199% dense\n", "6-simplices: 2,732 simplices, 0.03660% dense\n", "7-simplices: 1,175 simplices, 0.08511% dense\n", "8-simplices: 343 simplices, 0.29155% dense\n", "9-simplices: 61 simplices, 1.63934% dense\n", "10-simplices: 5 simplices, 20.00000% dense\n" ] } ], "source": [ "laplacians = np.load(f'../data/s2_3_collaboration_complex/{s_node}_laplacians.npy',allow_pickle=True)\n", "\n", "for k, laplacian in enumerate(laplacians):\n", " print('{}-simplices: {:,} simplices, {:.5%} dense'.format(k, laplacian.shape[0], laplacian.nnz/np.prod(laplacian.shape)))\n", " assert laplacian.shape == (len(simplices[k]), len(simplices[k]))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 4) Artificially insert missing data on k-cochains." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "percentage_missing_data=[10,20,30,40,50]\n", "for percentage in percentage_missing_data:\n", "\n", " output=str(s_node)+'_percentage_'+str(percentage)\n", " \n", " missing_values=build_missing_values(simplices,percentage_missing_values=percentage,max_dim=10)\n", " damaged_dataset=build_damaged_dataset(cochains,missing_values,function=np.median)\n", " known_values=built_known_values(missing_values,simplices)\n", " #np.save(f'../data/s2_3_collaboration_complex/{s_node}_percentage_{percentage}_missing_values.npy', missing_values)\n", " #np.save(f'../data/s2_3_collaboration_complex/{s_node}_percentage_{percentage}_input_damaged.npy', damaged_dataset)\n", " #np.save(f'../data/s2_3_collaboration_complex/{s_node}_percentage_{percentage}_known_values.npy', known_values)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " Plot distribution misisng citations and known citations in dimension $0$, $1$ and $2$" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "scrolled": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "for percentage in [30]:\n", " for dim in range(0,3):\n", " \n", " output=str(s_node)\n", " target_cochain=np.load('../data/s2_3_collaboration_complex/'+output+'_cochains.npy',allow_pickle=True)\n", " target_cochain=np.array(list(target_cochain[dim].values()))\n", " mask_seen=np.load(f'../data/s2_3_collaboration_complex/{s_node}_percentage_{percentage}_known_values.npy',allow_pickle=True)\n", " mask_seen=list(mask_seen[dim].values())\n", " mask_unseen=np.load(f'../data/s2_3_collaboration_complex/{s_node}_percentage_{percentage}_missing_values.npy',allow_pickle=True)\n", " mask_unseen=list(mask_unseen[dim].values())\n", "\n", " n_bins = 50\n", " # Generate a normal distribution, center at x=0 and y=5\n", " x=target_cochain[mask_seen]\n", " y = target_cochain[mask_unseen]\n", "\n", " #plt.figure(figsize=(8,4))\n", " fig, axs = plt.subplots(1, 2, sharey=True, tight_layout=True,figsize=(12,5))\n", "\n", " # We can set the number of bins with the `bins` kwarg\n", " axs[0].hist(x, bins=n_bins)\n", " axs[0].set_title('Distribution known citations in diemension {}'.format(dim))\n", " axs[1].hist(y, bins=n_bins)\n", " plt.title('Distribution missing citations in dimension {}'.format(dim))\n", " fig.suptitle(\"Distribution percentage of unknown values {0}% \".format(percentage),y=1.1)\n", " plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n" ] } ], "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.4" } }, "nbformat": 4, "nbformat_minor": 2 }