Bilan semaine 51 2025 : 15 décembre - 19 décembre

colBiSBM
inférence
GNN
Auteur·rice
Affiliation

Louis Lacoste

MIA Paris-Saclay, INRAE, AgroParisTech, Université Paris-Saclay

Date de publication

19 décembre 2025

Modifié

24 février 2026

TODO List

  • C’est fait Passer version article flat dans Gitlab du papier et nettoyer au minimum sur une branche clean.

  • ✅ Corrigée !⚠️ IL Y A UNE TYPO SUR LE SIGNE DE L’ENTROPIE POUR LE PAPIER: - \mathcal{H} au lieu de +\mathcal{H}

  • ✅ Faire tourner clustering sur Trojelsgaard. Fait mais ne sépare personne.

  • Petites opérations sur les OTUs (regarder la matrice dans les yeux):

    • Ranger les OTUs par variances (i.e. sd(OTU_j))
    • Dans un RMD sur Human Microbiome Compendium Dessiner les graphiques : \mathbb{V}[OTU] = f(\mathbb{E}[OTU]), \frac{\mathbb{V}[OTU]}{\mathbb{E}[OTU]^2} = f(\mathbb{E}[OTU]) et \frac{\mathbb{V}[OTU]}{\mathbb{E}[OTU]} = f(\mathbb{E}[OTU]) (\approx 1) si les données suivent une loi de Poisson.
      • HMC sur-dispersés (au-dessus bissectrice)
      • Enterotype phyloseq sous-disp
    • Regarder la proportion de 1. taxon rares, 2. zeros.
    • Faire des coupures selon niveaux taxonomiques et regarder si \mathbb{V}_{\text{intra}} \approx \mathbb{V}_{\text{inter}}
    • Bonus: faire ça dans qmd et voir si forge permet gitlab pages
  • ✅ Faire tourner un LBM sur Human Gut et voir si ça plante sinon, ça plante, la ram est surchargée.

    • ❎⌛ Je tente avec SparseBM de JBL sur Python. Ne gère pas le Poisson
    • Faire LBM sur niveau taxonomique grossier, initialiser avec le résultat pour un niveau plus fin et ainsi de suite.
  • Increasing size :

  • ⌛ Prendre jeu de données exemple de phyloseq :

    • ✅ 😞 enterotype tourne mais pas bon résultats (semble deux blocs échantillons mais pas vu par le modèle).
    • 🕑 des jeux de données de Mahendra ne tourne pas (phase forward interminable).
  • Relire Peixoto (2014)

    • Regarder les gens qui citent les travaux de Peixoto
  • Implémentation blockmodels LBM avec covariables sur proportions (voir Équation 1)

Idées
  • Travailler sur Fungus Tree network
  • Comparaison covar prop avec GREMLINS multipartite sur (log(dist_phylo), fungus-tree)
  • Trouver manière de faire un compromis : \ell(Y,Z,W;\theta) - \lambda d(C(W),C_0) avec C(W) le clustering seulement sur la base de la structure LBM et C_0 le clustering de l’arbre. Problème d est une distance entre partition, comment optimiser dessus ?
  • ⌛ Mise à jour partielle des \tau : ce qui pose soucis c’est les gros calculs matriciels (c’est vraiment vrai?). Donc sorte de “stochastic” VEM où on update seulement une partie des \tau à chaque itération. Et échantillonnage stratifié selon l’arbre ?
    • ⌛ Simulations avec n_2 croissant lancée sur Migale
    • Réimplementé VE Bernoulli dans colSBM pour Bipartite et début implémentation Stochastic VE. En fait le problème des calculs matriciels Y\times(\tau^{(1)})^{\top} (n_2^2) donc besoin de sous-échantillonner les noeuds de l’autre dimension à mettre à jour.
  • Inutile car besoin du primal Chercher à formuler le problème dual (s’il existe?) de l’optimisation du LBM. Peut-être possible d’aller plus vite alors ? Équation 2
  • Clustering unipartite j’ai cassé une fonction de distance à vérifier et réparer

  • Codes pour le papier :

    • Nettoyer les scripts
    • Faire un joli README
    • ❓Faire des notebooks
  • Réussir à reproduire résultat de Abramov et al. (s. d.)

  • Maitriser graphtools de Peixoto pour essayer d’utiliser l’arbre taxonomique sur graphe de cooccurence inférer par SparCC

  • Maitriser SparCC

  • 👶 (délégué à Mona) Clustering sur Doré :

    • Regarder pour les couples date+nom les études et le nombre de réseaux analysables (Possible demander à Élisa)

      • ⌛ Chamberlain et al semble intéressant à regarder ! Voir le Rmarkdown
    • Clusteriser sur la base des noms et voir parmi les réseaux Européens (désagrégés ?)

    • Si M > 10, alors voir si je retrouve les mêmes résultats que dans les études.

    • Regarder Largest gap sur réseaux Doré

    • ⌛ Essayer clustering sur supinfo

      • CAH et Kmeans tendent vers faire K = 13 clusters sur les supinfos
      • Enrichir avec des métriques sur les réseaux (nestedness, connectance autres ?)
      • Demander à Elisa pour la signification des métadonnées
      • Demander à Elisa une fois vu cohérences de groupe voir pour interprétation écologiques ?
      • Algo de clustering sur les groupes trouvés

