diff --git a/backup-slides.tex b/backup-slides.tex new file mode 100644 index 0000000..fa752e5 --- /dev/null +++ b/backup-slides.tex @@ -0,0 +1,848 @@ +\begin{frame}[noframenumbering] + \vfill + \centering + \begin{beamercolorbox}[sep=8pt,center,shadow=true,rounded=true]{title} + \usebeamerfont{title}Annexes\par% + \end{beamercolorbox} + \vfill +\end{frame} + + +\section{Modèles à variables latentes pour collection de réseaux bipartites} +\begin{frame} + \frametitle{Latent Block Model (LBM\footnotemark[2])} + %DONE remplacer i \in bullet par Zi = \bullet + Proposé par~\cite{govaertEMAlgorithmBlock2005}. + \begin{columns} + \begin{column}{0.40\linewidth} + \begin{figure}[H] + \center + \begin{tikzpicture}[scale=0.35] + \tikzstyle{every state}=[draw, text=black,scale=0.95, + transform shape] + \tikzstyle{every state}=[draw=none,text=black,scale=0.75, + transform shape] + \tikzset{edge_proba/.style={draw=white, fill=none, + text=black}} + + \tikzstyle{every node}=[fill=blueind] + \node[edge_proba] (pi1) at (1,5.7) + {\textbf{$\pi_{{\color{blueind}\bullet}}$}}; + \node[state, draw=black!50] (R11) at (0,5) {\textbf{R11}}; + \node[state, draw=black!50] (R12) at (1,5) {\textbf{R12}}; + \node[state, draw=black!50] (R13) at (2,5) {\textbf{R13}}; + + \tikzstyle{every node}=[fill=cyanind] + \node[edge_proba] (pi2) at (6.75,5.7) + {\textbf{$\pi_{{\color{cyanind}\bullet}}$}}; + \node[state, draw=black!50] (R21) at (6.25,5) + {\textbf{R21}}; + \node[state, draw=black!50] (R22) at (7.25,5) + {\textbf{R22}}; + + \tikzstyle{every node}=[fill=electricblue] + \node[edge_proba] (pi3) at (10,5.7) + {\textbf{$\pi_{{\color{electricblue}\bullet}}$}}; + \node[state, draw=black!50] (R31) at (10,5) {\textbf{R31}}; + + \tikzstyle{every node}=[fill=burntorange, shape=rectangle] + \node[edge_proba] (pi3) at (0.5,-0.7) + {\textbf{$\rho_{{\color{burntorange}\bullet}}$}}; + \tikzstyle{every state}=[draw=none,text=black,scale=0.75, + transform shape, shape=rectangle] + \node[state, draw=black!50] (B1) at (0,0) {\textbf{C11}}; + \node[state, draw=black!50] (B2) at (1,0) {\textbf{C12}}; + \tikzstyle{every node}=[fill=goldenyellow, shape=rectangle] + \node[edge_proba] (pi3) at (4,-0.7) + {\textbf{$\rho_{{\color{goldenyellow}\bullet}}$}}; + \node[state, draw=black!50] (B3) at (3.5,0) {\textbf{C21}}; + \node[state, draw=black!50] (B4) at (4.5,0) {\textbf{C22}}; + \tikzstyle{every node}=[fill=peach, shape=rectangle] + \node[edge_proba] (pi3) at (10,-0.7) + {\textbf{$\rho_{{\color{peach}\bullet}}$}}; + \node[state, draw=black!50] (B5) at (10,0) {\textbf{C31}}; + + \tikzstyle{every edge}=[-,>=stealth',shorten + >=1pt,auto,draw,line width=1.5pt,draw opacity=0.2] + + \path (R11) edge[-,>=stealth',shorten + >=1pt,auto,draw=gray,line width=1.5pt, fill=gray, opacity=1] node[left, + fill=none] {$\alpha_{{\color{blueind}\bullet}{\color{burntorange}\bullet}}$} + (B1); + \path (R11) edge (B2); + \path (R11) edge (B3); + \path (R11) edge (B4); + + \path (R12) edge [] (B1); + \path (R12) edge (B2); + \path (R12) edge (B3); + \path (R12) edge (B4); + + \path (R13) edge [] (B1); + \path (R13) edge (B2); + \path (R13) edge (B3); + \path (R13) edge[-,>=stealth',shorten + >=1pt,auto,draw=gray,line width=1.5pt, fill=gray, opacity=1] node[midway, left, + fill=none] {$\alpha_{{\color{blueind}\bullet}{\color{goldenyellow}\bullet}}$} + (B4); + + \path (R21) edge[-,>=stealth',shorten + >=1pt,auto,draw=gray,line width=1.5pt, fill=gray, opacity=1] node[midway, + right, fill=none] + {$\alpha_{{\color{cyanind}\bullet}{\color{goldenyellow}\bullet}}$} (B3); + \path (R21) edge (B4); + \path (R21) edge (B5); + + \path (R22) edge (B3); + \path (R22) edge (B4); + \path (R22) edge[-,>=stealth',shorten + >=1pt,auto,draw=gray,line width=1.5pt, fill=gray, opacity=1] node[midway, left, + fill=none] {$\alpha_{{\color{cyanind}\bullet}{\color{peach}\bullet}}$} (B5); + + \path (R31) edge[-,>=stealth',shorten + >=1pt,auto,draw=gray,line width=1.5pt, fill=gray, opacity=1] node[midway, + right, fill=none] + {$\alpha_{{\color{electricblue}\bullet}{\color{peach}\bullet}}$} (B5); + + \end{tikzpicture} + \caption{Exemple de LBM\footnotemark} + \label{fig:LBMvisu} + \end{figure} + \end{column} + \begin{column}{0.51\linewidth} + Pour \begin{itemize} + \item $Q_1 = + |\{{\color{blueind}\bullet},{\color{cyanind}\bullet},{\color{electricblue}\bullet}\}|$ + blocs fixés en ligne + \item $Q_2 = + |\{{\color{burntorange}\bullet},{\color{goldenyellow}\bullet},{\color{peach}\bullet}\}|$ + blocs fixés en colonne + \end{itemize} + \begin{block}{Paramètres} + \begin{itemize} + \item $\pi_{\bullet} = \mathbb{P}(Z_i = \bullet)$ en ligne + et $\rho_{\bullet} = \mathbb{P}(W_j = \bullet)$ en colonne + \item + $\alpha_{{\color{blueind}\bullet}{\color{burntorange}\bullet}} = + \mathbb{P}(X_{ij} = 1 | Z_i = {\color{blueind}\bullet}, W_j = + {\color{burntorange}\bullet})$ + \end{itemize} + \end{block} + \end{column} + \end{columns} + + \footnotetext{Que j'appellerai par la suite BiSBM} + +\end{frame} +\begin{frame} + \frametitle{\emph{colSBM}} + Le modèle \emph{colSBM} + \parencite{chabert-liddellLearningCommonStructures2023}.\\ + % Difficulté estimer les parametres + + % DONE Modifier les realisations pour variabilite, mettre iid au dessus du sim et inverser modele et realisations + \smallskip + \definecolor{yellow}{RGB}{255,190,60} + \begin{center} + \begin{adjustbox}{trim=0 0 0 1cm} + \begin{tikzpicture}[scale=.32] + \tikzstyle{every edge}=[-,>=stealth',shorten + >=1pt,auto,draw,line width=.5pt, bend left] + \tikzstyle{every state}=[draw, text=black,scale=0.95, transform + shape] + \tikzset{edge_proba/.style={draw=white, fill=none, text=black}} + + \tikzstyle{every node}=[fill=yellow] + \node[state, draw=black!50] (A1) at (0,2) {\textbf{A1}}; + \node[state, draw=black!50] (A2) at (1.5, 2) {\textbf{A2}}; + \node[state, draw=black!50] (A3) at (0.75,3.25) {\textbf{A3}}; + + \tikzstyle{every node}=[fill=blueind] + \node[state, draw=black!50] (B1) at (4.5,3) {\textbf{B1}}; + \node[state, draw=black!50] (B2) at (4,4.75) {\textbf{B2}}; + \node[state, draw=black!50] (B3) at (5.5,6) {\textbf{B3}}; + \node[state, draw=black!50] (B4) at (7,4.75) {\textbf{B4}}; + \node[state, draw=black!50] (B5) at (6.5,3) {\textbf{B5}}; + + \tikzstyle{every node}=[fill=greenind] + \node[state, draw=black!50] (C1) at (5,0) {\textbf{C1}}; + \node[state, draw=black!50] (C2) at (7,1) {\textbf{C2}}; + + \path (A1) edge[bend right] (A2); + \path (A1) edge node[midway, left, fill=none] + {$\alpha_{{\color{yellow}\bullet}{\color{yellow}\bullet}}$} (A3); + \path (A3) edge (A2); + + \path (A3) edge node[midway, above, fill=none] + {$\alpha_{{\color{yellow}\bullet}{\color{blueind}\bullet}}$} (B3); + + \path (B1) edge (B2); + \path (B2) edge (B3); + \path (B3) edge (B4); + \path (B4) edge (B5); + \path (B5) edge (B1); + + \path (B1) edge[bend left=0] (B4); + \path (B5) edge[bend left=0] (B2); + + \path (A2) edge[bend right] node[midway, below, fill=none] + {$\alpha_{{\color{yellow}\bullet}{\color{greenind}\bullet}}$} (C1); + \path (C1) edge[bend right] node[midway, below, fill=none] + {$\alpha_{{\color{greenind}\bullet}{\color{greenind}\bullet}}$} (C2); + \path (C2) edge[bend right] node[midway, right, fill=none] + {$\alpha_{{\color{greenind}\bullet}{\color{blueind}\bullet}}$} (B4); + + \node[font=\small, text justified,draw=none, fill=none] at + (4.5,-1.5) {SBM}; + + % Sampled network + \begin{scope}[xshift=-16cm,yshift=4cm] + \node[font=\small, text justified, fill=none] at (10, -2.5) + {$\overset{iid}{\sim}$}; + \tikzstyle{every node}=[fill=gray, scale=0.95] + \tikzstyle{every edge}=[-,>=stealth',shorten + >=1pt,auto,draw,line width=.5pt, bend left] + \tikzstyle{every state}=[draw, text=black,scale=0.95, + transform shape] + + \node[state, draw=black!50] (A1) at (0,0) {\textbf{10}}; + \node[state, draw=black!50] (A2) at (1, 0) {\textbf{2}}; + \node[state, draw=black!50] (A3) at (0.5,1) {\textbf{5}}; + + \node[state, draw=black!50] (B2) at (2,2.75) {\textbf{9}}; + \node[state, draw=black!50] (B3) at (3.5,4) {\textbf{6}}; + \node[state, draw=black!50] (B4) at (5,2.75) {\textbf{3}}; + \node[state, draw=black!50] (B5) at (4.5,1) {\textbf{7}}; + + \node[state, draw=black!50] (C1) at (3,-0.5) {\textbf{4}}; + + \path (A1) edge[bend right] (A2); + \path (A1) edge (A3); + \path (A3) edge (A2); + + \path (A3) edge (B3); + + \path (B2) edge (B3); + \path (B3) edge (B4); + \path (B4) edge (B5); + + \path (B5) edge[bend left=0] (B2); + + \path (A2) edge[bend right] (C1); + + \node[text width=3cm,font=\small, text justified, + rotate=90, fill=none, below = -0.8cm of C1] (dots) {\dots}; + + \end{scope} + \begin{scope}[xshift=-16cm,yshift=-4cm] + \tikzstyle{every node}=[fill=gray, scale=0.95] + \tikzstyle{every edge}=[-,>=stealth',shorten + >=1pt,auto,draw,line width=.5pt, bend left] + \tikzstyle{every state}=[draw, text=black,scale=0.95, + transform shape] + + \node[state, draw=black!50] (A2) at (1, 0) {\textbf{2}}; + \node[state, draw=black!50] (A3) at (0.5,1) {\textbf{1}}; + + \node[state, draw=black!50] (B1) at (2.5,1) {\textbf{5}}; + \node[state, draw=black!50] (B2) at (2,2.75) {\textbf{10}}; + \node[state, draw=black!50] (B4) at (5,2.75) {\textbf{8}}; + \node[state, draw=black!50] (B5) at (4.5,1) {\textbf{7}}; + + \node[state, draw=black!50] (C2) at (5,0) {\textbf{3}}; + + \path (A3) edge (A2); + + \path (B1) edge (B2); + \path (B4) edge (B5); + \path (B5) edge (B1); + + \path (B1) edge[bend left=0] (B4); + \path (B5) edge[bend left=0] (B2); + + \path (C2) edge[bend right] (B4); + \end{scope} + \end{tikzpicture} + \end{adjustbox} + \end{center} + Pour $Q = + |\{{\color{yellow}\bullet},{\color{blueind}\bullet},{\color{greenind}\bullet}\}|$ + blocs fixés : + \begin{block}{Paramètres} + \begin{itemize} + \item $\pi_{\bullet} = \mathbb{P}(Z_i =\bullet)$ + \item $\alpha_{{\color{greenind}\bullet}{\color{blueind}\bullet}} = + \mathbb{P}(X_{ij} = 1 | Z_i = {\color{greenind}\bullet}, Z_j = + {\color{blueind}\bullet})$ + \end{itemize} + \end{block} +\end{frame} + +\begin{frame} + \frametitle{Collections bipartites} + \begin{center} + \begin{adjustbox}{trim=0 0 1 1.5cm} + \begin{tikzpicture}[scale=.33] + \begin{scope}[xshift=18cm, yshift=2cm] + \tikzstyle{every state}=[draw=none, text=black,scale=0.75, + transform shape] + \tikzset{edge_proba/.style={draw=white, fill=none, + text=black}} + + \tikzstyle{every node}=[fill=blueind] + \node[edge_proba] (pi1) at (1,5.7) + {\textbf{$\pi_{{\color{blueind}\bullet}}$}}; + \node[state, draw=black!50] (R11) at (0,5) {\textbf{R11}}; + \node[state, draw=black!50] (R12) at (1,5) {\textbf{R12}}; + \node[state, draw=black!50] (R13) at (2,5) {\textbf{R13}}; + + \tikzstyle{every node}=[fill=cyanind] + \node[edge_proba] (pi2) at (6.75,5.7) + {\textbf{$\pi_{{\color{cyanind}\bullet}}$}}; + \node[state, draw=black!50] (R21) at (6.25,5) + {\textbf{R21}}; + \node[state, draw=black!50] (R22) at (7.25,5) + {\textbf{R22}}; + + \tikzstyle{every node}=[fill=electricblue] + \node[edge_proba] (pi3) at (10,5.7) + {\textbf{$\pi_{{\color{electricblue}\bullet}}$}}; + \node[state, draw=black!50] (R31) at (10,5) {\textbf{R31}}; + + \tikzstyle{every node}=[fill=burntorange, shape=rectangle] + \node[edge_proba] (rho1) at (0.5,-1) + {\textbf{$\rho_{{\color{burntorange}\bullet}}$}}; + \tikzstyle{every state}=[draw=none,text=black,scale=0.75, + transform shape, shape=rectangle] + \node[state, draw=black!50] (B1) at (0,0) {\textbf{C11}}; + \node[state, draw=black!50] (B2) at (1,0) {\textbf{C12}}; + \tikzstyle{every node}=[fill=goldenyellow, shape=rectangle] + \node[edge_proba] (rho2) at (4,-1) + {\textbf{$\rho_{{\color{goldenyellow}\bullet}}$}}; + \node[state, draw=black!50] (B3) at (3.5,0) {\textbf{C21}}; + \node[state, draw=black!50] (B4) at (4.5,0) {\textbf{C22}}; + \tikzstyle{every node}=[fill=peach, shape=rectangle] + \node[edge_proba] (rho3) at (10,-1) + {\textbf{$\rho_{{\color{peach}\bullet}}$}}; + \node[state, draw=black!50] (B5) at (10,0) {\textbf{C31}}; + + \node[font=\small, text justified,draw=none, fill=none, + below = 0.05cm of rho2] {BiSBM}; + + \tikzstyle{every edge}=[-,>=stealth',shorten + >=1pt,auto,draw,line width=1.5pt,draw opacity=0.2] + + \path (R11) edge (B2); + \path (R11) edge (B3); + \path (R11) edge (B4); + + \path (R12) edge [] (B1); + \path (R12) edge (B2); + \path (R12) edge (B3); + \path (R12) edge (B4); + + \path (R13) edge [] (B1); + \path (R13) edge (B2); + \path (R13) edge (B3); + + \path (R21) edge (B4); + \path (R21) edge (B5); + + \path (R22) edge (B3); + \path (R22) edge (B4); + + \path (R11) edge[-,>=stealth',shorten + >=1pt,auto,draw=gray,line width=1.5pt, fill=gray, opacity=1] node[left, + fill=none] {$\alpha_{{\color{blueind}\bullet}{\color{burntorange}\bullet}}$} + (B1); + \path (R13) edge[-,>=stealth',shorten + >=1pt,auto,draw=gray,line width=1.5pt, fill=gray, opacity=1] node[midway, left, + fill=none] {$\alpha_{{\color{blueind}\bullet}{\color{goldenyellow}\bullet}}$} + (B4); + \path (R21) edge[-,>=stealth',shorten + >=1pt,auto,draw=gray,line width=1.5pt, fill=gray, opacity=1] node[midway, + anchor=center, fill=none] + {$\alpha_{{\color{cyanind}\bullet}{\color{goldenyellow}\bullet}}$} (B3); + \path (R22) edge[-,>=stealth',shorten + >=1pt,auto,draw=gray,line width=1.5pt, fill=gray, opacity=1] node[midway, left, + fill=none] {$\alpha_{{\color{cyanind}\bullet}{\color{peach}\bullet}}$} (B5); + \path (R31) edge[-,>=stealth',shorten + >=1pt,auto,draw=gray,line width=1.5pt, fill=gray, opacity=1] node[midway, + right, fill=none] + {$\alpha_{{\color{electricblue}\bullet}{\color{peach}\bullet}}$} (B5); + \end{scope} + + \begin{scope}[xshift=3cm, yshift = 1cm] + \node[text justified, fill=none] at (10, 3.5) + {$\overset{iid}{\sim}$}; + \begin{scope}[yshift = 6cm] + \tikzstyle{every state}=[draw, text=black,scale=0.75, + transform shape] + + \tikzstyle{every node}=[fill=gray] + \node[state, draw=black!50] (R11) at (0,1.25) + {\textbf{1}}; + \node[state, draw=black!50] (R12) at (1,1.25) + {\textbf{2}}; + \node[state, draw=black!50] (R13) at (2,1.25) + {\textbf{3}}; + \node[state, draw=black!50] (R21) at (3,1.25) + {\textbf{4}}; + \node[state, draw=black!50] (R31) at (5,1.25) + {\textbf{6}}; + + \tikzstyle{every + state}=[draw=none,text=black,scale=0.75, transform shape, shape=rectangle] + \node[state, draw=black!50] (B1) at (0.5,-1) + {\textbf{1}}; + + \node[state, draw=black!50] (B31) at (2.5,-1) + {\textbf{3}}; + \node[state, draw=black!50] (B4) at (3.5,-1) + {\textbf{4}}; + + \node[state, draw=black!50] (B5) at (4.5,-1) + {\textbf{5}}; + + \tikzstyle{every edge}=[-,>=stealth',shorten + >=1pt,auto,draw,line width=1pt, draw=gray, fill=gray] + \path (R11) edge (B1); + \path (R11) edge (B31); + \path (R11) edge (B4); + + \path (R12) edge [] (B1); + \path (R12) edge (B31); + \path (R12) edge (B4); + + \path (R13) edge [] (B1); + \path (R13) edge (B31); + \path (R13) edge (B4); + + \path (R21) edge (B31); + \path (R21) edge (B4); + \path (R21) edge (B5); + + \path (R31) edge (B5); + \end{scope} + \node[text width=3cm,font=\small, text justified, + rotate=90, fill=none] (dots) at (2.5, 7.5){\dots}; + + \begin{scope}[yshift = 0cm] + \tikzstyle{every state}=[draw, text=black,scale=0.75, + transform shape] + + \tikzstyle{every node}=[fill=gray] + \node[state, draw=black!50] (R11) at (0,2.25) + {\textbf{4}}; + \node[state, draw=black!50] (R13) at (2,2.25) + {\textbf{6}}; + \node[state, draw=black!50] (R21) at (3,2.25) + {\textbf{3}}; + \node[state, draw=black!50] (R22) at (4,2.25) + {\textbf{5}}; + \node[state, draw=black!50] (R31) at (5,2.25) + {\textbf{2}}; + + \tikzstyle{every + state}=[draw=none,text=black,scale=0.75, transform shape, shape=rectangle] + \node[state, draw=black!50] (B1) at (0.5,0) + {\textbf{5}}; + \node[state, draw=black!50] (B2) at (1.5,0) + {\textbf{1}}; + + \node[state, draw=black!50] (B4) at (3.5,0) + {\textbf{2}}; + + \node[state, draw=black!50] (B5) at (4.5,0) + {\textbf{4}}; + + \tikzstyle{every edge}=[-,>=stealth',shorten + >=1pt,auto,draw,line width=1pt, draw=gray, fill=gray] + \path (R11) edge (B1); + \path (R11) edge (B2); + \path (R11) edge (B4); + + \path (R13) edge [] (B1); + \path (R13) edge (B2); + \path (R13) edge (B4); + + \path (R21) edge (B4); + \path (R21) edge (B5); + + \path (R22) edge (B4); + \path (R22) edge (B5); + + \path (R31) edge (B5); + \end{scope} + \end{scope} + \end{tikzpicture} + \end{adjustbox} + \end{center} + + Pour + \begin{itemize} + \item $Q_1 = + |\{{\color{blueind}\bullet},{\color{cyanind}\bullet},{\color{electricblue}\bullet}\}|$ + blocs fixés en ligne + \item $Q_2 = + |\{{\color{burntorange}\bullet},{\color{goldenyellow}\bullet},{\color{peach}\bullet}\}|$ + blocs fixés en colonne + \end{itemize} + \begin{block}{Paramètres} + \begin{itemize} + \item $\pi_{\bullet} = \mathbb{P}(Z_i =\bullet)$ en ligne et + $\rho_{\bullet} = \mathbb{P}(W_j = \bullet)$ en colonne + \item + $\alpha_{{\color{blueind}\bullet}{\color{burntorange}\bullet}} = + \mathbb{P}(X_{ij} = 1 | Z_i = {\color{blueind}\bullet}, W_j = + {\color{burntorange}\bullet})$ + \end{itemize} + \end{block} +\end{frame} + +\begin{frame} + \frametitle{Différents modèles} + \begin{block}{\emph{iid-colBiSBM}} + $\bm{\pi} = (\pi_1, \dots \pi_{Q_1})$ et $\bm{\rho} = (\rho_1, \dots + \rho_{Q_2})$ %{$\forall q \in \llbracket 1, Q_1 - 1\rrbracket, \pi_q > 0$ et $\forall r \in \llbracket 1, Q_2 - 1\rrbracket, \rho_r > 0$} + , tous les réseaux partagent les mêmes paramètres\footnotemark + \end{block} + + \begin{block}{\emph{$\pi\rho$-colBiSBM}} + $\bm{\pi} = ((\pi_{\color{black}1}^{\color{red}m}, \dots + \pi_{\color{black}Q_1}^{\color{red}m}))_{m=1,\dots M}$ et $\bm{\rho} = + ((\rho_{\color{black}1}^{\color{red}m}, \dots + \rho_{\color{black}Q_2}^{\color{red}m}))_{m=1,\dots M}$ + %{$\forall q \in \llbracket 1, Q_1 - 1\rrbracket, \pi_q > 0$ et $\forall r \in \llbracket 1, Q_2 - 1\rrbracket, \rho_r > 0$} + \small \\ + avec $\forall q,m \in \llbracket 1, Q_1 \rrbracket \times \llbracket 1, + M \rrbracket, \pi_q^m \in \left[ 0,1 \right]$ + et $\forall r,m \in \llbracket 1, Q_2 \rrbracket \times \llbracket 1, M + \rrbracket, \rho_r^m \in \left[ 0,1 \right]$ + \end{block} + Et également deux autres modèles ($\pi$-colBiSBM et $\rho$-colBiSBM) où + seulement une des deux dimensions est libre. + \footnotetext{Dans tous les modèles la structure de connectivité est + supposée identique au sein de la collection.} +\end{frame} +\begin{frame} + \frametitle{Estimation des paramètres} + % DONE dire que tau i q m c' est la proba que Zim = q, approximation de la proba variationnelle. Parce qu on impose lindependance + Maximisation d'une borne inférieure de la log-vraisemblance des données + observées. + \begin{multline*} + \ell (\bm{X};\bm{\theta}) \geq \color{red}\sum_{m=1}^{M} \bigg( + \color{black} \sum_{i = 1}^{n_1^m}\sum_{j=1}^{n_2^m}\sum_{q \in + \mathcal{Q}_{1,m}} \sum_{r \in \mathcal{Q}_{2,m}} \tau^{1,m}_{i,q} + \tau^{2,m}_{j,r} \log f(X^{m}_{ij}; \alpha_{qr}) \\ + + \sum_{i=1}^{n_1^m} \sum_{q \in \mathcal{Q}_{1,m}} \tau^{1,m}_{i,q} + \log \pi_{\color{black}q}^{\color{gray}m} + \sum_{j=1}^{n_2^m} \sum_{r \in + \mathcal{Q}_{2,m}} \tau^{2,m}_{j,r} \log \rho_{\color{black}r}^{\color{gray}m} + \\ + - \sum_{i=1}^{n_1} \tau^{1,m}_{i,q} \log \tau^{1,m}_{i,q} - + \sum_{j=1}^{n_2} \tau^{2,m}_{j,r} \log \tau^{2,m}_{j,r} \color{red}\bigg) + \color{black} =: J(\bm{\tau};\bm{\theta}) $$ + \end{multline*} + + \begin{block}{Approximation variationnelle} + $\tau_{i,q}^{1,m} = P(Z_i = q | X^m_{ij})$ et $\tau_{j,r}^{2,m} = P(W_j + = r | X^m_{ij})$ tels que $P(Z_i = q, W_j = r | X^m_{ij}) = + \tau_{i,q}^{1,m}\times\tau_{j,r}^{2,m}$ + \end{block} + +\end{frame} + +\begin{frame} + \frametitle{Sélection de modèle : choix de $(Q_1,Q_2)$ - Approche + gloutonne} + % DONE But maximiser un critere le BICL, deplacer voir St Clair dans la note + % VEM a Q1 Q2 fixer + % Choix de Q1 Q2 par maximisation du BICL + % Itemize dans la box : init, explo voisin, arrets + \underline{Le VEM se fait à $Q_1, Q_2$ fixés}, il faut donc déterminer les + \enquote*{meilleures} coordonnées. + Nous maximisons un BIC-L\footnote{\emph{Bayesian Information Criterion - + Like}, en adaptant les formules + de~\cite{chabert-liddellLearningCommonStructures2023}}. + + Détermination d'un premier mode par approche \emph{gloutonne} \smallskip + \begin{columns} + \begin{column}{0.5\linewidth} + \begin{tikzpicture} + \draw[step=1cm, help lines] (-2,-2) grid (2,2); + \draw[fill=gray, draw=gray] (0,0) circle [radius=0.225cm]; + \draw[fill=blueind, draw=blueind] (1,0) circle + [radius=0.225cm]; + \draw[fill=blueind, draw=blueind] (0,1) circle + [radius=0.225cm]; + \draw[fill=red, draw=red] (-1,0) circle [radius=0.225cm]; + \draw[fill=red, draw=red] (0,-1) circle [radius=0.225cm]; + + % Légende + \node[font=\tiny, text justified,fill=none, rotate=-45] + (Splits) at (0.5,0.5){{\color{blueind} Splits}}; + \node[font=\tiny, text justified,fill=none, rotate=-45] + (Merges) at (-0.5,-0.5){{\color{red} Merges}}; + + % Splitting + \draw[>=stealth,->,thick, draw=blueind] (0.225,0) -- +(0.55,0); + \draw[>=stealth,->,thick, draw=blueind] (0,0.225) -- +(0,0.55); + + % Merging + \draw[>=stealth,->,thick, draw=red] (-0.225,0) -- +(-0.55,0); + \draw[>=stealth,->,thick, draw=red] (0,-0.225) -- +(0,-0.55); + + % Axes + \draw[>=to,->,thick] (-2,-2) -- +(1,0); + \node[font=\small, fill=none] (Q_1) at (-0.75,-2) {$Q_1$}; + \draw[>=to,->,thick] (-2,-2) -- +(0,1); + \node[font=\small, fill=none] (Q_2) at (-2,-0.75) {$Q_2$}; + + \end{tikzpicture} + \end{column} + \begin{column}{0.5\linewidth} + \begin{block}{Exploration gloutonne} + \begin{itemize} + \item Initialisation sur $(1,2)$ et $(2,1)$ + \item Exploration des 4 voisins et déplacement sur le + meilleur des 4 + \item Arrêt après 2 étapes successives sans augmentation du + BIC-L + \end{itemize} + \end{block} + \end{column} + \end{columns} +\end{frame} +\begin{frame} + \frametitle{Sélection de modèle : choix de $(Q_1,Q_2)$ - Fenêtre glissante} + \begin{columns} + \begin{column}{0.60\linewidth} + \begin{figure} + \includegraphics[scale=0.18]{img/moving_window.png} + \caption{Exemple de parcours de fenêtre glissante} + \end{figure} + \end{column} + \begin{column}{0.4\linewidth} + \definecolor{mypurple}{RGB}{128,0,128} + \begin{tikzpicture} + + \tikzstyle{model}=[circle,draw=none,fill=gray] + \tikzstyle{split}=[>=stealth,->,thick, draw=blueind] + \tikzstyle{merge}=[>=stealth,->,thick, draw=red] + \draw[step=1cm, help lines] (-2,-2) grid (2,2); + \node[model] (mode) at (0,0) {{\color{red}X}}; + + \onslide<2->{ + \draw[color=red, line width=1pt] (-1.5,-1.5) rectangle + ++(3,3); + } + \onslide<2-2>{ + + \node[model] (bottom_left) at (-1,-1) {}; + \node[model, opacity=0.6] (row_1) at (0,-1) {}; + \node[model, opacity=0.6] (col_1) at (-1,0) {}; + + \draw[split] (bottom_left) -- (col_1); + \draw[split] (-1.75,0) -- (col_1); + \draw[split] (bottom_left) -- (row_1); + \draw[split] (0,-1.75) -- (row_1); + + \node[model] (bottom_left) at (-1,-1) {}; + \node[model, draw=blue] (row_1) at (0,-1) {}; + \node[model, draw=blue] (col_1) at (-1,0) {}; + + \node[model, opacity=0.6] (row_2) at (1,-1) {}; + \node[model, opacity=0.6] (col_2) at (-1,1) {}; + + \draw[split] (col_1) -- (col_2); + \draw[split] (-1.75,1) -- (col_2); + \draw[split] (row_1) -- (row_2); + \draw[split] (1,-1.75) -- (row_2); + \draw[split] (row_1) -- (mode); + \draw[split] (col_1) -- (mode); + + \node[model, draw=blue] (row_2) at (1,-1) {}; + \node[model, draw=blue] (col_2) at (-1,1) {}; + \node[model, draw=blue] (mode) at (0,0) {{\color{red}X}}; + + \node[model, opacity=0.6] (row_3) at (1,0) {}; + \node[model, opacity=0.6] (col_3) at (0,1) {}; + + \draw[split] (col_2) -- (col_3); + \draw[split] (row_2) -- (row_3); + \draw[split] (mode) -- (row_3); + \draw[split] (mode) -- (col_3); + + \node[model, draw=blue] (row_3) at (1,0) {}; + \node[model, draw=blue] (col_3) at (0,1) {}; + + \node[model, opacity=0.6] (top_right) at (1,1) {}; + \draw[split] (col_3) -- (top_right); + \draw[split] (row_3) -- (top_right); + + \node[model, draw=blue] (top_right) at (1,1) {}; + } + \onslide<3->{ + \node[model, draw=mypurple] (top_right) at (1,1) {}; + \node[model, draw=mypurple] (row_3) at (1,0) {}; + \node[model, draw=mypurple] (col_3) at (0,1) {}; + \node[model, draw=mypurple] (row_2) at (1,-1) {}; + \node[model, draw=mypurple] (col_2) at (-1,1) {}; + \node[model, draw=mypurple] (mode) at (0,0) + {{\color{red}X}}; + \node[model, draw=red] (bottom_left) at (-1,-1) {}; + \node[model, draw=mypurple] (row_1) at (0,-1) {}; + \node[model, draw=mypurple] (col_1) at (-1,0) {}; + + \draw[merge] (1,1.75) -- (top_right); + \draw[merge] (1.75,1) -- (top_right); + \draw[merge] (0,1.75) -- (col_3); + \draw[merge] (1.75,0) -- (row_3); + \draw[merge] (1.75,-1) -- (row_2); + \draw[merge] (-1,1.75) -- (col_2); + + \draw[merge] (top_right) -- (col_3); + \draw[merge] (top_right) -- (row_3); + \draw[merge] (col_3) -- (col_2); + \draw[merge] (row_3) -- (row_2) ; + \draw[merge] (row_3) -- (mode); + \draw[merge] (col_3) -- (mode); + \draw[merge] (col_2) --(col_1); + \draw[merge] (row_2) -- (row_1); + \draw[merge] (mode) -- (row_1); + \draw[merge] (mode) -- (col_1); + \draw[merge] (col_1) -- (bottom_left); + \draw[merge] (row_1) -- (bottom_left); + } + \end{tikzpicture} + \end{column} + \end{columns} +\end{frame} + +\begin{frame} + \frametitle{Clustering de réseaux} + \begin{columns} + \begin{column}{0.2\linewidth} + \begin{block}{Objectif} + Déterminer une partition qui maximise la somme du BICL de ses + sous-collections. + \end{block} + \end{column} + \begin{column}{0.78\linewidth} + \begin{tikzpicture}[scale=0.6, every node/.style={scale=0.75}] + \tikzstyle{instruct}=[font=\small, text justified, + rectangle,draw,fill=yellow!50] + \tikzstyle{first_col}=[rectangle, text justified, + draw,fill=gray!50] + \tikzstyle{second_col}=[scale=0.55, circle, draw,fill=red!50] + \tikzstyle{test}=[font=\small, text justified, diamond, + aspect=2.5,thick, + draw=blue,fill=yellow!50,text=blue] + \tikzstyle{es}=[font=\small, text justified, + rectangle,draw,rounded corners=4pt,fill=cyanind!25] + + \node[es] (liste) at (0,4) {Donner une collection à + partitionner}; + \node[instruct, text width=5cm, below = 0.45cm of liste] + (1-collection) {Ajuster \emph{colBiSBM}}; + \node[first_col, right = 0.5cm of 1-collection] (1-col-obj) {}; + \node[instruct, text width=5cm, below = 0.45cm of 1-collection] + (dissimi) {Calculer une matrice de dissimilarité de la collection}; + \node[instruct, text width=5cm, below = 0.45cm of dissimi] + (2-sous-collection) {Séparer la \emph{collection en 2 sous-collections} et + ajuster les \emph{colBiSBM}}; + \node[second_col, right = 0.25cm of 2-sous-collection] + (1-sec-col-obj) {1}; + \node[second_col, right = 0.25cm of 1-sec-col-obj] + (1-sec-col-obj) {2}; + \node[test,below = 0.45cm of 2-sous-collection, scale=0.5] + (BICL-test) {$\sum_{i=1}^{2} + (\text{BIC-L}(\tikz[baseline=-0.25cm]{\node[second_col] {i};} )) > + \text{BIC-L}(\tikz[baseline=-0.25cm]{\node[first_col] {};})$?}; + \node[es, right = 0.55cm of BICL-test] (sortie) {Renvoyer + \tikz{\node[rectangle, draw, fill=gray!50, rounded corners=0pt] {};}}; + \node[es, left = 0.45cm of dissimi, text width = 2cm] + (recursion) {Recommencer sur \tikz{\node[second_col] {1};} et + \tikz{\node[second_col] {2};} }; + + \tikzstyle{suite}=[->,>=stealth,thick,rounded corners=4pt] + \draw[suite] (liste) -- (1-collection); + \draw[suite] (1-collection) -- (dissimi); + \draw[suite] (dissimi) -- (2-sous-collection); + \draw[suite] (2-sous-collection) -- (BICL-test); + \draw[suite] (BICL-test) -| node[near start, above, fill=none] + {Oui} (recursion); + \draw[suite] (recursion.north) |- (1-collection.west); + \draw[suite] (BICL-test) -- node[near start, above, fill=none] + {Non} (sortie); + + \end{tikzpicture} + \end{column} + \end{columns} + \blfootnote{Même approche + que~\cite{chabert-liddellLearningCommonStructures2023}} +\end{frame} + + +\begin{frame} + \frametitle{Application, données plantes pollinisateurs} + \small + Voici des résultats du modèle \emph{iid-colBiSBM} sur des données + plantes-pollinisateurs (\cite{doreRelativeEffectsAnthropogenic2021} + et~\cite{thebaultDatabasePlantpollinatorNetworks2020}) + % DONE Ajouter un tableau avec le nombre de réseaux dans chaque sous-collection + \begin{columns} + \begin{column}{0.49\linewidth} + \includegraphics[scale=0.30]{img/annual_time_span_vs_iid.png} + + \begin{center} + \begin{table} + \tiny + \begin{tabular}{ |c|c|c|c|c|c| } + \hline + \thead{N°de \\collection} & 1 & 2 & 3 & 4 & 5 \\ + \hline + \thead{Nombre de \\réseaux} & 38 & 45 & 1 & 20 & 19 \\ + \hline + \end{tabular} + \end{table} + + \end{center} + \end{column} + \begin{column}{0.49\linewidth} + \begin{figure}[H] + \includegraphics[width=0.45\textwidth]{img/iid-meso-1.png} + \includegraphics[width=0.45\textwidth]{img/iid-meso-2.png} + \includegraphics[width=0.45\textwidth]{img/iid-meso-3.png} + \includegraphics[width=0.45\textwidth]{img/iid-meso-4.png} + \includegraphics[width=0.30\textwidth]{img/iid-meso-5.png} + \caption{Connectivités de la partition} + \end{figure} + \end{column} + \end{columns} +\end{frame} + +\begin{frame} + \frametitle{Perspectives sur \emph{colSBM}} + % DONE Ajouter une slide conclusion perspective + % Rappeler les modeles avec clustering + % Evoquer l'analyse de reseaux corrigés pour l'échantillonnage + % Lien vers le package + + \begin{itemize} + \item 4 modèles dont 3 qui ont une flexibilité sur au moins une des + dimensions (adaptabilité aux données) + \item Partitionner un ensemble de réseaux selon leurs structures + \item Comparer les \emph{clusterings} de réseaux obtenus entre données + brutes et données corrigées (par exemple par la méthode + \emph{CoOPLBM}\footnote{~\cite{anakokDisentanglingStructureEcological2022}}) + \end{itemize} + + \bigskip + \centering + Le package est disponible sur GitHub : \faGithub + \url{https://github.com/Chabert-Liddell/colSBM} + + \bigskip + +\end{frame} diff --git a/presentation.pdf b/presentation.pdf index 4c9cc35..cafa3bc 100644 Binary files a/presentation.pdf and b/presentation.pdf differ diff --git a/presentation.tex b/presentation.tex index 5e17691..54ab3cc 100644 --- a/presentation.tex +++ b/presentation.tex @@ -1,5 +1,5 @@ \documentclass{beamer} -\usetheme{Boadilla} +\usetheme{PaloAlto} \usecolortheme{seahorse} % importations @@ -14,6 +14,7 @@ \usepackage{algorithm2e} % pour les algorithmes \usepackage{algpseudocode} % pour les algorithmes \usepackage{graphicx} +\usepackage{xcolor} % Couleurs \usepackage{float} % pour le placement des figure \usepackage{url} % pour une gestion efficace des url \usepackage{hyperref} % pour les hyperliens dans le document @@ -28,16 +29,31 @@ % Beamer -\setbeamertemplate{headline}{% - \begin{beamercolorbox}[ht=2.25ex,dp=3.75ex]{section in head/foot} - \insertnavigation{\paperwidth} - \end{beamercolorbox}% -}% +% \setbeamertemplate{headline}{% +% \begin{beamercolorbox}[ht=2.25ex,dp=3.75ex]{section in head/foot} +% \insertnavigation{\paperwidth} +% \end{beamercolorbox}% +% }% +\setbeamertemplate{headline}{} +% \setbeamertemplate{footline} +% {% +% \usebeamerfont{footline}% +% \usebeamercolor[fg]{footline}% +% \hspace{1em}% +% \insertframenumber/\inserttotalframenumber +% } +\setbeamertemplate{footline}{% + \hbox{% + \begin{beamercolorbox}[wd=\paperwidth, right]{title in head/foot}% + \tiny{\insertframenumber{}/\inserttotalframenumber} + \end{beamercolorbox} +} +} + -%\beamertemplatenavigationsymbolsempty % Pas de bar de navigation \setbeamerfont{caption}{size=\scriptsize} % Petit titre de figures \AtBeginSection[]{ - \begin{frame}[noframenumbering] + \begin{frame}[noframenumbering, plain] \vfill \centering \begin{beamercolorbox}[sep=8pt,center,shadow=true,rounded=true]{title} @@ -47,9 +63,22 @@ \end{frame} } +\AtBeginSubsection[]{ + \begin{frame}[noframenumbering, plain] + \vfill + \centering + \begin{beamercolorbox}[sep=8pt,center,shadow=true,rounded=true]{title} + \usebeamerfont{title}\subsecname\par% + \end{beamercolorbox} + \vfill + \end{frame} +} + + % bibliographie -\usepackage[style=apa,sorting=none]{biblatex} +\usepackage[style=apa,sorting=none,backend=biber]{biblatex} \addbibresource{references.bib} +\AtEveryCite{\color{blue}} % Tikz %% Tikz Related @@ -150,86 +179,105 @@ \begin{frame} \frametitle{Contexte écologique} \begin{itemize} - \item Faire de la détection de structure sur un réseau (SBM, LBM) mais - intérêt à le faire sur plusieurs \item De nombreux réseaux disponibles \parencite{WebLifeEcological} et - décrivant des interactions similaires. Par exemple des + décrivant des interactions similaires. Par exemple des interactions proies-prédateurs, plantes-pollinisateurs \dots + \item Ces réseaux permettent un suivi de la biodiversité, de détecter + et d'analyser la robustesse et les changements subies par ces + écosystèmes et notamment les risques d'effondrement de la + biodiversité. + \item En écologie microbienne, les réseaux sont construits sur la base + de co-occurences et reconstruits par inférence des liens mais + rarement par observation directe. + + \end{itemize} +\end{frame} + +\begin{frame}{Contexte mathématique} + \begin{itemize} + \item Faire de la détection de structure réseau par réseau de manière + agnostique (SBM, LBM) est bien connu. Mais il y a de l'intérêt à + le faire sur plusieurs : + \begin{itemize} + \item Des espèces différentes dans plusieurs réseaux pourrait + remplir des rôles similaires + \item Les petits réseaux pourraient bénéficier d'une estimation + avec des réseaux plus grands et révéler une structure plus + fine. + \item Certains réseaux étant moins bien échantillonnés que + d'autre une prise en compte en collection de réseaux pourrait + aider à transférer de l'information + + \end{itemize} \item Re-grouper les réseaux selon leur similarité (\emph{clustering} de réseaux) \item Transférer de l'information grâce à la collection (par exemple reconstitution de données manquantes) - \item Déterminer des structures d'interactions fines de manière - agnostique % Pas d'idee preco - %\item Vérifier si le regroupement est lié à des co-variables + \item Proposer des comparaisons en extrayant plus d'informations que + les métriques classiques \end{itemize} \end{frame} -\begin{frame}{Contexte mathématiques} - -\end{frame} - \subsection[Axe 1]{Axe 1 : Modèles à variables - latentes pour une collection de réseaux bipartites} + latentes pour une collection de réseaux bipartites} \label{sec:axe-1} -% TODO Demander si suppression car plus techniques qu'important -% \begin{frame} -% \frametitle{Réseaux bipartites} -% \begin{columns}[c] -% \begin{column}{0.48\textwidth} -% \centering -% Réseau bipartite\\ -% \begin{tikzpicture}[scale=.6] -% \tikzstyle{every edge}=[-,>=stealth',shorten -% >=1pt,auto,draw,line width=1.5pt] -% \tikzstyle{every state}=[draw, text=black,scale=0.95, transform -% shape] -% \tikzstyle{every state}=[draw=none,text=black,scale=0.75, -% transform shape] -% \tikzstyle{every node}=[fill=blueind] +\begin{frame} + \frametitle{Réseaux bipartites} + \begin{columns}[c] + \begin{column}{0.48\textwidth} + \centering + Réseau bipartite\\ + \begin{tikzpicture}[scale=.6] + \tikzstyle{every edge}=[-,>=stealth',shorten + >=1pt,auto,draw,line width=1.5pt] + \tikzstyle{every state}=[draw, text=black,scale=0.95, transform + shape] + \tikzstyle{every state}=[draw=none,text=black,scale=0.75, + transform shape] + \tikzstyle{every node}=[fill=blueind] -% \node[state, draw=black!50] (A1) at (0,5) {\textbf{R1}}; -% \node[state, draw=black!50] (A2) at (2.5,5) {\textbf{R2}}; -% \node[state, draw=black!50] (A3) at (5,5) {\textbf{R3}}; + \node[state, draw=black!50] (A1) at (0,5) {\textbf{R1}}; + \node[state, draw=black!50] (A2) at (2.5,5) {\textbf{R2}}; + \node[state, draw=black!50] (A3) at (5,5) {\textbf{R3}}; -% \tikzstyle{every node}=[fill=greenind, shape=rectangle] -% \tikzstyle{every state}=[draw=none,text=black,scale=0.75, -% transform shape, shape=rectangle] -% \node[state, draw=black!50] (B1) at (0,0) {\textbf{C1}}; -% \node[state, draw=black!50] (B2) at (1.25,0) {\textbf{C2}}; -% \node[state, draw=black!50] (B3) at (2.5,0) {\textbf{C3}}; -% \node[state, draw=black!50] (B4) at (3.75,0) {\textbf{C4}}; -% \node[state, draw=black!50] (B5) at (5,0) {\textbf{C5}}; -% \path (A1) edge [] (B1); -% \path (A1) edge (B2); -% \path (A1) edge (B3); -% \path (A1) edge (B4); -% \path (A2) edge (B3); -% \path (A2) edge (B4); -% \path (A3) edge (B5); -% \path (A2) edge (B5); -% \end{tikzpicture} -% \end{column} -% \hfill -% \begin{column}{0.48\linewidth} -% Matrice d'incidence -% \smallskip -% $X=\left( -% \begin{array}{rrrrr} -% 1 & 1 & 1 & 1 & 0 \\ -% 0 & 0 & 1 & 1 & 1 \\ -% 0 & 0 & 0 & 0 & 1 \\ -% \end{array}\right) -% $\\ -% \end{column} -% \end{columns} -% \smallskip -% Permet de décrire des interactions impliquant deux agents dont les rôles -% sont de natures différentes.\\ -% Par exemple : hôtes-parasites, plantes-pollinisateurs, graines-disperseurs -% \dots -% \end{frame} + \tikzstyle{every node}=[fill=greenind, shape=rectangle] + \tikzstyle{every state}=[draw=none,text=black,scale=0.75, + transform shape, shape=rectangle] + \node[state, draw=black!50] (B1) at (0,0) {\textbf{C1}}; + \node[state, draw=black!50] (B2) at (1.25,0) {\textbf{C2}}; + \node[state, draw=black!50] (B3) at (2.5,0) {\textbf{C3}}; + \node[state, draw=black!50] (B4) at (3.75,0) {\textbf{C4}}; + \node[state, draw=black!50] (B5) at (5,0) {\textbf{C5}}; + \path (A1) edge [] (B1); + \path (A1) edge (B2); + \path (A1) edge (B3); + \path (A1) edge (B4); + \path (A2) edge (B3); + \path (A2) edge (B4); + \path (A3) edge (B5); + \path (A2) edge (B5); + \end{tikzpicture} + \end{column} + \hfill + \begin{column}{0.48\linewidth} + Matrice d'incidence + \smallskip + $X=\left( + \begin{array}{rrrrr} + 1 & 1 & 1 & 1 & 0 \\ + 0 & 0 & 1 & 1 & 1 \\ + 0 & 0 & 0 & 0 & 1 \\ + \end{array}\right) + $\\ + \end{column} + \end{columns} + \smallskip + Permet de décrire des interactions impliquant deux agents dont les rôles + sont de natures différentes.\\ + Par exemple : hôtes-parasites, plantes-pollinisateurs, graines-disperseurs + \dots +\end{frame} \begin{frame} \frametitle{Collections bipartites} @@ -453,7 +501,6 @@ \end{block} \end{frame} - \begin{frame} \frametitle{Application, données plantes pollinisateurs} \small @@ -492,27 +539,95 @@ \end{columns} \end{frame} +\begin{frame} + \begin{block}{Apport déjà réalisé} + \small + \begin{itemize} + \item Adaptation du modèle mathématique\footnote{\scalebox{0.8}{Notamment des formules des étapes VE + et M et du calcul de dissimilarité.}} proposé par + \cite{chabert-liddellLearningCommonStructures2023} aux réseaux bipartites + \item Développement algorithmique pour l'exploration de l'espace de + paramètres. + \item Écriture du code de la partie bipartite s'intégrant + au package\footnote{\scalebox{0.8}{\faGithub + \url{https://github.com/Chabert-Liddell/colSBM}}} écrit par Saint-Clair Chabert-Liddell. + \end{itemize} + \end{block} + + \begin{block}{À finir/à faire} + \small + \begin{itemize} + \item Finaliser l'analyse d'applications sur données réelles + commencée sur \cite{doreRelativeEffectsAnthropogenic2021, + thebaultDatabasePlantpollinatorNetworks2020} avec les + interprétations des écologues. + \item Preuve d'identifiabilité du modèle + \parencite{chabert-liddellLearningCommonStructures2023, + celisseConsistencyMaximumlikelihoodVariational2012, + keribinEstimationSelectionLatent2015, + braultCoclusteringLatentBloc2015} + \end{itemize} + \end{block} + +\end{frame} + \subsection[Axe 2]{Axe 2 : Embedding de n\oe uds par - apprentissage profond pour comparaison des topologies de réseaux} + apprentissage profond pour comparaison des topologies de réseaux} \label{sec:axe-2} +\begin{frame}[allowframebreaks] + TODO Ici une illustration des GCN + + + En utilisant les \emph{Graph Convolutional Networks} (GCN) + il est possible de réaliser un \emph{embedding} ou plongement des graphes + \parencite{velickovicGraphAttentionNetworks2018,hamiltonInductiveRepresentationLearning, xuHowPowerfulAre2019} en + tenant compte des invariances qui sont inhérentes à ces objets. + + \begin{block}{Règle de propagation d'une couche de GCN} + \begin{equation} + H^{(l+1)} = \sigma \bigl( \tilde{D}^{\frac{1}{2}} \tilde{A} \tilde{D}^{\frac{1}{2}} H^{(l)} W^{(l)} \bigr), + \end{equation} + tirée de \cite{kipfSemiSupervisedClassificationGraph2017}. + \end{block} + + Permettant derrière d'appliquer, par exemple, des auto-encodeur + variationnels ou VAE \parencite{ + kipfVariationalGraphAutoEncoders2016, + kipfSemiSupervisedClassificationGraph2017} par exemple et + donc permettant d'obtenir par réseau une distribution. Cela permet alors + par exemple de calculer une distance de Gromov-Wasserstein afin de comparer + les réseaux et de pouvoir réaliser un \emph{clustering} ou une + classification. + + Un des avantages principaux est le passage à l'échelle de ces méthodes + permettant de traiter des réseaux de plus grande taille. +\end{frame} + \subsection[Axe 3]{Axe 3 : Inférence jointe de réseaux} \label{sec:axe-3} +\begin{frame} +\end{frame} \section{Organisation de la thèse} \label{sec:organisation-these} \begin{frame} \begin{block}{Planning prévisionnel de la thèse} TODO Ici une timeline + \begin{itemize} + \item Axe 1 : Oct. 2024 -- Oct. 2025 + \item Axe 2 : Oct. 2025 -- Oct. 2026 + \item Axe 3 : Avril 2026 -- Avril 2027 + \item Rédaction du manuscrit de thèse : Avril 2027 -- Octobre 2027 + \end{itemize} \end{block} \begin{block}{Financement} - L'INRAE, par le département MathNum donne 50\% des financements de la - thèse. + L'INRAE, par le département MathNum accorde déjà 50\% des financements + de la thèse. \end{block} \end{frame} -\section*{Remerciements} \begin{frame}[noframenumbering] \vfill \centering @@ -528,843 +643,6 @@ \appendix -\section{Modèles à variables latentes pour collection de réseaux bipartites} -\begin{frame} - \frametitle{Latent Block Model (LBM\footnotemark[2])} - %DONE remplacer i \in bullet par Zi = \bullet - Proposé par~\cite{govaertEMAlgorithmBlock2005}. - \begin{columns} - \begin{column}{0.40\linewidth} - \begin{figure}[H] - \center - \begin{tikzpicture}[scale=0.35] - \tikzstyle{every state}=[draw, text=black,scale=0.95, - transform shape] - \tikzstyle{every state}=[draw=none,text=black,scale=0.75, - transform shape] - \tikzset{edge_proba/.style={draw=white, fill=none, - text=black}} - - \tikzstyle{every node}=[fill=blueind] - \node[edge_proba] (pi1) at (1,5.7) - {\textbf{$\pi_{{\color{blueind}\bullet}}$}}; - \node[state, draw=black!50] (R11) at (0,5) {\textbf{R11}}; - \node[state, draw=black!50] (R12) at (1,5) {\textbf{R12}}; - \node[state, draw=black!50] (R13) at (2,5) {\textbf{R13}}; - - \tikzstyle{every node}=[fill=cyanind] - \node[edge_proba] (pi2) at (6.75,5.7) - {\textbf{$\pi_{{\color{cyanind}\bullet}}$}}; - \node[state, draw=black!50] (R21) at (6.25,5) - {\textbf{R21}}; - \node[state, draw=black!50] (R22) at (7.25,5) - {\textbf{R22}}; - - \tikzstyle{every node}=[fill=electricblue] - \node[edge_proba] (pi3) at (10,5.7) - {\textbf{$\pi_{{\color{electricblue}\bullet}}$}}; - \node[state, draw=black!50] (R31) at (10,5) {\textbf{R31}}; - - \tikzstyle{every node}=[fill=burntorange, shape=rectangle] - \node[edge_proba] (pi3) at (0.5,-0.7) - {\textbf{$\rho_{{\color{burntorange}\bullet}}$}}; - \tikzstyle{every state}=[draw=none,text=black,scale=0.75, - transform shape, shape=rectangle] - \node[state, draw=black!50] (B1) at (0,0) {\textbf{C11}}; - \node[state, draw=black!50] (B2) at (1,0) {\textbf{C12}}; - \tikzstyle{every node}=[fill=goldenyellow, shape=rectangle] - \node[edge_proba] (pi3) at (4,-0.7) - {\textbf{$\rho_{{\color{goldenyellow}\bullet}}$}}; - \node[state, draw=black!50] (B3) at (3.5,0) {\textbf{C21}}; - \node[state, draw=black!50] (B4) at (4.5,0) {\textbf{C22}}; - \tikzstyle{every node}=[fill=peach, shape=rectangle] - \node[edge_proba] (pi3) at (10,-0.7) - {\textbf{$\rho_{{\color{peach}\bullet}}$}}; - \node[state, draw=black!50] (B5) at (10,0) {\textbf{C31}}; - - \tikzstyle{every edge}=[-,>=stealth',shorten - >=1pt,auto,draw,line width=1.5pt,draw opacity=0.2] - - \path (R11) edge[-,>=stealth',shorten - >=1pt,auto,draw=gray,line width=1.5pt, fill=gray, opacity=1] node[left, - fill=none] {$\alpha_{{\color{blueind}\bullet}{\color{burntorange}\bullet}}$} - (B1); - \path (R11) edge (B2); - \path (R11) edge (B3); - \path (R11) edge (B4); - - \path (R12) edge [] (B1); - \path (R12) edge (B2); - \path (R12) edge (B3); - \path (R12) edge (B4); - - \path (R13) edge [] (B1); - \path (R13) edge (B2); - \path (R13) edge (B3); - \path (R13) edge[-,>=stealth',shorten - >=1pt,auto,draw=gray,line width=1.5pt, fill=gray, opacity=1] node[midway, left, - fill=none] {$\alpha_{{\color{blueind}\bullet}{\color{goldenyellow}\bullet}}$} - (B4); - - \path (R21) edge[-,>=stealth',shorten - >=1pt,auto,draw=gray,line width=1.5pt, fill=gray, opacity=1] node[midway, - right, fill=none] - {$\alpha_{{\color{cyanind}\bullet}{\color{goldenyellow}\bullet}}$} (B3); - \path (R21) edge (B4); - \path (R21) edge (B5); - - \path (R22) edge (B3); - \path (R22) edge (B4); - \path (R22) edge[-,>=stealth',shorten - >=1pt,auto,draw=gray,line width=1.5pt, fill=gray, opacity=1] node[midway, left, - fill=none] {$\alpha_{{\color{cyanind}\bullet}{\color{peach}\bullet}}$} (B5); - - \path (R31) edge[-,>=stealth',shorten - >=1pt,auto,draw=gray,line width=1.5pt, fill=gray, opacity=1] node[midway, - right, fill=none] - {$\alpha_{{\color{electricblue}\bullet}{\color{peach}\bullet}}$} (B5); - - \end{tikzpicture} - \caption{Exemple de LBM\footnotemark} - \label{fig:LBMvisu} - \end{figure} - \end{column} - \begin{column}{0.51\linewidth} - Pour \begin{itemize} - \item $Q_1 = - |\{{\color{blueind}\bullet},{\color{cyanind}\bullet},{\color{electricblue}\bullet}\}|$ - blocs fixés en ligne - \item $Q_2 = - |\{{\color{burntorange}\bullet},{\color{goldenyellow}\bullet},{\color{peach}\bullet}\}|$ - blocs fixés en colonne - \end{itemize} - \begin{block}{Paramètres} - \begin{itemize} - \item $\pi_{\bullet} = \mathbb{P}(Z_i = \bullet)$ en ligne - et $\rho_{\bullet} = \mathbb{P}(W_j = \bullet)$ en colonne - \item - $\alpha_{{\color{blueind}\bullet}{\color{burntorange}\bullet}} = - \mathbb{P}(X_{ij} = 1 | Z_i = {\color{blueind}\bullet}, W_j = - {\color{burntorange}\bullet})$ - \end{itemize} - \end{block} - \end{column} - \end{columns} - - \footnotetext{Que j'appellerai par la suite BiSBM} - -\end{frame} -\begin{frame} - \frametitle{\emph{colSBM}} - Le modèle \emph{colSBM} - \parencite{chabert-liddellLearningCommonStructures2023}.\\ - % Difficulté estimer les parametres - - % DONE Modifier les realisations pour variabilite, mettre iid au dessus du sim et inverser modele et realisations - \smallskip - \definecolor{yellow}{RGB}{255,190,60} - \begin{center} - \begin{adjustbox}{trim=0 0 0 1cm} - \begin{tikzpicture}[scale=.32] - \tikzstyle{every edge}=[-,>=stealth',shorten - >=1pt,auto,draw,line width=.5pt, bend left] - \tikzstyle{every state}=[draw, text=black,scale=0.95, transform - shape] - \tikzset{edge_proba/.style={draw=white, fill=none, text=black}} - - \tikzstyle{every node}=[fill=yellow] - \node[state, draw=black!50] (A1) at (0,2) {\textbf{A1}}; - \node[state, draw=black!50] (A2) at (1.5, 2) {\textbf{A2}}; - \node[state, draw=black!50] (A3) at (0.75,3.25) {\textbf{A3}}; - - \tikzstyle{every node}=[fill=blueind] - \node[state, draw=black!50] (B1) at (4.5,3) {\textbf{B1}}; - \node[state, draw=black!50] (B2) at (4,4.75) {\textbf{B2}}; - \node[state, draw=black!50] (B3) at (5.5,6) {\textbf{B3}}; - \node[state, draw=black!50] (B4) at (7,4.75) {\textbf{B4}}; - \node[state, draw=black!50] (B5) at (6.5,3) {\textbf{B5}}; - - \tikzstyle{every node}=[fill=greenind] - \node[state, draw=black!50] (C1) at (5,0) {\textbf{C1}}; - \node[state, draw=black!50] (C2) at (7,1) {\textbf{C2}}; - - \path (A1) edge[bend right] (A2); - \path (A1) edge node[midway, left, fill=none] - {$\alpha_{{\color{yellow}\bullet}{\color{yellow}\bullet}}$} (A3); - \path (A3) edge (A2); - - \path (A3) edge node[midway, above, fill=none] - {$\alpha_{{\color{yellow}\bullet}{\color{blueind}\bullet}}$} (B3); - - \path (B1) edge (B2); - \path (B2) edge (B3); - \path (B3) edge (B4); - \path (B4) edge (B5); - \path (B5) edge (B1); - - \path (B1) edge[bend left=0] (B4); - \path (B5) edge[bend left=0] (B2); - - \path (A2) edge[bend right] node[midway, below, fill=none] - {$\alpha_{{\color{yellow}\bullet}{\color{greenind}\bullet}}$} (C1); - \path (C1) edge[bend right] node[midway, below, fill=none] - {$\alpha_{{\color{greenind}\bullet}{\color{greenind}\bullet}}$} (C2); - \path (C2) edge[bend right] node[midway, right, fill=none] - {$\alpha_{{\color{greenind}\bullet}{\color{blueind}\bullet}}$} (B4); - - \node[font=\small, text justified,draw=none, fill=none] at - (4.5,-1.5) {SBM}; - - % Sampled network - \begin{scope}[xshift=-16cm,yshift=4cm] - \node[font=\small, text justified, fill=none] at (10, -2.5) - {$\overset{iid}{\sim}$}; - \tikzstyle{every node}=[fill=gray, scale=0.95] - \tikzstyle{every edge}=[-,>=stealth',shorten - >=1pt,auto,draw,line width=.5pt, bend left] - \tikzstyle{every state}=[draw, text=black,scale=0.95, - transform shape] - - \node[state, draw=black!50] (A1) at (0,0) {\textbf{10}}; - \node[state, draw=black!50] (A2) at (1, 0) {\textbf{2}}; - \node[state, draw=black!50] (A3) at (0.5,1) {\textbf{5}}; - - \node[state, draw=black!50] (B2) at (2,2.75) {\textbf{9}}; - \node[state, draw=black!50] (B3) at (3.5,4) {\textbf{6}}; - \node[state, draw=black!50] (B4) at (5,2.75) {\textbf{3}}; - \node[state, draw=black!50] (B5) at (4.5,1) {\textbf{7}}; - - \node[state, draw=black!50] (C1) at (3,-0.5) {\textbf{4}}; - - \path (A1) edge[bend right] (A2); - \path (A1) edge (A3); - \path (A3) edge (A2); - - \path (A3) edge (B3); - - \path (B2) edge (B3); - \path (B3) edge (B4); - \path (B4) edge (B5); - - \path (B5) edge[bend left=0] (B2); - - \path (A2) edge[bend right] (C1); - - \node[text width=3cm,font=\small, text justified, - rotate=90, fill=none, below = -0.8cm of C1] (dots) {\dots}; - - \end{scope} - \begin{scope}[xshift=-16cm,yshift=-4cm] - \tikzstyle{every node}=[fill=gray, scale=0.95] - \tikzstyle{every edge}=[-,>=stealth',shorten - >=1pt,auto,draw,line width=.5pt, bend left] - \tikzstyle{every state}=[draw, text=black,scale=0.95, - transform shape] - - \node[state, draw=black!50] (A2) at (1, 0) {\textbf{2}}; - \node[state, draw=black!50] (A3) at (0.5,1) {\textbf{1}}; - - \node[state, draw=black!50] (B1) at (2.5,1) {\textbf{5}}; - \node[state, draw=black!50] (B2) at (2,2.75) {\textbf{10}}; - \node[state, draw=black!50] (B4) at (5,2.75) {\textbf{8}}; - \node[state, draw=black!50] (B5) at (4.5,1) {\textbf{7}}; - - \node[state, draw=black!50] (C2) at (5,0) {\textbf{3}}; - - \path (A3) edge (A2); - - \path (B1) edge (B2); - \path (B4) edge (B5); - \path (B5) edge (B1); - - \path (B1) edge[bend left=0] (B4); - \path (B5) edge[bend left=0] (B2); - - \path (C2) edge[bend right] (B4); - \end{scope} - \end{tikzpicture} - \end{adjustbox} - \end{center} - Pour $Q = - |\{{\color{yellow}\bullet},{\color{blueind}\bullet},{\color{greenind}\bullet}\}|$ - blocs fixés : - \begin{block}{Paramètres} - \begin{itemize} - \item $\pi_{\bullet} = \mathbb{P}(Z_i =\bullet)$ - \item $\alpha_{{\color{greenind}\bullet}{\color{blueind}\bullet}} = - \mathbb{P}(X_{ij} = 1 | Z_i = {\color{greenind}\bullet}, Z_j = - {\color{blueind}\bullet})$ - \end{itemize} - \end{block} -\end{frame} - -\begin{frame} - \frametitle{Collections bipartites} - \begin{center} - \begin{adjustbox}{trim=0 0 1 1.5cm} - \begin{tikzpicture}[scale=.33] - \begin{scope}[xshift=18cm, yshift=2cm] - \tikzstyle{every state}=[draw=none, text=black,scale=0.75, - transform shape] - \tikzset{edge_proba/.style={draw=white, fill=none, - text=black}} - - \tikzstyle{every node}=[fill=blueind] - \node[edge_proba] (pi1) at (1,5.7) - {\textbf{$\pi_{{\color{blueind}\bullet}}$}}; - \node[state, draw=black!50] (R11) at (0,5) {\textbf{R11}}; - \node[state, draw=black!50] (R12) at (1,5) {\textbf{R12}}; - \node[state, draw=black!50] (R13) at (2,5) {\textbf{R13}}; - - \tikzstyle{every node}=[fill=cyanind] - \node[edge_proba] (pi2) at (6.75,5.7) - {\textbf{$\pi_{{\color{cyanind}\bullet}}$}}; - \node[state, draw=black!50] (R21) at (6.25,5) - {\textbf{R21}}; - \node[state, draw=black!50] (R22) at (7.25,5) - {\textbf{R22}}; - - \tikzstyle{every node}=[fill=electricblue] - \node[edge_proba] (pi3) at (10,5.7) - {\textbf{$\pi_{{\color{electricblue}\bullet}}$}}; - \node[state, draw=black!50] (R31) at (10,5) {\textbf{R31}}; - - \tikzstyle{every node}=[fill=burntorange, shape=rectangle] - \node[edge_proba] (rho1) at (0.5,-1) - {\textbf{$\rho_{{\color{burntorange}\bullet}}$}}; - \tikzstyle{every state}=[draw=none,text=black,scale=0.75, - transform shape, shape=rectangle] - \node[state, draw=black!50] (B1) at (0,0) {\textbf{C11}}; - \node[state, draw=black!50] (B2) at (1,0) {\textbf{C12}}; - \tikzstyle{every node}=[fill=goldenyellow, shape=rectangle] - \node[edge_proba] (rho2) at (4,-1) - {\textbf{$\rho_{{\color{goldenyellow}\bullet}}$}}; - \node[state, draw=black!50] (B3) at (3.5,0) {\textbf{C21}}; - \node[state, draw=black!50] (B4) at (4.5,0) {\textbf{C22}}; - \tikzstyle{every node}=[fill=peach, shape=rectangle] - \node[edge_proba] (rho3) at (10,-1) - {\textbf{$\rho_{{\color{peach}\bullet}}$}}; - \node[state, draw=black!50] (B5) at (10,0) {\textbf{C31}}; - - \node[font=\small, text justified,draw=none, fill=none, - below = 0.05cm of rho2] {BiSBM}; - - \tikzstyle{every edge}=[-,>=stealth',shorten - >=1pt,auto,draw,line width=1.5pt,draw opacity=0.2] - - \path (R11) edge (B2); - \path (R11) edge (B3); - \path (R11) edge (B4); - - \path (R12) edge [] (B1); - \path (R12) edge (B2); - \path (R12) edge (B3); - \path (R12) edge (B4); - - \path (R13) edge [] (B1); - \path (R13) edge (B2); - \path (R13) edge (B3); - - \path (R21) edge (B4); - \path (R21) edge (B5); - - \path (R22) edge (B3); - \path (R22) edge (B4); - - \path (R11) edge[-,>=stealth',shorten - >=1pt,auto,draw=gray,line width=1.5pt, fill=gray, opacity=1] node[left, - fill=none] {$\alpha_{{\color{blueind}\bullet}{\color{burntorange}\bullet}}$} - (B1); - \path (R13) edge[-,>=stealth',shorten - >=1pt,auto,draw=gray,line width=1.5pt, fill=gray, opacity=1] node[midway, left, - fill=none] {$\alpha_{{\color{blueind}\bullet}{\color{goldenyellow}\bullet}}$} - (B4); - \path (R21) edge[-,>=stealth',shorten - >=1pt,auto,draw=gray,line width=1.5pt, fill=gray, opacity=1] node[midway, - anchor=center, fill=none] - {$\alpha_{{\color{cyanind}\bullet}{\color{goldenyellow}\bullet}}$} (B3); - \path (R22) edge[-,>=stealth',shorten - >=1pt,auto,draw=gray,line width=1.5pt, fill=gray, opacity=1] node[midway, left, - fill=none] {$\alpha_{{\color{cyanind}\bullet}{\color{peach}\bullet}}$} (B5); - \path (R31) edge[-,>=stealth',shorten - >=1pt,auto,draw=gray,line width=1.5pt, fill=gray, opacity=1] node[midway, - right, fill=none] - {$\alpha_{{\color{electricblue}\bullet}{\color{peach}\bullet}}$} (B5); - \end{scope} - - \begin{scope}[xshift=3cm, yshift = 1cm] - \node[text justified, fill=none] at (10, 3.5) - {$\overset{iid}{\sim}$}; - \begin{scope}[yshift = 6cm] - \tikzstyle{every state}=[draw, text=black,scale=0.75, - transform shape] - - \tikzstyle{every node}=[fill=gray] - \node[state, draw=black!50] (R11) at (0,1.25) - {\textbf{1}}; - \node[state, draw=black!50] (R12) at (1,1.25) - {\textbf{2}}; - \node[state, draw=black!50] (R13) at (2,1.25) - {\textbf{3}}; - \node[state, draw=black!50] (R21) at (3,1.25) - {\textbf{4}}; - \node[state, draw=black!50] (R31) at (5,1.25) - {\textbf{6}}; - - \tikzstyle{every - state}=[draw=none,text=black,scale=0.75, transform shape, shape=rectangle] - \node[state, draw=black!50] (B1) at (0.5,-1) - {\textbf{1}}; - - \node[state, draw=black!50] (B31) at (2.5,-1) - {\textbf{3}}; - \node[state, draw=black!50] (B4) at (3.5,-1) - {\textbf{4}}; - - \node[state, draw=black!50] (B5) at (4.5,-1) - {\textbf{5}}; - - \tikzstyle{every edge}=[-,>=stealth',shorten - >=1pt,auto,draw,line width=1pt, draw=gray, fill=gray] - \path (R11) edge (B1); - \path (R11) edge (B31); - \path (R11) edge (B4); - - \path (R12) edge [] (B1); - \path (R12) edge (B31); - \path (R12) edge (B4); - - \path (R13) edge [] (B1); - \path (R13) edge (B31); - \path (R13) edge (B4); - - \path (R21) edge (B31); - \path (R21) edge (B4); - \path (R21) edge (B5); - - \path (R31) edge (B5); - \end{scope} - \node[text width=3cm,font=\small, text justified, - rotate=90, fill=none] (dots) at (2.5, 7.5){\dots}; - - \begin{scope}[yshift = 0cm] - \tikzstyle{every state}=[draw, text=black,scale=0.75, - transform shape] - - \tikzstyle{every node}=[fill=gray] - \node[state, draw=black!50] (R11) at (0,2.25) - {\textbf{4}}; - \node[state, draw=black!50] (R13) at (2,2.25) - {\textbf{6}}; - \node[state, draw=black!50] (R21) at (3,2.25) - {\textbf{3}}; - \node[state, draw=black!50] (R22) at (4,2.25) - {\textbf{5}}; - \node[state, draw=black!50] (R31) at (5,2.25) - {\textbf{2}}; - - \tikzstyle{every - state}=[draw=none,text=black,scale=0.75, transform shape, shape=rectangle] - \node[state, draw=black!50] (B1) at (0.5,0) - {\textbf{5}}; - \node[state, draw=black!50] (B2) at (1.5,0) - {\textbf{1}}; - - \node[state, draw=black!50] (B4) at (3.5,0) - {\textbf{2}}; - - \node[state, draw=black!50] (B5) at (4.5,0) - {\textbf{4}}; - - \tikzstyle{every edge}=[-,>=stealth',shorten - >=1pt,auto,draw,line width=1pt, draw=gray, fill=gray] - \path (R11) edge (B1); - \path (R11) edge (B2); - \path (R11) edge (B4); - - \path (R13) edge [] (B1); - \path (R13) edge (B2); - \path (R13) edge (B4); - - \path (R21) edge (B4); - \path (R21) edge (B5); - - \path (R22) edge (B4); - \path (R22) edge (B5); - - \path (R31) edge (B5); - \end{scope} - \end{scope} - \end{tikzpicture} - \end{adjustbox} - \end{center} - - Pour - \begin{itemize} - \item $Q_1 = - |\{{\color{blueind}\bullet},{\color{cyanind}\bullet},{\color{electricblue}\bullet}\}|$ - blocs fixés en ligne - \item $Q_2 = - |\{{\color{burntorange}\bullet},{\color{goldenyellow}\bullet},{\color{peach}\bullet}\}|$ - blocs fixés en colonne - \end{itemize} - \begin{block}{Paramètres} - \begin{itemize} - \item $\pi_{\bullet} = \mathbb{P}(Z_i =\bullet)$ en ligne et - $\rho_{\bullet} = \mathbb{P}(W_j = \bullet)$ en colonne - \item - $\alpha_{{\color{blueind}\bullet}{\color{burntorange}\bullet}} = - \mathbb{P}(X_{ij} = 1 | Z_i = {\color{blueind}\bullet}, W_j = - {\color{burntorange}\bullet})$ - \end{itemize} - \end{block} -\end{frame} - -\begin{frame} - \frametitle{Différents modèles} - \begin{block}{\emph{iid-colBiSBM}} - $\bm{\pi} = (\pi_1, \dots \pi_{Q_1})$ et $\bm{\rho} = (\rho_1, \dots - \rho_{Q_2})$ %{$\forall q \in \llbracket 1, Q_1 - 1\rrbracket, \pi_q > 0$ et $\forall r \in \llbracket 1, Q_2 - 1\rrbracket, \rho_r > 0$} - , tous les réseaux partagent les mêmes paramètres\footnotemark - \end{block} - - \begin{block}{\emph{$\pi\rho$-colBiSBM}} - $\bm{\pi} = ((\pi_{\color{black}1}^{\color{red}m}, \dots - \pi_{\color{black}Q_1}^{\color{red}m}))_{m=1,\dots M}$ et $\bm{\rho} = - ((\rho_{\color{black}1}^{\color{red}m}, \dots - \rho_{\color{black}Q_2}^{\color{red}m}))_{m=1,\dots M}$ - %{$\forall q \in \llbracket 1, Q_1 - 1\rrbracket, \pi_q > 0$ et $\forall r \in \llbracket 1, Q_2 - 1\rrbracket, \rho_r > 0$} - \small \\ - avec $\forall q,m \in \llbracket 1, Q_1 \rrbracket \times \llbracket 1, - M \rrbracket, \pi_q^m \in \left[ 0,1 \right]$ - et $\forall r,m \in \llbracket 1, Q_2 \rrbracket \times \llbracket 1, M - \rrbracket, \rho_r^m \in \left[ 0,1 \right]$ - \end{block} - Et également deux autres modèles ($\pi$-colBiSBM et $\rho$-colBiSBM) où - seulement une des deux dimensions est libre. - \footnotetext{Dans tous les modèles la structure de connectivité est - supposée identique au sein de la collection.} -\end{frame} -\begin{frame} - \frametitle{Estimation des paramètres} - % DONE dire que tau i q m c' est la proba que Zim = q, approximation de la proba variationnelle. Parce qu on impose lindependance - Maximisation d'une borne inférieure de la log-vraisemblance des données - observées. - \begin{multline*} - \ell (\bm{X};\bm{\theta}) \geq \color{red}\sum_{m=1}^{M} \bigg( - \color{black} \sum_{i = 1}^{n_1^m}\sum_{j=1}^{n_2^m}\sum_{q \in - \mathcal{Q}_{1,m}} \sum_{r \in \mathcal{Q}_{2,m}} \tau^{1,m}_{i,q} - \tau^{2,m}_{j,r} \log f(X^{m}_{ij}; \alpha_{qr}) \\ - + \sum_{i=1}^{n_1^m} \sum_{q \in \mathcal{Q}_{1,m}} \tau^{1,m}_{i,q} - \log \pi_{\color{black}q}^{\color{gray}m} + \sum_{j=1}^{n_2^m} \sum_{r \in - \mathcal{Q}_{2,m}} \tau^{2,m}_{j,r} \log \rho_{\color{black}r}^{\color{gray}m} - \\ - - \sum_{i=1}^{n_1} \tau^{1,m}_{i,q} \log \tau^{1,m}_{i,q} - - \sum_{j=1}^{n_2} \tau^{2,m}_{j,r} \log \tau^{2,m}_{j,r} \color{red}\bigg) - \color{black} =: J(\bm{\tau};\bm{\theta}) $$ - \end{multline*} - - \begin{block}{Approximation variationnelle} - $\tau_{i,q}^{1,m} = P(Z_i = q | X^m_{ij})$ et $\tau_{j,r}^{2,m} = P(W_j - = r | X^m_{ij})$ tels que $P(Z_i = q, W_j = r | X^m_{ij}) = - \tau_{i,q}^{1,m}\times\tau_{j,r}^{2,m}$ - \end{block} - -\end{frame} - -\begin{frame} - \frametitle{Sélection de modèle : choix de $(Q_1,Q_2)$ - Approche - gloutonne} - % DONE But maximiser un critere le BICL, deplacer voir St Clair dans la note - % VEM a Q1 Q2 fixer - % Choix de Q1 Q2 par maximisation du BICL - % Itemize dans la box : init, explo voisin, arrets - \underline{Le VEM se fait à $Q_1, Q_2$ fixés}, il faut donc déterminer les - \enquote*{meilleures} coordonnées. - Nous maximisons un BIC-L\footnote{\emph{Bayesian Information Criterion - - Like}, en adaptant les formules - de~\cite{chabert-liddellLearningCommonStructures2023}}. - - Détermination d'un premier mode par approche \emph{gloutonne} \smallskip - \begin{columns} - \begin{column}{0.5\linewidth} - \begin{tikzpicture} - \draw[step=1cm, help lines] (-2,-2) grid (2,2); - \draw[fill=gray, draw=gray] (0,0) circle [radius=0.225cm]; - \draw[fill=blueind, draw=blueind] (1,0) circle - [radius=0.225cm]; - \draw[fill=blueind, draw=blueind] (0,1) circle - [radius=0.225cm]; - \draw[fill=red, draw=red] (-1,0) circle [radius=0.225cm]; - \draw[fill=red, draw=red] (0,-1) circle [radius=0.225cm]; - - % Légende - \node[font=\tiny, text justified,fill=none, rotate=-45] - (Splits) at (0.5,0.5){{\color{blueind} Splits}}; - \node[font=\tiny, text justified,fill=none, rotate=-45] - (Merges) at (-0.5,-0.5){{\color{red} Merges}}; - - % Splitting - \draw[>=stealth,->,thick, draw=blueind] (0.225,0) -- +(0.55,0); - \draw[>=stealth,->,thick, draw=blueind] (0,0.225) -- +(0,0.55); - - % Merging - \draw[>=stealth,->,thick, draw=red] (-0.225,0) -- +(-0.55,0); - \draw[>=stealth,->,thick, draw=red] (0,-0.225) -- +(0,-0.55); - - % Axes - \draw[>=to,->,thick] (-2,-2) -- +(1,0); - \node[font=\small, fill=none] (Q_1) at (-0.75,-2) {$Q_1$}; - \draw[>=to,->,thick] (-2,-2) -- +(0,1); - \node[font=\small, fill=none] (Q_2) at (-2,-0.75) {$Q_2$}; - - \end{tikzpicture} - \end{column} - \begin{column}{0.5\linewidth} - \begin{block}{Exploration gloutonne} - \begin{itemize} - \item Initialisation sur $(1,2)$ et $(2,1)$ - \item Exploration des 4 voisins et déplacement sur le - meilleur des 4 - \item Arrêt après 2 étapes successives sans augmentation du - BIC-L - \end{itemize} - \end{block} - \end{column} - \end{columns} -\end{frame} -\begin{frame} - \frametitle{Sélection de modèle : choix de $(Q_1,Q_2)$ - Fenêtre glissante} - \begin{columns} - \begin{column}{0.60\linewidth} - \begin{figure} - \includegraphics[scale=0.18]{img/moving_window.png} - \caption{Exemple de parcours de fenêtre glissante} - \end{figure} - \end{column} - \begin{column}{0.4\linewidth} - \definecolor{mypurple}{RGB}{128,0,128} - \begin{tikzpicture} - - \tikzstyle{model}=[circle,draw=none,fill=gray] - \tikzstyle{split}=[>=stealth,->,thick, draw=blueind] - \tikzstyle{merge}=[>=stealth,->,thick, draw=red] - \draw[step=1cm, help lines] (-2,-2) grid (2,2); - \node[model] (mode) at (0,0) {{\color{red}X}}; - - \onslide<2->{ - \draw[color=red, line width=1pt] (-1.5,-1.5) rectangle - ++(3,3); - } - \onslide<2-2>{ - - \node[model] (bottom_left) at (-1,-1) {}; - \node[model, opacity=0.6] (row_1) at (0,-1) {}; - \node[model, opacity=0.6] (col_1) at (-1,0) {}; - - \draw[split] (bottom_left) -- (col_1); - \draw[split] (-1.75,0) -- (col_1); - \draw[split] (bottom_left) -- (row_1); - \draw[split] (0,-1.75) -- (row_1); - - \node[model] (bottom_left) at (-1,-1) {}; - \node[model, draw=blue] (row_1) at (0,-1) {}; - \node[model, draw=blue] (col_1) at (-1,0) {}; - - \node[model, opacity=0.6] (row_2) at (1,-1) {}; - \node[model, opacity=0.6] (col_2) at (-1,1) {}; - - \draw[split] (col_1) -- (col_2); - \draw[split] (-1.75,1) -- (col_2); - \draw[split] (row_1) -- (row_2); - \draw[split] (1,-1.75) -- (row_2); - \draw[split] (row_1) -- (mode); - \draw[split] (col_1) -- (mode); - - \node[model, draw=blue] (row_2) at (1,-1) {}; - \node[model, draw=blue] (col_2) at (-1,1) {}; - \node[model, draw=blue] (mode) at (0,0) {{\color{red}X}}; - - \node[model, opacity=0.6] (row_3) at (1,0) {}; - \node[model, opacity=0.6] (col_3) at (0,1) {}; - - \draw[split] (col_2) -- (col_3); - \draw[split] (row_2) -- (row_3); - \draw[split] (mode) -- (row_3); - \draw[split] (mode) -- (col_3); - - \node[model, draw=blue] (row_3) at (1,0) {}; - \node[model, draw=blue] (col_3) at (0,1) {}; - - \node[model, opacity=0.6] (top_right) at (1,1) {}; - \draw[split] (col_3) -- (top_right); - \draw[split] (row_3) -- (top_right); - - \node[model, draw=blue] (top_right) at (1,1) {}; - } - \onslide<3->{ - \node[model, draw=mypurple] (top_right) at (1,1) {}; - \node[model, draw=mypurple] (row_3) at (1,0) {}; - \node[model, draw=mypurple] (col_3) at (0,1) {}; - \node[model, draw=mypurple] (row_2) at (1,-1) {}; - \node[model, draw=mypurple] (col_2) at (-1,1) {}; - \node[model, draw=mypurple] (mode) at (0,0) - {{\color{red}X}}; - \node[model, draw=red] (bottom_left) at (-1,-1) {}; - \node[model, draw=mypurple] (row_1) at (0,-1) {}; - \node[model, draw=mypurple] (col_1) at (-1,0) {}; - - \draw[merge] (1,1.75) -- (top_right); - \draw[merge] (1.75,1) -- (top_right); - \draw[merge] (0,1.75) -- (col_3); - \draw[merge] (1.75,0) -- (row_3); - \draw[merge] (1.75,-1) -- (row_2); - \draw[merge] (-1,1.75) -- (col_2); - - \draw[merge] (top_right) -- (col_3); - \draw[merge] (top_right) -- (row_3); - \draw[merge] (col_3) -- (col_2); - \draw[merge] (row_3) -- (row_2) ; - \draw[merge] (row_3) -- (mode); - \draw[merge] (col_3) -- (mode); - \draw[merge] (col_2) --(col_1); - \draw[merge] (row_2) -- (row_1); - \draw[merge] (mode) -- (row_1); - \draw[merge] (mode) -- (col_1); - \draw[merge] (col_1) -- (bottom_left); - \draw[merge] (row_1) -- (bottom_left); - } - \end{tikzpicture} - \end{column} - \end{columns} -\end{frame} - -\begin{frame} - \frametitle{Clustering de réseaux} - \begin{columns} - \begin{column}{0.2\linewidth} - \begin{block}{Objectif} - Déterminer une partition qui maximise la somme du BICL de ses - sous-collections. - \end{block} - \end{column} - \begin{column}{0.78\linewidth} - \begin{tikzpicture} - \tikzstyle{instruct}=[font=\small, text justified, - rectangle,draw,fill=yellow!50] - \tikzstyle{first_col}=[rectangle, text justified, - draw,fill=gray!50] - \tikzstyle{second_col}=[scale=0.55, circle, draw,fill=red!50] - \tikzstyle{test}=[font=\small, text justified, diamond, - aspect=2.5,thick, - draw=blue,fill=yellow!50,text=blue] - \tikzstyle{es}=[font=\small, text justified, - rectangle,draw,rounded corners=4pt,fill=cyanind!25] - - \node[es] (liste) at (0,4) {Donner une collection à - partitionner}; - \node[instruct, text width=5cm, below = 0.45cm of liste] - (1-collection) {Ajuster \emph{colBiSBM}}; - \node[first_col, right = 0.5cm of 1-collection] (1-col-obj) {}; - \node[instruct, text width=5cm, below = 0.45cm of 1-collection] - (dissimi) {Calculer une matrice de dissimilarité de la collection}; - \node[instruct, text width=5cm, below = 0.45cm of dissimi] - (2-sous-collection) {Séparer la \emph{collection en 2 sous-collections} et - ajuster les \emph{colBiSBM}}; - \node[second_col, right = 0.25cm of 2-sous-collection] - (1-sec-col-obj) {1}; - \node[second_col, right = 0.25cm of 1-sec-col-obj] - (1-sec-col-obj) {2}; - \node[test,below = 0.45cm of 2-sous-collection, scale=0.5] - (BICL-test) {$\sum_{i=1}^{2} - (\text{BIC-L}(\tikz[baseline=-0.25cm]{\node[second_col] {i};} )) > - \text{BIC-L}(\tikz[baseline=-0.25cm]{\node[first_col] {};})$?}; - \node[es, right = 0.55cm of BICL-test] (sortie) {Renvoyer - \tikz{\node[rectangle, draw, fill=gray!50, rounded corners=0pt] {};}}; - \node[es, left = 0.45cm of dissimi, text width = 2cm] - (recursion) {Recommencer sur \tikz{\node[second_col] {1};} et - \tikz{\node[second_col] {2};} }; - - \tikzstyle{suite}=[->,>=stealth,thick,rounded corners=4pt] - \draw[suite] (liste) -- (1-collection); - \draw[suite] (1-collection) -- (dissimi); - \draw[suite] (dissimi) -- (2-sous-collection); - \draw[suite] (2-sous-collection) -- (BICL-test); - \draw[suite] (BICL-test) -| node[near start, above, fill=none] - {Oui} (recursion); - \draw[suite] (recursion.north) |- (1-collection.west); - \draw[suite] (BICL-test) -- node[near start, above, fill=none] - {Non} (sortie); - - \end{tikzpicture} - \end{column} - \end{columns} - \blfootnote{Même approche - que~\cite{chabert-liddellLearningCommonStructures2023}} -\end{frame} - - -\begin{frame} - \frametitle{Application, données plantes pollinisateurs} - \small - Voici des résultats du modèle \emph{iid-colBiSBM} sur des données - plantes-pollinisateurs (\cite{doreRelativeEffectsAnthropogenic2021} - et~\cite{thebaultDatabasePlantpollinatorNetworks2020}) - % DONE Ajouter un tableau avec le nombre de réseaux dans chaque sous-collection - \begin{columns} - \begin{column}{0.49\linewidth} - \includegraphics[scale=0.30]{img/annual_time_span_vs_iid.png} - - \begin{center} - \begin{table} - \tiny - \begin{tabular}{ |c|c|c|c|c|c| } - \hline - \thead{N°de \\collection} & 1 & 2 & 3 & 4 & 5 \\ - \hline - \thead{Nombre de \\réseaux} & 38 & 45 & 1 & 20 & 19 \\ - \hline - \end{tabular} - \end{table} - - \end{center} - \end{column} - \begin{column}{0.49\linewidth} - \begin{figure}[H] - \includegraphics[width=0.45\textwidth]{img/iid-meso-1.png} - \includegraphics[width=0.45\textwidth]{img/iid-meso-2.png} - \includegraphics[width=0.45\textwidth]{img/iid-meso-3.png} - \includegraphics[width=0.45\textwidth]{img/iid-meso-4.png} - \includegraphics[width=0.30\textwidth]{img/iid-meso-5.png} - \caption{Connectivités de la partition} - \end{figure} - \end{column} - \end{columns} -\end{frame} - -\begin{frame} - \frametitle{Perspectives sur \emph{colSBM}} - % DONE Ajouter une slide conclusion perspective - % Rappeler les modeles avec clustering - % Evoquer l'analyse de reseaux corrigés pour l'échantillonnage - % Lien vers le package - - \begin{itemize} - \item 4 modèles dont 3 qui ont une flexibilité sur au moins une des - dimensions (adaptabilité aux données) - \item Partitionner un ensemble de réseaux selon leurs structures - \item Comparer les \emph{clusterings} de réseaux obtenus entre données - brutes et données corrigées (par exemple par la méthode - \emph{CoOPLBM}\footnote{~\cite{anakokDisentanglingStructureEcological2022}}) - \end{itemize} - - \bigskip - \centering - Le package est disponible sur GitHub : \faGithub - \url{https://github.com/Chabert-Liddell/colSBM} - - \bigskip - -\end{frame} +\include{backup-slides} \end{document} \ No newline at end of file diff --git a/references.bib b/references.bib index 9bf5420..94fbdb4 100644 --- a/references.bib +++ b/references.bib @@ -39,6 +39,22 @@ file = {/home/polarolouis/Zotero/storage/A4V9MJAF/Aubert et al. - 2021 - Model-based biclustering for overdispersed count d.pdf} } +@online{battagliaRelationalInductiveBiases2018, + title = {Relational Inductive Biases, Deep Learning, and Graph Networks}, + author = {Battaglia, Peter W. and Hamrick, Jessica B. and Bapst, Victor and Sanchez-Gonzalez, Alvaro and Zambaldi, Vinicius and Malinowski, Mateusz and Tacchetti, Andrea and Raposo, David and Santoro, Adam and Faulkner, Ryan and Gulcehre, Caglar and Song, Francis and Ballard, Andrew and Gilmer, Justin and Dahl, George and Vaswani, Ashish and Allen, Kelsey and Nash, Charles and Langston, Victoria and Dyer, Chris and Heess, Nicolas and Wierstra, Daan and Kohli, Pushmeet and Botvinick, Matt and Vinyals, Oriol and Li, Yujia and Pascanu, Razvan}, + date = {2018-10-17}, + eprint = {1806.01261}, + eprinttype = {arxiv}, + eprintclass = {cs, stat}, + doi = {10.48550/arXiv.1806.01261}, + url = {http://arxiv.org/abs/1806.01261}, + urldate = {2024-05-15}, + abstract = {Artificial intelligence (AI) has undergone a renaissance recently, making major progress in key domains such as vision, language, control, and decision-making. This has been due, in part, to cheap data and cheap compute resources, which have fit the natural strengths of deep learning. However, many defining characteristics of human intelligence, which developed under much different pressures, remain out of reach for current approaches. In particular, generalizing beyond one's experiences--a hallmark of human intelligence from infancy--remains a formidable challenge for modern AI. The following is part position paper, part review, and part unification. We argue that combinatorial generalization must be a top priority for AI to achieve human-like abilities, and that structured representations and computations are key to realizing this objective. Just as biology uses nature and nurture cooperatively, we reject the false choice between "hand-engineering" and "end-to-end" learning, and instead advocate for an approach which benefits from their complementary strengths. We explore how using relational inductive biases within deep learning architectures can facilitate learning about entities, relations, and rules for composing them. We present a new building block for the AI toolkit with a strong relational inductive bias--the graph network--which generalizes and extends various approaches for neural networks that operate on graphs, and provides a straightforward interface for manipulating structured knowledge and producing structured behaviors. We discuss how graph networks can support relational reasoning and combinatorial generalization, laying the foundation for more sophisticated, interpretable, and flexible patterns of reasoning. As a companion to this paper, we have released an open-source software library for building graph networks, with demonstrations of how to use them in practice.}, + pubstate = {preprint}, + keywords = {Computer Science - Artificial Intelligence,Computer Science - Machine Learning,Statistics - Machine Learning}, + file = {/home/polarolouis/Zotero/storage/98Z2MFJP/Battaglia et al. - 2018 - Relational inductive biases, deep learning, and gr.pdf;/home/polarolouis/Zotero/storage/FIUI8TKL/1806.html} +} + @article{biernackiAssessingMixtureModel2000, title = {Assessing a Mixture Model for Clustering with the Integrated Completed Likelihood}, author = {Biernacki, C. and Celeux, G. and Govaert, G.}, @@ -55,6 +71,40 @@ file = {/home/polarolouis/Zotero/storage/MK9H446U/Biernacki et al. - 2000 - Assessing a mixture model for clustering with the .pdf} } +@article{botellaAppraisalGraphEmbeddings2022, + title = {An Appraisal of Graph Embeddings for Comparing Trophic Network Architectures}, + author = {Botella, Christophe and Dray, Stéphane and Matias, Catherine and Miele, Vincent and Thuiller, Wilfried}, + date = {2022}, + journaltitle = {Methods in Ecology and Evolution}, + volume = {13}, + number = {1}, + pages = {203--216}, + issn = {2041-210X}, + doi = {10.1111/2041-210X.13738}, + url = {https://onlinelibrary.wiley.com/doi/abs/10.1111/2041-210X.13738}, + urldate = {2024-05-14}, + abstract = {Comparing the architecture of interaction networks in space or time is essential for understanding the assembly, trajectory, functioning and persistence of species communities. Graph embedding methods, which position networks into a vector space where nearby networks have similar architectures, could be ideal tools for this purposes. Here, we evaluated the ability of seven graph embedding methods to disentangle architectural similarities of interactions networks for supervised and unsupervised posterior analytic tasks. The evaluation was carried out over a large number of simulated trophic networks representing variations around six ecological properties and size. We did not find an overall best method and instead showed that the performance of the methods depended on the targeted ecological properties and thus on the research questions. We also highlighted the importance of normalising the embedding for network sizes for meaningful posterior unsupervised analyses. We concluded by orientating potential users to the most suited methods given the question, the targeted network ecological property, and outlined links between those ecological properties and three ecological processes: robustness to extinction, community persistence and ecosystem functioning. We hope this study will stimulate the appropriation of graph embedding methods by ecologists.}, + langid = {english}, + keywords = {dimension reduction,ecological interaction networks,evaluation,food webs,graph embedding,species interactions,trophic groups,trophic networks}, + file = {/home/polarolouis/Zotero/storage/P3KZ5UJ7/Botella et al. - 2022 - An appraisal of graph embeddings for comparing tro.pdf;/home/polarolouis/Zotero/storage/4HN89Q49/2041-210X.html} +} + +@article{braultCoclusteringLatentBloc2015, + title = {Co-clustering through Latent Bloc Model: a Review}, + shorttitle = {Co-clustering through Latent Bloc Model}, + author = {Brault, Vincent and Mariadassou, Mahendra}, + date = {2015}, + journaltitle = {Journal de la société française de statistique}, + volume = {156}, + number = {3}, + pages = {120--139}, + issn = {2102-6238}, + url = {http://www.numdam.org/item/JSFS_2015__156_3_120_0/}, + urldate = {2024-05-15}, + langid = {french}, + file = {/home/polarolouis/Zotero/storage/ZPMQXEIE/Brault et Mariadassou - 2015 - Co-clustering through Latent Bloc Model a Review.pdf} +} + @article{celisseConsistencyMaximumlikelihoodVariational2012, title = {Consistency of Maximum-Likelihood and Variational Estimators in the Stochastic Block Model}, author = {Celisse, Alain and Daudin, Jean-Jacques and Pierre, Laurent}, @@ -94,8 +144,7 @@ title = {A Mixture Model for Random Graphs}, author = {Daudin, J.-J. and Picard, F. and Robin, S.}, date = {2008-06-01}, - journaltitle = {Statistics and Computing}, - shortjournal = {Stat Comput}, + journaltitle = {Stat Comput}, volume = {18}, number = {2}, pages = {173--183}, @@ -105,7 +154,7 @@ urldate = {2023-06-16}, abstract = {The Erdös–Rényi model of a network is simple and possesses many explicit expressions for average and asymptotic properties, but it does not fit well to real-world networks. The vertices of those networks are often structured in unknown classes (functionally related proteins or social communities) with different connectivity properties. The stochastic block structures model was proposed for this purpose in the context of social sciences, using a Bayesian approach. We consider the same model in a frequentest statistical framework. We give the degree distribution and the clustering coefficient associated with this model, a variational method to estimate its parameters and a model selection criterion to select the number of classes. This estimation procedure allows us to deal with large networks containing thousands of vertices. The method is used to uncover the modular structure of a network of enzymatic reactions.}, langid = {english}, - keywords = {Mixture models,Random graphs,Variational~method}, + keywords = {Mixture models,Random graphs,Variational method}, file = {/home/polarolouis/Zotero/storage/439HK27B/Daudin et al. - 2008 - A mixture model for random graphs.pdf;/home/polarolouis/Zotero/storage/HVVF5MNY/daudin2007.pdf.pdf} } @@ -114,10 +163,9 @@ author = {Desjardins-Proulx, Philippe and Laigle, Idaline and Poisot, Timothée and Gravel, Dominique}, date = {2017-08-10}, journaltitle = {PeerJ}, - shortjournal = {PeerJ}, volume = {5}, pages = {e3644}, - publisher = {{PeerJ Inc.}}, + publisher = {PeerJ Inc.}, issn = {2167-8359}, doi = {10.7717/peerj.3644}, url = {https://peerj.com/articles/3644}, @@ -145,6 +193,22 @@ file = {/home/polarolouis/Zotero/storage/89ZXBJQP/10.1111@gcb.15474.pdf.pdf;/home/polarolouis/Zotero/storage/IVR6RGG7/Doré et al. - 2021 - Relative effects of anthropogenic pressures, clima.pdf;/home/polarolouis/Zotero/storage/WSJ4DV98/gcb.html} } +@inproceedings{gilmerNeuralMessagePassing2017, + title = {Neural {{Message Passing}} for {{Quantum Chemistry}}}, + booktitle = {Proceedings of the 34th {{International Conference}} on {{Machine Learning}}}, + author = {Gilmer, Justin and Schoenholz, Samuel S. and Riley, Patrick F. and Vinyals, Oriol and Dahl, George E.}, + date = {2017-07-17}, + pages = {1263--1272}, + publisher = {PMLR}, + issn = {2640-3498}, + url = {https://proceedings.mlr.press/v70/gilmer17a.html}, + urldate = {2024-05-15}, + abstract = {Supervised learning on molecules has incredible potential to be useful in chemistry, drug discovery, and materials science. Luckily, several promising and closely related neural network models invariant to molecular symmetries have already been described in the literature. These models learn a message passing algorithm and aggregation procedure to compute a function of their entire input graph. At this point, the next step is to find a particularly effective variant of this general approach and apply it to chemical prediction benchmarks until we either solve them or reach the limits of the approach. In this paper, we reformulate existing models into a single common framework we call Message Passing Neural Networks (MPNNs) and explore additional novel variations within this framework. Using MPNNs we demonstrate state of the art results on an important molecular property prediction benchmark; these results are strong enough that we believe future work should focus on datasets with larger molecules or more accurate ground truth labels.}, + eventtitle = {International {{Conference}} on {{Machine Learning}}}, + langid = {english}, + file = {/home/polarolouis/Zotero/storage/B45XI65B/Gilmer et al. - 2017 - Neural Message Passing for Quantum Chemistry.pdf;/home/polarolouis/Zotero/storage/JNAIYUKE/Gilmer et al. - 2017 - Neural Message Passing for Quantum Chemistry.pdf} +} + @article{govaertEMAlgorithmBlock2005, title = {An {{EM}} Algorithm for the Block Mixture Model}, author = {Govaert, G. and Nadif, M.}, @@ -169,7 +233,7 @@ volume = {39}, number = {3}, pages = {416--425}, - publisher = {{Taylor \& Francis}}, + publisher = {Taylor \& Francis}, issn = {0361-0926}, doi = {10.1080/03610920903140197}, url = {https://doi.org/10.1080/03610920903140197}, @@ -179,13 +243,20 @@ file = {/home/polarolouis/Zotero/storage/PPHP33Z9/Govaert et Nadif - 2010 - Latent Block Model for Contingency Table.pdf;/home/polarolouis/Zotero/storage/UT8TARCX/govaert2010.pdf.pdf} } +@article{hamiltonInductiveRepresentationLearning, + title = {Inductive {{Representation Learning}} on {{Large Graphs}}}, + author = {Hamilton, Will and Ying, Zhitao and Leskovec, Jure}, + abstract = {Low-dimensional embeddings of nodes in large graphs have proved extremely useful in a variety of prediction tasks, from content recommendation to identifying protein functions. However, most existing approaches require that all nodes in the graph are present during training of the embeddings; these previous approaches are inherently transductive and do not naturally generalize to unseen nodes. Here we present GraphSAGE, a general inductive framework that leverages node feature information (e.g., text attributes) to efficiently generate node embeddings for previously unseen data. Instead of training individual embeddings for each node, we learn a function that generates embeddings by sampling and aggregating features from a node’s local neighborhood. Our algorithm outperforms strong baselines on three inductive node-classification benchmarks: we classify the category of unseen nodes in evolving information graphs based on citation and Reddit post data, and we show that our algorithm generalizes to completely unseen graphs using a multi-graph dataset of protein-protein interactions.}, + langid = {english}, + file = {/home/polarolouis/Zotero/storage/YIUG7VAU/Hamilton et al. - Inductive Representation Learning on Large Graphs.pdf} +} + @article{hollandStochasticBlockmodelsFirst1983, title = {Stochastic Blockmodels: {{First}} Steps}, shorttitle = {Stochastic Blockmodels}, author = {Holland, Paul W. and Laskey, Kathryn Blackmond and Leinhardt, Samuel}, date = {1983-06-01}, journaltitle = {Social Networks}, - shortjournal = {Social Networks}, volume = {5}, number = {2}, pages = {109--137}, @@ -203,7 +274,6 @@ author = {Hubert, Lawrence and Arabie, Phipps}, date = {1985-12-01}, journaltitle = {Journal of Classification}, - shortjournal = {Journal of Classification}, volume = {2}, number = {1}, pages = {193--218}, @@ -225,7 +295,7 @@ volume = {11}, number = {12}, pages = {3392}, - publisher = {{Multidisciplinary Digital Publishing Institute}}, + publisher = {Multidisciplinary Digital Publishing Institute}, issn = {2076-2615}, doi = {10.3390/ani11123392}, url = {https://www.mdpi.com/2076-2615/11/12/3392}, @@ -237,6 +307,56 @@ file = {/home/polarolouis/Zotero/storage/VXVQ5CPH/Kaszewska-Gilas et al. - 2021 - Global Studies of the Host-Parasite Relationships .pdf} } +@article{keribinEstimationSelectionLatent2015, + title = {Estimation and Selection for the Latent Block Model on Categorical Data}, + author = {Keribin, Christine and Brault, Vincent and Celeux, Gilles and Govaert, Gérard}, + date = {2015-11-01}, + journaltitle = {Stat Comput}, + volume = {25}, + number = {6}, + pages = {1201--1216}, + issn = {1573-1375}, + doi = {10.1007/s11222-014-9472-2}, + url = {https://doi.org/10.1007/s11222-014-9472-2}, + urldate = {2024-05-15}, + abstract = {This paper deals with estimation and model selection in the Latent Block Model (LBM) for categorical data. First, after providing sufficient conditions ensuring the identifiability of this model, we generalise estimation procedures and model selection criteria derived for binary data. Secondly, we develop Bayesian inference through Gibbs sampling and with a well calibrated non informative prior distribution, in order to get the MAP estimator: this is proved to avoid the traps encountered by the LBM with the maximum likelihood methodology. Then model selection criteria are presented. In particular an exact expression of the integrated completed likelihood criterion requiring no asymptotic approximation is derived. Finally numerical experiments on both simulated and real data sets highlight the appeal of the proposed estimation and model selection procedures.}, + langid = {english}, + keywords = {Bayesian inference,BIC criterion,EM algorithm,Gibbs sampling,Integrated completed likelihood,Stochastic EM,Variational approximation}, + file = {/home/polarolouis/Zotero/storage/49IKUHMA/s11222-014-9472-2.pdf.pdf;/home/polarolouis/Zotero/storage/VXKAK359/Keribin et al. - 2015 - Estimation and selection for the latent block mode.pdf} +} + +@online{kipfSemiSupervisedClassificationGraph2017, + title = {Semi-{{Supervised Classification}} with {{Graph Convolutional Networks}}}, + author = {Kipf, Thomas N. and Welling, Max}, + date = {2017-02-22}, + eprint = {1609.02907}, + eprinttype = {arxiv}, + eprintclass = {cs, stat}, + doi = {10.48550/arXiv.1609.02907}, + url = {http://arxiv.org/abs/1609.02907}, + urldate = {2024-05-14}, + abstract = {We present a scalable approach for semi-supervised learning on graph-structured data that is based on an efficient variant of convolutional neural networks which operate directly on graphs. We motivate the choice of our convolutional architecture via a localized first-order approximation of spectral graph convolutions. Our model scales linearly in the number of graph edges and learns hidden layer representations that encode both local graph structure and features of nodes. In a number of experiments on citation networks and on a knowledge graph dataset we demonstrate that our approach outperforms related methods by a significant margin.}, + pubstate = {preprint}, + keywords = {Computer Science - Machine Learning,Statistics - Machine Learning}, + file = {/home/polarolouis/Zotero/storage/SWWT37XC/Kipf et Welling - 2017 - Semi-Supervised Classification with Graph Convolut.pdf;/home/polarolouis/Zotero/storage/6XSQ5U3D/1609.html} +} + +@online{kipfVariationalGraphAutoEncoders2016, + title = {Variational {{Graph Auto-Encoders}}}, + author = {Kipf, Thomas N. and Welling, Max}, + date = {2016-11-21}, + eprint = {1611.07308}, + eprinttype = {arxiv}, + eprintclass = {cs, stat}, + doi = {10.48550/arXiv.1611.07308}, + url = {http://arxiv.org/abs/1611.07308}, + urldate = {2024-05-14}, + abstract = {We introduce the variational graph auto-encoder (VGAE), a framework for unsupervised learning on graph-structured data based on the variational auto-encoder (VAE). This model makes use of latent variables and is capable of learning interpretable latent representations for undirected graphs. We demonstrate this model using a graph convolutional network (GCN) encoder and a simple inner product decoder. Our model achieves competitive results on a link prediction task in citation networks. In contrast to most existing models for unsupervised learning on graph-structured data and link prediction, our model can naturally incorporate node features, which significantly improves predictive performance on a number of benchmark datasets.}, + pubstate = {preprint}, + keywords = {Computer Science - Machine Learning,Statistics - Machine Learning}, + file = {/home/polarolouis/Zotero/storage/MSK48ZUE/Kipf et Welling - 2016 - Variational Graph Auto-Encoders.pdf;/home/polarolouis/Zotero/storage/3VJBSGI3/1611.html} +} + @online{larousseDefinitionsBipartiBipartite, title = {Définitions : biparti, bipartite - Dictionnaire de français Larousse}, shorttitle = {Définitions}, @@ -248,12 +368,12 @@ file = {/home/polarolouis/Zotero/storage/MA2VH6NX/9503.html} } -@article{maeldoreMaelDorePollinationNetworks2020, +@article{maeldoreMaelDorePollination_networksScripts2020, title = {{{MaelDore}}/{{Pollination}}\_networks: {{R}} Scripts for {{Doré}} et al., 2020 - {{Relative}} Effects of Anthropogenic Pressures, Climate, and Sampling Design on the Structure of Pollination Networks at the Global Scale}, shorttitle = {{{MaelDore}}/{{Pollination}}\_networks}, author = {MaelDore}, date = {2020-11-25}, - publisher = {{Zenodo}}, + publisher = {Zenodo}, doi = {10.5281/ZENODO.4290503}, url = {https://zenodo.org/record/4290503}, urldate = {2023-06-21}, @@ -267,8 +387,8 @@ date = {1976}, volume = {90}, pages = {1--568}, - publisher = {{Ottawa Field-Naturalists' Club}}, - location = {{Ottawa}}, + publisher = {Ottawa Field-Naturalists' Club}, + location = {Ottawa}, issn = {0008-3550}, url = {https://www.biodiversitylibrary.org/item/89149}, pagetotal = {568}, @@ -281,7 +401,6 @@ author = {Pavlopoulos, Georgios A and Kontou, Panagiota I and Pavlopoulou, Athanasia and Bouyioukos, Costas and Markou, Evripides and Bagos, Pantelis G}, date = {2018-04-01}, journaltitle = {GigaScience}, - shortjournal = {GigaScience}, volume = {7}, number = {4}, pages = {giy014}, @@ -293,12 +412,27 @@ file = {/home/polarolouis/Zotero/storage/2KJFL3SB/Pavlopoulos et al. - 2018 - Bipartite graphs in systems biology and medicine .pdf;/home/polarolouis/Zotero/storage/A2Y2EGPA/pavlopoulos2018.pdf.pdf;/home/polarolouis/Zotero/storage/UK2MK5FW/pavlopoulos2018.pdf.pdf;/home/polarolouis/Zotero/storage/XP7G4PZF/4875933.html} } +@online{peyreComputationalOptimalTransport2020, + title = {Computational {{Optimal Transport}}}, + author = {Peyré, Gabriel and Cuturi, Marco}, + date = {2020-03-18}, + eprint = {1803.00567}, + eprinttype = {arxiv}, + eprintclass = {stat}, + doi = {10.48550/arXiv.1803.00567}, + url = {http://arxiv.org/abs/1803.00567}, + urldate = {2024-05-14}, + abstract = {Optimal transport (OT) theory can be informally described using the words of the French mathematician Gaspard Monge (1746-1818): A worker with a shovel in hand has to move a large pile of sand lying on a construction site. The goal of the worker is to erect with all that sand a target pile with a prescribed shape (for example, that of a giant sand castle). Naturally, the worker wishes to minimize her total effort, quantified for instance as the total distance or time spent carrying shovelfuls of sand. Mathematicians interested in OT cast that problem as that of comparing two probability distributions, two different piles of sand of the same volume. They consider all of the many possible ways to morph, transport or reshape the first pile into the second, and associate a "global" cost to every such transport, using the "local" consideration of how much it costs to move a grain of sand from one place to another. Recent years have witnessed the spread of OT in several fields, thanks to the emergence of approximate solvers that can scale to sizes and dimensions that are relevant to data sciences. Thanks to this newfound scalability, OT is being increasingly used to unlock various problems in imaging sciences (such as color or texture processing), computer vision and graphics (for shape manipulation) or machine learning (for regression, classification and density fitting). This short book reviews OT with a bias toward numerical methods and their applications in data sciences, and sheds lights on the theoretical properties of OT that make it particularly useful for some of these applications.}, + pubstate = {preprint}, + keywords = {Statistics - Machine Learning}, + file = {/home/polarolouis/Zotero/storage/64Q9WE2Z/Peyré et Cuturi - 2020 - Computational Optimal Transport.pdf;/home/polarolouis/Zotero/storage/3GAQMNL8/1803.html} +} + @article{ramos-jilibertoTopologicalChangeAndean2010, title = {Topological Change of {{Andean}} Plant–Pollinator Networks along an Altitudinal Gradient}, author = {Ramos-Jiliberto, Rodrigo and Domínguez, Daniela and Espinoza, Claudia and López, Gioconda and Valdovinos, Fernanda S. and Bustamante, Ramiro O. and Medel, Rodrigo}, date = {2010-03-01}, journaltitle = {Ecological Complexity}, - shortjournal = {Ecological Complexity}, volume = {7}, number = {1}, pages = {86--90}, @@ -312,12 +446,28 @@ file = {/home/polarolouis/Zotero/storage/ATY3ZP2X/Ramos-Jiliberto et al. - 2010 - Topological change of Andean plant–pollinator netw.pdf;/home/polarolouis/Zotero/storage/HPBGUP65/ramos-jiliberto2010.pdf.pdf;/home/polarolouis/Zotero/storage/I33MZQQ7/ramos-jiliberto2010.pdf.pdf;/home/polarolouis/Zotero/storage/YJX8XBNW/S1476945X09000622.html} } +@article{sanchez-lengelingGentleIntroductionGraph2021, + title = {A {{Gentle Introduction}} to {{Graph Neural Networks}}}, + author = {Sanchez-Lengeling, Benjamin and Reif, Emily and Pearce, Adam and Wiltschko, Alexander B.}, + date = {2021-09-02}, + journaltitle = {Distill}, + volume = {6}, + number = {9}, + pages = {e33}, + issn = {2476-0757}, + doi = {10.23915/distill.00033}, + url = {https://distill.pub/2021/gnn-intro}, + urldate = {2024-05-15}, + abstract = {What components are needed for building learning algorithms that leverage the structure and properties of graphs?}, + langid = {english}, + file = {/home/polarolouis/Zotero/storage/4A3V4EFV/gnn-intro.html} +} + @article{snijdersEstimationPredictionStochastic1997, title = {Estimation and {{Prediction}} for {{Stochastic Blockmodels}} for {{Graphs}} with {{Latent Block Structure}}}, author = {Snijders, Tom A.B. and Nowicki, Krzysztof}, date = {1997-01-01}, - journaltitle = {Journal of Classification}, - shortjournal = {J. of Classification}, + journaltitle = {J. of Classification}, volume = {14}, number = {1}, pages = {75--100}, @@ -331,11 +481,16 @@ file = {/home/polarolouis/Zotero/storage/2GYRASW5/snijders1997.pdf.pdf;/home/polarolouis/Zotero/storage/JJNQV32Y/Snijders et Nowicki - 1997 - Estimation and Prediction for Stochastic Blockmode.pdf;/home/polarolouis/Zotero/storage/LXGG9SRP/snijders1997.pdf.pdf} } +@misc{Sujetthese, + title = {Sujet-These}, + file = {/home/polarolouis/Nextcloud/Documents/APT/Thèse/Administratif/candidature-these/Sujet.pdf} +} + @dataset{thebaultDatabasePlantpollinatorNetworks2020, title = {A Database of Plant-Pollinator Networks}, author = {Thébault, Elisa and Fontaine, Colin}, date = {2020-12-01}, - publisher = {{Zenodo}}, + publisher = {Zenodo}, doi = {10.5281/zenodo.4300427}, url = {https://zenodo.org/record/4300427}, urldate = {2023-06-21}, @@ -348,7 +503,7 @@ title = {A Database of Plant-Pollinator Networks}, author = {Thébault, Elisa and Fontaine, Colin}, date = {2020-12-01}, - publisher = {{Zenodo}}, + publisher = {Zenodo}, doi = {10.5281/ZENODO.4300427}, url = {https://zenodo.org/record/4300427}, urldate = {2023-06-21}, @@ -360,12 +515,12 @@ @dataset{thebaultelisaDatabasePlantpollinatorNetworks2022, title = {A Database of Plant-Pollinator Networks}, author = {Thébault, Elisa and Fontaine, Colin}, - editora = {Doré, Maël and Parra, Santiago}, - editoratype = {collaborator}, + namea = {Doré, Maël and Parra, Santiago}, + nameatype = {collaborator}, date = {2022-06-10}, - publisher = {{Zenodo}}, - doi = {10.5281/ZENODO.6630184}, - url = {https://zenodo.org/record/6630184}, + publisher = {Zenodo}, + doi = {10.5281/ZENODO.4300426}, + url = {https://zenodo.org/record/4300426}, urldate = {2023-06-21}, abstract = {This database assembles different published datasets of observed interaction networks between plants and pollinators, which were extracted from articles, theses and existing online databases. Each row in the data table corresponds to an interaction between a plant and a pollinator species reported at a given site by a given publication.}, version = {2}, @@ -375,18 +530,34 @@ @dataset{thebaultelisaDatabasePlantpollinatorNetworks2022a, title = {A Database of Plant-Pollinator Networks}, author = {Thébault, Elisa and Fontaine, Colin}, - editora = {Doré, Maël and Parra, Santiago}, - editoratype = {collaborator}, + namea = {Doré, Maël and Parra, Santiago}, + nameatype = {collaborator}, date = {2022-06-10}, - publisher = {{Zenodo}}, - doi = {10.5281/ZENODO.4300426}, - url = {https://zenodo.org/record/4300426}, + publisher = {Zenodo}, + doi = {10.5281/ZENODO.6630184}, + url = {https://zenodo.org/record/6630184}, urldate = {2023-06-21}, abstract = {This database assembles different published datasets of observed interaction networks between plants and pollinators, which were extracted from articles, theses and existing online databases. Each row in the data table corresponds to an interaction between a plant and a pollinator species reported at a given site by a given publication.}, version = {2}, keywords = {data,diversity,flower visitors,mutualistic network,plant-pollinator,plant-pollinator interaction} } +@online{velickovicGraphAttentionNetworks2018, + title = {Graph {{Attention Networks}}}, + author = {Veličković, Petar and Cucurull, Guillem and Casanova, Arantxa and Romero, Adriana and Liò, Pietro and Bengio, Yoshua}, + date = {2018-02-04}, + eprint = {1710.10903}, + eprinttype = {arxiv}, + eprintclass = {cs, stat}, + url = {http://arxiv.org/abs/1710.10903}, + urldate = {2024-05-14}, + abstract = {We present graph attention networks (GATs), novel neural network architectures that operate on graph-structured data, leveraging masked self-attentional layers to address the shortcomings of prior methods based on graph convolutions or their approximations. By stacking layers in which nodes are able to attend over their neighborhoods’ features, we enable (implicitly) specifying different weights to different nodes in a neighborhood, without requiring any kind of costly matrix operation (such as inversion) or depending on knowing the graph structure upfront. In this way, we address several key challenges of spectral-based graph neural networks simultaneously, and make our model readily applicable to inductive as well as transductive problems. Our GAT models have achieved or matched state-of-theart results across four established transductive and inductive graph benchmarks: the Cora, Citeseer and Pubmed citation network datasets, as well as a proteinprotein interaction dataset (wherein test graphs remain unseen during training).}, + langid = {english}, + pubstate = {preprint}, + keywords = {Computer Science - Artificial Intelligence,Computer Science - Machine Learning,Computer Science - Social and Information Networks,Statistics - Machine Learning}, + file = {/home/polarolouis/Zotero/storage/8LZB7KTU/Veličković et al. - 2018 - Graph Attention Networks.pdf} +} + @online{WebLifeEcological, title = {Web of {{Life}}: Ecological Networks Database}, url = {https://www.web-of-life.es/map.php}, @@ -395,6 +566,22 @@ file = {/home/polarolouis/Zotero/storage/9WZE8QLQ/map.html} } +@online{xuHowPowerfulAre2019, + title = {How {{Powerful}} Are {{Graph Neural Networks}}?}, + author = {Xu, Keyulu and Hu, Weihua and Leskovec, Jure and Jegelka, Stefanie}, + date = {2019-02-22}, + eprint = {1810.00826}, + eprinttype = {arxiv}, + eprintclass = {cs, stat}, + doi = {10.48550/arXiv.1810.00826}, + url = {http://arxiv.org/abs/1810.00826}, + urldate = {2024-05-14}, + abstract = {Graph Neural Networks (GNNs) are an effective framework for representation learning of graphs. GNNs follow a neighborhood aggregation scheme, where the representation vector of a node is computed by recursively aggregating and transforming representation vectors of its neighboring nodes. Many GNN variants have been proposed and have achieved state-of-the-art results on both node and graph classification tasks. However, despite GNNs revolutionizing graph representation learning, there is limited understanding of their representational properties and limitations. Here, we present a theoretical framework for analyzing the expressive power of GNNs to capture different graph structures. Our results characterize the discriminative power of popular GNN variants, such as Graph Convolutional Networks and GraphSAGE, and show that they cannot learn to distinguish certain simple graph structures. We then develop a simple architecture that is provably the most expressive among the class of GNNs and is as powerful as the Weisfeiler-Lehman graph isomorphism test. We empirically validate our theoretical findings on a number of graph classification benchmarks, and demonstrate that our model achieves state-of-the-art performance.}, + pubstate = {preprint}, + keywords = {Computer Science - Computer Vision and Pattern Recognition,Computer Science - Machine Learning,Statistics - Machine Learning}, + file = {/home/polarolouis/Zotero/storage/THBD5QV3/Xu et al. - 2019 - How Powerful are Graph Neural Networks.pdf;/home/polarolouis/Zotero/storage/ZJF5UWIH/1810.html} +} + @online{yumpu.comInsectPollinatorsMer, title = {Insect Pollinators of the {{Mer Bleue}} Peat Bog of {{Ottawa}} - {{Biodiversity}} ...}, author = {Yumpu.com}, @@ -402,6 +589,6 @@ urldate = {2023-08-06}, abstract = {Insect pollinators of the Mer Bleue peat bog of Ottawa - Biodiversity ...}, langid = {english}, - organization = {{yumpu.com}}, + organization = {yumpu.com}, file = {/home/polarolouis/Zotero/storage/DIXT2PYL/insect-pollinators-of-the-mer-bleue-peat-bog-of-ottawa-biodiversity-.html} }