Modules
MeliGraph — Motor de Recomendação baseado em Grafos para Elixir.
Behaviour genérico para algoritmos de recomendação.
Ranking global de itens por grau de entrada (in-degree).
Algoritmo de recomendação LightGCN — inferência via dot product entre o embedding do usuário e o de cada item.
PageRank Personalizado via Monte Carlo random walks.
Algoritmo SALSA para grafos bipartidos.
Algoritmo de co-ocorrência para encontrar itens similares via 2-hop.
Configuração centralizada, validada uma vez no start_link.
Passada para todos os processos da supervision tree via conf:.
Processo simples que registra o Config no Registry, permitindo que qualquer processo localize a configuração da instância.
Struct representando uma aresta no grafo.
Mapeamento bidirecional entre IDs externos (qualquer termo) e IDs internos (inteiros compactos). Usa uma tabela ETS global por instância para manter consistência cross-segment.
Um segmento temporal do grafo, inspirado no GraphJet.
GenServer que gerencia os segmentos temporais do grafo.
Single-writer GenServer para ingestão de arestas.
Gerencia o ciclo de vida dos embeddings LightGCN no Store.ETS por instância.
Constrói a matriz de adjacência normalizada à = D^(-1/2) · W · D^(-1/2)
para um grafo bipartido user↔item, no formato esperado pelo LightGCN.
Loop de treinamento do LightGCN.
Behaviour para plugins periódicos do MeliGraph.
Plugin que remove entradas expiradas do cache de resultados.
Plugin que remove segmentos temporais expirados.
Supervisor para plugins periódicos.
Query layer — ponto de entrada para consultas de recomendação.
Helpers para lookup de processos via Registry.
Behaviour para armazenamento de resultados de recomendação.
Implementação do Store behaviour usando ETS com TTL.
Supervision tree principal do MeliGraph.
Wrapper para :telemetry.span/3 com prefixo [:meli_graph].
Mix Tasks
Demo end-to-end: lê um dataset TSV (formato heterogêneo descrito no README), insere as arestas com peso no grafo, treina embeddings LightGCN e imprime recomendações top-K para um perfil.