\section{Parcours}
\label{sec:parcours}
\begin{frame}{Formations}

    \begin{itemize}
        \item 2018--2020, Classe Préparatoire BCPST
        \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 2022--2023, Année de césure
        \item 2023--2024, M2 Mathématiques pour les Sciences du Vivant,
              Université Paris-Saclay\\
              {\small UC à choix 2\ieme semestre : modèles à variables
              latentes, statistiques spatiales et méthodes de statistiques en grandes dimension}

    \end{itemize}

\end{frame}
\begin{frame}{Expériences professionnelles}

    \begin{itemize}
        \item 2022 Mai--Déc., Stage assistant ingénieur en Qualité chez
              Eurofins Food France

        \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 2024 Avril--Sept., Détection de structures et clustering de réseaux
              écologiques. Stage dans l’UMR MIA Paris-Saclay, supervisé par
              Pierre Barbillon et Sophie Donnet.

    \end{itemize}

\end{frame}


\section{Sujet de thèse}

\begin{frame}
    \frametitle{Contexte écologique}
    \begin{itemize}
        \item Nombreux réseaux disponibles \parencite{WebLifeEcological} pour interactions similaires. Par exemple,
              interactions proies-prédateurs, plantes-pollinisateurs \dots
        \item Suivi biodiversité, analyse de robustesse et risque d'effondrement
              % 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é.
              \begin{columns}
                \begin{column}{0.6\textwidth}
              \begin{figure}[ht]
                  \centering
                  \begin{tikzpicture}[scale=.6]
                      \tikzstyle{every edge}=[-,>=stealth',shorten >=1pt,auto,thin,draw]
                      \tikzstyle{every state}=[draw, text=white,scale=0.65, font=\scriptsize, transform shape]

                      % Upper level
                      \tikzstyle{every state}=[draw=none,text=white,scale=0.55, font=\scriptsize, transform shape]
                      % premier cluster
                      \tikzstyle{every node}=[fill=green!50!blue!20!white]
                      \node[state] (N1) at (1.1,3) {\includegraphics[width=.1\textwidth]{img/pollen.png}};
                      \node[state, right = of N1] (N2)  {\includegraphics[width=.1\textwidth]{img/pollen.png}}; % at (.75,3)
                      \node[state, right = of N2] (N3) {\includegraphics[width=.1\textwidth]{img/pollen.png}}; % at (1.5,3) 
                      \node[state,  right = of N3] (N4) {\includegraphics[width=.1\textwidth]{img/pollen.png}}; % at (2.25,3) 
                      %           \node[state] (N5) at (3,3) {\includegraphics[width=.1\textwidth]{img/pollen.png}};
                      %           \node[state] (N6) at (3.75,3) {\includegraphics[width=.1\textwidth]{img/pollen.png}};

                      \tikzstyle{every node}=[shape=rectangle,fill=red!50!blue!20!white]
                      %         \node[state, fill = white] (P) at (-1.5, 0) {\includegraphics[width=.08\textwidth]{img/bee.png}};
                      \node[state, tokens=0] (P1) at (-1, 0) {\includegraphics[width=.1\textwidth]{img/bee.png}};
                      \node[state, tokens=0, right = of P1] (P2) {\includegraphics[width=.1\textwidth]{img/bee.png}}; %  at (-.25, 0)
                      \node[state, tokens=0, right = of P2] (P3) {\includegraphics[width=.1\textwidth]{img/bee.png}}; %at (.5, 0) 
                      \node[state, tokens=0, right = of P3] (P4) {\includegraphics[width=.1\textwidth]{img/bee.png}}; % at (1.25, 0) 
                      \node[state, tokens=0, right = of P4] (P5) {\includegraphics[width=.1\textwidth]{img/bee.png}};% at (2,0) 
                      \node[state, tokens=0, right = of P5] (P6) {\includegraphics[width=.1\textwidth]{img/bee.png}}; %  at (2.75,0) 
                      %           \node[state, tokens=0] (P7) at (3.5,0) {\includegraphics[width=.1\textwidth]{img/bee.png}};
                      %           \node[state, tokens=0] (P8) at (4.25,0) {\includegraphics[width=.1\textwidth]{img/bee.png}};

                      \tikzstyle{every edge}=[>=stealth,shorten >=1pt,auto,thin,draw]
                      \path (P1) edge  (N1);
                      \path (P2) edge  (N1);
                      \path (P3) edge  (N1);
                      \path (P4) edge  (N2);
                      \path (P4) edge  (N1);
                      \path (P6) edge  (N2);
                      \path (P1) edge  (N3);
                      %\path (P7) edge  (N4);
                      %\path (P8) edge  (N5);
                      %\path (P4) edge  (N6);
                      \path (P5) edge  (N3);
                      \path (P5) edge  (N4);
                  \end{tikzpicture}
                  \caption{Exemple d'un réseau plantes-pollinisateurs}
                  \label{fig:plantes-pollin}

              \end{figure}
            \end{column}
            \begin{column}{0.39\textwidth}
                \begin{align*}
                    X = \begin{pmatrix}
                            1 & 1 & 1 & 1 & 0 & 0\\
                            0 & 0 & 0 & 1 & 0 & 1 \\
                            1 & 0 & 0 & 0 & 1 & 0 \\ 
                            0 & 0 & 0 & 0 & 1 & 0
                    \end{pmatrix}
                \end{align*}
                \footnotesize
                Matrice d'adjacence associée
            \end{column}
        \end{columns}
        \item En écologie microbienne réseaux permettent le suivi de la
              qualité des sols.
              % 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}


    Détection de structure\footnote{L'organisation du réseau.} pour un unique 
    réseau bien connu avec par exemple :
    \begin{itemize}
        \item Modèles de \emph{clustering} à variables latentes
        \item \emph{Embedding} par apprentissage profond\\
        \item Et bien d'autres méthodes
        \note[item]{Par exemple la détection de communauté, les calculs de métriques comme la centralité}
    \end{itemize}

    Mais des motivations pour considérer des collections :
    \begin{itemize}
        \item Espèces différentes, rôles analogues
              % Des espèces différentes dans plusieurs réseaux pourrait
              % remplir des rôles similaires
        \item Transfert d'informations grands vers petits réseaux.
              % 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.
              % 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
        \item Regrouper les réseaux selon leur similarité (\emph{clustering}
              de réseaux)
    \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{Latent Block Model (LBM)}
    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-principal}
            \end{figure}
        \end{column}
        \footnotetext[2]{Que j'appelle par la suite BiSBM}
        \begin{column}{0.51\linewidth}
            \newline
            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}
\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]
                    \only<1>{\node[text justified, fill=none] at (10, 3.5)
                        {$\overset{iid}{\sim}$};}
                    \only<2>{\node[text justified, fill=none] at (10, 3.5)
                        {$\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]

                        % Label réseau
                        \node[font=\small, text justified,draw=none, fill=none,
                            below left = 0.04cm of R11] {$Y^1 = $};


                        \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]
                        % Label réseau
                        \node[font=\small, text justified,draw=none, fill=none,
                            below left = 0.04cm of R11] {$Y^M = $};

                        \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}

    \only<1>{
        \begin{block}{Modèle $iid$-colBiSBM}
            $$\forall m \in [\![ 1, M ]\!],  Y^m \sim LBM_{n^m_1, n^m_2} (\pi, \rho, \alpha)$$
        \end{block}
    }
    \only<2>{
        \begin{block}{Modèle $\pi\rho$-colBiSBM}
            $$\forall m \in [\![ 1, M ]\!],  Y^m \sim LBM_{n^m_1, n^m_2} (\pi^{\color{red}m}, \rho^{\color{red}m}, \alpha)$$
        \end{block}
    }
    % 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}{Apport déjà réalisé}
    \begin{itemize}
        \item Écriture du modèle colBiSBM
        \item Dérivation des formules d'inférence et d'un critère de sélection
              de modèle par vraisemblance pénalisée (choix du nombre de blocs).
        \item Implémentation des formules et du critère et développement
              algorithmique pour l'exploration de l'espace de paramètres.
              \note[item]{Principalement pendant mon premier stage}
        \item Développement d'une méthode de partitionnement d'une large
              collection de réseaux basée sur la maximisation d'un critère de
              sélection de modèle.
        \item Implémentation du code intégrée au package\footnote{
                  \scalebox{0.8}{\faGithub~
                      \url{https://github.com/Chabert-Liddell/colSBM}}} \emph{colSBM}.
              \note[item]{Pendant mon stage actuel}
    \end{itemize}

\end{frame}

\begin{frame}
    \frametitle{Application du \emph{clustering}, 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}
            \begin{figure}[H]
                \includegraphics[width=0.35\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.35\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}
        \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|c| }
                        \hline
                        \thead{N°de      \\collection} & 1 & 2 & 3 & 4 & 5  & \thead{Total} \\
                        \hline
                        \thead{Nombre de \\réseaux} & 38 & 45 & 1 & 20 & 19 & 123\\
                        \hline
                    \end{tabular}
                \end{table}

            \end{center}
        \end{column}
    \end{columns}
\end{frame}

\begin{frame}{À faire}
    \begin{itemize}
        \item Finaliser l'analyse sur données réelles
              commencée sur \cite{doreRelativeEffectsAnthropogenic2021,
                  thebaultDatabasePlantpollinatorNetworks2020} avec les
              interprétations des écologues en vue d'une publication.
              \note[item]{Dans \emph{Methods in Ecology and Evolution}}
        \item Preuve d'identifiabilité du modèle
              \parencite{chabert-liddellLearningCommonStructures2024,
                  celisseConsistencyMaximumlikelihoodVariational2012,
                  keribinEstimationSelectionLatent2015,
                  braultCoclusteringLatentBloc2015}
              \note[item]{Car les blocs vides du modèles $\pi\rho$ posent
                  soucis.}

    \end{itemize}

\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{tikzpicture}[
%     %         vertex/.style = {circle, draw, inner sep=0.5pt, fill=white},
%     %         vertex1/.style = {vertex, fill=red!30!white},
%     %         vertex2/.style = {vertex, fill=orange!30!white},
%     %         vertex3/.style = {vertex, fill=blue!30!white},
%     %         vertex4/.style = {vertex, fill=teal!30!white},
%     %         scale = 0.5
%     %     ]
%     %     \begin{scope}
%     %         \draw[thick]
%     %         (-0.5,0) node[vertex1] (n1^4) {$n_1$}
%     %         -- (0.25,2.2) node[vertex2] (n2^4) {$n_2$}
%     %         -- (2,1.6) node[vertex3] (n3^4) {$n_3$}
%     %         -- (-0.7,1.4) node[vertex4] (n4^4) {$n_4$} -- cycle;
%     %         \node[left = 0.15cm of n4^4, fill = white] {$Y^m$};
%     %     \end{scope}
%     % \end{tikzpicture}


\begin{frame}{\emph{Graph Neural Networks} et \emph{Variational AutoEncoder}}

    \begin{figure}
        \centering
        % \begin{tikzpicture}[
        %     % node distance=2cm and 1cm,
        %     trap/.style={trapezium, draw, minimum height = 1cm},
        %     % rectangle/.style={rectangle, draw, minimum height=1cm, minimum width=2cm, align=center},
        %     arrow/.style={->, thick},
        %     scale=0.5,
        % ]

        % % Encoder trapezium
        % \node[trap, trapezium left angle=110, trapezium right angle=110, rotate = 90] (encoder) {Encodeur};

        % % Latent space parameters
        % \node[rectangle, fill=yellow, opacity=0.4, below=of encoder] (mu) {$\mu$};
        % \node[rectangle, fill=blue, opacity=0.3, below=of mu] (sigma) {$\sigma$};
        % \node[rectangle, fill=green, opacity=0.3, below=of sigma, rotate = 90] (sample) {Échantillon};

        % % Decoder trapezium
        % \node[trap, trapezium left angle=70, trapezium right angle=70, below=of sample, rotate = 90] (decoder) {Décodeur};

        % % Connections
        % \draw[arrow] (encoder.south) -- (mu.north);
        % \draw[arrow] (encoder.south) -- (sigma.north);
        % \draw[arrow] (mu.south) -- (sample.north);
        % \draw[arrow] (sigma.south) -- (sample.north);
        % \draw[arrow] (sample.south) -- (decoder.north);

        % % Input and output labels
        % \node[left= 2cm of encoder] (input) {Input $x$};
        % \node[right= 2cm of decoder] (output) {Output $\hat{x}$};

        % \draw[arrow] (input.east) -- (encoder.west);
        % \draw[arrow] (decoder.east) -- (output.west);

        % \end{tikzpicture}
        \includegraphics[scale=0.20]{img/vae.png}
        \caption{Schéma d'\cite{AutoencodeurVariationnel2024}}
        \label{fig:schema-vgae}
    \end{figure}
    \footnotesize
    Problème des graphes pour les réseaux de neurones : \textbf{prise en compte
    des invariances}.

    \begin{itemize}
        \item Utilisation des \emph{Graph Convolutional Networks} de 
        \cite{kipfSemiSupervisedClassificationGraph2017} résout ce problème.
        \item Utiliser des \emph{Variational AutoEncoder} de
        \cite{kingmaAutoEncodingVariationalBayes2022c} et de 
        \cite{kipfVariationalGraphAutoEncoders2016} pour projection des 
        n\oe uds dans un espace latent.
        \item Explorer le \emph{Deep Latent Space Model}
        de~\cite{yangDeepLatentSpace2024}
    \end{itemize}

\end{frame}

\begin{frame}{Idées à explorer pour la comparaison de réseaux}
    \begin{itemize}
        \item \emph{Embedding} commun des n\oe uds des réseaux à comparer sur un même espace
              latent. Puis comparaison des distributions ainsi obtenues.
        \item Encodeurs différents mais décodeurs communs pour comparer les 
        représentations obtenues
    \end{itemize}
\end{frame}

% \begin{frame}[allowframebreaks]{\emph{Graph Neural Networks}}
%     \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}


%     Avec les \emph{Graph Convolutional Networks} (GCN) \emph{embedding} de graphes
%     \parencite{velickovicGraphAttentionNetworks2018,hamiltonInductiveRepresentationLearning,
%         xuHowPowerfulAre2019} tenant compte des invariances.

%     \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}
%     \begin{itemize}
%         \item Utiliser des \emph{Variational Auto-Encoder} (VAE)
%               \parencite{
%                   kipfVariationalGraphAutoEncoders2016,
%                   kipfSemiSupervisedClassificationGraph2017} et
%               résume le réseau par une distribution. Calculer distance de
%               Gromov-Wasserstein pour comparaison et 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{itemize}

% \end{frame}

\subsection[Axe 3]{Axe 3 : Inférence jointe de réseaux}
\label{sec:axe-3}
\begin{frame}
    \begin{columns}
        \begin{column}{0.6\textwidth}
            \begin{table}[t]
                \centering
                \begin{tabular}{cccc}
                    \hline
                     & $OTU_1$ & \dots & $OTU_p$                 \\
                    \hline
                    Éch. 1 & $X_{1,1}$                 & \dots & $X_{1,p} = 500$ \\
                    \vdots& \vdots                    &       & \vdots    \\
                     Éch. n& $X_{n,1} = 10$                 & \dots & $X_{n,p}$ \\
                    \hline
                \end{tabular}
                \caption{Table d'OTU synthétique}
                \label{tab:otu-synthetiques}
            \end{table}
        \end{column}

        \begin{column}{0.4\textwidth}
            \begin{figure}[t]
                \centering
                TODO Ici une image avec des liens de probas proches pour faire commentaire
                % \includegraphics[scale=0.25]{img/plot_model_function_eps.png}
                \caption{Réseau de co-occurence inféré}
                \label{fig:otu-synthetiques}
            \end{figure}
        \end{column}
    \end{columns}.

    \begin{itemize}
        \item Avènement des techniques de séquençage et donc disponibilité des 
        OTU\footnote{Unité Taxonomique Opérationnelle} 
        \item Incertitude d'inférence disponible mais négligée par la suite, 
        important pour les réseaux microbiens seulement inférés
        \item Autre limites et détails 
        dans~\cite{matchadoNetworkAnalysisMethods2021}
    \end{itemize}
    
\end{frame}

\begin{frame}{Idées à explorer}
    \begin{itemize}
        \item Avec $M$ tableaux d'OTU, on peut supposer :
    \begin{block}{Modèle hiérarchique}
        \begin{align*}
            \forall m \in [\![1,M]\!],~& X_1^m, \dots, X_p^m \rightsquigarrow \mathcal{M}(Y^m)& \\
            & Y^m \rightsquigarrow LBM(\pi, \rho, \alpha) \text{ ou } Y^m \rightsquigarrow DSLM(f_D, f_E) &
        \end{align*}
    \end{block}
        \item Formaliser une méthode pour déterminer si le changement d'unité
        taxonomique change la structure
        \item Réussir à mettre en évidence des bactéries aux rôles fonctionnels
        proches selon des conditions d'expériences différentes
    \end{itemize}
\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}{6}{2025}}%
                {\small\textbf{\color{blue} Collections \& modèles à variables latentes}}[blue][.3][0.1]
                \eventspan {\decimaldate{1}{5}{2025}}{\decimaldate{1}{10}{2026}}%
                {\textbf{\color{red} \emph{Embedding} de n\oe uds par \emph{Deep Learning}}}[red][.3][0.1]
                \eventspan {\decimaldate{1}{3}{2026}}{\decimaldate{1}{4}{2027}}%
                {\textbf{\color{ao(english)} Inférence jointe de réseaux}}[ao(english)][.3][0.1]
                \eventspan {\decimaldate{1}{4}{2027}}{\decimaldate{1}{10}{2027}}%
                {\textbf{\color{gray} Rédaction du manuscrit}}[gray][.3][0.1][b]
            \end{chronology}
            \caption{Chronologie prévue}
            \label{fig:chronologie}
        \end{figure}
    \end{block}
    \begin{block}{Financement}
        L'INRAE, par le département MathNum accorde déjà 50\% des financements
        de la thèse.
    \end{block}
    \centering
    \Large Merci pour votre attention.
\end{frame}