\subsection{\index{modèle!hiérarchique}Modèles hiérarchiques à variables latentes}
\label{subsec:Generatif-lda}
Il s'agit de modèles génératifs, permettant de travailler avec des donn\'ees multi-niveaux. Nous allons les illustrer en considérant le modèle \index{latent dirichlet allocation|see{LDA}}\textit{Latent Dirichlet Allocation} (\index{LDA}LDA) tr\`es populaire lorsqu'on travaille sur un ensemble de documents. Le LDA est un modèle probabiliste génératif de corpus. L'idée consiste à considérer les documents comme des mélanges aléatoires sur des \textit{topics}, qui sont les thèmes sous-jacents du corpus. Chaque topic $k$ est caractérisé par une distribution multinomiale $p(\cdot|\beta_k)$ de paramètre $\beta_k$ sur les mots du vocabulaire, supposée connue dans le modèle originel. On peut résumer le processus de génération des mots $(w_{id})$ de chaque document $d$ de la manière suivante :
\begin{itemize}
\item Pour chaque document indépendamment, générer~$\theta_d$, proportion des thèmes dans le document $d$ suivant une loi de Dirichlet de paramètre $\alpha$.
\item Pour chaque mot du document $d$ :
\begin{itemize}
\item Générer indépendamment un topic $z_n$.
\item Tirer ensuite le mot $w_n$ avec la probabilité $p(w_n|\beta_{z_n})$.
\end{itemize}
\end{itemize}
On peut visualiser ce processus génératif à l'aide du graphe correspondant à la figure \ref{fig:Generatif-lda:graphe}.
\begin{figure}[h!]
	\centering
	\includegraphics[width=.76\textwidth]{./Figs/chapter-Generatif/LDA.pdf}
	\caption{Modèle graphique définissant les dépendances entre variables aléatoires du LDA.}
	\label{fig:Generatif-lda:graphe}
\end{figure}
Les modèles du type LDA permettent de générer le corpus en se plaçant successivement à différents niveaux : corpus entier, document et mots. On obtient dans un cadre bayésien la vraisemblance des données complètes (observées et cachées) :
\begin{equation*}
p(w,z)=\int p(\theta|\alpha)\prod_{n=1}^N p(z_n|\theta) p(w_n|\beta_{z_n}) d\theta
\end{equation*}
On a alors les lois a posteriori.

L'analyse statistique du modèle est basée sur la simulation des paramètres $\theta$ et $\beta$ à l'aide d'un échantillonneur de Gibbs. On utilisera les notations suivantes :
\begin{itemize}
\item $n_{w,k}$ est le nombre de fois que le mot $w$ apparaît dans le topic $k$ et $N_k=\sum_w n_{w,k}$
\item $top_{d,k}$ est le nombre de mots du document $d$ associé au topic $k$. On a alors $Top_d=\sum_k t_{d,k}$
\end{itemize}
L'algorithme\index{algorithme!LDA} est le suivant :


\begin{algorithm}[H]
    \SetKwInOut{Entr}{Entrée}
    \SetKwInOut{Sort}{Sortie}
    \SetKwInOut{Init}{Initialisation}
\caption{Algorithme de LDA}
       \textbf{Initialisation :}
       \begin{itemize}	
	\item Affecter aléatoirement des topics aux mots
	\item Initialiser les compteurs $n_{w,k}$, $top_{d,k}$, $N_k$ et $Top_d$
	\item $\alpha=50/K$, $\beta=0.1$\end{itemize}
	// Itération de Gibbs\;
	\Pour{ \upshape iter $i\in [1,\ldots,NbreIter]$}{
		\Pour{ \upshape document $d \in[1,\ldots,M]$}{
			\Pour{ \upshape mots $w\in [1,\ldots, N]$ dans le document $d$ }{
				\begin{itemize}
				\item w=MotCourant
			  	\item Décrémenter les compteurs\\
					\Pour{ \upshape $k\in [1,\ldots,K]$}
					{
					\begin{itemize}
					\item $p(z=k|\cdot)=\frac{top_{d,k}+\alpha}{Top_d+\alpha K}\frac{n_{w,k}+\mu}{N_k+\mu V}$
					\end{itemize}}
					\item Tirer les topics des mots $z=(z_1,\cdots,z_{d,s})$ suivant la distri-\\
					bution $p(z=k|\cdots)$
					\item Incrémenter les compteurs
  				\end{itemize}
		  	}
	  	}
	}
	\Sort{estimation de $\beta$ et $\theta$}
\end{algorithm}

Cet algorithme ci dessus calcule à chaque étape une estimation de $\beta$ et $\theta$ en utilisant les formules :
\[
\beta_{w,k}=\frac{top_{d,k}+\alpha}{Top_d+\alpha K},\,\theta_{d,k}=\frac{n_{w,k}+\mu}{N_k+\mu V}
\]
Une approximation de $p(z=k|\cdot)$ est alors :
\[
p(z=k|\cdot)=\frac{\beta_{w,k}\theta_{d,k}}{\sum_{w,d} \beta_{w,k}\theta_{d,k}}
\]

