Skip to main content
PREMIUM
Data Science and Machine Learning, CSCI.6951.21452.2025.Spring

FeedWise: Personalized Post Recommendation System

Computer Project 1 - Part 3: Project Presentation

An advanced recommendation system that uses machine learning algorithms to suggest posts based on user profiles, preferences, and peer suggestions.

Key Features

Discover how FeedWise enhances your content discovery experience

Personalized Recommendations

Get content suggestions tailored to your unique profile, skills, and preferences using advanced similarity matching algorithms.

Peer-Based Suggestions

Discover posts that similar users found valuable, expanding your content discovery through collective intelligence.

KNN Algorithm

Our system uses K-Nearest Neighbors to find and recommend the most relevant content based on multiple similarity factors.

Dynamic Learning

The system improves over time by learning from your interactions and continuously refining its recommendation model.

Tag-Based Matching

Sophisticated tag matching ensures you discover content that aligns with your interests and professional skills.

Weighted Scoring System

Our algorithm uses a balanced approach that prioritizes different aspects of content relevance for better recommendations.

Technology Stack

Built with powerful, modern technologies for efficient recommendation processing

Python

Core programming language

Flask

Backend API framework

MongoDB

NoSQL database

scikit-learn

ML algorithms

NumPy

Numerical computing

Pandas

Data manipulation

Matplotlib

Data visualization

HTML

Frontend structure

CSS

Frontend styling

JavaScript

Frontend interactivity

How It Works

Understanding the intelligence behind your recommendations

KNN Algorithm & Similarity Matching

The K-Nearest Neighbors (KNN) algorithm is at the heart of our recommendation system. Here's how it works:

  • Profile Vectorization: User profiles and post content are converted into numerical vectors.
  • Similarity Calculation: We use mathematical methods (like cosine similarity) to measure how similar profiles are to each other.
  • Nearest Neighbors: For each user, we identify the "K" most similar users based on profile data.
  • Content Matching: We recommend posts that these similar users engaged with positively.

Our system also directly matches user skills and preferences with post tags, assigning different weights to create balanced recommendations:

Weighted Scoring System

  • Skills matches: 5 points per match
  • Preferences matches: 5 points per match
  • Interaction-based matches: 3 points per match

This ensures you receive recommendations that are relevant to both your professional profile and personal interests.

Project Documentation

Academic foundation and technical implementation

CSCI 6951: Project Plan

Post Recommendation System Using Similarity Matching, Peer Suggestions, and KNN Algorithm

Team Members – Sundar Raj Sharma (Solo)

1. Introduction

The Post Recommendation System aims to provide personalized post suggestions to users based on profile similarity scores, preferences, and peer suggestions. It utilizes similarity matching and the K-Nearest Neighbors (KNN) algorithm to analyze user profiles and recommend relevant posts shared over the network.

2. Objectives

  • Implement a recommendation system that matches user preferences with relevant posts.
  • Use similarity scores to enhance personalized recommendations.
  • Leverage KNN to improve accuracy in user-based recommendations.
  • Provide peer-based suggestions by analyzing common user interests.

3. Technology Stack

  • Programming Language: Python
  • Framework: Flask/Django (for API development)
  • Database: Excel, MongoDB
  • Machine Learning Libraries: scikit-learn, NumPy, Pandas
  • Visualization Tools: Matplotlib
  • Frontend: HTML, CSS, JavaScript

4. Methodology

  • Data Collection: Gather user profile data, post metadata, and engagement history.
  • Preprocessing: Normalize data, handle missing values, vectorize user and post attributes.
  • Similarity Calculation: Compute profile similarity scores using cosine similarity.
  • KNN Implementation: Identify nearest neighbors based on profile similarity and preferences.
  • Recommendation Generation: Rank and suggest posts using calculated scores.
  • Peer Suggestions: Recommend posts based on the preferences of similar users.
  • Evaluation & Optimization: Fine-tune the algorithm using feedback and performance metrics.
  • Visualization: Use visual analytics to display similarity scores and recommendation performance.

5. Expected Outcomes

  • A working recommendation system that suggests posts based on user preferences and peer suggestions.
  • An efficient model that improves engagement by personalizing content.
  • Insights into user behavior and recommendation accuracy using visualization tools.

6. Challenges & Mitigation

  • Data Quality: Ensure sufficient and clean data collection.
  • Scalability: Optimize algorithms for large-scale datasets.
  • Cold Start Problem: Implement hybrid approaches for new users.

7. Implementation Summary

Core Algorithm Approach:

  • Implemented a tag-matching recommendation system prioritizing direct matches between user profiles and post content.
  • The algorithm extracts and normalizes user skills and preferences, matches these against normalized post tags, and scores posts based on matches.
  • Additional scoring for posts with tags similar to previously liked content ensures a balanced mix of recommendations.

Models/Libraries Used:

  • sklearn.neighbors.NearestNeighbors: For finding similar posts
  • sklearn.preprocessing.MultiLabelBinarizer: For encoding tags into vectors
  • numpy: For numerical operations on tag vectors
  • Standard Python libraries for string manipulation and time calculations

8. Conclusion

This project enhances content discovery through an intelligent recommendation system that adapts to user preferences dynamically, improving engagement and personalization. The backend-driven system relies on Python scripts to generate and analyze recommendations, utilizing database-driven data input and API-based testing methods.