MeliGraph.Algorithm.SimilarItems (MeliGraph v0.3.1)

Copy Markdown View Source

Algoritmo de co-ocorrência para encontrar itens similares via 2-hop.

Dado um item semente (ex: professor), encontra outros itens que compartilham usuários em comum, ponderando pela sobreposição de audiência.

Fluxo (2-hop)

  1. Partindo do item semente, coleta todos os usuários que interagiram (neighbors_in)
  2. Para cada usuário, coleta os outros itens com que interagiu (neighbors_out)
  3. Conta co-ocorrências: quantos usuários em comum cada item tem com o semente
  4. Normaliza pelo grau do item (Jaccard-like) para não favorecer itens populares demais
  5. Retorna top-K itens rankeados por similaridade

Parâmetros (via opts)

  • :top_k - número de resultados a retornar (padrão: 20)
  • :min_overlap - mínimo de usuários em comum para considerar (padrão: 1)
  • :normalize - :jaccard | :cosine | :raw (padrão: :jaccard)

Exemplo

Num grafo bipartido profile → professor:

professor:silva  [profile:42, profile:99, profile:77]
                                                
                    professor:costa  professor:oliveira  professor:costa

Co-ocorrências com professor:silva:
  professor:costa     2 usuários em comum (profile:42, profile:77)
  professor:oliveira  1 usuário em comum  (profile:99)