Skip to content

SimRank is a measure of similarity between nodes in a directed graph, based on the idea that "two objects are similar if they are related to similar objects."

License

Notifications You must be signed in to change notification settings

roukaour/simrank

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SimRank

SimRank is a measure of similarity between nodes in a directed graph, based on the idea that "two objects are similar if they are related to similar objects." This implementation is optimized to run in O(n³), an improvement on the original paper’s O(n⁴). It also takes weighted edges into account, an improvement taken from SimRank++.

I originally wrote it to find similarities between users on Metafilter based on favorites data taken from the Infodump.

The example demonstrates correct output for the Figure 1 graph in [1].

References

[1] G. Jeh and J. Widom. “SimRank: A Measure of Structural-Context Similarity.” In KDD ’02: Proceedings of the eighth ACM SIGKDD international conference on Knowledge discovery and data mining, pages 538−543. ACM Press, 2002.

[2] D. Lizorkin, P. Velikhov, M. Grinev and D. Turdakov. “Accuracy Estimate and Optimization Techniques for SimRank Computation.” In VLDB ’08: Proceedings of the 34th International Conference on Very Large Data Bases, pages 422−433.

[3] I. Antonellis, H. Garcia-Molina and C.-C. Chang. “Simrank++: Query Rewriting through Link Analysis of the Click Graph.” In VLDB ’08: Proceedings of the 34th International Conference on Very Large Data Bases, pages 408−421.

About

SimRank is a measure of similarity between nodes in a directed graph, based on the idea that "two objects are similar if they are related to similar objects."

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages