Compare commits

...

No commits in common. "main" and "pdf" have entirely different histories.
main ... pdf

207 changed files with 0 additions and 1183571 deletions

315
.gitignore vendored
View file

@ -1,315 +0,0 @@
## Core latex/pdflatex auxiliary files:
*.aux
*.lof
*.log
*.lot
*.fls
*.out
*.toc
*.fmt
*.fot
*.cb
*.cb2
.*.lb
## Intermediate documents:
*.dvi
*.xdv
*-converted-to.*
# these rules might exclude image files for figures etc.
# *.ps
# *.eps
# *.pdf
## Generated if empty string is given at "Please type another file name for output:"
.pdf
presentation.pdf
## Bibliography auxiliary files (bibtex/biblatex/biber):
*.bbl
*.bbl-SAVE-ERROR
*.bcf
*.bcf-SAVE-ERROR
*.blg
*-blx.aux
*-blx.bib
*.run.xml
## Build tool auxiliary files:
*.fdb_latexmk
*.synctex
*.synctex(busy)
*.synctex.gz
*.synctex.gz(busy)
*.pdfsync
*.rubbercache
rubber.cache
## Build tool directories for auxiliary files
# latexrun
latex.out/
## Auxiliary and intermediate files from other packages:
# algorithms
*.alg
*.loa
# achemso
acs-*.bib
# amsthm
*.thm
# attachfile2
*.atfi
# beamer
*.nav
*.pre
*.snm
*.vrb
# changes
*.soc
*.loc
# comment
*.cut
# cprotect
*.cpt
# elsarticle (documentclass of Elsevier journals)
*.spl
# endnotes
*.ent
# fixme
*.lox
# feynmf/feynmp
*.mf
*.mp
*.t[1-9]
*.t[1-9][0-9]
*.tfm
#(r)(e)ledmac/(r)(e)ledpar
*.end
*.?end
*.[1-9]
*.[1-9][0-9]
*.[1-9][0-9][0-9]
*.[1-9]R
*.[1-9][0-9]R
*.[1-9][0-9][0-9]R
*.eledsec[1-9]
*.eledsec[1-9]R
*.eledsec[1-9][0-9]
*.eledsec[1-9][0-9]R
*.eledsec[1-9][0-9][0-9]
*.eledsec[1-9][0-9][0-9]R
# glossaries
*.acn
*.acr
*.glg
*.glo
*.gls
*.glsdefs
*.lzo
*.lzs
*.slg
*.slo
*.sls
# uncomment this for glossaries-extra (will ignore makeindex's style files!)
# *.ist
# gnuplot
*.gnuplot
*.table
# gnuplottex
*-gnuplottex-*
# gregoriotex
*.gaux
*.glog
*.gtex
# htlatex
*.4ct
*.4tc
*.idv
*.lg
*.trc
*.xref
# hypdoc
*.hd
# hyperref
*.brf
# knitr
*-concordance.tex
# TODO Uncomment the next line if you use knitr and want to ignore its generated tikz files
# *.tikz
*-tikzDictionary
# listings
*.lol
# luatexja-ruby
*.ltjruby
# makeidx
*.idx
*.ilg
*.ind
# minitoc
*.maf
*.mlf
*.mlt
*.mtc[0-9]*
*.slf[0-9]*
*.slt[0-9]*
*.stc[0-9]*
# minted
_minted*
*.data.minted
*.pyg
# morewrites
*.mw
# newpax
*.newpax
# nomencl
*.nlg
*.nlo
*.nls
# pax
*.pax
# pdfpcnotes
*.pdfpc
# sagetex
*.sagetex.sage
*.sagetex.py
*.sagetex.scmd
# scrwfile
*.wrt
# svg
svg-inkscape/
# sympy
*.sout
*.sympy
sympy-plots-for-*.tex/
# pdfcomment
*.upa
*.upb
# pythontex
*.pytxcode
pythontex-files-*/
# tcolorbox
*.listing
# thmtools
*.loe
# TikZ & PGF
*.dpth
*.md5
*.auxlock
# titletoc
*.ptc
# todonotes
*.tdo
# vhistory
*.hst
*.ver
# easy-todo
*.lod
# xcolor
*.xcp
# xmpincl
*.xmpi
# xindy
*.xdy
# xypic precompiled matrices and outlines
*.xyc
*.xyd
# endfloat
*.ttt
*.fff
# Latexian
TSWLatexianTemp*
## Editors:
# WinEdt
*.bak
*.sav
# Texpad
.texpadtmp
# LyX
*.lyx~
# Kile
*.backup
# gummi
.*.swp
# KBibTeX
*~[0-9]*
# TeXnicCenter
*.tps
# auto folder when using emacs and auctex
./auto/*
*.el
# expex forward references with \gathertags
*-tags.tex
# standalone packages
*.sta
# Makeindex log files
*.lpz
# xwatermark package
*.xwm
# REVTeX puts footnotes in the bibliography by default, unless the nofootinbib
# option is specified. Footnotes are the stored in a file with suffix Notes.bib.
# Uncomment the next line to have this generated file ignored.
#*Notes.bib

View file

@ -1,72 +0,0 @@
variables:
# Version de git utilisée
GIT_VERSION: v2.30.1
# Branche cible pour les PDF (modifiable via CI/CD variables)
PDF_BRANCH: "pdf"
FILE_NAMES: presentation
build_tex:
stage: build
image: danteev/texlive:latest # texlive plus inkscape and others
script:
- |
for FILE_NAME in $FILE_NAMES
do
echo "Compiling ${FILE_NAME}"
pdflatex --shell-escape ${FILE_NAME}.tex
if test -f ${FILE_NAME}.bcf; then
echo "Found ${FILE_NAME}.bcf, running biber"
biber ${FILE_NAME}
fi
pdflatex --shell-escape ${FILE_NAME}.tex
done
after_script:
- |
for FILE_NAME in $FILE_NAMES
do
echo "============================================"
cat ${FILE_NAME}.log
echo "============================================"
done
artifacts:
paths:
- "*.pdf"
deploy:
stage: deploy
image:
name: alpine/git:${GIT_VERSION}
entrypoint: [""]
before_script:
# Clone le repo dans un dossier temporaire
- git clone "https://${GITLAB_USERNAME}:${GITLAB_TOKEN}@${CI_SERVER_HOST}/${CI_PROJECT_PATH}.git" "${CI_COMMIT_SHA}"
# Configure lidentité git
- git config --global user.email "${GIT_USER_EMAIL:-$GITLAB_USER_EMAIL}"
- git config --global user.name "${GIT_USER_NAME:-$GITLAB_USER_NAME}"
script:
# Déplace les PDFs compilés dans le repo cloné
- cd "${CI_COMMIT_SHA}"
# Crée une branche orpheline (vierge, sans historique ni fichiers)
- git checkout --orphan "${PDF_BRANCH}"
- git reset --hard
- mv ../*.pdf ./
# Ajoute uniquement les PDF
- git add -f *.pdf
# Vérifie sil y a des changements et push
- |
CHANGES=$(git status --porcelain | wc -l)
if [ "$CHANGES" -gt "0" ]; then
git commit -m "${COMMIT_MESSAGE:-Updating PDF files}"
git push --force origin "${PDF_BRANCH}" -o ci.skip
else
echo "No PDF changes to commit"
fi

View file

@ -1,3 +0,0 @@
# My presentation for our work on colBiSBM
[The PDF](https://forgemia.inra.fr/louis.lacoste/presentation-colbisbm/-/raw/pdf/presentation.pdf?ref_type=heads)

View file

@ -1,203 +0,0 @@
\section{Clustering}
\begin{frame}{Clustering algorithm}
\centering
\vspace{0.25\baselineskip}
\begin{tikzpicture}[scale=0.85]
\input{tikz/clustering.tex}
\end{tikzpicture}
\[
D_{\mathcal{M}}(m,m') = \sum_{q = 1}^{Q_1} \sum_{r = 1}^{Q_2} \max(\widetilde{\pi}_{q}^{m}, \widetilde{\pi}_{q}^{m'}) \left( \widetilde{\alpha}_{qr}^{m} - \widetilde{\alpha}_{qr}^{m'}\right)^{2} \max(\widetilde{\rho}_{r}^{m}, \widetilde{\rho}_{r}^{m'})
\]
\end{frame}
\section{VEM}
\begin{frame}{Developed formula of variational EM}
\begin{multline*}
\ell (\bm{Y};\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(Y^{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} \eqcolon
\mathcal{J}(\tau;\theta),
\end{multline*}
\begin{block}{Variational approximation}
$\tau_{iq}^{1,m} = \mathcal{R}^1_{Y^m,\tau}(Z_{iq}^m = 1)$
and $\tau_{jr}^{2,m} = \mathcal{R}^2_{Y^m,\tau}(W_{jr}^m = 1)$
\end{block}
\end{frame}
\begin{frame}{\emph{Variational Expectation} Step}
\[
\widehat{\tau}^{(t+1)} = \arg \max_{\tau}
\mathcal{J}(\mathcal{\tau},\bm{\widehat{\theta}}^{(t)})
\Leftrightarrow \arg\min_{\tau\in\mathcal{T}} \mathbf{KL}[\mathcal{R}_{\mathbf{Y},\tau}, \mathbb{P}(.|\mathbf{Y})]
\]
\begin{equation*}
\begin{cases}
\widehat{\tau}_{iq}^{1,m} \propto \widehat{\pi}_{q}^{m(t)} \prod_{j=1}^{n_2^m}\prod_{r\in\mathcal{Q}_2^m} f(Y_{ij}^m;\widehat{\alpha}_{qr}^{(t)})^{\widehat{\tau}_{jr}^{2,m(t+1)}} & \forall i = 1, \dots , n_1^m, q \in \mathcal{Q}_1^m \\
\widehat{\tau}_{jr}^{2,m} \propto \widehat{\rho}_{r}^{m(t)} \prod_{i=1}^{n_1^m}\prod_{q\in\mathcal{Q}_1^m} f(Y_{ij}^m;\widehat{\alpha}_{qr}^{(t)})^{\widehat{\tau}_{iq}^{1,m(t+1)}} & \forall j = 1, \dots , n_2^m, r \in \mathcal{Q}_2^m
\end{cases}
\end{equation*}
\footnotetext[2]{Initialization of $\widehat{\tau}$ with a
\emph{spectral clustering} on the networks.}
\end{frame}
\begin{frame}{\emph{Maximization} Step}
\[
\widehat{\theta}^{(t+1)} = \arg \max_{\theta} \mathcal{J}(\mathcal{\bm{\widehat{\tau}}}^{(t+1)},\theta)
\]
\begin{block}{Connectivity parameters}
\begin{align*}
\widehat{\alpha}_{qr} = \frac{\sum_{m=1}^{M} \sum_{i=1}^{n_1^m} \sum_{j=1}^{n_2^m} \tau_{iq}^{1,m} \tau_{jr}^{2,m} \alert<2>{Y_{ij}^m}}{\sum_{m=1}^{M} \sum_{i=1}^{n_1^m} \sum_{j=1}^{n_2^m} \tau_{iq}^{1,m} \tau_{jr}^{2,m}}
\end{align*}
\end{block}
\only<1>{
\begin{block}{Proportions for \emph{iid}}
\begin{align*}
\widehat{\pi}_q = \frac{\sum_{m=1}^{M} \sum_{i=1}^{n_1^m} \tau_{iq}^{1,m}}{\sum_{m=1}^{M} n_1^m} & &
\widehat{\rho}_r = \frac{\sum_{m=1}^{M} \sum_{j=1}^{n_2^m} \tau_{jr}^{2,m}}{\sum_{m=1}^{M} n_2^m}
\end{align*}
\end{block}
}
\only<2>{
\begin{block}{Proportions for $\pi\rho$}
\begin{align*}
\widehat{\pi}^{\color{red}m}_q = \frac{\sum_{i=1}^{n_1^m} \tau_{iq}^{1,m}}{n_1^m} & &
\widehat{\rho}^{\color{red}m}_r = \frac{\sum_{j=1}^{n_2^m} \tau_{jr}^{2,m}}{n_2^m}
\end{align*}
\end{block}
}
\end{frame}
\begin{frame}
\frametitle{Why does VE minimizes KL ?}
\begin{align*}
\ell_c(\bY,\bZ,\bW;\theta) & = \log \Prob(\bZ, \bW|\bY;\theta) + \ell(\bY;\theta) \\
\Leftrightarrow \ell(\bY;\theta) & = \ell_c(\bY,\bZ,\bW;\theta) - \log \Prob(\bZ, \bW|\bY;\theta) \\
\Leftrightarrow \Esp_{\Ryt}[\ell(\bY;\theta)] & = \Esp_{\Ryt}[\ell_c(\bY,\bZ,\bW;\theta)] - \Esp_{\Ryt}[\log \Prob(\bZ,\bW|\bY;\theta)] \\
\Leftrightarrow \ell(\bY;\theta) & = \Esp_{\Ryt}[\ell_c(\bY,\bZ,\bW;\theta)] - \Esp_{\Ryt}[\log \Prob(\bZ,\bW|\bY;\theta)] \\
\end{align*}
\begin{align*}
\text{But }\KL{\Ryt}{\log \Prob(\bZ,\bW|\bY;\theta)} & = - \Esp_{\Ryt} [\log \frac{\Prob(\bZ,\bW|\bY;\theta)}{\Ryt}] \\
= - \Esp_{\Ryt} [\log \Prob(\bZ,\bW|\bY;\theta)] + & \underbrace{\Esp_{\Ryt[\log \Ryt]}}_{-\Hshannon(\Ryt)} \\
\Leftrightarrow \KL{\Ryt}{\log \Prob(\bZ,\bW|\bY;\theta)} + \Hshannon(\Ryt) & = - \Esp_{\Ryt} [\log \Prob(\bZ,\bW|\bY;\theta)]
\end{align*}
Thus $\ell(\bY;\theta) - \KL{\Ryt}{\log \Prob(\bZ,\bW|\bY;\theta)} = \mathcal{J}(\tau;\theta) \qed$
\end{frame}
\section{Model selection}
\begin{frame}
\frametitle{On the BIC-L}
% Raconter l'histoire dans l'ordre suivant :
% \begin{itemize}
% \item ICL = Méthode BIC (approx Laplace) sur la log complète, fait apparaître la
% pénalité de complexité et pénalise l'entropie
% \item ICLv = ICL mais avec les paramètres variationnels et l'entropie variationnelle
% \item BIC-L = ICLv mais sans la pénalité sur l'entropie et la rajoutant à la fin
% \end{itemize}
\begin{align*}
% \text{BIC}(\hat{\theta}) & = \log p(\mathbf{Y};\hat{\theta}) - \frac{1}{2} \text{pen}(\dots) \\
% & = \Esp_{\mathbf{Z}, \mathbf{W}|\mathbf{Y}} [\underbrace{\log p(\mathbf{Y},\mathbf{Z},\mathbf{W};\hat{\theta})}_{\ell_c(\mathbf{Y},\mathbf{Z},\mathbf{W};\hat{\theta})}] + \mathcal{H}(p(\mathbf{Z},\mathbf{W}|\mathbf{Y})) - \frac{1}{2} \text{pen}(\dots) \\
\text{ICL}(\hat{\theta}) & = \Esp_{\mathbf{Z}, \mathbf{W}|\mathbf{Y}} [\ell_c(\mathbf{Y},\mathbf{Z},\mathbf{W};\hat{\theta})] - \frac{1}{2} \text{pen}(\dots) \\
\Esp_{\mathbf{Z}, \mathbf{W}|\mathbf{Y}}[\ell_c(\mathbf{Y},\mathbf{Z},\mathbf{W};\hat{\theta})] & = \log p(\mathbf{Y};\hat{\theta}) - \mathcal{H}(p(\mathbf{Z},\mathbf{W}|\mathbf{Y})) \\
\text{And thus,}~\text{ICL}(\hat{\theta}) & = \log p(\mathbf{Y};\hat{\theta}) - \mathcal{H}(p(\mathbf{Z},\mathbf{W}|\mathbf{Y})) - \frac{1}{2} \text{pen}(\dots)
\end{align*}
$\mathbf{Z,W|Y}$ intractable, use the \emph{variational approximation} $\mathcal{R}_{\mathbf{Y},\hat{\tau}}$ and don't penalize the entropy we derive the BIC-Like:
\[ \text{BIC-L}(\hat{\theta}, \hat{\tau})= \Esp_{\mathcal{R}_{\mathbf{Y}, \hat{\tau}}}[\ell_c(\mathbf{Y},\mathbf{Z},\mathbf{W};\hat{\theta}^{\text{var}})] + \mathcal{H}(\mathcal{R}_{\mathbf{Y}, \hat{\tau}}) - \frac{1}{2} \text{pen}(\dots)
\]
\cite{biernackiAssessingMixtureModel2000,daudinMixtureModelRandom2008,chabert-liddellLearningCommonStructures2024}
\end{frame}
\begin{frame}{Practical problems of choosing $Q_1, Q_2$}
\begin{alertblock}{Exploration problems}
\begin{itemize}
\item Sensitivity to initializations. \uncover<2->{$\rightarrow$ \textbf{Spectral
clustering} and \textbf{split \& merge} approach}
\item Exploration of a 2D grid is costly. \uncover<3->{$\rightarrow$ \textbf{Greedy
approach} and \textbf{sliding window}}
\end{itemize}
\end{alertblock}
\end{frame}
\begin{frame}
\frametitle{Choice of $(Q_1,Q_2)$ - Greedy approach}
\begin{columns}
\begin{column}{0.5\linewidth}
\begin{tikzpicture}
\input{tikz/greedy-exploration.tex}
\end{tikzpicture}
\end{column}
\begin{column}{0.35\linewidth}
\begin{itemize}
\item Initial model~: \\ \vspace{0.125\baselineskip}
\begin{tikzpicture}
\draw[fill=gray, draw=gray] circle [radius=0.225cm];
\end{tikzpicture}
\onslide<2->{
\item Model after \emph{split}~:
\begin{tikzpicture}
\draw[fill=blueind, draw=blueind] circle [radius=0.225cm];
\end{tikzpicture}
\item Model maximizing the criterion~:\\ \vspace{0.125\baselineskip}
\begin{tikzpicture}
\draw[fill=white, draw=green, very thick] circle [radius=0.225cm];
\end{tikzpicture}
}
\onslide<3->{
\item Model after \emph{merge}~:
\begin{tikzpicture}
\draw[fill=red, draw=red] circle [radius=0.225cm];
\end{tikzpicture}
}
\end{itemize}
\end{column}
\end{columns}
\end{frame}
\begin{frame}
\frametitle{Choice of $(Q_1,Q_2)$ - Sliding window}
\begin{columns}
\begin{column}{0.6\textwidth}
\begin{figure}
\input{tikz/moving-window}
\caption{Sliding window}
\end{figure}
\end{column}
\begin{column}{0.4\textwidth}
\only<3>{\begin{block}{}
Initialization of the model if necessary
\end{block}}
\only<9>{\begin{block}{}
Localization of the new mode
\end{block}}
\only<10>{\begin{block}{}
Move to the new mode then iterate
\end{block}}
\end{column}
\end{columns}
\end{frame}
\section{Simulations}
% Ajouter les graphiques de résultats de simulations
\section{Data}
\begin{frame}
\addtocounter{figure}{1}
\begin{figure}[ht]
\centering
\begin{tikzpicture}
\tikzset{city/.style={circle, fill=white, draw=red, inner sep=0.65,minimum size=0}}
\node (map) at (0,0) {\includegraphics[width=0.35\textwidth]{img/uk-map.png}};
\node[city, pin={[pin edge={<-,thick}, pin distance = 25mm]180:Leeds}] (leeds) at (0.2,0.03) {};
\node[city, pin={[pin edge={<-,thick}, pin distance = 30mm]0:Edinburgh}] (edinburgh) at (-0.58,1.84) {};
\node[city, pin={[pin edge={<-,thick}, pin distance = 20mm]180:Bristol}] (bristol) at (-0.3,-1.82) {};
\node[city, pin={[pin edge={<-,thick}, pin distance = 20mm]0:Reading}] (reading) at (0.5,-1.82) {};
\end{tikzpicture}
\caption{Map of the four cities}
\end{figure}
\end{frame}

View file

@ -1,14 +0,0 @@
library("leaflet")
library("mapview")
library("webshot")
m <- leaflet() |>
addTiles() |>
setView(lng = -3.432, lat = 53.1, zoom = 6.4)
# |>
# addMarkers(lat = 55.953251, lng = -3.188267, popup = "Edinburgh") |>
# addMarkers(lat = 51.4545, lng = -2.5879, popup = "Bristol") |>
# addMarkers(popup = "Leeds", lat = 53.8008, lng = -1.5491) |>
# addMarkers(popup = "Reading", lat = 51.455, lng = -0.971)
print(m)
mapshot(m, file = "img/uk-map.png", cliprect = c(20, 365, 395, 600))

View file

@ -1,78 +0,0 @@
\documentclass[tikz]{standalone}
\usepackage{tikz}
\usepackage{xcolor}
\definecolor{lightorange}{HTML}{E69F00}
\definecolor{darkorange}{HTML}{D55E00}
\definecolor{lightblue}{HTML}{56B4E9}
\definecolor{darkblue}{HTML}{0072B2}
\usetikzlibrary{trees, positioning, shapes, calc, fit}
\begin{document}
\begin{tikzpicture}[
level distance=1.5cm,
level 1/.style={sibling distance=4cm},
level 2/.style={sibling distance=1.5cm},
every node/.style={circle, draw, minimum size=6mm},
edge from parent/.style={draw, -latex}
]
% ======================
% ARBRE PHYLOGENETIQUE
% ======================
\node (root) {$i=0$}
child {
node[fill=lightorange] {$i=1$}
child { node[fill=darkorange] {$i=3$} }
child { node[fill=darkorange] {$i=4$} }
child { node[fill=darkorange] {$i=5$} }
}
child {
node[fill=lightblue] {$i=2$}
child { node[fill=darkblue] {$i=6$} }
child { node[fill=darkblue] {$i=7$} }
};
% Labels des niveaux
\node[left=1cm of root-1-1,draw=none] (l2) {$l=2$};
\node[above=0.4cm of l2,draw=none] (l1) {$l=1$};
\node[above=0.4cm of l1,draw=none] (l0) {$l=0$};
% ======================
% ESPACE LATENT (droite)
% ======================
\begin{scope}[xshift=6cm, yshift=-3.5cm]
% Axes
\draw[->] (-0.5,0) -- (4,0) node[right,draw=none] {};
\draw[->] (0,-0.5) -- (0,4) node[above,draw=none] {};
% Points correspondant aux noeuds
\node[inner sep=1.5pt] (g0) at (2,2) {$\gamma_{0,0}$};
\node[inner sep=1.5pt, left of = g0, fill = lightorange] (g11) {$\gamma_{1,1}$};
\node[inner sep=1.5pt, right of = g0, fill = lightblue] (g12) {$\gamma_{1,2}$};
\node[inner sep=1.5pt, above = 0.5cm of g11, fill=darkorange] (g23) {$\gamma_{2,3}$};
\node[inner sep=1.5pt, above right = 0.1cm of g23, fill=darkorange] (g24) {$\gamma_{2,4}$};
\node[inner sep=1.5pt, below = 0.5cm of g11, fill=darkorange] (g25) {$\gamma_{2,5}$};
\node[inner sep=1.5pt, right = 0.05 cm of g25, fill=darkblue] (g26) {$\gamma_{2,6}$};
\node[inner sep=1.5pt, above of = g12, fill=darkblue] (g27) {$\gamma_{2,7}$};
\path (g0) edge[densely dotted] (g11) edge[densely dotted] (g12);
\path (g11) edge[densely dotted] (g23) edge[densely dotted] (g24) edge[densely dotted] (g25);
\path (g12) edge[densely dotted] (g27) edge[densely dotted] (g26);
\node [inner xsep=6pt, inner ysep=3pt, draw = black, fit={(g25) (g26)}, rectangle] {};
\end{scope}
\end{tikzpicture}
\end{document}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 232 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 866 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 204 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 147 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 284 KiB

Binary file not shown.

View file

@ -1,150 +0,0 @@
\documentclass{beamer}
\usetheme{Boadilla}
% importations
% \usepackage[french]{babel} % pour dire que le texte est en francais
\usepackage{csquotes}
\usepackage[T1]{fontenc} % pour les font postscript
\usepackage[cyr]{aeguill} % Police vectorielle TrueType, guillemets francais
\usepackage{epsfig} % pour gérer les images
\usepackage{amsmath,amsthm, stmaryrd, mathtools} % très bon mode mathématique
\usepackage{amsfonts,amssymb,bm}% permet la definition des ensembles
\usepackage{algorithm2e} % pour les algorithmes
\usepackage{algpseudocode} % pour les algorithmes
\usepackage{graphicx}
\usepackage{subcaption}
\usepackage{float} % pour le placement des figure
\usepackage{url} % pour une gestion efficace des url
\usepackage{hyperref} % pour les hyperliens dans le document
\usepackage[mode=buildnew]{standalone}
\usepackage{appendixnumberbeamer} % Cacher la numérotation des slides d'appendices
\usepackage{beamerappendixnote}
\usepackage{adjustbox} % To resize tikzpictures
\usepackage{fontawesome5}
\usepackage{makecell}
\usepackage{ccicons}
% Images
\graphicspath{{./img/}{./figure/}}
% Tikz
\usepackage{tikz} % For graph plots
\usepackage[outline]{contour}
%% Tikz Related
\usetikzlibrary{calc,shapes,backgrounds,arrows,automata,shadows,positioning}
\usetikzlibrary{arrows,shapes,positioning,shadows,trees,calc,backgrounds,automata,positioning}
\usetikzlibrary{decorations.pathreplacing,calligraphy,external,petri, shapes.geometric}
%% Tikz sets
\tikzset{
basic/.style = {draw, text width=3cm, font=\sffamily, rectangle},
root/.style = {basic, rounded corners=2pt, thin, align=center,
fill=green!30},
level 2/.style = {basic, rounded corners=6pt, thin,align=center, fill=green!60,
text width=8em},
level 3/.style = {basic, thin, align=left, fill=pink!60, text width=3.5cm}
}
% Couleurs
% pour tickz multilevel
\usepackage{xcolor}
\definecolor{aoenglish}{rgb}{0.0, 0.5, 0.0}
\definecolor{redorg}{RGB}{215, 48, 39}
\definecolor{orangeorg}{RGB}{253, 174, 97}
\definecolor{blueind}{RGB}{016, 101, 171}
\definecolor{cyanind}{RGB}{058, 147, 195}
\definecolor{electricblue}{RGB}{142, 196, 222}
\definecolor{greenind}{RGB}{112, 130, 56}
\definecolor{burntorange}{RGB}{179, 021, 041}
\definecolor{goldenyellow}{RGB}{215, 095, 076}
\definecolor{peach}{RGB}{246, 164, 130}
\definecolor{gray}{RGB}{128, 128, 128}
%% Couleur Paris-Saclay
\definecolor{pruneps}{RGB}{99,0,60}
\definecolor{bluefonceps}{RGB}{0,78,125}
\definecolor{blueps}{RGB}{14,135,201}
\definecolor{cyanps}{RGB}{70,195,210}
\definecolor{vertps}{RGB}{64,183,105}
%% Biblio
\usepackage[style=apa, sorting=none, backend=biber]{biblatex}
\addbibresource{references.bib}
\AtEveryCite{\color{bluefonceps}}
\AtEveryBibitem{\clearfield{annotation}}
\newcommand{\bZ}{\bm{Z}}
\newcommand{\bY}{\bm{Y}}
\newcommand{\bW}{\bm{W}}
\newcommand{\Prob}{\mathbb{P}}
\newcommand{\Ryt}{\mathcal{R}_{\bY,\tau}}
\newcommand{\KL}[2]{\mathbf{KL}[#1,#2]}
\newcommand{\Esp}{\mathbb{E}}
\newcommand{\Hshannon}{\mathcal{H}}
% Footnote
\makeatletter
\newcommand\blfootnote[1]{%
\begingroup
\renewcommand{\@makefntext}[1]{\noindent\makebox[1.8em][r]#1}
\renewcommand\thefootnote{}\footnote{#1}%
\addtocounter{footnote}{-1}%
\endgroup
}
\makeatother
% Beamer
\setbeamertemplate{headline}{%
\begin{beamercolorbox}[ht=2.25ex,dp=3.75ex]{section in head/foot}
\insertnavigation{\paperwidth}
\end{beamercolorbox}%
}%
\beamertemplatenavigationsymbolsempty % Pas de bar de navigation
% Beamer settings
\setbeamertemplate{caption}[numbered]
\setbeamertemplate{note page}[plain] % Notes
\setbeamerfont{caption}{size=\scriptsize} % Taille des légendes
\setbeamercolor{palette primary}{bg=cyanps, fg=black}
\setbeamercolor{palette secondary}{bg=blueps, fg=white}
\setbeamercolor{palette tertiary}{bg=bluefonceps, fg=white}
\setbeamercolor{structure}{fg=blueps}
\subtitle{Rochebrune 2026}
\title[Bipartite networks collection]{Joint estimation of bipartite network collections. Application to plant-pollinator networks.}
\author[L. Lacoste]{\underline{Louis Lacoste}, Pierre Barbillon and
Sophie Donnet\newline UMR MIA Paris-Saclay, AgroParisTech, INRAE, Université Paris-Saclay\newline\ccbysa}
\date{23 mars 2026}
\begin{document}
% titre
\begin{frame}[noframenumbering,plain]
\maketitle
\end{frame}
\begin{refsection}
\include{principal}
\renewcommand{\pgfuseimage}[1]{\scalebox{.75}{\includegraphics{#1}}}
\begin{frame}[noframenumbering,plain,allowframebreaks]
\frametitle{References}
\printbibliography
\end{frame}
\end{refsection}
\appendix
\begin{refsection}
\include{annexe}
\renewcommand{\pgfuseimage}[1]{\scalebox{.75}{\includegraphics{#1}}}
\section{Appendices references}
\begin{frame}[noframenumbering,plain,allowframebreaks]
\frametitle{Appendices references}
\printbibliography
\end{frame}
\end{refsection}
\end{document}

View file

@ -1,460 +0,0 @@
\section{Model Context}
\label{sec:context-of-the-model}
\begin{frame}
\frametitle{Why \alert<1>{a network?}}
\begin{columns}
\begin{column}{0.55\textwidth}
\begin{columns}
\only<1>{
\begin{column}{0.5\textwidth}
\begin{figure}[ht]
\centering
\begin{tikzpicture}[scale=0.65]
\input{tikz/plantpollinatornetwork.tex}
\end{tikzpicture}
\caption{A toy network}
\label{fig:plants-pollin}
\end{figure}
\end{column}
\begin{column}{0.3\textwidth}
\centering
\begin{align*}
\begin{pmatrix}
1 & 0 & 1 \\
1 & 0 & 0 \\
1 & 0 & 0 \\
1 & 1 & 0
\end{pmatrix}
\end{align*}
\footnotesize
Associated bi-adjacency matrix
\end{column}
}
\only<2>{
\begin{column}{0.5\textwidth}
\begin{figure}[ht]
% \centering
\includegraphics[width=1\textwidth]{tikz/applications/baldock/graph-Baldock2019_Bristol.pdf}
\caption{Plant-pollinator network from
Bristol\newline\cite{baldockSystemsApproachReveals2019}}
\label{fig:bristol-network}
\end{figure}
\end{column}
\begin{column}{0.45\textwidth}
\centering
\begin{figure}
\includegraphics[width=0.7\textwidth]{tikz/applications/baldock/mat-Baldock2019_Bristol.pdf}
\caption{Adjacency matrix of the network}
\end{figure}
\end{column}
}
\end{columns}
\end{column}
\begin{column}{0.4\textwidth}
\only<1>{
\begin{itemize}
\item Bipartite graph $G = (U,V,E)$
\item Encoded in bi-adjacency matrix $Y \in \{0,1\}^{n_1 \times n_2}$
\end{itemize}}
\only<2>{
\begin{itemize}
\item Increasingly available
\item Ecosystems described by their interactions
\item Functional structure for: biodiversity monitoring, robustness, risk of collapse
\end{itemize}}
\end{column}
\end{columns}
\end{frame}
\begin{frame}{Analysis methods for a network}
Several methods~:
\begin{itemize}
\item Metrics at \begin{itemize}
\item node level: degree, centrality\dots
\item network level: density, nestedness\dots
\end{itemize}
\cite{kolaczykStatisticalAnalysisNetwork2009}
\item \textbf<2>{Node embedding and/or clustering with latent variable models}
\\\cite{snijdersEstimationPredictionStochastic1997,hoffLatentSpaceApproaches2002}
\item Node or network embedding with Graph Convolutional Networks
\\\cite{kipfVariationalGraphAutoEncoders2016a}
\end{itemize}
\end{frame}
\begin{frame}
\addtocounter{footnote}{1}
\frametitle{Bipartite Stochastic Block Model (BiSBM\footnotemark[\thefootnote])}\framesubtitle{\cite{govaertEMAlgorithmBlock2005}}
\begin{columns}
\begin{column}{0.40\linewidth}
\begin{figure}[H]
\center
\begin{tikzpicture}[scale=0.35]
\input{tikz/lbm.tex}
\end{tikzpicture}
\caption{Example of BiSBM}
\label{fig:LBMvisu}
\end{figure}
\end{column}
\begin{column}{0.51\linewidth}
\begin{block}{Hierarchical model}
\vspace{-\baselineskip}
\begin{align*}
\forall q\in[\![ 1, Q_1]\!],\mathbb{P}(Z_i = q) = \pi_q \\
\forall r\in[\![ 1, Q_2]\!],\mathbb{P}(W_j = r) = \rho_r \\
Y_{ij} | Z_i = q, W_j = r \sim \mathcal{B}ern(\alpha_{q,r})
\end{align*}
where $|\pi| = Q_1, |\rho| = Q_2, |\alpha| = Q_1 \times Q_2$
\end{block}
\begin{block}{Concise BiSBM formula}
$Y \sim \mathcal{B}ern\text{-BiSBM}_{n_1,n_2}(Q_1, Q_2, \pi, \rho, \alpha)$
\end{block}
\end{column}
\end{columns}
\footnotetext[\thefootnote]{Commonly Known as \emph{Latent Block Model} (LBM) in the literature.}
\end{frame}
\begin{frame}
\frametitle{How to compare multiple networks?}
\begin{figure}[ht]
\centering
\begin{subfigure}[ht]{0.475\textwidth}
\centering
\includegraphics[width=0.5\textwidth]{tikz/applications/baldock/mat-Baldock2019_Bristol.pdf}
\caption{Bristol}
\end{subfigure}
\begin{subfigure}[ht]{0.475\textwidth}
\centering
\includegraphics[width=0.5\textwidth]{tikz/applications/baldock/mat-Baldock2019_Edinburgh.pdf}
\caption{Edinburgh}
\end{subfigure}
\hfill
\begin{subfigure}[ht]{0.475\textwidth}
\centering
\includegraphics[width=0.5\textwidth]{tikz/applications/baldock/mat-Baldock2019_Leeds.pdf}
\caption{Leeds}
\end{subfigure}
\begin{subfigure}[ht]{0.475\textwidth}
\centering
\includegraphics[width=0.5\textwidth]{tikz/applications/baldock/mat-Baldock2019_Reading.pdf}
\caption{Reading}
\end{subfigure}
\caption{Adjacency matrices,~\cite{baldockSystemsApproachReveals2019}}
\label{fig:adj}
\end{figure}
\end{frame}
\section[Bipartite collection models]{Bipartite network collection models}
\label{sec:extension-of-colsbm-to-bipartite-networks}
\begin{frame}
\frametitle{First approach: sep-BiSBM}
\only<1-2>{
\begin{equation*}
\forall m \in \{1\dots M\}, Y^m \overset{ind}{\sim} \mathcal{B}ern\text{-BiSBM}_{n_1^m,n_2^m}(Q_1\alert<2->{^m}, Q_2\alert<2->{^m}, \pi\alert<2->{^m}, \rho\alert<2->{^m}, \alpha\alert<2->{^m})
\end{equation*}}
\only<3>{
\begin{figure}[ht]
\centering
\begin{subfigure}[ht]{0.42\textwidth}
\centering
\includegraphics[width=0.5\textwidth]{tikz/applications/baldock/bisbm-mat-Baldock2019_Bristol.pdf}
\caption{Bristol, $Q_1 = 3, Q_2 = 3$}
\end{subfigure}
\begin{subfigure}[ht]{0.42\textwidth}
\centering
\includegraphics[width=0.5\textwidth]{tikz/applications/baldock/bisbm-mat-Baldock2019_Edinburgh.pdf}
\caption{Edinburgh, $Q_1 = 3, Q_2 = 3$}
\end{subfigure}
\hfill
\begin{subfigure}[ht]{0.42\textwidth}
\centering
\includegraphics[width=0.5\textwidth]{tikz/applications/baldock/bisbm-mat-Baldock2019_Leeds.pdf}
\caption{Leeds, $Q_1 = 3, Q_2 = 2$}
\end{subfigure}
\begin{subfigure}[ht]{0.42\textwidth}
\centering
\includegraphics[width=0.5\textwidth]{tikz/applications/baldock/bisbm-mat-Baldock2019_Reading.pdf}
\caption{Reading, $Q_1 = 3, Q_2 = 3$}
\end{subfigure}
\caption{Separate BiSBM fit for each network}
\label{fig:adj-reord}
\end{figure}
}
\end{frame}
\begin{frame}
\frametitle{Our contribution: joint models}
\onslide<1->{ \begin{block}{\emph{iid}-colBiSBM}
\[
\forall m \in \{1\dots M\}, Y^m \overset{iid}{\sim}
\mathcal{B}ern\text{-BiSBM}_{n_1^m,n_2^m}(Q_1, Q_2, \pi, \rho, \alpha)
\]
with $\theta = (\pi, \rho, \alpha)$.
\end{block}}
\onslide<2>{ \begin{block}{$\pi\rho$-colBiSBM}
\[
\forall m \in \{1\dots M\}, Y^m \overset{ind}{\sim}
\mathcal{B}ern\text{-BiSBM}_{n_1^m,n_2^m}(Q_1, Q_2, \pi\alert{^m}, \rho\alert{^m}, \alpha)
\]
with $\theta = ((\pi\alert{^m})_{m=1,\dots, M}, (\rho\alert{^m})_{m=1,\dots,
M}, \alpha)$.
\end{block}
}
\begin{itemize}
\item No shared nodes across networks
\item Agnostic of structure
\end{itemize}
\end{frame}
% \begin{frame}
% \frametitle{Parameter estimation}
% % DONE say that tau i q m c' is the probability that Zim = q, approximation of the variational probability. Because we impose independence
% % By maximizing a variational lower bound of the
% % log-likelihood of the observed data.
% Maximizing the log-likelihood?
% \begin{block}{log-likelihood and complete log-likelihood}
% \[
% \ell(\mathbf{Y};\theta) = \sum_{\mathbf{Z,W}\in \mathbf{\mathcal{Z}\times\mathcal{W}}} \ell_c(\mathbf{Y}, \mathbf{Z}, \mathbf{W};\theta)
% \]
% with $\mathbf{\mathcal{Z}} = \{1,\dots,\alert<2>{Q_1}\}^{\alert<2>{n}},
% \mathbf{\mathcal{W}} = \{1,\dots,\alert<2>{Q_2}\}^{\alert<2>{n}}$
% \end{block}
% \uncover<3>{So, classic algorithm $\Rightarrow$
% \emph{Expectation-Maximization} (EM).}
% \end{frame}
% \begin{frame}
% \frametitle{By classic EM}
% At iteration $(t)$:
% \begin{itemize}
% \item[$\bullet$]\textbf{E Step}: calculate
% $$ \mathcal{Q}(\theta | \theta^{(t-1)}) = \mathbb E_{\alert<2>{\mathbf Z, \mathbf W | \mathbf Y, \theta^{(t-1)}} } \left[\ell_c(\mathbf Y, \mathbf W, \mathbf Z; \theta) \right] $$
% \item[$\bullet$]\textbf{M Step}:
% $$ \theta^{(t)} = \arg \max_{\theta} \mathcal{Q}(\theta | \theta^{(t-1)})$$
% \end{itemize}
% \uncover<2>{
% \begin{alertblock}{Problem for classic EM}
% Law of $\mathbf{Z,W|Y},\theta^{(t-1)}$ inaccessible
% \end{alertblock}}
% \end{frame}
\section{Inference and model selection}
\label{sec:inference-and-model-selection}
\begin{frame}{Parameter estimation}{How ?}
\begin{align*}
\ell(\mathbf{Y};\theta) = & \sum_{m=1}^{M} \ell(Y^m;\theta) \\
= & \sum_{m=1}^{M} \log \sum_{\alert<2->{Z^m \in \mathcal{Z}^m,W^m\in\mathcal{W}^m}} \exp\{\ell_c(Y^m,Z^m,W^m;\theta)\} \\
= & \sum_{m=1}^{M} \log\sum_{\alert<2->{Z^m \in \mathcal{Z}^m,W^m\in\mathcal{W}^m}}\exp\{\ell(Y^m | Z^m,W^m;\alpha) + \\
& \ell(Z^m;\pi) + \ell(W^m;\rho)\}
% & = \sum_{m=1}^{M} \sum_{i=1}^{n_1^m} \sum_{q=1}^{Q_1} Z_{iq} \log(\pi_q) + \sum_{j=1}^{n_2^m}\sum_{r=1}^{Q_2} W_{jr} \log(\rho_r) \\
% & + \sum_{i,j}\sum_{q,r} Z_{iq}W_{jr} \log \mathcal{B}ern(Y_{ij};\alpha_{qr})
\end{align*}
\onslide<2>{
EM impracticable since $\mathbf{Z,W|Y}$ intractable due to
conditional dependency.}
\end{frame}
\begin{frame}{Parameter estimation}{Solution}
\emph{Variational EM}~\cite{daudinMixtureModelRandom2008,chabert-liddellLearningCommonStructures2024}.
\begin{block}{Variational approximation of $\mathbf{Z,W|Y}$}
$\mathcal{R}_{Y^m,\tau}(Z^m, W^m) =
\mathcal{R}^1_{Y^m,\tau}(Z^m)
{\color{red}\times}
\mathcal{R}^2_{Y^m,\tau}(W^m) \Rightarrow$ independence between rows and columns, mean field approximation.
\end{block}
\begin{align*}
\ell (\mathbf{Y};\theta) \geq \color{red}\sum_{m=1}^{M} \bigg(
\color{black} \mathbb{E}_{\mathcal{R}_{Y^m,\tau}(Z^m,W^m)}
\left[ \ell_c(Y^m,Z^m,W^m ; \theta) \right] + \\
\mathcal{H}(\mathcal{R}_{Y^m,\tau}
(Z^m, W^m))
\color{red}\bigg) \color{black}
\eqcolon \mathcal{J}(\mathcal{R}_{\mathbf{Y},\tau};\theta)
\end{align*}
where $\theta = (\pi, \rho, \alpha)$ for \emph{iid}-colBiSBM
\end{frame}
\begin{frame}{Selection criterion for $Q_1, Q_2$}
Integrated Classification Likelihood (ICL)~\cite{biernackiAssessingMixtureModel2000}
\begin{align*}
\text{ICL}(\mathbf{Y}, Q_1, Q_2) & = \mathbb{E}_{\mathbf{Z,W|Y}} [\ell_c(\mathbf{Y,Z,W};\hat{\theta})] -\frac{1}{2}\text{pen}(Q_1, Q_2) \\
& = \ell(\mathbf{Y};\hat{\theta}) - \mathcal{H}(p(\mathbf{Z,W}|\mathbf{Y};\hat{\theta})) - \frac{1}{2}\text{pen}(Q_1, Q_2)
\end{align*} For SBM~\cite{daudinMixtureModelRandom2008}.
\onslide<2->{
\begin{align*}
\text{BIC-L}(\mathbf{Y}, Q_1, Q_2) & = \mathbb{E}_{\mathcal{R}_{\mathbf{Y},\hat{\tau}}} [\ell_c(\mathbf{Y,Z,W};\hat{\theta}^{\text{var}})] + \mathcal{H(\mathcal{R}_{\mathbf{Y},\hat{\tau}})} - \frac{1}{2}\text{pen}(Q_1, Q_2) \\
& = \mathcal{J(\mathcal{R}_{\mathbf{Y},\hat{\tau}}, \hat{\theta}^{\text{var}})} - \frac{1}{2}\text{pen}(Q_1, Q_2)
\end{align*}
}
\end{frame}
\section{Application}
\label{sec:application}
\begin{frame}
\frametitle{Results~\cite{baldockSystemsApproachReveals2019}}
\only<1>{
\begin{figure}[ht]
\centering
\begin{tikzpicture}[every every node/.style={anchor=south west, inner sep=0pt}, x=1mm, y=1mm]
\node (struct) at (0,0) {\includegraphics[width=0.8\textwidth]{tikz/applications/baldock/shared-mixture-iid.pdf}};
\node[isosceles triangle,
isosceles triangle apex angle=10,
draw,
rotate=270,
shading = axis,
top color=blue!50,
bottom color=blue!1!white,
anchor=right corner, minimum height=25mm, label={[label distance = 2mm]180:Generalists}, label={[label distance = 2mm]0:Specialists}] (T) at ($(struct.east)+(1.25,8)$) {};
\end{tikzpicture}
\caption{Shared structure ($\alpha$ matrix) and proportions ($\pi$ and $\rho$) of the four networks}
\label{fig:shared-mixture}
\end{figure}}
\only<2>{\begin{figure}[ht]
\centering
\begin{subfigure}[t]{0.5\textwidth}
\centering
\includegraphics[width=0.45\textwidth]{tikz/applications/baldock/colbisbm-mat-Baldock2019_Bristol.pdf}
\caption{Bristol}
\end{subfigure}\hfil
\begin{subfigure}[t]{0.5\textwidth}
\centering
\includegraphics[width=0.45\textwidth]{tikz/applications/baldock/colbisbm-mat-Baldock2019_Edinburgh.pdf}
\caption{Edinburgh}
\end{subfigure}
\newline
\begin{subfigure}[ht]{0.5\textwidth}
\centering
\includegraphics[width=0.5\textwidth]{tikz/applications/baldock/colbisbm-mat-Baldock2019_Leeds.pdf}
\caption{Leeds}
\end{subfigure}\hfil
\begin{subfigure}[ht]{0.5\textwidth}
\centering
\includegraphics[width=0.5\textwidth]{tikz/applications/baldock/colbisbm-mat-Baldock2019_Reading.pdf}
\caption{Reading}
\end{subfigure}
\caption{\emph{iid}-colBiSBM fit, $Q_1 = 3, Q_2 = 5$}
\end{figure}}
\end{frame}
\begin{frame}
\frametitle{Focus on Leeds}
\captionsetup{font=normalsize}
\begin{figure}[ht]
\centering
\begin{subfigure}[t]{0.5\textwidth}
\centering
\includegraphics[width=1\textwidth]{tikz/applications/baldock/bisbm-mat-Baldock2019_Leeds.pdf}
\caption{sep-BiSBM, $Q_1 = 3, Q_2 = 2$}
\end{subfigure}\hfill
\begin{subfigure}[t]{0.5\textwidth}
\centering
\includegraphics[width=1\textwidth]{tikz/applications/baldock/colbisbm-mat-Baldock2019_Leeds.pdf}
\caption{\emph{iid}-colBiSBM, $Q_1 = 3, Q_2 = 5$}
\end{subfigure}
\end{figure}
\end{frame}
\begin{frame}{\emph{Bombus}}
\only<1>{
\begin{figure}
\captionsetup{font=normalsize}
\begin{subfigure}[t]{0.5\textwidth}
\centering
\includegraphics[width=0.5\textwidth]{img/baldock/bombus-hortorum.jpeg}
\caption{\emph{Bombus Hortorum} or garden bumblebee}
\end{subfigure}\hfill
\begin{subfigure}[t]{0.5\textwidth}
\centering
\includegraphics[width=0.5\textwidth]{img/baldock/bombus-lapidarius.jpeg}
\caption{\emph{Bombus Lapidarius} or red-tailed bumblebee}
\end{subfigure}
\end{figure}
}
\only<2->{
\begin{columns}
\begin{column}{0.2\textwidth}
\begin{figure}
\onslide<2>{
\begin{subfigure}[t]{0.7\textwidth}
\centering
\includegraphics[width=1\textwidth]{img/baldock/bombus-hortorum.jpeg}
\caption{\emph{Bombus Hortorum} or garden bumblebee}
\end{subfigure}
}
\onslide<3>{
\begin{subfigure}[t]{0.7\textwidth}
\centering
\includegraphics[width=1\textwidth]{img/baldock/bombus-lapidarius.jpeg}
\caption{\emph{Bombus Lapidarius} or red-tailed bumblebee}
\end{subfigure}
}
\end{figure}
\end{column}
\begin{column}{0.7\textwidth}
\begin{figure}
\centering
\begin{tikzpicture}[every every node/.style={anchor=south west, inner sep=0pt}, x=1mm, y=1mm]
\node (struct) at (0,0) {\includegraphics[width=0.8\textwidth]{tikz/applications/baldock/shared-iid.pdf}};
\node (gen) at (-29,14.8) {};
\node (interm) at (-29,2.5) {};
\node (spe) at (-29,-9.8) {};
\node[left = 3mm of spe] (@aux) {\phantom{B, E, R}};
\node[isosceles triangle,
isosceles triangle apex angle=10,
draw,
rotate=270,
shading = axis,
top color=blue!50,
bottom color=blue!1!white,
anchor=right corner, minimum height=42mm, label={[label distance = 2mm]207:Generalists}, label={[label distance = 12mm]357:Specialists}] (T) at ($(struct.north east)+(-1,-2.5)$) {};
\only<2>{
\node[left = 3mm of gen] (towns_gen_garden) {B, L};
\node[left = 3mm of spe] (towns_spe_garden) {\phantom{B, }E, R};
\path (towns_gen_garden) edge[->,thick] (gen);
\path (towns_spe_garden) edge[->,thick] (spe);
}
\only<3>{
\node[left = 3mm of interm] (towns_interm_red) {L};
\node[left = 3mm of spe] (towns_spe_red) {B, E, R};
\path (towns_interm_red) edge[->,thick] (interm);
\path (towns_spe_red) edge[->,thick] (spe);
}
\end{tikzpicture}
\caption{Shared structure ($\alpha$ matrix) of the four networks}\label{fig:shared}
\end{figure}
\end{column}
\end{columns}
}
\end{frame}
\section{Conclusion}
\begin{frame}
\frametitle{Conclusion and perspectives}
\begin{block}{Summary}
\begin{itemize}
\item Joint and agnostic structure detection.
\item Partitioning algorithm for collections.
\item \texttt{R} package \texttt{colSBM} \faGithub~GrossSBM/colSBM.
\item An article under review.
\end{itemize}
\end{block}
\begin{block}{Future work: phylogenetic tree and Latent Position Model}
\begin{center}
\includegraphics[width=0.8\textwidth]{dessin-LPM.pdf}
\end{center}
\cite{puTreeEnhancedLatentSpace2025,wilmsTreebasedNodeAggregation2022}
\end{block}
\end{frame}

Some files were not shown because too many files have changed in this diff Show more