Dataford
Interview QuestionsInterview GuidesExperiencesMock InterviewsPricing
Get started

Recommendation Algorithm Implementation

MediumPython00:00
Practice interviewer
In session
5 left
00:00

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.

You need to log in / sign up to run or submit.

Problem

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.

Formal Specification

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.
  • Return a list of at most 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.

Constraints

  • 1 <= number of users <= 10^4
  • 1 <= number of interactions per user <= 10^3
  • Item IDs are non-empty strings
  • 1 <= k <= 10^3
  • The target user exists in interactions

Function Signature

def recommend_items(interactions, target_user, k):
Your solutionPython 3
You need to log in / sign up to run or submit.
Run your code to see test output