Inférence et microbes

Modèle avec covariables sur probas d’appartenances aux groupes

Toujours modèle LBM mais avec probas d’appartenance pour les colonnes variables:

\begin{align*} Z_i &\sim \mathcal{M}(1; \pi_1, \dots, \pi_Q), \sum_{q=1}^{Q} \pi_q = 1\\ W_j &\sim \mathcal{M}(1; \rho_1^j, \dots, \rho_R^j), \sum_{r=1}^{R} \rho_r^j = 1\\ Y_{i,j}&\mid Z_i = q, W_j = r \sim \mathcal{F}(\alpha_{qr}) \end{align*}

Inférence variationnelle donc \ell(Y;\pmb{\theta}) \geq \mathcal{J}(\mathcal{R},\pmb{\theta}) avec

\mathcal{J}(\mathcal{R},\pmb{\theta})= \sum_{i = 1}^{n_1}\sum_{j=1}^{n_2}\sum_{q \in \mathcal{Q}_1} \sum_{r \in \mathcal{Q}_2} \tau_{iq}^{1} \tau_{jr}^{2} \log f(Y_{ij}; \alpha_{qr}) + \sum_{i=1}^{n_1} \sum_{q \in \mathcal{Q}_1} \tau_{iq}^{1} \log \pi_{\color{black}q} + \sum_{j=1}^{n_2} \sum_{r \in \mathcal{Q}_2} \tau_{jr}^{2} \log \rho_{\color{black}r} \\ - \sum_{i=1}^{n_1} \tau_{iq}^{1} \log \tau_{iq}^{1} - \sum_{j=1}^{n_2} \tau_{jr}^{2} \log \tau_{jr}^{2}

Plusieurs possibilités pour la définition de \rho_r^j

Modèle Sophie

Avec \rho_r^j = \frac{\exp{\beta_r X_j}}{\sum_{s=1}^{R} \exp{\beta_s X_j}} = \sigma(\pmb{\beta} \pmb{X})_{r,j}, où \sigma désigne le softmax. Mais il y a besoin de poser une contrainte sur l’un des (\beta_r)_{r=1,\dots,R}, ici \beta_R = 0.

La partie pertinente de l’ELBO devient: P((\beta_r)_{r=1,\dots,R}, (X_j)_{j=1,\dots,n_2}, (\tau_{jr})_{\substack{j=1,\dots,n_2\\r=1,\dots,R}} ) = \sum_{j=1}^{n_2} \sum_{r=1}^{R} [\tau_{jr} (\beta_r X_j - \log (\sum_{s=1}^{R} \exp{\beta_s X_j}))] \tag{1}

Et on obtient la dérivée partielle par rapport à \beta_t comme: \begin{align*} \dfrac{\partial P}{\partial \beta_t}&((\beta_r)_{r=1,\dots,R}, (X_j)_{j=1,\dots,n_2}, (\tau_{jr})_{\substack{j=1,\dots,n_2\\r=1,\dots,R}} ) = \sum_{j=1}^{n_2} \biggl[ \tau_{jt} X_j - \frac{X_j \exp{\beta_t X_j}}{\sum_{s=1}^{R} \exp{\beta_s X_j}} \biggr]\\ & = \sum_{j=1}^{n_2} \biggl[\bigl(\tau_{jt} - \sigma(\pmb{\beta} \pmb{X})_{t,j}\bigr) X_j\biggr] = \sum_{j=1}^{n_2} \biggl[\bigl(\tau_{jt} - \rho_t^j \bigr) X_j\biggr] \end{align*}

