Music Recommender Systems
Upcoming SlideShare
Loading in...5
×
 

Music Recommender Systems

on

  • 4,429 views

Algorithm about recommender systems.

Algorithm about recommender systems.

Statistics

Views

Total Views
4,429
Views on SlideShare
3,907
Embed Views
522

Actions

Likes
8
Downloads
127
Comments
0

6 Embeds 522

http://gengrenjie.com 467
http://www.fuchaoqun.com 20
http://www.slideshare.net 13
http://www.lifeyun.com 11
http://twiki.xiaobin.net 9
http://strumbox.com 2

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

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
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Music Recommender Systems Music Recommender Systems Presentation Transcript

  • Music Recommender Systems
    超群.com
    fuchaoqun@gmail.com
    http://www.fuchaoqun.com
  • Who is Using Recommender Systems?
  • Recommender Systems
    • Summary:
    • http://en.wikipedia.org/wiki/Recommender_system
    • Keywords:
    recommender systems、 association rules 、collaborative filtering、slope one、 SVD、KNN....
  • Algorithms
    • Association Rules
    • Slope one
    • SVD
    • ….
  • Algorithms
    • Association Rules
    • Slope one
    • SVD
    • ….
  • Association Rules
  • Association Rules
    • Support:
    • Confidence:
    • Algorithms:Apriori algorithm、FP-growth algorithm
    • http://en.wikipedia.org/wiki/Association_rule_learning
    • Demo:Python + Orange
    http://www.fuchaoqun.com/2008/08/data-mining-with-python-orange-association_rule/
  • Algorithms
    • Association Rules
    • Slope one
    • SVD
    • ….
  • Slope One
  • Slope One
    • By Daniel Lemire in 2005
    • http://www.daniel-lemire.com/fr/abstracts/SDM2005.html
    • Simper Could Be Better
    • Weighted Average:
    • http://en.wikipedia.org/wiki/Slope_One
    • Implements: http://taste.sourceforge.net/ (Java)http://code.google.com/p/openslopeone (PHP&MySQL)
  • Algorithms
    • Association Rules
    • Slope one
    • SVD
    • ….
  • Similarity
    Similarity:
  • SVD
    Image copy from Here
  • SVD In Image Compression
    Original
    K=10
    K=20
  • Process SVD
    Define the original user-item matrix, R, of size m x n, which includes the ratings of m users on n items. rij refers to the rating of user ui on item ij .
    Preprocess user-item matrix R in order to eliminate all missing data values.
    Compute the SVD of R and obtain matrices U, S and V , of size m x m, m x n, and n x n, respectively. Their relationship is expressed by: R =U * S * VT .
    Perform the dimensionality reduction step by keeping only k diagonal entries from matrix S to obtain a k x k matrix, Sk. Similarly, matrices Uk and Vk of size m x k and k x n are generated. The "reduced" user-item matrix, R’, is obtained by R’ = Uk * Sk * VkT, while r'ij denotes the rating by user ui on item ij as included in this reduced matrix.
    Compute sqrt(Sk) and then calculate two matrix products: Uk * sqrt(Sk)T, which represents m users and sqrt(Sk) * VkT , which represents n items in the k dimen-sional feature space. We are particularly interested in the latter matrix, of size k x n.
    Use KNN on user matrix and item matrix, or you can multiply them to get user's rating on every item.
  • Demo
    Which two people have the most similar tastes?
    Which two season are the most close?
    from Here
  • Demo
  • Demo
  • SVD
    • SVD
    • matlab
    • LAPCKL、BLAS (Fortran)
    • numpy、scipy (Python)
    • SVDLIBC、Meschach (C)
    • http://en.wikipedia.org/wiki/Singular_value_decomposition
    • ……
    • KNN:
    • matlab
    • FLANN
    • ……
    • All in one solution:
    • DIVISI
    • ……
  • MAGIC DIVISI!
    #!/usr/bin/env python
    #coding=utf-8
    import divisi
    from divisi.cnet import *
    data = divisi.SparseLabeledTensor(ndim = 2)
    # read some rating into data
    # data[user_id, song_id] = 4
    svd_result = data.svd(k = 128)
    # get songs that the user may like
    # predict_features(svd_result, user_id).top_items(100)
    # get similar songs
    # feature_similarity(svd_result, song_id).top_items(100)
    # get users that have similar tastes
    # concept_similarity(svd_result, user_id).top_items(100)
  • Music Recommender Systems
    • Data collection
    • Data Cleaning
    • Data Preprocessing
    • Data Mining
    • Tracking & Optimization
  • Data collection
    • User rating
    • User collection
    • User listen log
    • User view log
    • ….
  • Data Cleaning
    • Missing data
    • Wrong data
    • Noise data
    • Duplicate data
    • ….
  • Data Preprocessing
  • Data Mining
  • Tracking & Optimization
    • Recommended result
    • User view and click what he like
    • Store user's click
    • Data Mining
    • Better recommendation
  • That's it, Thanks.
    Q&A