Your question is Recommendation Algorithm Implementation. Start with the requirements on the right.
Run and submit as often as you like. When you're ready, talk me through your approach or go straight to the code.
In a Blend360 personalization workflow, recommend items to a user based on the behavior of other users. Implement user-based collaborative filtering: compare the target user with every other user using Jaccard similarity, then rank unseen items by the total similarity of users who interacted with them.
Implement recommend_items(interactions, target_user, k).
interactions is a dictionary mapping user IDs to lists of item IDs.target_user is a user ID present in interactions.k is the maximum number of recommendations to return.k item IDs.For users A and B, define Jaccard similarity as:
similarity(A, B) = |items(A) ∩ items(B)| / |items(A) ∪ items(B)|
An item’s score is the sum of similarities from all users who interacted with that item. Exclude items already interacted with by the target user. Sort by descending score, then ascending item ID to break ties. Ignore users with zero similarity.
def recommend_items(interactions, target_user, k):