IP Library Granted Patent US 8,407,230
Granted Patent B2
US 8,407,230 · App. 11/842,899 · Granted Mar 26, 2013

System and method for identifying similar media objects

Inventors: Malcolm Slaney (Santa Clara, CA); William White (Oakland, CA)
Assignee: Yahoo! Inc.
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 8,407,230
App. No.
11/842,899
Granted
Mar 26, 2013
Kind
B2
Abstract

The systems and methods described create a mathematical representation of each of the media objects for which user ratings are known. The mathematical representations take into account the subjective rating value assigned by a user to the respective media object and the user that assigned the rating value. The media object with the mathematical representation closest to that of the seed media object is then selected as the most similar media object to the seed media object. In an embodiment, the mathematical representation is a vector representation in which each user is a different dimension and each user's rating value is the magnitude of the vector in that dimension. Similarity between two songs is determined by identifying the closest vectors to that of the seed song. Closeness may be determined by subtracting or by calculating the dot product of each of the vectors with that of the seed media object.

Claims (114)

1. A method for identifying similar media objects comprising:

accessing, using one or more computing devices, a datastore of user ratings of media objects including a seed media object, a first media object and a second media object, individual user ratings including a rating value associated with a user identifier and a media object, individual user ratings corresponding to a user and based at least in part on input supplied by the user;

receiving, using the one or more computing devices, a user-anonymous request for a media object that is similar to the seed media object; and

identifying, using the one or more computing devices, one of a first media object and a second media object as more similar to the seed media object using the user ratings, the identifying comprising:

identifying, using the one or more computing devices, a seed set of user ratings associated with the seed media object, a first set of user ratings associated with the first media object and a second set of user ratings associated with the second media object;

for respective user identifiers appearing in user ratings in both the seed set and the first set, generating, using the one or more computing devices, a first object user similarity value based at least in part on the rating values of the user ratings of the seed media object and the first media object;

calculating, using the one or more computing devices, a first media object total similarity value based on the generated first object user similarity values;

for respective user identifiers appearing in user ratings in both the seed set and the second set, generating, using the one or more computing devices, a second object user similarity value based on the rating values of the user ratings of the seed media object and the second media object;

calculating, using the one or more computing devices, a second media object total similarity value based at least in part on the generated second object user similarity values;

comparing, using the one or more computing devices, the first media object total similarity value with the second media object total similarity value,

wherein the comparing comprises characterizing the first media object and the second media object individually as vectors having a plurality of dimensions and magnitudes, wherein individual vectors of the first and second media objects comprise a plurality of magnitudes individually associated with a different dimension in multi-dimensional space, wherein individual dimensions correspond to a respective user identifier and individual magnitudes correspond to a rating value assigned to a respective media object by a user corresponding to the user identifier.

2. The method of claim 1 , further comprising:

biasing the rating value of individual user ratings by a predetermined factor before generating the first object user similarity value and the second object user similarity value.

3. The method of claim 1 , further comprising:

maintaining a library of media objects including the seed media object, the first media object and the second media object;

receiving the user ratings from users accessing the library of media objects; and

storing the user ratings in the datastore.

4. The method of claim 1 , further comprising:

transmitting a response identifying one of the first media object and the second media object identified in the identifying operation as a media object that is more similar to the seed media object.

5. The method of claim 1 , wherein identifying the seed set, the first set and the second set further comprises:

identifying as the seed set user ratings associated with the seed media object contained in the datastore;

identifying as the first set user ratings associated with the first media object contained in the datastore; and

identifying as the second set user ratings associated with the second media object contained in the datastore.

6. The method of claim 1 , wherein the identifying the seed set, the first set and the second set further comprises:

identifying a subset of user identifiers as super-users;

identifying as the seed set user ratings associated with the seed media object and a super-user contained in the datastore;

identifying as the first set user ratings associated with the first media object and a super-user contained in the datastore; and

identifying as the second set user ratings associated with the second media object and a super-user contained in the datastore.

7. The method of claim 1 , wherein the generating the first and second object user similarity values further comprises:

for respective user identifiers having a user rating for the seed set of user ratings and the first set of user ratings, multiplying a rating value of the seed media object with a rating value of the first media object; and

for respective user identifiers having a user rating for the seed set of user ratings and the second set of user ratings, multiplying a rating value of the seed media object with a rating value of the second media object.

8. The method of claim 7 , wherein calculating the first and second object total similarity values further comprises:

adding the generated first object user similarity values to obtain the first object total similarity value; and

adding the generated second object user similarity values to obtain the second object total similarity value.

9. The method of claim 1 , wherein generating the first and second object user similarity values further comprises:

for individual user identifiers having a user rating for the seed set of user ratings and the first set of user ratings, generating a first object user similarity value by subtracting the rating value of the first media object with the rating value of the seed media object; and

for individual user identifiers having a user rating for the seed set of user ratings and the second set of user ratings, generating a second object user similarity value by subtracting the rating value of the second media object with the rating value of the seed media object.

10. The method of claim 9 , wherein calculating the first and second object total similarity values further comprises:

squaring respective generated first object user similarity values to obtain a set of squared first object user similarity values;

adding respective squared first object user similarity values to obtain the first object total similarity value;

squaring respective generated second object user similarity values to obtain a set of squared second object user similarity values; and

adding respective squared second object user similarity values to obtain the second object total similarity value.

11. An apparatus, comprising:

a memory to store a plurality of user ratings of respective media objects including a seed media object, a first media object and a second media object, wherein individual user ratings comprise a rating value associated with a user identifier and a media object, the individual user ratings corresponding to a user and based at least in part on input supplied by the user;

a communications module to receive a user-anonymous request for a media object that is similar to the seed media object; and

a processor to identify one of a first media object and a second media object as more similar to the seed media object using the user ratings, the processor to identify the one of the first media object and the second media object as more similar to the seed media object at least in part by:

identifying a seed set of user ratings associated with the seed media object, a first set of user ratings associated with the first media object and a second set of user ratings associated with the second media object,

for respective user identifiers appearing in user ratings in both the seed set and the first set, generating a first object user similarity value based at least in part on the rating values of the user ratings of the seed media object and the first media object,

calculating a first media object total similarity value based on the generated first object user similarity values,

for respective user identifiers appearing in user ratings in both the seed set and the second set, generating a second object user similarity value based on the rating values of the user ratings of the seed media object and the second media object,

calculating a second media object total similarity value based at least in part on the generated second object user similarity values, and

comparing the first media object total similarity value with the second media object total similarity value, wherein the comparing comprises characterizing the first media object and the second media object individually as vectors having a plurality of dimensions and magnitudes, wherein individual vectors of the first and second media objects comprise a plurality of magnitudes individually associated with a different dimension in multi-dimensional space, wherein individual dimensions correspond to a respective user identifier and individual magnitudes correspond to a rating value assigned to a respective media object by a user corresponding to the user identifier.

12. The apparatus of claim 11 , the processor further to bias the rating value of individual user ratings by a predetermined factor before generating the first object user similarity value and the second object user similarity value.

13. The apparatus of claim 11 , the memory further to store a library of media objects including the seed media object, the first media object and the second media object, the communications module further to receive the user ratings from users accessing the library of media objects, and the memory further to store the user ratings.

14. The apparatus of claim 11 , the communications module further to transmit a response identifying one of the first media object and the second media object identified in the identifying operation as a media object that is more similar to the seed media object.

15. The apparatus of claim 11 , the processor to identifying the seed set, the first set and the second set at least in part by:

identifying as the seed set user ratings associated with the seed media object contained in the memory;

identifying as the first set user ratings associated with the first media object contained in the memory; and

identifying as the second set user ratings associated with the second media object contained in the memory.

16. The apparatus of claim 11 , the processor further to identify the seed set, the first set and the second set at least in part by:

identifying a subset of user identifiers as super-users;

identifying as the seed set user ratings associated with the seed media object and a super-user contained in the memory;

identifying as the first set user ratings associated with the first media object and a super-user contained in the memory; and

identifying as the second set user ratings associated with the second media object and a super-user contained in the memory.

17. The apparatus of claim 11 , the processor to generate the first and second object user similarity values at least in part by:

for respective user identifiers having a user rating for the seed set of user ratings and the first set of user ratings, multiplying a rating value of the seed media object with a rating value of the first media object; and

for respective user identifiers having a user rating for the seed set of user ratings and the second set of user ratings, multiplying a rating value of the seed media object with a rating value of the second media object.

18. The apparatus of claim 17 , the processor to calculate the first and second object total similarity values at least in part by:

adding the generated first object user similarity values to obtain the first object total similarity value; and

adding the generated second object user similarity values to obtain the second object total similarity value.

19. The apparatus of claim 11 , the processor to generate the first and second object user similarity values at least in part by:

for individual user identifiers having a user rating for the seed set of user ratings and the first set of user ratings, generating a first object user similarity value by subtracting the rating value of the first media object with the rating value of the seed media object; and

for individual user identifiers having a user rating for the seed set of user ratings and the second set of user ratings, generating a second object user similarity value by subtracting the rating value of the second media object with the rating value of the seed media object.

20. The apparatus of claim 19 , the processor to calculate the first and second object total similarity values at least in part by:

squaring respective generated first object user similarity values to obtain a set of squared first object user similarity values;

adding respective squared first object user similarity values to obtain the first object total similarity value;

squaring respective generated second object user similarity values to obtain a set of squared second object user similarity values; and

adding respective squared second object user similarity values to obtain the second object total similarity value.

21. An article, comprising: a non-transitory storage medium having stored thereon instructions executable by a computing device to:

store in a memory of the computing device a plurality of user ratings of respective media objects including a seed media object, a first media object and a second media object, wherein individual user ratings comprise a rating value associated with a user identifier and a media object, the individual user ratings corresponding to a user and based at least in part on input supplied by the user;

receive a user-anonymous request for a media object that is similar to the seed media object; and

identify one of a first media object and a second media object as more similar to the seed media object using the user ratings at least in part by:

identifying a seed set of user ratings associated with the seed media object, a first set of user ratings associated with the first media object and a second set of user ratings associated with the second media object,

for respective user identifiers appearing in user ratings in both the seed set and the first set, generating a first object user similarity value based at least in part on the rating values of the user ratings of the seed media object and the first media object,

calculating a first media object total similarity value based on the generated first object user similarity values,

for respective user identifiers appearing in user ratings in both the seed set and the second set, generating a second object user similarity value based on the rating values of the user ratings of the seed media object and the second media object,

calculating a second media object total similarity value based at least in part on the generated second object user similarity values, and

comparing the first media object total similarity value with the second media object total similarity value, wherein the comparing comprises characterizing the first media object and the second media object individually as vectors having a plurality of dimensions and magnitudes, wherein individual vectors of the first and second media objects comprise a plurality of magnitudes individually associated with a different dimension in multi-dimensional space, wherein individual dimensions correspond to a respective user identifier and individual magnitudes correspond to a rating value assigned to a respective media object by a user corresponding to the user identifier.

22. The article of claim 21 , the storage medium having stored thereon further instructions executable by the computing device to bias the rating value of individual user ratings by a predetermined factor before generating the first object user similarity value and the second object user similarity value.

23. The article of claim 21 , the storage medium having stored thereon further instructions executable by the computing device to store in the memory a library of media objects including the seed media object, the first media object and the second media object, the storage medium having stored thereon further instructions executable by the computing device to receive the user ratings from users accessing the library of media objects.

24. The article of claim 21 , the storage medium having stored thereon further instructions executable by the computing device to transmit a response identifying one of the first media object and the second media object identified in the identifying operation as a media object that is more similar to the seed media object.

25. The article of claim 21 , the storage medium having stored thereon further instructions executable by the computing device to identify the seed set, the first set and the second set at least in part by:

identifying as the seed set user ratings associated with the seed media object contained in the memory;

identifying as the first set user ratings associated with the first media object contained in the memory; and

identifying as the second set user ratings associated with the second media object contained in the memory.

26. The article of claim 21 , the storage medium having stored thereon further instructions executable by the computing device identify the seed set, the first set and the second set at least in part by:

identifying a subset of user identifiers as super-users;

identifying as the seed set user ratings associated with the seed media object and a super-user contained in the memory;

identifying as the first set user ratings associated with the first media object and a super-user contained in the memory; and

identifying as the second set user ratings associated with the second media object and a super-user contained in the memory.

27. The article of claim 21 , the storage medium having stored thereon further instructions executable by the computing device to generate the first and second object user similarity values at least in part by:

for respective user identifiers having a user rating for the seed set of user ratings and the first set of user ratings, multiplying a rating value of the seed media object with a rating value of the first media object; and

for respective user identifiers having a user rating for the seed set of user ratings and the second set of user ratings, multiplying a rating value of the seed media object with a rating value of the second media object.

28. The article of claim 27 , the storage medium having stored thereon further instructions executable by the computing device to calculate the first and second object total similarity values at least in part by:

adding the generated first object user similarity values to obtain the first object total similarity value; and

adding the generated second object user similarity values to obtain the second object total similarity value.

29. The article of claim 21 , the storage medium having stored thereon further instructions executable by the computing device to generate the first and second object user similarity values at least in part by:

for individual user identifiers having a user rating for the seed set of user ratings and the first set of user ratings, generating a first object user similarity value by subtracting the rating value of the first media object with the rating value of the seed media object; and

for individual user identifiers having a user rating for the seed set of user ratings and the second set of user ratings, generating a second object user similarity value by subtracting the rating value of the second media object with the rating value of the seed media object.

30. The article of claim 29 , the storage medium having stored thereon further instructions executable by the computing device to calculate the first and second object total similarity values at least in part by:

squaring respective generated first object user similarity values to obtain a set of squared first object user similarity values;

adding respective squared first object user similarity values to obtain the first object total similarity value;

squaring respective generated second object user similarity values to obtain a set of squared second object user similarity values; and

adding respective squared second object user similarity values to obtain the second object total similarity value.

Assignments (9)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE ASSIGNOR NAME PREVIOUSLY RECORDED AT REEL: 052853 FRAME: 0153. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 29, 2021
From: R2 SOLUTIONS LLC
To: STARBOARD VALUE INTERMEDIATE FUND LP, AS COLLATERAL AGENT
Reel/Frame 056832/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 12, 2021
From: EXCALIBUR IP, LLC
To: R2 SOLUTIONS LLC
Reel/Frame 055283/0483 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED ON REEL 053654 FRAME 0254. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST GRANTED PURSUANT TO THE PATENT SECURITY AGREEMENT PREVIOUSLY RECORDED. Recorded Dec 30, 2020
From: STARBOARD VALUE INTERMEDIATE FUND LP
To: R2 SOLUTIONS LLC
Reel/Frame 054981/0377 →
RELEASE OF SECURITY INTEREST IN PATENTS Recorded Jul 8, 2020
From: STARBOARD VALUE INTERMEDIATE FUND LP
To: ACACIA RESEARCH GROUP LLC; AMERICAN VEHICULAR SCIENCES LLC; BONUTTI SKELETAL INNOVATIONS LLC; CELLULAR COMMUNICATIONS EQUIPMENT LLC; INNOVATIVE DISPLAY TECHNOLOGIES LLC; LIFEPORT SCIENCES LLC; LIMESTONE MEMORY SYSTEMS LLC; MOBILE ENHANCEMENT SOLUTIONS LLC; MONARCH NETWORKING SOLUTIONS LLC; NEXUS DISPLAY TECHNOLOGIES LLC; PARTHENON UNIFIED MEMORY ARCHITECTURE LLC; R2 SOLUTIONS LLC; SAINT LAWRENCE COMMUNICATIONS LLC; STINGRAY IP SOLUTIONS LLC; SUPER INTERCONNECT TECHNOLOGIES LLC; TELECONFERENCE SYSTEMS LLC; UNIFICATION TECHNOLOGIES LLC
Reel/Frame 053654/0254 →
PATENT SECURITY AGREEMENT Recorded Jun 5, 2020
From: ACACIA RESEARCH GROUP LLC; AMERICAN VEHICULAR SCIENCES LLC; BONUTTI SKELETAL INNOVATIONS LLC; CELLULAR COMMUNICATIONS EQUIPMENT LLC; INNOVATIVE DISPLAY TECHNOLOGIES LLC; LIFEPORT SCIENCES LLC; LIMESTONE MEMORY SYSTEMS LLC; MERTON ACQUISITION HOLDCO LLC; MOBILE ENHANCEMENT SOLUTIONS LLC; MONARCH NETWORKING SOLUTIONS LLC; NEXUS DISPLAY TECHNOLOGIES LLC; PARTHENON UNIFIED MEMORY ARCHITECTURE LLC; R2 SOLUTIONS LLC; SAINT LAWRENCE COMMUNICATIONS LLC; STINGRAY IP SOLUTIONS LLC; SUPER INTERCONNECT TECHNOLOGIES LLC; TELECONFERENCE SYSTEMS LLC; UNIFICATION TECHNOLOGIES LLC
To: STARBOARD VALUE INTERMEDIATE FUND LP, AS COLLATERAL AGENT
Reel/Frame 052853/0153 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 3, 2016
From: YAHOO! INC.
To: EXCALIBUR IP, LLC
Reel/Frame 038950/0592 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 1, 2016
From: EXCALIBUR IP, LLC
To: YAHOO! INC.
Reel/Frame 038951/0295 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 18, 2016
From: YAHOO! INC.
To: EXCALIBUR IP, LLC
Reel/Frame 038383/0466 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 2, 2007
From: SLANEY, MALCOLM; WHITE, WILLIAM
To: YAHOO! INC.
Reel/Frame 020062/0517 →
Continuity (2)
Continuation In Part 11838003 · Aug 13, 2007
Related Publication 20090049082A1 · Feb 19, 2009