---
title: "Bilan semaine 50 2025 : 08 décembre - 12 décembre"
categories: [colBiSBM, inférence, GNN]
date: 2025 12 12
date-modified: last-modified
bibliography: references.bib
# from: markdown+latex_macros
---
{{< include /_macros.tex >}}

## TODO List

- ⚠️ IL Y A UNE TYPO SUR LE SIGNE DE L'ENTROPIE POUR LE PAPIER: $- \mathcal{H}$ au lieu de $+\mathcal{H}$

- Codes pour le papier :
    - Nettoyer les scripts
    - Faire un joli README
    - ❓Faire des notebooks

- Faire tourner clustering sur Trojelsgaard

- Réussir à reproduire résultat de @abramovStructureKnowsBest

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

- Maitriser SparCC

- Faire LBM sur niveau taxonomique grossier, initialiser avec le résultat pour un niveau plus fin et ainsi de suite.

- Clustering unipartite j'ai cassé une fonction de distance à vérifier et réparer 

- Pour clustering de collections sur données ~~réelles~~ :    
    &rarr; L'intuition de Pierre semble être confirmé, les dissimilarités semblent arrêter de varier sensiblement pour de grandes valeurs $(Q_1,Q_2)$.

- 👶 (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

$$
\ELBORTheta = \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 1 (Tabouy)

Dénominateur pas correct, ne somme pas à 1.

$\rho_r^j = \frac{\exp{\beta_r X_j\mathbf{1}_{\{r\neq R\}}}}{1+\sum_{s=1}^{R-1} \beta_s X_j}, \beta_R = 0$ et $\rho_R^{j} = \frac{1}{1+\sum_{s=1}^{R-1} \beta_s X_j}$ (pas de compréhension intuitive)

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 \mathbb{1}_{r\neq R} - \log (1+\sum_{s=1}^{R-1} \beta_s X_j))]
$$

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}{1+\sum_{s=1}^{R-1} \exp{\beta_s X_j}} \biggr]\\
& = \sum_{j=1}^{n_2} \biggl[\bigl(\tau_{jt} -  \frac{1}{1+\sum_{s=1}^{R-1} \beta_s X_j} \bigr) X_j\biggr] = \sum_{j=1}^{n_2} \biggl[\bigl(\tau_{jt} - \rho_R^j \bigr) X_j\biggr] 
\end{align*}

❓ Gradient mesure l'écart entre probas a posteriori et la proba a priori du groupe de référence ?

**Conclusion**: Il manque l'exponentielle cette formulation ne somme pas à 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}))]
$$

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


#### 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$ &rarr; problème du chargement en mémoire des données à voir
- Lancer *colSBM* sur $OTU\times OTU$
- TabNet pratiquer les [exercices](https://github.com/cregouby/Tutoriel_torch)
- 🆕 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 @bystrovaCausalDiscovery (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
- ⌛ @mazeletUnsupervisedLearningOptimal Intéressant pour le transport optimal entre graphes de tailles différentes | Regarder si regularization entropique ne marche pas bien pour le graphe.
- ⌛ @nennaLecture2Entropic Pour comprendre le problème d'OT régularisé pour l'entropie.
- ⌛ @nennaLecture1Monge

### Inférence de graphes

- ⌛ @aitchisonStatisticalAnalysisCompositional1982a, en cours

- ❗📖 @payneFiniteMixturesMultivariate2023 sur MixMPLN

### Causalité

- ❗📖 @bystrovaCausalDiscovery

### Largest Gaps

- ❗📖 @braultFastConsistentAlgorithm2023
- ❗📖 @channarondClassificationEstimationStochastic2012 le papier qui introduit le *Largest Gaps*