IP Library Granted Patent US 8,005,724
Granted Patent B2
US 8,005,724 · App. 10/401,940 · Granted Aug 23, 2011

Relationship discovery engine

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,005,724
App. No.
10/401,940
Granted
Aug 23, 2011
Kind
B2
Abstract

A system, method, and computer program product discover relationships among items and recommend items based on the discovered relationships. The recommendations provided by the present invention are based on user profiles that take into account actual preferences of users, without requiring users to complete questionnaires. An improved binomial log likelihood ratio analysis technique is applied, to reduce adverse effects of overstatement of coincidence and predominance of best sellers. The invention may be used, for example, to generate track lists for a personalized radio station.

Claims (164)

1. A computer-implemented method comprising:

accepting, by at least one computer, input specifying at least one track;

selecting, by the at least one computer, a set of play logs from a corpus of play logs, each play log in the corpus corresponding to a user and being used to identify track occurrences from observed behavior of the user, each play log in the set is selected by taking into account a number of occurrences of the at least one track in the play log; and

selecting, by the at least one computer, a set of tracks for a playlist from a corpus of tracks comprising tracks found in the set of play logs selected, wherein selecting the set of tracks comprises analyzing track occurrences identified from observed behavior indicated in each play log in the selected set and track occurrences identified from observed behavior indicated in the corpus of play logs, each track in the selected set of tracks is determined to be overrepresented in the selected set of play logs based on a significance measurement for the track that takes into account multiple occurrences of the track in a play log.

2. The computer-implemented method of claim 1 , wherein selecting the set of tracks further comprises:

selecting a track to be a part of the set of tracks using a degree of co-occurrence of the track with the specified at least one track in the selected set of play logs.

3. The computer-implemented method of claim 1 , wherein learned relationships exist among the tracks found in the selected set of play logs, and wherein selecting the set of tracks further comprises:

selecting the set of tracks using the learned relationships among tracks.

4. The computer-implemented method of claim 1 , wherein selecting the set of tracks further comprises:

selecting a set of tracks responsive to parameters provided by one user.

5. The computer-implemented method of claim 1 , wherein each track comprises a music track.

6. The computer-implemented method of claim 1 , wherein each track comprises a video track.

7. The computer-implemented method of claim 1 , further comprising transmitting, by the at least one computer, the set of tracks.

8. The computer-implemented method of claim 1 , wherein selecting the set of tracks further comprises :

selecting a track to be a part of the set of tracks using information indicating a frequency with which the track has been played for one user.

9. The computer-implemented method of claim 1 , wherein selecting the set of tracks further comprises:

selecting a track to be a part of the set of tracks using information indicating a frequency with which the track has been played for a group of users.

10. The computer-implemented method of claim 1 , wherein selecting the set of tracks further comprises:

selecting a track to be a part of the set of tracks using information indicating an overall popularity of the track.

11. The computer-implemented method of claim 1 , wherein selecting the set of tracks further comprises:

selecting a track to be a part of the set of tracks using information indicating a popularity of the track within a demographic group.

12. The computer-implemented method of claim 1 , wherein selecting the set of tracks further comprises:

selecting a track to be a part of the set of tracks using information indicating how recently the track has been played for one user.

13. The computer-implemented method of claim 1 , wherein selecting the set of tracks further comprises:

selecting a track to be a part of the set of tracks using information indicating how recently the track has been played for a group of users.

14. The computer-implemented method of claim 1 , wherein selecting the set of tracks further comprises:

selecting a track to be a part of the set of tracks using information indicating that the track has not yet been played for one user.

15. The computer-implemented method of claim 1 , wherein selecting the set of tracks further comprises:

selecting a track to be a part of the set of tracks using information indicating that the track has not been played for a user within a predefined period of time.

16. The computer-implemented method of claim 1 , wherein selecting the set of tracks further comprises:

selecting a track to be a part of the set of tracks using information indicating user preferences.

17. The computer-implemented method of claim 1 , wherein selecting the set of tracks further comprises:

selecting a track to be a part of the set of tracks using information indicating user genre preferences.

18. The computer-implemented method of claim 1 , wherein selecting the set of tracks further comprises:

selecting a track to be a part of the set of tracks using information indicating a detected user action with respect to the track.

19. The computer-implemented method of claim 18 , wherein the detected user action comprises changing a volume level during playback of the track.

20. The computer-implemented method of claim 18 , wherein the detected user action comprises skipping at least a portion of the track.

21. The computer-implemented method of claim 18 , wherein the detected user action comprises repeating at least a portion of the track.

22. A computer-implemented method comprising:

accepting input specifying at least one artist;

