Giter Site home page Giter Site logo

isim's Introduction

SwIFT: Scalable Incremental Flexible Temporal recommender

Author: Georgios Damaskinos ([email protected])

SwIFT is a recommender introduced in Capturing the Moment: Lightweight Similarity Computations that employs a new similarity metric, namely I-SIM. A secondary application of I-SIM, namely I-TRUST (presented in the same paper), can be found here.

Quick Start

The following steps evaluate SwIFT on the MovieLens100K dataset with a test set of 100 ratings.

  1. Setup
    • Ubuntu 18.04.3 LTS
    • Python 3.7
    • Java 1.8.0_77
    • spark-2.4.5-bin-hadoop2.7
    • apache-cassandra-3.11.6
    • sudo apt-get install bc
    • Export variables:
      • JAVA_HOME
      • SPARK_HOME
      • CASSANDRA_HOME
    • Setup cluster:
    cd utils/
    RUN_TESTS=1 bash deploy_cluster.sh STANDALONE /path/to/spark_localdir/
    
    • Shutdown cluster:
    cd utils/
    bash stop_cluster.sh STANDALONE
    
  2. Download and extract the MovieLens100K dataset
  3. Parse dataset:
    python parsers/movielensParser.py ml-100k/u.data dataset.csv
    bash parsers/splitter.sh dataset.csv ./ 100
    
  4. Deploy SwIFT
    bash local_deploy.sh trainingSet.csv testSet.csv 5 10 0 100 1 9995 /path/to/log
    

Structure

SwIFT consists of two main components:

  • Frontend
    • Accumulates the ratings in microbatches and sends them to the backend
    • Provides recommendations to users and computes CTR and recall
  • Backend
    • Bootstraps (if necessary) the database
    • Incrementally updates the database given the microbatches that the frontend sends
    • Logs latency measurements and computes the RMSE

More detailed information is available in the paper.

isim's People

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.