Idée du problème dual

Les distributions variationnelles sont définies par :

q(Z,W) = \prod_{i=1}^{n_1} q_i(Z_i) \prod_{j=1}^{n_2} q_j(W_j),

avec q_i(Z_i=q)=\tau_{iq}^{(1)}, \qquad q_j(W_j=r)=\tau_{jr}^{(2)}.

Les contraintes de normalisation sont : \sum_{q=1}^Q \tau_{iq}^{(1)} = 1, \qquad \sum_{r=1}^R \tau_{jr}^{(2)} = 1.


Lagrangien

Le lagrangien du problème variationnel s’écrit : \mathcal{L}\!\left( \tau^{(1)},\tau^{(2)},(\lambda_i)_{i=1}^{n_1},(\mu_j)_{j=1}^{n_2} \right) = \mathcal{J}(\mathcal{R},\pmb{\theta}) + \sum_{i=1}^{n_1} \lambda_i \left(1-\sum_{q=1}^Q \tau_{iq}^{(1)}\right) + \sum_{j=1}^{n_2} \mu_j \left(1-\sum_{r=1}^R \tau_{jr}^{(2)}\right), \mathcal{J}(\mathcal{R},\pmb{\theta}) désigne la borne inférieure variationnelle associée au modèle et aux paramètres \Theta.


Problème primal (conditions d’optimalité)

En dérivant le lagrangien par rapport aux variables variationnelles \tau^{(1)} et \tau^{(2)}, puis en égalisant à zéro, on obtient les équations de point fixe suivantes :

\tau_{iq}^{(1)} \propto \pi_q^{(t)} \prod_{j=1}^{n_2} \prod_{r=1}^{R} f\!\left(Y_{ij};\alpha_{qr}^{(t)}\right)^{\tau_{jr}^{(2),(t+1)}}, \quad \forall i=1,\dots,n_1,\; q=1,\dots,Q,

\tau_{jr}^{(2)} \propto \rho_r^{(t)} \prod_{i=1}^{n_1} \prod_{q=1}^{Q} f\!\left(Y_{ij};\alpha_{qr}^{(t)}\right)^{\tau_{iq}^{(1),(t+1)}}, \quad \forall j=1,\dots,n_2,\; r=1,\dots,R, où :

  • \pi_q^{(t)} et \rho_r^{(t)} sont les proportions de classes,
  • f(\cdot;\alpha_{qr}) est la loi d’émission du modèle,
  • \alpha_{qr}^{(t)} désigne les paramètres de bloc à l’itération t.

Constantes de normalisation

Les constantes de normalisation associées sont données par :

T^{(1),(t)}_i = \sum_{q=1}^{Q} \pi_q^{(t)} \exp\!\left( \sum_{j=1}^{n_2} \sum_{r=1}^{R} \tau_{jr}^{(2)} \log f\!\left(Y_{ij};\alpha_{qr}^{(t)}\right) \right),

T^{(2),(t)}_j = \sum_{r=1}^{R} \rho_r^{(t)} \exp\!\left( \sum_{i=1}^{n_1} \sum_{q=1}^{Q} \tau_{iq}^{(1)} \log f\!\left(Y_{ij};\alpha_{qr}^{(t)}\right) \right).

Ainsi, les mises à jour normalisées s’écrivent : \tau_{iq}^{(1)} = \frac{1}{T^{(1),(t)}_i}(\cdots), \qquad \tau_{jr}^{(2)} = \frac{1}{T^{(2),(t)}_j}(\cdots).


Interprétation duale

Les multiplicateurs de Lagrange s’identifient alors à : \lambda_i = -\log T^{(1),(t)}_i - 1, \qquad \mu_j = -\log T^{(2),(t)}_j - 1, \tag{2} et le problème dual consiste à minimiser une somme de fonctions de log-partition, ce qui montre que l’algorithme VEM réalise implicitement une descente sur le dual.

