O documento discute algoritmos de previsão de links e detecção de comunidade em grafos. Apresenta Jhonathan de Souza Soares e suas credenciais. Explica o que é previsão de links e lista alguns algoritmos como Common Neighbors, Preferential Attachment e Adamic Adar. Demonstra exemplos desses algoritmos em uma rede de exemplo.
1. Globalcode – Open4education
Trilha – NoSQL
Jhonathan de Souza Soares
Microsoft MVP, Neo4j TOP 50 Certified, MongoDB Evangelist e Arquiteto de
Software
5. Globalcode – Open4education
Algoritmos grafos
Localiza o caminho ideal
ou avalia a
disponibilidade e a
qualidade da rota
Avalia como um
grupo é agrupado
ou particionado
Determina a
importância de nós
distintos na rede
8. Globalcode – Open4education
Algorithms - Pathfinding
• Single Source Short Path
• All-Nodes / Successive SP
• Parallel BFS / DFS Centrality Community
Detection
Pathfinding
9. Globalcode – Open4education
O que é a previsão de links?
• A previsão de links existe há muito tempo,foi
popularizada em 2004, intitulado The Link Prediction
Problem for Social Networks.
• Dado um momento de uma rede social, podemos
inferir quais novas interações entre seus membros
provavelmente ocorrerão em um futuro próximo?
10. Globalcode – Open4education
O que é a previsão de links?
Formalizamos essa questão como o problema de
previsão de links e desenvolvemos abordagens para
vincular a previsão com base em medidas para
analisar a “proximidade” de nós em uma rede.
12. Globalcode – Open4education
Um pouco mais sobre algoritmos
• Adamic Adar - a soma do log inverso do grau de vizinhos comuns
• Preferential Attachment - o produto do grau de cada nó
• Resource Allocation - a soma do inverso do grau de vizinhos comuns
• Same Community - verifica se dois nós estão na mesma comunidade,
calculados por um dos algoritmos de detecção da comunidade
• Total Neighbors - total de vizinhos únicos dos dois nós
• Common Neighbors - capta a noção de que dois estranhos que têm
um relações em comum podem ser conectados.
15. Globalcode – Open4education
Common Neighbors
• Esses nós têm dois vizinhos em comum, então eles recebem uma
pontuação de 2. Agora vamos fazer o mesmo para os nós A e E.
Esperamos que eles recebam uma pontuação de 1, pois eles têm
apenas um único vizinho comum:
16. Globalcode – Open4education
Preferential attachment
• A função de ligação preferencial retorna o produto dos graus dos dois
nós. Se executarmos isso para os nós A e D, esperamos obter uma
pontuação de 2*2 = 4, já que os nós A e D têm dois vizinhos. Vamos
tentar:
17. Globalcode – Open4education
Finalizando
• Você precisa saber basicamente quais algoritmos utilizar e qual o
objetivo a ser atingido.
• Na nossa “rede” de exemplo, ao executar a função com outros nós verá
que a ligação futura é entre A e D pois é a que possui maior score.