Estou lidando com um modelo linear hierárquico bayesiano , aqui a rede que o descreve.
representa as vendas diárias de um produto em um supermercado (observado).
é uma matriz conhecida de regressores, incluindo preços, promoções, dia da semana, clima e feriados.
é o nível de estoque latente desconhecido de cada produto, que causa mais problemas e que considero um vetor de variáveis binárias, um para cada produto com indicando falta de estoque e, portanto, a indisponibilidade do produto. Mesmo que em teoria desconhecida eu o estimei através de um HMM para cada produto, ele deve ser considerado conhecido como X.Apenas decidi desmascará-lo para formalismo adequado.
é um parâmetro de efeito misto para qualquer produto único em que os efeitos mistos considerados são o preço do produto, promoções e falta de estoque.
é o vetor de coeficientes de regressão fixos, enquanto b 1 e b 2 são vetores de coeficiente de efeitos mistos. Um grupo indicamarcae o outro indicasabor(este é um exemplo, na realidade eu tenho muitos grupos, mas aqui relato apenas 2 para maior clareza).
, Σ b 1 e Σ b 2 são hiperparâmetros sobre os efeitos mistos.
Como eu tenho dados de contagem, digamos que eu trato as vendas de cada produto como Poisson distribuído condicionalmente nos regressores (mesmo que para alguns produtos a aproximação linear seja válida e para outros um modelo com inflação insuficiente seja melhor). Nesse caso, eu teria para um produto ( este é apenas para quem está interessado no modelo bayesiano em si, pule para a pergunta se você o achar desinteressante ou não trivial :) ):
, α 0 , γ 0 , conhecido.
, Σ p conhecido.
,
, j ∈ 1 , … , m 1 , k ∈ 1 , … , m 2
matriz de efeitos mistos para os 2 grupos, X p p s i indicando preço, e promoção da ruptura de produto considerado. I W indica inversa distribuições de Wishart, geralmente usados para as matrizes de covariância de antecedentes multivariados normais. Mas não é importante aqui. Um exemplo de uma possível Z i poderia ser a matriz de todos os preços, ou poderíamos até dizer Z i = X i . Com relação aos anteriores para a matriz de variância-covariância de efeitos mistos, eu tentaria apenas preservar a correlação entre as entradas, para que σ i j fosse positivo se e j são produtos da mesma marca ou seja do mesmo sabor.
A intuição por trás desse modelo seria que as vendas de um determinado produto dependem de seu preço, disponibilidade ou não, mas também dos preços de todos os outros produtos e da falta de estoque de todos os outros produtos. Como não quero ter o mesmo modelo (leia-se: mesma curva de regressão) para todos os coeficientes, introduzi efeitos mistos que exploram alguns grupos que tenho nos meus dados, através do compartilhamento de parâmetros.
Minhas perguntas são:
- Existe uma maneira de transpor esse modelo para uma arquitetura de rede neural? Eu sei que existem muitas perguntas procurando as relações entre rede bayesiana, campos aleatórios markov, modelos hierárquicos bayesianos e redes neurais, mas não encontrei nada que vá do modelo hierárquico bayesiano às redes neurais. Faço a pergunta sobre redes neurais, pois, tendo uma alta dimensionalidade do meu problema (considere que tenho 340 produtos), a estimativa de parâmetros por meio do MCMC leva semanas (tentei apenas 20 produtos executando cadeias paralelas em runJags e levou dias) . Mas não quero ser aleatório e apenas fornecer dados para uma rede neural como uma caixa preta. Eu gostaria de explorar a estrutura de dependência / independência da minha rede.
Aqui acabei de esboçar uma rede neural. Como você vê, os regressores ( e S i indicam, respectivamente, preço e falta de estoque do produto i ) na parte superior são inseridos na camada oculta, assim como são específicos do produto (aqui eu considerei preços e falta de estoque). (As bordas azuis e pretas não têm significado específico, era apenas para tornar a figura mais clara). Além disso e podem ser altamente correlacionados enquanto Y 3poderia ser um produto totalmente diferente (pense em 2 sucos de laranja e vinho tinto), mas eu não uso essas informações em redes neurais. Gostaria de saber se as informações de agrupamento são usadas apenas na inicialização de peso ou se é possível personalizar a rede para o problema.
Editar, minha ideia:
Minha ideia seria algo assim: como antes, e Y 2 são produtos correlacionados, enquanto Y 3 é totalmente diferente. Sabendo disso a priori, faço duas coisas:
- Eu pré-aloco alguns neurônios na camada oculta para qualquer grupo que possuo, neste caso, tenho 2 grupos {( ), ( Y 3 )}.
- Inicializo pesos altos entre as entradas e os nós alocados (as arestas em negrito) e, é claro, construo outros nós ocultos para capturar a 'aleatoriedade' restante nos dados.
Agradeço antecipadamente por sua ajuda