238 lines
No EOL
10 KiB
Text
238 lines
No EOL
10 KiB
Text
---
|
|
title: "Bilan semaine 6 2026 : 02 février - 06 février"
|
|
categories: [colBiSBM, inférence, GNN]
|
|
date: 2026 02 06
|
|
date-modified: last-modified
|
|
bibliography: references.bib
|
|
# from: markdown+latex_macros
|
|
---
|
|
{{< include /_macros.tex >}}
|
|
|
|
## TODO List
|
|
|
|
- Petites opérations sur les OTUs (regarder la matrice dans les yeux):
|
|
- Ranger les OTUs par variances (i.e. `sd(OTU_j)`)
|
|
- 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 $\Var_{\text{intra}} \approx \Var_{\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.**
|
|
- TODO Faire LBM sur niveau taxonomique grossier, initialiser avec le résultat pour un niveau plus fin et ainsi de suite.
|
|
|
|
- ✅ Avec blockmodels, codé un LBM-Séquentiel. *Des différences contrastées...*
|
|
|
|
- ⌛ 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 @peixotoHierarchicalBlockStructures2014
|
|
- Regarder les gens qui citent les travaux de Peixoto
|
|
|
|
- Implémentation `blockmodels` LBM avec covariables sur proportions (voir @eq-modele-covar-prop)
|
|
|
|
:::{.callout-note title="Idées"}
|
|
|
|
- Travailler sur Fungus Tree network
|
|
- 🔍**Demander à PB et SD** : 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.
|
|
|
|
|
|
:::
|
|
|
|
- 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 @abramovStructureKnowsBest
|
|
|
|
- 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é :
|
|
- Ajouter Chao1 et 2, colonne par colonne (site par site), et faire indice moyen et la variance.
|
|
|
|
### Inférence et microbes
|
|
|
|
- ✅ En préparation d'un fichier (réu avec JBL à 10h45 le 06/02/2026).
|
|
Possible en modifiant lbm.h et sbm.h d'obtenir un modèle utilisant les covariables de groupes (de blocs ?).
|
|
Car besoin de changer `membership.m_step()` pour mettre à jour $\pmb\pi$ et $\pmb{\rho}$ en utilisant les $\pmb B^{\top}\pmb X$
|
|
et en renvoyant l'ELBO adaptée.
|
|
- 😄 Avantage s'inscrit directement dans blockmodels et permet d'avoir toutes les lois d'émissions déjà codées et compatibles !
|
|
|
|
- 😢 Besoin de réfléchir a une bonne implémentation.
|
|
|
|
#### Modèle avec covariables sur probas d'appartenances aux groupes
|
|
|
|
\begin{align*}
|
|
\pmb{\beta}_{r}& = \begin{pmatrix}
|
|
\beta_{r,0}\\
|
|
\vdots\\
|
|
\beta_{r,p}
|
|
\end{pmatrix}, & X_{:,j} = \begin{pmatrix}
|
|
1\\
|
|
x_{1}\\
|
|
\vdots\\
|
|
x_p
|
|
\end{pmatrix}\\
|
|
\pmb{\beta}_r^{\top} X_{:,j}& = \beta_{r,0} + \beta_{r,1} x_{1} + \dots + \beta_{r,p} x_p & \approx \log(\rho_r^j) \\
|
|
\pmb{B} & = \begin{pmatrix}
|
|
\pmb{\beta}_1 \dots \pmb{\beta}_r \dots \pmb{\beta}_R
|
|
\end{pmatrix} & \pmb{B}^{\top} X_{:,j} \approx \log(\pmb{\rho}^j) \\
|
|
\pmb{B}^{\top} \pmb{X} & \approx \log((\pmb{\rho}^j)_{j=1,\dots,n_2}) = \log(\pmb{\Rho})\\
|
|
\end{align*}
|
|
Et pour les probas en lignes du LBM
|
|
\begin{align*}
|
|
\pmb{\gamma}_{q}& = \begin{pmatrix}
|
|
\gamma_{q,0}\\
|
|
\vdots\\
|
|
\gamma_{q,d}
|
|
\end{pmatrix}, & V_{:,i} = \begin{pmatrix}
|
|
1\\
|
|
v_{1}\\
|
|
\vdots\\
|
|
v_d
|
|
\end{pmatrix}\\
|
|
\pmb{\gamma}_q^{\top} V_{:,i}& = \gamma_{q,0} + \gamma_{q,1} x_{1} + \dots + \gamma_{q,p} x_p & \approx \log(\pi_q^i) \\
|
|
\pmb{\Gamma} & = \begin{pmatrix}
|
|
\pmb{\gamma}_1 \dots \pmb{\gamma}_q \dots \pmb{\gamma}_Q
|
|
\end{pmatrix} & \pmb{\Gamma}^{\top} V_{:,i} \approx \log(\pmb{\pi}^i) \\
|
|
\pmb{\Gamma}^{\top} \pmb{X} & \approx \log((\pmb{\pi}^i)_{i=1,\dots,n_1}) = \log(\pmb{\Pi})
|
|
|
|
|
|
\end{align*}
|
|
|
|
#### Note sur l'identifiabilité (par JBL)
|
|
|
|
Soient $X : (p+1, n_2), B : (p+1, R)$ avec $X$ de plein rang, i.e., $rg(X) = p+1\implies XX^{\top}$ est inversible.
|
|
|
|
On veut qu'il existe $B^{\prime}$ et $B$ avec $B_{:,R} = \vec 0_p$, par les propriétés de la fonction softmax, $\sigma(.)$ :
|
|
|
|
\begin{align*}
|
|
& \sigma(B^{\top}X) = \sigma({B^{\prime}}^{\top}X)\\
|
|
& \iff \exists C \in \mathbb{R}^{n_2}, B^{\top} X = {B^{\prime}}^{\top} X + \pmb{1}_R C^{\top}\\
|
|
& \iff \exists C \in \mathbb{R}^{n_2}, B^{\top} X - \pmb{1}_R C^{\top} = {B^{\prime}}^{\top} X\\
|
|
& \iff \exists C \in \mathbb{R}^{n_2}, (B^{\top} X - \pmb{1}_R C^{\top}) X^{\top} = {B^{\prime}}^{\top} X X^{\top}\\
|
|
& \iff \exists C \in \mathbb{R}^{n_2}, (B^{\top} X - \pmb{1}_R C^{\top}) X^{\top}(X X^{\top})^{-1} = {B^{\prime}}^{\top}\\
|
|
|
|
|
|
\end{align*}
|
|
|
|
#### Description du modèle hiérarchique
|
|
|
|
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}
|
|
$$
|
|
|
|
##### 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}))]
|
|
$${#eq-modele-covar-prop}
|
|
|
|
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$ → 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* |