Let’s say that there are some users and some items, like movies, songs, or products. Each user might be interested in some items. We recommend a few items (the number is ** k**) for each user. Now, how will you find whether our recommendations to every user were efficient?

In a classification problem, we usually use the precision and recall evaluation metrics. Similarly, for recommender systems, we use a mix of precision and recall — Mean Average Precision (MAP) metric, specifically **MAP@k, **where *k* recommendations are provided.

Let’s explain MAP, so the M is just an average (mean) of APs, average precision, of all users. In other words, we take the mean for average precision, hence Mean Average Precision. If we have 1000 users, we sum APs for each user and divide the sum by 1000. This is the MAP.

So now, what is average precision? Before that let’s understand recall (r)and precision (P).

There is usually an inverse relationship between recall and precision. Precision is concerned about how **many recommendations are relevant among the provided** **recommendations**. Recall is concerned about **how many recommendations are provided among all the relevant recommendations**.

Let’s understand the definitions of **recall@k** and **precision@k**, assume we are providing 5 recommendations in this order — 1 0 1 0 1, where 1 represents relevant and 0 irrelevant. So the precision@k at different values of k will be precision@3 is 2/3, precision@4 is 2/4, and precision@5 is 3/5. The recall@k would be, recall@3 is 2/3, recall@4 is 2/3, and recall@5 is 3/3.

So we don’t really need to understand average precision (AP). But we need to know this:

- we can recommend at most
items for each user*k* - it is better to submit all
recommendations because we are not penalized for bad guesses*k* - order matters, so it’s better to submit more certain recommendations first, followed by recommendations we are less sure about

So basically we select **k **best recommendations (in order) and that’s it.

1. Machine Learning Concepts Every Data Scientist Should Know

2. AI for CFD: byteLAKE’s approach (part3)

3. AI Fail: To Popularize and Scale Chatbots, We Need Better Data

4. Top 5 Jupyter Widgets to boost your productivity!

Here’s another way to understand average precision. You can think of it this way: you type something in Google and it shows you 10 results. It’s probably best if all of them were relevant. But, if only some are relevant, say five of them, then it’s much better if the relevant ones are shown first. It would be bad if the first five were irrelevant and good ones only started from sixth, wouldn’t it? **AP score reflects this**. They should have named it ‘order-matters recall’ instead of average precision.

But if you persist, let’s dive down into the math. If we are asked to recommend ** N** items and the number of relevant items in the full space of items is

**, then:**

*m*where *P(k)* is the precision value at the *kth* recommendation, *rel(k)* is just an indicator that says whether that *kth* recommendation was relevant (*rel(k)=*1) or not (*rel(k)*=0).

Consider, there are 5 relevant recommendations (*m*), we are making 10 recommendations (*N*) as follows — 1 0 1 0 0 1 0 0 1 1. Let’s calculate the mean average precision here.

Credit: BecomingHuman By: Chaitanya Belhekar