TensorTonicTensorTonic
Problems
Study PlansProjectsNewInterviewPricingFeedback
Problems
Loading...
1 / 1

Adjusted Cosine Similarity

Recommender Systems
Medium

Adjusted cosine similarity compares two items after removing each user's average rating. A zero entry in ratings_matrix means unrated. Compute each user's mean from all of that user's nonzero ratings, but include a user in the similarity only when both requested items are rated.

sim⁡(i,j)=∑u∈Uij(rui−r‾u)(ruj−r‾u)∑u∈Uij(rui−r‾u)2∑u∈Uij(ruj−r‾u)2\operatorname{sim}(i,j) = \frac{\sum_{u \in U_{ij}}(r_{ui}-\overline{r}_u)(r_{uj}-\overline{r}_u)}{\sqrt{\sum_{u \in U_{ij}}(r_{ui}-\overline{r}_u)^2}\sqrt{\sum_{u \in U_{ij}}(r_{uj}-\overline{r}_u)^2}}sim(i,j)=∑u∈Uij​​(rui​−ru​)2​∑u∈Uij​​(ruj​−ru​)2​∑u∈Uij​​(rui​−ru​)(ruj​−ru​)​

The sums include only users who rated both requested items. For each included user, subtract that user's mean observed rating from both item ratings before computing the similarity. Return 0.0 when the denominator is zero.

Loading visualization...

Examples

Input: ratings_matrix = [[5, 3, 0], [4, 0, 2], [0, 1, 4]], item_i = 0, item_j = 1

Output: -1.0

Explanation: Only user 0 rated both items, and its centered ratings are 1 and -1.

Input: ratings_matrix = [[5, 1], [4, 2], [3, 3]], item_i = 0, item_j = 1

Output: -1.0

Hint 1

Accumulate the centered cross-product and the two centered square sums separately.

Hint 2

Take the square root of each square sum before multiplying the denominator terms.

Requirements

  • Compute each user mean from nonzero ratings only.
  • Include only users who rated both requested items.
  • Center both ratings by that user mean before computing cosine similarity.
  • Return 0.0 when the denominator is zero.

Constraints

  • ratings_matrix is rectangular, and zero means unrated.
  • item_i and item_j are valid column indices.
  • Return a float from -1.0 through 1.0.
  • Time limit: 300 ms.
Try Similar Problems
Cosine SimilarityUser Based Cf PredictionItem Cf PredictRating NormalizationPearson Correlation

Sign in to take notes on this problem

Case 1
Case 2

Accepts: array

Accepts: number

Accepts: number

You must run your code first.
PrevNext

Adjusted Cosine Similarity

Recommender Systems
Medium

Adjusted cosine similarity compares two items after removing each user's average rating. A zero entry in ratings_matrix means unrated. Compute each user's mean from all of that user's nonzero ratings, but include a user in the similarity only when both requested items are rated.

sim⁡(i,j)=∑u∈Uij(rui−r‾u)(ruj−r‾u)∑u∈Uij(rui−r‾u)2∑u∈Uij(ruj−r‾u)2\operatorname{sim}(i,j) = \frac{\sum_{u \in U_{ij}}(r_{ui}-\overline{r}_u)(r_{uj}-\overline{r}_u)}{\sqrt{\sum_{u \in U_{ij}}(r_{ui}-\overline{r}_u)^2}\sqrt{\sum_{u \in U_{ij}}(r_{uj}-\overline{r}_u)^2}}sim(i,j)=∑u∈Uij​​(rui​−ru​)2​∑u∈Uij​​(ruj​−ru​)2​∑u∈Uij​​(rui​−ru​)(ruj​−ru​)​

The sums include only users who rated both requested items. For each included user, subtract that user's mean observed rating from both item ratings before computing the similarity. Return 0.0 when the denominator is zero.

Loading visualization...

Examples

Input: ratings_matrix = [[5, 3, 0], [4, 0, 2], [0, 1, 4]], item_i = 0, item_j = 1

Output: -1.0

Explanation: Only user 0 rated both items, and its centered ratings are 1 and -1.

Input: ratings_matrix = [[5, 1], [4, 2], [3, 3]], item_i = 0, item_j = 1

Output: -1.0

Hint 1

Accumulate the centered cross-product and the two centered square sums separately.

Hint 2

Take the square root of each square sum before multiplying the denominator terms.

Requirements

  • Compute each user mean from nonzero ratings only.
  • Include only users who rated both requested items.
  • Center both ratings by that user mean before computing cosine similarity.
  • Return 0.0 when the denominator is zero.

Constraints

  • ratings_matrix is rectangular, and zero means unrated.
  • item_i and item_j are valid column indices.
  • Return a float from -1.0 through 1.0.
  • Time limit: 300 ms.
Try Similar Problems
Cosine SimilarityUser Based Cf PredictionItem Cf PredictRating NormalizationPearson Correlation

Sign in to take notes on this problem

Case 1
Case 2

Accepts: array

Accepts: number

Accepts: number

You must run your code first.