Evaluating implicit feedback based recommendations is tricky. Here are couple of approaches that I'd recommend.
You can use modified precision and recall metrics. Overall the procedure would be as follows,
- Divide your data into train and test set by users.
- For a user in test set, given their history, get the top N recommendations using implicit feedback based model.
- Precision can be calculated using # of recommendations given by model which actually matched by what user had acted upon (for example read in case of articles).
- Recall can be calculated using # of user actions (articles read by user) that were captured by top N recommendations.
- You can calculate these for all users in test set and average them.
The approach is similar to approach 1, but rather than splitting train and test data by users, you use something called as "leave one out" strategy. We use a simple accuracy metric in this case. The steps to calculate the accuracy will be as follows,
- For each user (or a subset of users), hide one of the articles read/browsed and move it to test set (leave one out).
- Using user history, get top N recommendations for each user.
- Calculate the number of times the left out article was captured by the top N recommendations.
Note that in both cases, the N in top N recommendations will become your hyper-parameter which can be tuned further.