Estoy tratando con un Modelo lineal jerárquico bayesiano aquí la red que lo describe.
$Y$ representa las ventas diarias de un producto en un supermercado(observado).
$X$ es una matriz conocida de regresores, que incluye precios, promociones, día de la semana, tiempo, días festivos.
$S$ es el nivel de inventario latente desconocido de cada producto, que causa la mayoría de los problemas y que considero un vector de variables binarias, una para cada producto con $1$ que indica la falta de existencias y, por tanto, la indisponibilidad del producto. Aunque en teoría sea desconocido, lo he estimado mediante un HMM para cada producto, por lo que debe considerarse conocido como X. Decidí quitarle el sombreado por formalismo.
$\eta$ es un parámetro de efecto mixto para cualquier producto individual en el que los efectos mixtos considerados son el precio del producto, las promociones y la falta de existencias.
$\beta$ es el vector de coeficientes de regresión fijos, mientras que $b_1$ y $b_2$ son los vectores del coeficiente de efectos mixtos. Un grupo indica marca y el otro indica sabor (esto es un ejemplo, en realidad tengo muchos grupos, pero aquí informo sólo de 2 para mayor claridad).
$\Sigma_{\eta}$ , $\Sigma_{b_1}$ y $\Sigma_{b_2}$ son hiperparámetros sobre los efectos mixtos.
Dado que dispongo de datos de recuento, digamos que trato las ventas de cada producto como si tuvieran una distribución de Poisson condicional a los regresores (aunque para algunos productos sea válida la aproximación lineal y para otros sea mejor un modelo con inflado cero). En tal caso tendría para un producto $Y$ ( esto es solo para quien este interesado en el modelo bayesiano en si, salta a la pregunta si no te parece interesante o trivial :) ):
$\Sigma_{\eta} \sim IW(\alpha_0,\gamma_0)$
$\Sigma_{b_1} \sim IW(\alpha_1,\gamma_1)$
$\Sigma_{b_2} \sim IW(\alpha_2,\gamma_2)$ , $\alpha_0,\gamma_0,\alpha_1,\gamma_1,\alpha_2,\gamma_2$ conocido.
$\eta \sim N(\mathbf{0},\Sigma_{\eta})$
$b_1 \sim N(\mathbf{0},\Sigma_{b_1})$
$b_2 \sim N(\mathbf{0},\Sigma_{b_2})$
$\beta \sim N(\mathbf{0},\Sigma_{\beta})$ , $\Sigma_{\beta}$ conocido.
$\lambda _{tijk} = \beta*X_{ti} + \eta_i*X_{pps_{ti}} + b_{1_j} * Z_{tj} + b_{2_k} Z_{tk} $ ,
$ Y_{tijk} \sim Poi(exp(\lambda_{tijk})) $
$i \in {1,\dots,N}$ , $j \in {1,\dots,m_1}$ , $k \in {1,\dots,m_2}$
$Z_i$ matriz de efectos mixtos para los 2 grupos, $X_{pps_i}$ indicando precio, promoción y ruptura de existencias del producto considerado. $IW$ indica distribuciones inversas de Wishart, usadas normalmente para matrices de covarianza de priores multivariantes normales. Pero aquí no es importante. Un ejemplo de una posible $Z_i$ podría ser la matriz de todos los precios, o incluso podríamos decir $Z_i=X_i$ . En cuanto a las priores para la matriz de varianza-covarianza de efectos mixtos, yo trataría simplemente de preservar la correlación entre las entradas, de modo que $\sigma_{ij}$ sería positivo si $i$ y $j$ son productos de la misma marca o del mismo sabor.
La intuición que subyace a este modelo sería que las ventas de un determinado producto dependen de su precio, de su disponibilidad o no, pero también de los precios de todos los demás productos y de las existencias de todos los demás productos. Como no quiero tener el mismo modelo (léase: la misma curva de regresión) para todos los coeficientes, he introducido efectos mixtos que explotan algunos grupos que tengo en mis datos, mediante el reparto de parámetros.
Mis preguntas son:
- ¿Hay alguna forma de transponer este modelo a una arquitectura de red neuronal? Sé que hay muchas preguntas que buscan las relaciones entre red bayesiana, campos aleatorios de markov, modelos jerárquicos bayesianos y redes neuronales, pero no he encontrado nada que vaya del modelo jerárquico bayesiano a las redes neuronales. Hago la pregunta sobre redes neuronales ya que, teniendo una alta dimensionalidad mi problema (considere que tengo 340 productos), la estimación de parámetros mediante MCMC lleva semanas (probé sólo para 20 productos ejecutando cadenas paralelas en runJags y me llevó días de tiempo). Pero no quiero ir al azar y simplemente dar datos a una red neuronal como una caja negra. Me gustaría explotar la estructura de dependencia/independencia de mi red.
Aquí acabo de esbozar una red neuronal. Como ves, los regresores( $P_i$ y $S_i$ indican respectivamente el precio y la falta de existencias del producto $i$ ) en la parte superior se introducen en la capa oculta, al igual que los productos específicos (Aquí he tenido en cuenta los precios y las rupturas de existencias). (Los bordes azules y negros no tienen ningún significado particular, era sólo para que la figura fuera más clara) . Además $Y_1$ y $Y_2$ podrían estar altamente correlacionadas mientras que $Y_3$ podría ser un producto totalmente diferente (piense en 2 zumos de naranja y vino tinto), pero no utilizo esta información en las redes neuronales. Me pregunto si la información de agrupación se utiliza sólo en inizialization peso o si se podría personalizar la red al problema.
Editar, mi idea:
Mi idea sería algo así: como antes, $Y_1$ y $Y_2$ son productos correlacionados, mientras que $Y_3$ es totalmente diferente. Sabiendo esto a priori hago 2 cosas:
- Preasigno algunas neuronas de la capa oculta a cualquier grupo que tenga, en este caso tengo 2 grupos {( $Y_1,Y_2$ ),( $Y_3$ )}.
- Inicializo pesos altos entre las entradas y los nodos asignados (los bordes en negrita) y, por supuesto, construyo otros nodos ocultos para capturar la "aleatoriedad" restante en los datos.
Gracias de antemano por su ayuda