selecting, by at least one computer, a set of play logs from a corpus of play logs, each play log in the corpus corresponding to a user and being used to identify artist occurrences from observed behavior of the user, each play log in the set is selected by taking into account a number of occurrences of the at least one artist found in the play log; and

selecting, by the at least one computer, a set of artists for a playlist from a corpus of artists comprising artists found in the set of play logs selected, wherein selecting the set of artists comprises analyzing artist occurrences identified from observed behavior indicated in each play log in the selected set and artist occurrences identified from observed behavior indicated in the corpus of play logs, each artist in the selected set of artists is determined to be overrepresented in the selected set of play logs based on a significance measurement for the artist that takes into account multiple occurrences of the artist in a play log.

23. The computer-implemented method of claim 22 , wherein selecting the set of artists further comprises:

selecting an artist to be a part of the set of artists using a degree of co-occurrence of the artist with the specified at least one artist in the selected set of play logs.

24. The computer-implemented method of claim 22 , wherein learned relationships exist among the artists found in the selected set of play logs, and wherein selecting the set of artists further comprises:

selecting the set of artists using the learned relationships among artists.

25. The computer-implemented method of claim 22 , wherein selecting the set of artists further comprises:

selecting a set of artists responsive to parameters provided by one user.

26. The computer-implemented method of claim 22 , wherein each artist comprises a musical artist.

27. The computer-implemented method of claim 22 , wherein selecting the set of artists further comprises:

selecting an artist to be a part of the set of artists using information indicating a frequency with which one or more tracks by the artist have been played for one user.

28. The computer-implemented method of claim 22 , wherein selecting the set of artists further comprises:

selecting an artist to be a part of the set of artists using information indicating a frequency with which one or more tracks by the artist have been played for a group of users.

29. The computer-implemented method of claim 22 , wherein selecting the set of artists further comprises:

selecting an artist to be a part of the set of artists using information indicating an overall popularity.

30. The computer-implemented method of claim 22 , wherein selecting the set of artists further comprises:

selecting an artist to be a part of the set of artists using information indicating a popularity of the artist within a demographic group.

31. The computer-implemented method of claim 22 , wherein selecting the set of artists further comprises:

selecting an artist to be a part of the set of artists using information indicating how recently one or more tracks by the artist have been played for one user.

32. The computer-implemented method of claim 22 , wherein selecting the set of artists further comprises:

selecting an artist to be a part of the set of artists using information indicating how recently one or more tracks by the artist have been played for a group of users.

33. The computer-implemented method of claim 22 , wherein selecting the set of artists further comprises:

selecting an artist to be a part of the set of artists using information indicating that one or more tracks by the artist have not yet been played for one user.

34. The computer-implemented method of claim 22 , wherein selecting the set of artists further comprises:

selecting an artist to be a part of the set of artists using information indicating that one or more tracks by the artist have not been played for the user within a predefined period of time.

35. The computer-implemented method of claim 22 , wherein selecting the set of artists further comprises:

selecting an artist to be a part of the set of artists using information indicating user preferences.

36. The computer-implemented method of claim 22 , wherein selecting the set of artists further comprises:

selecting an artist to be a part of the set of artists using information indicating user genre preferences.

37. The computer-implemented method of claim 22 , wherein selecting the set of artists further comprises:

selecting an artist to be a part of the set of artists using information indicating a detected user action with respect to one or more tracks by the artist.

38. The computer-implemented method of claim 37 , wherein the detected user action comprises changing a volume level during playback of the track by the artist.

39. The computer-implemented method of claim 37 , wherein the detected user action comprises skipping at least a portion of the track by the artist.

40. The computer-implemented method of claim 37 , wherein the detected user action comprises repeating at least a portion of the track by the artist.

41. A computer-implemented method comprising:

accepting, by at least one computer, input specifying at least one artist;

selecting, by the at least one computer, a set of play logs from a corpus of play logs, each play log in the corpus corresponding to a user and being used to identify artist occurrences from observed behavior of the user, each play log in the set is selected by taking into account a number of occurrences of the at least one artist in the play log; and

selecting, by the at least one computer, a set of artists for a playlist from a corpus of artists comprising artists found in the set of play logs selected, wherein selecting the set of artists comprises analyzing artist occurrences identified from observed behavior indicated in each play log in the selected set and artist occurrences identified from observed behavior indicated in the corpus of play logs, each artist in the selected set of artists is determined to be overrepresented in the set of play logs based on a significance measurement for the artist that takes into account multiple occurrences of the artist in the play log; and

selecting, by the at least one computer and for each of at least a subset of the artists, at least one track for the playlist.

42. The computer-implemented method of claim 41 , wherein selecting the set of artists further comprises:

