\section{Parcours} \label{sec:parcours} \begin{frame}{Formations} \begin{itemize} \item 2023--2024, M2 Mathématiques pour les Sciences du Vivant, Université Paris-Saclay\\ {\small UC à choix \nth{2} semestre : modèles à variables latentes, statistiques spatiales et méthodes de stats en grande dimensions} \item 2022--2023, Année de césure \item 2020--2022, 1ère et 2ème année en formation Ingénieur AgroParisTech\\ {\small Cours optionnels suivis : statistiques spatiales, mathématiques pour la santé, ingénierie par la simulation informatique \dots} \item 2018--2020, Classe Préparatoire BCPST \end{itemize} \end{frame} \begin{frame}{Expériences professionnelles} \begin{itemize} \item 2024 Avril--Sept., Détection de structures et clustering de réseaux écologiques. Stage dans l’UMR MIA Paris-Saclay, supervisé par Pierre Barbillon. \item 2023 Janv.--Juillet, Détection de structures dans des collections de réseaux bipartites et écriture du package implémentant la méthode. Stage dans l’UMR MIA Paris-Saclay, supervisé par Pierre Barbillon. \item 2022 Mai--Déc., Stage assistant ingénieur en Qualité chez Eurofins Food France \end{itemize} \end{frame} \section[Axes de recherche]{Axes de recherche} \begin{frame} \frametitle{Contexte écologique} \begin{itemize} \item De nombreux réseaux disponibles \parencite{WebLifeEcological} et 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 Proposer des comparaisons en extrayant plus d'informations que les métriques classiques \end{itemize} \end{frame} \subsection[Axe 1]{Axe 1 : Modèles à variables latentes pour une collection de réseaux bipartites} \label{sec:axe-1} \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}}; \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} \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] {LBM}; \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{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.30\textwidth]{img/iid-meso-1.png} \includegraphics[width=0.30\textwidth]{img/iid-meso-2.png} \includegraphics[width=0.30\textwidth]{img/iid-meso-3.png} \includegraphics[width=0.30\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} \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-liddellLearningCommonStructures2024} 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-liddellLearningCommonStructures2024, 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} \label{sec:axe-2} \begin{frame}[allowframebreaks] \begin{figure} \includegraphics[scale=0.4]{img/Message_passing.pdf} \caption{Illustration du \emph{message passing} au sein d'un graphe.\footnote{Figure adaptée de \cite{sanchez-lengelingGentleIntroductionGraph2021} par Emré Anakok.}} \end{figure} En utilisant les \emph{Graph Convolutional Networks} (GCN) il est possible de réaliser un \emph{embedding} 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} Pour, par exemple, utiliser 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 \emph{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} \begin{figure}[ht] \centering \begin{chronology}[1]{2024}{2028}{\textwidth}[110ex] \eventspan {\decimaldate{1}{10}{2024}}{\decimaldate{1}{10}{2025}}% {\textbf{\color{blue} Axe 1}}[blue][.3][0.1][b] \eventspan {\decimaldate{1}{10}{2025}}{\decimaldate{1}{10}{2026}}% {\textbf{\color{red} Axe 2}}[red][.3][0.1][b] \eventspan {\decimaldate{1}{4}{2026}}{\decimaldate{1}{4}{2027}}% {\textbf{\color{ao(english)} Axe 3}}[ao(english)][.3][0.1][b] \eventspan {\decimaldate{1}{4}{2027}}{\decimaldate{1}{10}{2027}}% {\textbf{\color{gray} Rédaction du manuscrit}}[gray][.3][0.1][b] % \eventpoint{\decimaldate{11}{4}{1976}}{Launch of Apple I}[red][1][1] % \eventpoint{\decimaldate{12}{8}{1981}}{Launch of IBM PC}[red][1][1] % \eventpoint{\decimaldate{15}{9}{1993}}{Debian 0.01}[red][1][1] % \eventpoint{\decimaldate{26}{10}{2004}}{Ubuntu 4.10}[red][1][1] % \eventspan {\decimaldate{25}{8}{1991}}{\decimaldate{31}{8}{2023}}% % {\textbf{\color{orange}Linux}}[orange][.6][.6][b] \end{chronology} \caption{Chronologie prévue} \label{fig:chronologie} \end{figure} % \begin{itemize} % \item Axe 1 : Oct. 2024 -- Oct. 2025 % \item Axe 2 : Oct. 2025 -- Oct. 2026 % \item Axe 3 : Avril 2026 -- Octobre 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 accorde déjà 50\% des financements de la thèse. \end{block} \end{frame} \begin{frame}[noframenumbering] \vfill \centering \huge Merci pour votre attention. \vfill \end{frame} \renewcommand{\pgfuseimage}[1]{\scalebox{.75}{\includegraphics{#1}}} \begin{frame}[noframenumbering,plain,allowframebreaks] \frametitle{Bibliographie} \printbibliography \end{frame}