IP Library Granted Patent US 9,335,818
Granted Patent B2
US 9,335,818 · App. 13/835,040 · Granted May 10, 2016

System and method of personalizing playlists using memory-based collaborative filtering

Inventors: Tao Ye (Daly City, CA); Gordon Parker Rios (Fort Bragg, CA)
Assignee: Pandora Media
G06F3/01H04N21/252H04N21/4668H04N21/4756
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,335,818
App. No.
13/835,040
Granted
May 10, 2016
Kind
B2
Abstract

Systems and methods are provided for personalizing new song suggestions for a user. A plurality of users provides thumbs up and thumbs down ratings for a pair of songs (song A and B). A first aggregate rating for song B is calculated based on ratings given to song A by all of the users that gave a like rating to song A. Similarly, a second aggregate rating is calculated for song B based on ratings given to song B by all users that gave a dislike rating to song A. Then a user that has not previously rated song B, supplies a rating for song A. A prediction is performed of how the user will rate song B based on the user's rating of song A. For example, the first aggregate rating for song B is used if the user rated song A positively.

Claims (50)

1. A method of personalizing playback of media to a user, said method comprising:

at a server system having one or more processors and memory storing one or more programs for execution by the one or more processors:

receiving from a plurality of users like or dislike ratings for at least a first pair of media content items comprising a first media content item and a second media content item;

calculating a first aggregate rating for the second media content item based on ratings given to the second media content item by all users that gave the first media content item a like rating and based on the number of users that gave the first media content item a like rating and the second media content item any rating;

calculating a second aggregate rating for the second media content item based on ratings given to the second media content item by all users that gave the first media content item a dislike rating and based on the number of users that gave the first media content item a dislike rating and the second media content item any rating;

receiving from a user that has not previously rated the second media content item, a rating for the first media content item;

predicting how the user will rate the second media content item based on the user's rating of the first media content item and either the first aggregate rating for the second media content item or the second aggregate rating for the second media content item; and

upon predicting that the user will rate the second media content item above a first threshold, preparing the second media content item for playback.

2. The method of claim 1 , further comprising:

receiving from a plurality of users like or dislike ratings for at least a second pair for media content items comprising a third media content item and the second media content item;

calculating a third aggregate rating for the second media content item based on ratings given to the second media content item by all users that gave the third media content item a like rating and based on the number of users that gave the third media content item a like rating and the second media content item any rating;

calculating a fourth aggregate rating for the second media content item based on ratings given to the second media content item by all users that gave the third media content item a dislike rating and based on the number of users that gave the third media content item a dislike rating and the second media content item any rating;

receiving from a user that has not previously rated the second media content item, a rating for the third media content item;

predicting how the user will rate the second media content item based on the user's rating of the first media content item and either the first aggregate rating for the second media content item or the second aggregate rating for the second media content item, and the user's rating of the third media content item and either the third aggregate rating for the second media content item and fourth aggregate rating for the second media content item; and

upon predicting that the user will rate the second media content item above a second threshold, preparing the second media content item for playback.

3. The method of claim 1 , wherein the like and dislike ratings are received from the plurality of users on a first station associated with a common media input seed.

4. The method of claim 2 , wherein, the media input seed is selected from the group comprising: a song name, an artist name, an album name, a composer, and a genre.

5. The method of claim 1 , further comprising:

prior to calculating the first and second aggregate rating for the second media content item, determining that the first pair of media content item has been rated a least a threshold number of times.

6. The method of claim 1 , wherein the like ratings are +1 and dislike ratings are −1, and wherein the first and second aggregate ratings each fall between a range of −1 and 1.

7. The method of claim 6 , wherein the first threshold is a between 0 and 1.

8. The method of claim 6 , wherein the second aggregate rating falls between a range of 0 and 1.

9. The method of claim 1 , wherein the like and dislike ratings are not binary.

10. The method of claim 1 , wherein predicting how the user will rate the second media content item is performed in under 1 minute.

11. The method of claim 1 , wherein calculating first and second aggregate ratings and predicting how the user will rate the second media content item is performed in under 5 minutes.

12. The method of claim 1 , wherein predicting how the user will rate the second media content item is performed in response to a current request to prepare a media content item for playback.

13. The method of claim 1 , wherein calculating the first aggregate rating for the second media content item and the second aggregate rating for the second media content item are performed off line.

14. The method of claim 1 , further comprising transmitting the second media content item to a client device.

15. The method of claim 2 , wherein the second aggregate and fourth aggregate ratings are weighted higher than the first and third aggregate ratings.

16. The method of claim 1 , wherein the user is distinct from the plurality of users.

17. The method of claim 2 , wherein the first threshold and the second threshold are distinct.

18. The method of claim 2 , wherein calculating the third aggregate rating for the second media content item is based on the number of users that gave both the first and third media content items a like rating and the second media content item any rating.

19. The method of claim 2 , wherein calculating the fourth aggregate rating for the second media content item is based on the number of users that gave both the first and third media content items a dislike rating and the second media content item any rating.

20. A server system, for selecting a media content object, comprising:

one or more processors; and

memory storing one or more programs to be executed by the one or more processors;

the one or more programs comprising instructions for:

receiving from a plurality of users like or dislike ratings for at least a first pair of media content items comprising a first media content item and a second media content item;

calculating a first aggregate rating for the second media content item based on ratings given to the second media content item by all users that gave the first media content item a like rating and based on the number of users that gave the first media content item a like rating and the second media content item any rating;

calculating a second aggregate rating for the second media content item based on ratings given to the second media content item by all users that gave the first media content item a dislike rating and based on the number of users that gave the first media content item a dislike rating and the second media content item any rating;

receiving from a user that has not previously rated the second media content item, a rating for the first media content item;

predicting how the user will rate the second media content item based on the user's rating of the first media content item and either the first aggregate rating for the second media content item or the second aggregate rating for the second media content item; and

upon predicting that the user will rate the second media content item above a first threshold, preparing the second media content item for playback.

21. A non-transitory computer readable storage medium storing one or more programs configured for execution by a server system, the one or more programs comprising instructions for:

receiving from a plurality of users like or dislike ratings for at least a first pair of media content items comprising a first media content item and a second media content item;

calculating a first aggregate rating for the second media content item based on ratings given to the second media content item by all users that gave the first media content item a like rating and based on the number of users that gave the first media content item a like rating and the second media content item any rating;

calculating a second aggregate rating for the second media content item based on ratings given to the second media content item by all users that gave the first media content item a dislike rating and based on the number of users that gave the first media content item a dislike rating and the second media content item any rating;

receiving from a user that has not previously rated the second media content item, a rating for the first media content item;

predicting how the user will rate the second media content item based on the user's rating of the first media content item and either the first aggregate rating for the second media content item or the second aggregate rating for the second media content item; and

upon predicting that the user will rate the second media content item above a first threshold, preparing the second media content item for playback.

Assignments (7)
SECURITY INTEREST Recorded Nov 26, 2025
From: PANDORA MEDIA, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 073043/0142 →
CHANGE OF NAME Recorded Apr 4, 2019
From: PANDORA MEDIA, INC.
To: PANDORA MEDIA, LLC
Reel/Frame 048806/0776 →
RELEASE OF SECURITY INTEREST Recorded Feb 1, 2019
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: PANDORA MEDIA CALIFORNIA, LLC; ADSWIZ INC.
Reel/Frame 048209/0925 →
SECURITY INTEREST Recorded Dec 29, 2017
From: PANDORA MEDIA, INC.; PANDORA MEDIA CALIFORNIA, LLC
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 044985/0009 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 7, 2017
From: YE, TAO; RIOS, GORDON PARKER
To: PANDORA MEDIA
Reel/Frame 041192/0445 →
CORRECTIVE ASSIGNMENT TO CORRECT THE APPLICATION NUMBER PREVIOUSLY RECORDED ON REEL 030401 FRAME 0536. ASSIGNOR(S) HEREBY CONFIRMS THE 13838040. Recorded Jun 7, 2013
From: YE, TAO; RIOS, GORDON PARKER
To: PANDORA MEDIA
Reel/Frame 030574/0523 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 13, 2013
From: RIOS, GORDON PARKER; YE, TAO
To: PANDORA MEDIA
Reel/Frame 030401/0536 →
Continuity (1)
Related Publication 20140281978A1 · Sep 18, 2014