Skip to content

dimberman/All-Pairs-Similarity-Spark

Repository files navigation

All-Pairs-Similarity-Spark

All-Pairs-Similarity-Search is an important function for clustering similar objects within large datasets. APSS is used in a wide variety of important use-cases such as:

  • recommendation systems (e.g. Netflix finding users similar to you so they can recommend movies)
  • fraud/plagiarism detection (finding near-duplicate essays)
  • spam detection (e.g. google comparing every email recieved by a user to known spam-emails)

Building

This package is set up with sbt and assembly. Run sbt clean assembly to create a jar in the target/scala folder. Requires Spark 1.5.2.

#running

The spark command for the sample dataset is:

# extracts current directory
export DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

spark-submit --class edu.ucsb.apss.Main apss-1.0.jar $DIR/1k-tweets-bag.txt

The package comes with the following options

short option long option description
-i --input The input file
-t --threshold The threshold for PSS, defaults to 0.9
-n --numLayers Number of layers for PSS. Defaults to 21
-h --histogram-title Title for histogram, defaults to "histogram"

#sources

Based on the following papers

  • X. Tang, X. Jin, T. Yang. Cache-Conscious Runtime Optimization for Ranking Ensembles. Proc. of 2014 ACM SIGIR conference on Research and Development in Information Retrieval. Slides.
  • X. Tang, M. Alabduljalil, X. Jin, T. Yang, Load Balancing for Partition-based Similarity Search. Proceedings of 2014 ACM SIGIR conference on Research and Development in Information Retrieval. Slides.
  • Maha Alabduljalil, Xun Tang, Tao Yang, Optimizing Parallel Algorithms for All Pairs Similarity Search. WSDM'2013 (6th ACM International Conference on Web Search and Data Mining. Finalist for the best student paper award. Slides.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages