• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
How to build a recommender system?
 

How to build a recommender system?

on

  • 40,659 views

By Coen Stevens, Lead Recommendations Engineer at Wakoopa. Presented at http://recked.org

By Coen Stevens, Lead Recommendations Engineer at Wakoopa. Presented at http://recked.org

Statistics

Views

Total Views
40,659
Views on SlideShare
29,934
Embed Views
10,725

Actions

Likes
93
Downloads
1,457
Comments
3

44 Embeds 10,725

http://www.readwriteweb.com 4401
http://readwrite.com 4146
http://www.smartlab.at 583
http://recked.org 566
http://www.recked.org 352
http://www.thingsontop.com 228
http://blog.strands.com 132
http://www.slideshare.net 75
http://spud.in 39
http://weblogs.vpro.nl 29
http://translate.googleusercontent.com 29
http://blog.strands.es 25
http://www.cnblogs.com 21
http://wiki.dev.mybook.ru 13
http://www.360doc.com 9
http://www.techgig.com 8
http://blog.newitfarmer.com 7
http://webcache.googleusercontent.com 7
https://www.readwriteweb.com 6
http://ronaldofu.blogspot.com 6
http://static.slideshare.net 5
https://twitter.com 4
http://blog.mystrands.es 4
http://www.hanrss.com 3
http://qdtracking.com 3
http://madalgorithmist.wordpress.com 2
http://swik.net 2
http://www.haogongju.net 2
http://startups.pl 2
http://blog.mystrands.com 2
http://www.xianguo.com 1
http://reader.youdao.com 1
http://recked.org. 1
file:// 1
http://www.verydemo.com 1
http://feeds.feedburner.com 1
http://fbweb-test.comoj.com 1
http://localhost 1
http://honyaku-result.nifty.com 1
http://64.233.163.132 1
http://209.85.175.101 1
http://kb.cnblogs.com 1
http://66.249.91.100 1
http://209.85.227.132 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

13 of 3 previous next Post a comment

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • Slide 19:
    After running multiple tests with different values, the Beta value was set at 0.04

    The confidence was basically a popularity score, which was calculated as follows for a particular (software) item:

    (Math.log(num_total_users/num_item_users)) / (Math.log(num_total_users))
    Are you sure you want to
    Your message goes here
    Processing…
  • I think , he compare product A vs B by using Pearson Correlation
    Are you sure you want to
    Your message goes here
    Processing…
  • I know its an old topic but can someone maybe explain slide 19 ? I don’t understand what the variables are. Thanks in advance
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    How to build a recommender system? How to build a recommender system? Presentation Transcript

    • Coen Stevens Lead Recommendation Engineer
    • How to build a recommender system? Wakoopa use case
    • Mission: Discover software & games
    • Software tracker Windows Mac Linux
    • Your profile
    • Updates
    • Software pages
    • Recommendations
    • Building a recommender system Approach and challenges
    • Data what do we have? Usage (implicit) Ratings (explicit) vs. • • Noisy Accurate • • Only positive feedback Positive and negative feedback • • Easy to collect Hard to collect
    • Data what do we use? • Active users (Tracker activity in the past month): ~9.000 • Actively used software items (in the past month): ~10.000 • We calculate recommendations for each OS together with Web applications separately
    • Recommender system methods Collaborative recommendations: The user will be recommended items that people with similar tastes and preferences liked (used) in the past • Item-based collaborative filtering • User-based collaborative filtering (we only use for calculating user similarities to find people like you) • Combining both methods
    • Item-Based Collaborative Filtering User software usage matrix Software items 220 90 180 22 280 12 42 80 Users 175 210 210 45 165 35 195 13 25 100 50 185 35 190 60 65 185
    • User software usage matrix [0, 1] Software items 1 1 0 1 0 1 0 1 1 1 0 1 0 0 Users 1 1 0 1 0 1 0 1 0 1 1 1 1 0 0 1 1 1 0 1 1 0 1 0 1 0 0 1
    • How do we predict the probability that I would like to use GMail? Software items 1 1 0 1 0 1 0 1 1 1 0 1 0 0 ? Users 1 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 1 0 1 1 0 1 0 1 0 0 1
    • Calculate the similarities between Gmail and the other software items. Software items 1 1 0 1 0 1 0 1 1 1 0 1 0 0 Users 1 1 0 1 0 1 0 1 0 1 1 1 1 0 0 1 1 1 0 1 1 0 1 0 1 0 0 1 Cosine Similarity(Firefox, Gmail)
    • Calculate the similarities between Gmail and the other software items. Software items 1 1 0 1 0 1 0 1 1 1 0 1 0 0 Users 1 1 0 1 0 1 0 1 0 1 1 1 1 0 0 1 1 1 0 1 1 0 1 0 1 0 0 1 Cosine Similarity(Firefox, Gmail)
    • Calculate the similarities between Gmail and the other software items. Software items 1 1 0 1 0 1 0 1 1 1 0 1 0 0 Popularity correction, Users 1 1 0 1 0 1 0 we put less trust 1 0 1 1 1 1 0 in popular software 0 1 1 1 0 1 1 0 1 0 1 0 0 1 Cosine Similarity(Firefox, Gmail)
    • Item-item correlation matrix 1 0.1 0.6 0.1 0.1 0.1 0.7 0.2 1 0.8 0.5 0.8 0.1 0.9 0.1 0.6 1 0.5 0.7 0.2 0.3 0.2 0.6 0.4 1 0.8 0.2 0.3 0.5 0.4 0.4 0.4 1 0.1 0.2 0.5 0.5 0.3 0.5 0.3 1 0.3 0.2 0.6 0.3 0.8 0.7 0.7 1
    • Item-item correlation matrix Gmail similarities 0.6 1 0.1 0.6 0.1 0.1 0.1 0.7 0.8 0.2 1 0.8 0.5 0.8 0.1 0.9 0.4 0.1 0.6 1 0.5 0.7 0.2 0.3 0.4 0.2 0.6 0.4 1 0.8 0.2 0.3 0.3 0.5 0.4 0.4 0.4 1 0.1 0.2 0.3 0.5 0.5 0.3 0.5 0.3 1 0.3 0.2 0.6 0.3 0.8 0.7 0.7 1
    • K-nearest neighbor approach Gmail similarities • Performance vs quality 0.6 • We take only the ‘K’ most similar items (say 4) 0.8 • Space complexity: O(m + Kn) 0.4 • 0.4 Computational complexity: O(m + n²) 0.3 0.3
    • Calculate the predicted value for Gmail Gmail similarities User usage 1 0.6 1 0.8 1 0.4 0.4 1
    • Calculate the predicted value for Gmail Gmail similarities User usage 0.9 0.6 Usage correction, 0.8 0.8 more usage results in a higher score [0,1] 0.6 0.4 0.4 0.2
    • Calculate the predicted value for Gmail Gmail similarities User usage 0.9 0.6 0.8 0.8 0.6 0.4 0.4 0.2 (0.6 * 0.9) + (0.8 * 0.8) + (0.4 * 0.6) = 0.82 0.6 + 0.8 + 0.4 + 0.4
    • Calculate the predicted value for Gmail • User feedback Gmail similarities User usage • Contacts usage 0.9 0.6 • Commercial vs Free 0.8 0.8 0.6 0.4 0.4 0.2 (0.6 * 0.9) + (0.8 * 0.8) + (0.4 * 0.6) = 0.82 0.6 + 0.8 + 0.4 + 0.4
    • Calculate all unknown values and show the Top-N recommendations to each user Software items ? ? ? 1 1 1 1 ?1?? 1 1 1 ?1?1? Users 1 1 ?1111? 1 ?111?11 ?1?1??1
    • Explainability Why did I get this recommendation? • Overlap between the item’s (K) neighbors and your usage
    • User-Based Collaborative Filtering Finding people like you 1 1 0 1 0 1 0 1 1 1 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 1 1 0 Cosine Similarity(Coen, Menno) 0 1 1 1 0 1 1 0 1 0 1 0 0 1
    • Applying inverse user frequency log(n/ni): ni is the number of users that uses item i and n is the total number of users in the database 0.1 0.2 0 0.4 0 0.4 0 0.1 0.2 0.6 0 0.8 0 0 0.1 0.2 0 0.4 0 0.4 0 0.1 0.2 0.6 0.4 0.8 0.4 0 Cosine Similarity(Coen, Menno) 0 0.2 0.6 0.4 0 0.4 0.2 0 0.2 0 0.4 0 0 0.2 The fact that you both use Textmate tells you more than when you both use firefox
    • 0.1 0.2 0 0.4 0 0.4 0 0.1 0.2 0.6 0 0.8 0 0 0.1 0.2 0 0.4 0 0.4 0 0.1 0.2 0.6 0.4 0.8 0.4 0 Cosine Similarity(Coen, Menno) 0 0.2 0.6 0.4 0 0.4 0.2 0 0.2 0 0.4 0 0 0.2
    • User-user correlation matrix 1 0.8 0.6 0.5 0.7 0.2 0.8 1 0.4 0.7 0.5 0.5 0.6 0.4 1 0.4 0.9 0.1 0.5 0.8 0.4 1 0.6 0.4 0.8 0.5 0.9 0.6 1 0.2 0.2 0.5 0.1 0.4 0.2 1
    • Performance measure for success • Cross-validation: Train-Test split (80-20) • Precision and Recall: - precision = size(hit set) / size(total given recs) - recall = size(hit set) / size(test set) • Root mean squared error (RMSE)
    • Implementation • Ruby Enterprise Edition (garbage collection) • MySQL database • Built our own c-libraries • Amazon EC2: - Low cost - Flexibility - Ease of use • Open source
    • Future challenges • What is the best algorithm for Wakoopa? (or you) • Reducing space-time complexity (scalability): - Parallelization (Clojure) - Distributed computing (Hadoop)
    • 1 evening, 3 speakers, 100 developers www.recked.org