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é

11 mai 2026

1 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

1.1 Inférence et microbes

1.1.1 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

1.1.1.1 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*}

1.1.2 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.


1.1.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.


1.1.2.2 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.

1.1.2.3 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).


1.1.2.4 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.

1.1.3 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

1.1.4 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

1.1.5 É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

1.1.6 Causalité

Plus sur le temps long, à regarder

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

2 A discuter

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

3 Biblio à faire

  • Regarder Transport optimal graphes bipartite.

4 Lectures en cours 📚

4.1 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

4.2 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)

4.3 Inférence de graphes

  • Aitchison (1982), en cours

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

4.4 Causalité

4.5 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.