selecting an artist to be a part of set of artists using a degree of co-occurrence of the artist with the specified at least one artist in the selected set of play logs.

43. The computer-implemented method of claim 41 , wherein learned relationships exist among the artists found in the selected set of play logs, and wherein selecting the set of artists further comprises:

selecting the set of artists using the learned relationships among artists.

44. The computer-implemented method of claim 41 , wherein selecting the set of artists further comprises:

selecting a set of artists responsive to parameters provided by one user.

45. The computer-implemented method of claim 41 , wherein each track comprises a music track.

46. The computer-implemented method of claim 41 , wherein each track comprises a video track.

47. The computer-implemented method of claim 41 , further comprising transmitting, by the at least one computer, the set of tracks.

48. The computer-implemented method of claim 41 , wherein selecting the set of artists further comprises:

selecting an artist to be a part of the set of artists using information indicating a frequency with which one or more tracks by the artist have been played for one user.

49. The computer-implemented method of claim 41 , wherein selecting the set of artists further comprises:

selecting an artist to be a part of the set of artists using information indicating a frequency with which one or more tracks by the artist have been played for a group of users.

50. The computer-implemented method of claim 41 , wherein selecting the set of artists further comprises:

selecting an artist to be a part of the set of artists using information indicating an overall popularity.

51. The computer-implemented method of claim 41 , wherein selecting the set of artists further comprises:

selecting an artist to be a part of the set of artists using information indicating a popularity of the artist within a demographic group.

52. The computer-implemented method of claim 41 , wherein selecting the set of artists further comprises:

selecting an artist to be a part of the set of artists using information indicating how recently one or more tracks by the artist have been played for one user.

53. The computer-implemented method of claim 41 , wherein selecting the set of artists further comprises:

selecting an artist to be a part of the set of artists using information indicating how recently one or more tracks by the artist have been played for a group of users.

54. The computer-implemented method of claim 41 , wherein selecting the set of artists further comprises:

selecting an artist to be a part of the set of artists using information indicating that one or more tracks by the artist have not yet been played for one user.

55. The computer-implemented method of claim 41 , wherein selecting the set of artists further comprises:

selecting an artist to be a part of the set of artists using information indicating that one or more tracks by the artist have not been played for one user within a predefined period of time.

56. The computer-implemented method of claim 41 , wherein selecting the set of artists further comprises:

selecting an artist to be a part of the set of artists using information indicating user preferences.

57. The computer-implemented method of claim 41 , wherein selecting the set of artists further comprises:

selecting an artist to be a part of the set of artists using information indicating user genre preferences.

58. The computer-implemented method of claim 41 , wherein selecting the set of artists further comprises:

selecting an artist to be a part of the set of artists using information indicating a detected user action with respect to one or more tracks by the artist.

59. The computer-implemented method of claim 58 , wherein the detected user action comprises changing a volume level during playback of a track by the artist.

60. The computer-implemented method of claim 58 , wherein the detected user action comprises skipping at least a portion of a track by the artist.

61. The computer-implemented method of claim 58 , wherein the detected user action comprises repeating at least a portion of a track by the artist.

62. A computer-implemented method comprising:

accepting, by at least one computer, input specifying at least one track;

determining, by the at least one computer, at least one artist for the specified at least one track;

selecting, by the at least one computer, a set of play logs from a corpus of play logs, each play log in the corpus corresponding to a user and being used to identify artist occurrences from observed behavior of the user, each play log in the set is selected by taking into account a number of occurrences of the at least one artist found in the play log; and

selecting, by the at least one computer, a set of artists for a playlist from a corpus of artists comprising artists found in the set of play logs selected, wherein selecting the set of artists comprises analyzing artist occurrences identified from observed behavior indicated in each play log in the selected set and artist occurrences identified from observed behavior indicated in the corpus of play logs, each artist in the selected set of artists is determined to be overrepresented in the selected set of play logs based on a significance measurement for the artist that takes into account multiple occurrences of the artist in the play log; and

selecting, by the at least one computer and for each of at least a subset of the set of selected artists, at least one track for the playlist.

63. The computer-implemented method of claim 62 , wherein selecting the set of artists comprises:

selecting an artist to be a part of the set of artists using a degree of co-occurrence of the artist with the specified at least one artist in the selected set of play logs.

64. The computer-implemented method of claim 62 , wherein learned relationships exist among the artists found in the selected set of play logs, and wherein selecting the set of artists further comprises:

selecting the set of artists using the learned relationships among artists.

65. The computer-implemented method of claim 62 , wherein selecting the set of artists further comprises:

selecting the set of artists responsive to parameters provided by one user.

66. The computer-implemented method of claim 62 , wherein each track comprises a music track.

67. The computer-implemented method of claim 62 , wherein each track comprises a video track.

68. The computer-implemented method of claim 62 , further comprising transmitting, by the at least one computer, the set of tracks.

69. The computer-implemented method of claim 62 , wherein selecting the set of artists further comprises:

selecting an artist to be a part of the set of artists using information indicating a frequency with which one or more tracks by the artist have been played for one user.

70. The computer-implemented method of claim 62 , wherein selecting the set of artists further comprises:

selecting an artist to be a part of the set of artists using information indicating a frequency with which one or more tracks by the artist have been played for a group of users.

71. The computer-implemented method of claim 62 , wherein selecting the set of artists further comprises:

selecting an artist to be a part of the set of artists using information indicating an overall popularity.

72. The computer-implemented method of claim 62 , wherein selecting the set of artists further comprises:

selecting an artist to be a part of the set of artists using information indicating a popularity of the artist within a demographic group.

73. The computer-implemented method of claim 62 , wherein selecting the set of artists further comprises:

selecting an artist to be a part of the set of artists using information indicating how recently one or more tracks by the artist have been played for one user.

74. The computer-implemented method of claim 62 , wherein selecting the set of artists further comprises:

selecting an artist to be a part of the set of artists using information indicating how recently one or more tracks by the artist have been played for a group of users.

75. The computer-implemented method of claim 62 , wherein selecting the set of artists further comprises:

selecting an artist to be a part of the set of artists using information indicating that one or more tracks by the artist have not yet been played for one user.

76. The computer-implemented method of claim 62 , wherein selecting the set of artists further comprises:

selecting an artist to be a part of the set of artists using information indicating that one or more tracks by the artist have not been played for one user within a predefined period of time.

77. The computer-implemented method of claim 62 , wherein selecting the set of artists further comprises:

selecting an artist to be a part of the set of artists using information indicating user preferences.

78. The computer-implemented method of claim 62 , wherein selecting the set of artists further comprises:

selecting an artist to be a part of the set of artists using information indicating user genre preferences.

79. The computer-implemented method of claim 62 , wherein selecting the set of artists further comprises:

selecting an artist to be a part of the set of artists using information indicating a detected user action with respect to a track by the artist.

80. The computer-implemented method of claim 79 , wherein the detected user action comprises changing a volume level during playback of the track.

81. The computer-implemented method of claim 79 , wherein the detected user action comprises skipping at least a portion of the track.

82. The computer-implemented method of claim 79 , wherein the detected user action comprises repeating at least a portion of the track.

83. A computer-implemented method comprising:

accepting, by at least one computer, a set of preferences;

selecting, by the at least one computer, a set of play logs from a corpus of play logs, each play log in the corpus corresponding to a user and being used to identify track occurrences from observed behavior of the user, each play log in the set is selected by taking into account a number of occurrences of the at least one track in the play log; and

selecting, by the at least one computer, a set of tracks for a playlist from a corpus of tracks comprising tracks found in the set of play logs selected, wherein selecting the set of tracks comprises using the accepted set of preferences and analyzing track occurrences identified from observed behavior indicated in each play log in the selected set and track occurrences identified from observed behavior indicated in the corpus of play logs, each track in the selected set of tracks is determined to be overrepresented in the selected set of play logs based on a significance measurement for the track that takes into account multiple occurrences of the track in the play log.

84. The computer-implemented method of claim 83 , wherein the user preferences comprise at least one selected from the group consisting of: at least one genre; at least one artist; and at least one track.

85. The computer-implemented method of claim 83 , further comprising:

determining, by the at least one computer, demographic information; and

wherein selecting the set of tracks further comprises selected the tracks using the determined demographic information.

86. The computer-implemented method of claim 83 , wherein selecting the set of tracks further comprises selecting a track to be a part of the set of tracks using information indicating a frequency with which the track has been played for a group of users.

87. The computer-implemented method of claim 83 , wherein selecting the set of tracks further comprises selecting a track to be a part of the set of tracks using information indicating an overall popularity of the track.

88. The computer-implemented method of claim 83 , wherein selecting the set of tracks further comprises selecting a track to be a part of the set of tracks using information indicating a popularity within a demographic group.

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 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 25, 2020
From: EXCALIBUR IP, LLC
To: R2 SOLUTIONS LLC
Reel/Frame 053459/0059 →
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 Jul 26, 2006
From: MUSICMATCH, INC.
To: YAHOO! INC.
Reel/Frame 018005/0153 →
Continuity (3)
Continuation 09846823 · Apr 30, 2001
Provisional Application 60201622 · May 3, 2000
Related Publication 20030229537A1 · Dec 11, 2003