CS298 Proposal

An Open Source Discussion Group Recommendation System.

Sarika Padmashali (sarika.padmashali@sjsu.edu)

Advisor: Dr. Chris Pollett

Committee Members: Aikaterini Potika, Leonard Wesley

Abstract:

Yioop is an open source search engine, wiki system and user discussion group system. A recommendation system analyzes user behaviour on a website to make suggestions about what a user should do in the future on the website. For this project we will develop a recommendation system for discussion groups for Yioop.

CS297 Results

  • Implemented the max flow algorithm - Ford Fulkerson Algorithm and Push Relabel Algorithm.
  • Implemented the Recommendation Engine Algorithm using baseline predictors (Collaborative Filtering) for the Yelp dataset
  • Improved the manage group activity page in Yioop - added a feature to delete users by their join date and implemented client side validation of register account page.
  • Implemented the Recommendation Engine Algorithm using Latent Matrix Factorization (Collaborative filtering) for the Yelp dataset

Proposed Schedule

Week 1, 2: January 31, 2017 - February 13, 2017Create a class - baseline predictor (collaborative filtering) in php
Week 3: February 14, 2017 - February 20, 2017Deliverable 1 due
Week 4, 5: February 21, 2017 - March 6, 2017Build a recommendation engine for recommending threads to users
Week 6: March 7, 2017 - March 13, 2017Deliverable 2 due
Week 7, 8: March 14, 2017 - March 27, 2017Build a recommendation engine for recommending groups to users
Week 9: March 28, 2017 - April 3, 2017Deliverable 3 due
Week 10, 11: April 4, 2017 - April 17 , 2017Build a user interface for displaying the recommendations
Week 12: April 18, 2017 - April 24, 2017Deliverable 4 due
Week 13, 14: April 25, 2017 - May 8, 2017Deliverable 5 - CS298 Report
Week 15: May 9, 2017 - May 15, 2017Deliverable 6 - Presentation

Key Deliverables:

  • Software
    • A baseline predictor (collaborative filtering) class for Yioop recommendation system
    • Use the baseline predictor class to recommend threads to users
    • Use the baseline predictor class to recommend groups to users
    • A user interface for recommending threads and groups to users
    • Test the deliverables so that it integrates with the Yioop codebase. Perform unit testing on the baseline predictor class
  • Report
    • CS298 Report
    • CS298 Presentation

Innovations and Challenges

  • Processing a corpus of historical data for building the recommendation system. Will optimize the code to reduce the processing time.
  • Creating a new class which can be used for recommendations.
  • Adding a new feature to Yioop by recommending threads and groups of their interests.

References:

[1] Langville, A. N., & Meyer, C. D. (2012). Who's #1?: The science of rating and ranking. Princeton: Princeton University Press.

[2] Pollett, C. "Open Source Search Engine Software!" Open Source Search Engine Software  Seekquarry. Retrieved on 13 Dec. 2016.