Bibliographie: à lire, à faire

  • Lire article multi-niveaux Saint-Clair
  • 🆕 🔎 Trouver des papiers:
    • LBM Negative Binomial
    • Network inference through sample comparison
  • Idée des groupes sur la base de distance phylogénétique:
    • En train de comprendre les distances que phyloseq permet de calculer sur notre exemple
    • En train de lire sur Principle coordinate analysis : https://openplantpathology.github.io/OPP_Workshop_Multivariate/2-MV_PCO.html
    • Parametric t-SNE pour avoir une unique représentation latente (inconvénient utilise du Deep Learning)
    • Lire Papier UniFrac

Réflexion

  • easy16s : se renseigner sur
    • \alpha, \beta diversité
    • Heatmap
  • Regarder SPARTA Rennes
  • Ecrire et étudier les modèles pour différents niveaux taxonomiques.
  • 🆕 Regarder NetComi
  • 🆕 Regarder OneNet car aggrégation plus robuste
  • 🆕 Réfléchir sens d’aggréger les données ou de les diviser

Écrire et faire tourner

  • Lancer colBiSBM sur OTU\times Sample → problème du chargement en mémoire des données à voir
  • Lancer colSBM sur OTU\times OTU
  • TabNet pratiquer les exercices
  • 🆕 SparCC à différent niveaux
  • 🆕 SBM à différent niveaux
  • 🆕⌛ Tree-PLN à différents niveaux

Causalité

Plus sur le temps long, à regarder

  • GT causalité
  • Daria Bystrova lire présentation Bystrova (s. d.) (Meek rules, V-structure)

A discuter

  • 🆕 Voir pour des Réseaux / GDR ou aller
  • 🆕 Chercher des cours à suivre

Biblio à faire

  • Regarder Transport optimal graphes bipartite.

Lectures en cours 📚

HDR Vincent Brault

  • ⌛ Chap 2 : Creuser l’idée de maximiser l’énergie libre, très intéressant regarder le critère CARI et lire Robert et al 2021. Actuellement p32 du manuscrit
  • Chap 3

OT

  • Mazelet, Flamary, et Thirion (s. d.) Intéressant pour le transport optimal entre graphes de tailles différentes | Regarder si regularization entropique ne marche pas bien pour le graphe.
  • Nenna (s. d.b) Pour comprendre le problème d’OT régularisé pour l’entropie.
  • Nenna (s. d.a)

Inférence de graphes

  • Aitchison (1982), en cours

  • ❗📖 Payne et al. (2023) sur MixMPLN

Causalité

Largest Gaps

  • ❗📖 Brault et Channarond (2023)
  • ❗📖 Channarond, Daudin, et Robin (2012) le papier qui introduit le Largest Gaps

Les références

Abramov, Kesem, Barry Biton, Geut Galai, Rami Puzis, et Shai Pilosof. s. d. « Structure Knows Best: Predicting Ecological Interactions Across Space Through Pairwise Integration of Latent Network Patterns ».
Aitchison, J. 1982. « The Statistical Analysis of Compositional Data ». Journal of the Royal Statistical Society. Series B (Methodological) 44 (2): 139‑77. https://www.jstor.org/stable/2345821.
Brault, Vincent, et Antoine Channarond. 2023. « Fast and Consistent Algorithm for the Latent Block Model ». 9 mars 2023. https://doi.org/10.48550/arXiv.1610.09005.
Bystrova, Daria. s. d. « Causal Discovery ».
Channarond, Antoine, Jean-Jacques Daudin, et Stéphane Robin. 2012. « Classification and Estimation in the Stochastic Blockmodel Based on the Empirical Degrees ». Electronic Journal of Statistics 6 (janvier). https://doi.org/10.1214/12-ejs753.
Mazelet, Sonia, Rémi Flamary, et Bertrand Thirion. s. d. « Unsupervised Learning for Optimal Transport Plan Prediction Between Unbalanced Graphs ».
Nenna, Luca. s. d.a. « Lecture 1 Monge and Kantorovich Problems: From Primal to Dual ».
———. s. d.b. « Lecture 2: Entropic Optimal Transport ».
Payne, Andrea, Anjali Silva, Steven J. Rothstein, Paul D. McNicholas, et Sanjeena Subedi. 2023. « Finite Mixtures of Multivariate Poisson-Log Normal Factor Analyzers for Clustering Count Data ». 13 novembre 2023. https://doi.org/10.48550/arXiv.2311.07762.
Peixoto, Tiago P. 2014. « Hierarchical Block Structures and High-Resolution Model Selection in Large Networks ». Physical Review X 4 (1): 011047. https://doi.org/10.1103/PhysRevX.4.011047.