# Patent

## Title
Identifying highly valued recommendations of users in a media recommendation network

## Abstract

A system and method are provided for discovering new friends using recommendation paths in a media recommendation network. In general, media items are recommended among users in a media recommendation network. Use of media items by the users is monitored. If the use of a media item by a user exceeds a threshold, a determination is made as to whether the media item was recommended to the user. If so, that recommendation is identified as a highly valued recommendation for that user. Thereafter, when the user desires to identify new friends from which to receive recommendations and to which to send recommendations, a recommendation path for the highly valued recommendation is identified. Users in the recommendation path that are not already friends of the user are identified as potential new friends for the user.

## Background
FIELD OF THE INVENTION
The present invention relates to identifying highly valued recommendations of a user in a media recommendation network.
BACKGROUND OF THE INVENTION
Social networks are a key component of many systems ranging from instant messaging systems to media recommendation systems. One example of a social network based recommendation system is described in commonly owned and assigned U.S. patent application Ser. No. 11/484,130, entitled P2P NETWORK FOR PROVIDING REAL TIME MEDIA RECOMMENDATIONS, which was filed on Jul. 11, 2006 and is hereby incorporated herein by reference in its entirety. In general, social network based recommendation systems, such as that described in U.S. patent application Ser. No. 11/484,130, enable users to send media recommendations to and receive media recommendations from other users in a social network. However, one issue with social network based systems, including social network based recommendation systems, is the discovery of new friends. Traditionally, a user has been required to have prior knowledge of friends that the user desires to add to his or her social network or is allowed to select new friends from a global list of users. As such, there is a need for a system and method of quickly and easily discovering new friends for the user's social network.
SUMMARY OF THE INVENTION
The present invention relates to identifying highly valued recommendations of a user in a media recommendation network. Recommendation paths for the highly valued recommendations may then be used to discover new friends for the user. In general, media items are recommended among users in a media recommendation network. For example, a particular media item may be recommended from an originating user to one or more friends of the originating user, from the friends of the originating user to one or more of their friends, and so on. In order to enable discovery of new friends, use of media items by the users is monitored. If the use of a media item by a user exceeds a threshold, a determination is made as to whether the media item was recommended to the user. If so, that recommendation is identified as a highly valued recommendation for that user. Thereafter, when the user desires to identify new friends from which to receive recommendations and to which to send recommendations, a recommendation path for the highly valued recommendation is identified. Users in the recommendation path that are not already friends of the user are identified as potential new friends for the user. The user may then select one or more of the potential new friends as new friends for the user. Alternatively, one or more of the potential new friends may be programmatically, or automatically, selected as new friends for the user.
In one embodiment, in order to monitor use, a play count indicative of a number of times the user has played the media item is maintained. When the user has played the media item more than a play count threshold number of times, the recommendation of the media item to the user is identified as a highly valued recommendation for the user. In another embodiment, in order to monitor the user, a recommendation count indicative of a number of times that the user has recommended the media item to another user is maintained. When the user has recommended the media item more than a recommendation count threshold number of times, the recommendation of the media item to the user is identified as a highly valued recommendation for the user. In yet another embodiment, both the play count and the recommendation count may be monitored. When the user plays or recommends the media item more than a threshold number of times, the recommendation of the media item to the user is identified as a highly valued recommendation for the user.
Those skilled in the art will appreciate the scope of the present invention and realize additional aspects thereof after reading the following detailed description of the preferred embodiments in association with the accompanying drawing figures.



BRIEF DESCRIPTION OF THE DRAWING FIGURES
The accompanying drawing figures incorporated in and forming a part of this specification illustrate several aspects of the invention, and together with the description serve to explain the principles of the invention.
FIG. 1 illustrates a system enabling new friend discovery using recommendation paths in a media recommendation network according to one embodiment of the present invention;
FIG. 2 illustrates a recommendation path in a media recommendation network according to one embodiment of the present invention;
FIG. 3 illustrates an exemplary embodiment of the user table of FIG. 1;
FIG. 4 illustrates an exemplary embodiment of the friends list table of FIG. 1;
FIG. 5 illustrates an exemplary embodiment of the media item table of FIG. 1;
FIG. 6 illustrates an exemplary embodiment of the play count table of FIG. 1;
FIG. 7 illustrates an exemplary embodiment of the recommendation count table of FIG. 1;
FIG. 8 illustrates an exemplary embodiment of the recommendation table of FIG. 1;
FIG. 9 illustrates an exemplary embodiment of the recommendation path table of FIG. 1;
FIG. 10 illustrates an exemplary embodiment of the highly valued recommendation table of FIG. 1;
FIG. 11 is a flow chart illustrating the operation of the recommendation forwarding function of FIG. 1 according to one embodiment of the present invention;
FIGS. 12A, 12B, and 13 provide flow charts illustrating the operation of the highly valued recommendation identification function of FIG. 1 according to one embodiment of the present invention;
FIGS. 14A and 14B are flow charts illustrating the operation of the new friend discovery function of FIG. 1 according to one embodiment of the present invention;
FIG. 15 is a block diagram of the central server of FIG. 1 according to one embodiment of the present invention; and
FIG. 16 is a block diagram of one of the user devices of FIG. 1 according to one embodiment of the present invention.



DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
The embodiments set forth below represent the necessary information to enable those skilled in the art to practice the invention and illustrate the best mode of practicing the invention. Upon reading the following description in light of the accompanying drawing figures, those skilled in the art will understand the concepts of the invention and will recognize applications of these concepts not particularly addressed herein. It should be understood that these concepts and applications fall within the scope of the disclosure and the accompanying claims.
FIG. 1 illustrates a system 10 enabling new friend discovery using recommendation paths in a media recommendation network according to one embodiment of the present invention. In general, the system 10 includes a central server 12 and a number of user devices 14-1 through 14-N connected via a network 16. The network 16 may be any type of Wide Area Network (WAN) or Local Area Network (LAN), or any combination thereof. In addition, the network 16 may include wired components, wireless components, or both wired and wireless components. Users 18-1 through 18-N are associated with the user devices 14-1 through 14-N. Note that while a single central server 12 is illustrated in FIG. 1, the present invention is not limited thereto. The functionality of the central server 12 may alternatively be distributed among multiple servers.
The central server 12 includes a recommendation forwarding function 20, a highly valued recommendation identification function 22, a new friend discovery function 24, and a database 26. The database 26 may alternatively be a remote database 26 accessed by the central server 12 via a remote connection such as, but not limited to, the network 16. In general, each of the recommendation forwarding function 20, the highly valued recommendation identification function 22, and the new friend discovery function 24 is preferably implemented in software. However, the present invention is not limited thereto. Further, while the recommendation forwarding function 20, the highly valued recommendation identification function 22, and the new friend discovery function 24 are illustrated as separate functional blocks, the present invention is not limited thereto. The functionality provided by the recommendation forwarding function 20, the highly valued recommendation identification function 22, and the new friend discovery function 24 may be combined or further divided in any desired manner.
The operation of each of the recommendation forwarding function 20, the highly valued recommendation identification function 22, and the new friend discovery function 24 is described below in detail. However, in general, the recommendation forwarding function 20 operates to receive recommendations from the user devices 14-1 through 14-N and forward those recommendations to others of the user devices 14-1 through 14-N associated with the desired recipients. For example, the recommendation forwarding function 20 may receive a recommendation for a media item from the user device 14-1. The recommendation preferably includes a media item identifier (ID) for the recommended media item rather than the media item itself. However, the recommendation may alternatively include the media item itself. The recommendation forwarding function 20 then forwards the recommendation to one or more of the user devices 14-2 through 14-N associated with friends of the user 18-1. In an alternative embodiment, the user 18-1 may select one or more friends from his friends list to which the recommendation is to be provided. The selected friends may be identified in the recommendation or provided to the recommendation forwarding function 20 in a separate message from the user device 14-1.
The highly valued recommendation identification function 22 generally operates to identify recommendations that are highly valued to the users 18-1 through 18-N. More specifically, using the user device 14-1 as an example, the highly valued recommendation identification function 22 monitors use of media items by the user device 14-1. In order to monitor the use of the media item, the highly valued recommendation identification function 22 may monitor the number of times that media items are played by the user 18-1 at the user device 14-1, the number of times that each particular media item is recommended by the user 18-1 of the user device 14-1, or both. When a media item is played greater than a play count threshold number of times or when a media item is recommended greater than a recommendation count threshold number of times, the highly valued recommendation identification function 22 determines whether the media item was previously recommended to the user 18-1 of the user device 14-1. If so, the recommendation of the media item is identified as a highly valued recommendation of the user 18-1.
The new friend discovery function 24 generally operates to identify new potential friends for the users 18-1 through 18-N using recommendation paths for highly valued recommendations of the users 18-1 through 18-N. Again, using the user 18-1 as an example, the user 18-1 may initiate a process at the user device 14-1 for requesting a list of potential new friends for the user 18-1. The user device 14-1 then sends a request for a list of new potential friends to the central server 12. In response, the new friend discovery function 24 identifies a recommendation path for each of a number of highly valued recommendations of the user 18-1 identified by the highly valued recommendation identification function 22. A recommendation path includes an originating recommender and zero or more intermediate recommenders through which the recommendation was propagated to the user 18-1. Any of the other users 18-2 through 18-N that are in the recommendation path and are not already friends of the user 18-1 are identified as potential new friends for the user 18-1. A list of the potential new friends is then returned to the user device 14-1, where the user 18-1 may select one or more of the potential new friends to add as new friends. Alternatively, either the central server 12 or the user device 14-1 may operate to programmatically, or automatically, select new friends for the user 18-1 from the list of potential new friends using a technique such as, for example, user profile matching. As used herein, a “friend” of the user 18-1 is another user from the users 18-2 through 18-N identified as such by, for example, a friends list associated with the user 18-1. The friends of the user 18-1 form, or are part of, a social network of the user 18-1 such as, for example, the media recommendation network of the user 18-1.
The database 26 generally stores information enabling the operation of the recommendation forwarding function 20, the highly valued recommendation identification function 22, and the new friend discovery function 24. In this embodiment, the database 26 stores a user table 28, a friends list table 30, a media item table 32, a play count table 34, a recommendation count table 36, a recommendation table 38, a recommendation path table 40, and a highly valued recommendation table 42. Note that while tables are discussed herein as an example, the corresponding information may be stored in any type or number of data structures. The contents of the user table 28, the friends list table 30, the media item table 32, the play count table 34, the recommendation count table 36, the recommendation table 38, the recommendation path table 40, and the highly valued recommendation table 42 are discussed below in detail.
The user devices 14-1 through 14-N may be any type of user device capable of connecting to the network 16 and having media playback capabilities. For example, each of the user devices 14-1 through 14-N may be a personal computer, a portable media player device such as an Apple iPod® or Microsoft Zune® media player having wireless capabilities, a set-top box, a game console, or the like. The user devices 14-1 through 14-N include playback notification and recommendation functions 44-1 through 44-N, media playback functions 46-1 through 46-N, and user media collections 48-1 through 48-N (hereinafter media collections 48-1 through 48-N), respectively. Preferably, the playback notification and recommendation functions 44-1 through 44-N and the media playback functions 46-1 through 46-N are implemented in software. However, the present invention is not limited thereto. The playback notification and recommendation functions 44-1 through 44-N and the media playback functions 46-1 through 46-N may alternatively be implemented in hardware or a combination of hardware and software. Further, while the playback notification and recommendation functions 44-1 through 44-N are illustrated as being separate from the media playback functions 46-1 through 46-N, the present invention is not limited thereto. The playback notification and recommendation functions 44-1 through 44-N may alternatively be implemented as part of the media playback functions 46-1 through 46-N.
Using the user device 14-1 as an example, the playback notification and recommendation function 44-1 operates to provide play notifications to the central server 12 in response to playback of media items by the media playback function 46-1. The play notifications include the media item ID of the media item played and a user ID of the user 18-1. The play notifications are used by the highly valued recommendation identification function 22 to maintain the play count table 34. In addition, in one embodiment, the play notifications operate as recommendations to be provided to the friends of the user 18-1. As such, when such recommendations are desired, the play notifications may be referred to as recommendations and may also be used by the highly valued recommendation identification function 22 to maintain the recommendation count table 36. Thus, in a system where there are only play notifications, the play count and recommendation count values would be the same.
The playback notification and recommendation function 44-1 may also operate to generate recommendations as instructed by the user 18-1. More specifically, whereas playback notifications may be sent to the central server 12 as recommendations in response to playback of the media items at the user device 14-1, the playback notification and recommendation function 44-1 may also enable the user 18-1 to make recommendations at any time. For example, the user 18-1 may select a media item to be recommended and initiate a recommendation to all of his friends or to at least one select friend. In response, the playback notification and recommendation function 44-1 sends a corresponding recommendation to the central server 12. The recommendation includes a user ID of the user 18-1 and a media item ID of the recommended media item. In addition, the recommendation may include the user IDs of the desired recipients for the recommendation. The recommendation forwarding function 20 then forwards the recommendation to the desired recipients.
The playback notification and recommendation function 44-1 may also operate to process recommendations received from the friends of the user 18-1. For example, the playback notification and recommendation function 44-1 may score the recommended media items as a function of user preferences of the user 18-1. Recommended media items scored above a threshold value that are not already in the media collection 48-1 of the user 18-1 may be obtained from a media distribution service such as or similar to, for example, Apple's iTunes® store. The media items in the media collection 48-1 of the user 18-1 may then be prioritized as a function of their scores. For more information regarding an exemplary scoring process, the interested reader is directed to U.S. patent application Ser. No. 11/484,130, which has been incorporated herein by reference in its entirety.
FIG. 2 is a diagram illustrating a recommendation path for a recommendation of a media item, media item A, according to one embodiment of the present invention. As illustrated, user A first recommends media item A to his friends user B, user C, . . . , and user D. User A is referred to herein as an originating recommender. User B then recommends media item A to two of his friends, user E and user F. User E then recommends media item A to his friend, user G. Thus, the recommendation path for media item A to user G is: user A, user B, and user E. User A is referred to as an originating recommender, users B and E are referred to as intermediate recommenders where user E is more specifically referred to as a direct recommender, and user G is referred to as a recipient.
FIG. 3 illustrates an exemplary embodiment of the user table 28. As shown, the user table 28 includes an entry, or record, for each of the users 18-1 through 18-N. Each entry includes a user ID and name of the corresponding user of the users 18-1 through 18-N. FIG. 4 illustrates an exemplary embodiment of the friends list table 30. In this example, the friends list table 30 includes an entry for each of the users 18-1 through 18-N. Each entry includes the user ID of the corresponding user and a list of user IDs of the friends of the corresponding user. FIG. 5 illustrates an exemplary embodiment of the media item table 32. As shown, the media item table 32 includes an entry for each of a number of media items known to the central server 12. Each entry includes a media item ID and a title of the corresponding media item. The media item table 32 may store additional information describing each media item. For example, for a song, the media item table 32 may store a genre of the song, an artist of the song, a title of the song, a date of release of the song, and the like.
FIG. 6 illustrates an exemplary embodiment of the play count table 34. As shown, each entry of the play count table 34 includes a user ID, a media item ID, and a play count value. Thus, in this example, the user having the user ID 0001 has played the media item having the media item ID 1389 ten (10) times. Further, as shown the user table 28 and the media item table 32, the user having the user ID 0001 is the user A, the media item having the media item ID of 1389 is “867-5309/Jenny.” In similar fashion, FIG. 7 illustrates an exemplary embodiment of the recommendation count table 36. As shown, each entry in the recommendation count table 36 includes a user ID, a media item ID, and a recommendation count value. Thus, in this example, the user having the user ID 0001 has recommended the media item having the media item ID 1389 ten (10) times.
FIG. 8 illustrates an exemplary embodiment of the recommendation table 38. As shown, each entry in the recommendation table 38 includes a recommendation ID, a media item ID, and a user ID of an originating user, or recommender, for the recommendation. Notably, when a user recommends a media item that was not previously recommended to that user, the user is identified as an originating user. A recommendation ID is assigned to the recommendation, and a new entry is added to the recommendation table 38. If a user recommends a media item that was previously recommended to that user, a new entry is not created in the recommendation table 38.
FIG. 9 illustrates an exemplary embodiment of the recommendation path table 40. As shown, each entry in the recommendation path table 40 includes a recommendation ID, a user ID of the recommender, and a user ID of the recipient. When a user makes a recommendation, the recommendation is assigned a new recommendation ID if the recommended media item was not previously recommended to the user. If the recommended media item was previously recommended to the user, the recommendation ID for the recommended media item is identified. An entry for each desired recipient of the recommendation is then created in the recommendation path table 40. If there is only one recipient, then only one entry is created in the recommendation path table 40. If there are multiple recipients, then a new entry is created in the recommendation path table 40 for each recipient. In this example, the recommendation having the recommendation ID 732 was provided from the user having the user ID 0001 to three recipients. As such, three entries were created in the recommendation path table 40.
FIG. 10 illustrates an exemplary embodiment of the highly valued recommendation table 42. As shown, each entry in the highly valued recommendation table 42 includes a user ID and a recommendation ID of a highly valued recommendation for that user. In this embodiment, if a user has more than one highly valued recommendation, the highly valued recommendation table 42 has multiple entries for that user.
FIG. 11 is a flow chart illustrating the operation of the recommendation forwarding function 20 of FIG. 1 according to one embodiment of the present invention. First, the recommendation forwarding function 20 receives a recommendation from one of the user devices 14-1 through 14-N (step 100). For this discussion, assume that the recommendation is received from the user device 14-1. Note that the recommendation may be a play notification where each media item played by the user device 14-1 is recommended to the friends of the user 18-1. Alternatively, the recommendation may be a recommendation manually entered by the user 18-1 by, for example, selecting a media item and initiating a recommendation to one or more desired recipients, which may be referred to as a user recommendation. Whether the recommendation is a play notification recommendation or a user recommendation, the recommendation includes the media ID of the recommended media item and the user ID of the user 18-1. In addition, the recommendation may include the user ID of one or more of the other users 18-2 through 18-N to receive the recommendation.
The recommendation forwarding function 20 then determines whether the recommendation is a new recommendation (step 102). In other words, the recommendation forwarding function 20 determines whether the recommended media item was previously recommended to the user 18-1. More specifically, in one embodiment, the recommendation forwarding function 20 performs a double query on the recommendation table 38 and the recommendation path table 40 to determine whether the recommended media item was previously recommended to the user 18-1. For example, the recommendation forwarding function 20 may first query the recommendation table 38 to identify the recommendation IDs of all recommendations for the recommended media item. Note that different recommendations for the recommended media item may have originated from different originating users. Using the identified recommendation IDs and the user ID of the user 18-1, the recommendation forwarding function 20 then queries the recommendation path table 40 to determine whether there is an entry for any one of the identified recommendation IDs where the user 18-1 is identified as the recipient. If so, the media item was previously recommended to the user 18-1 by another user and, as such, the recommendation received from the user 18-1 is not a new recommendation. If there is no entry for any of the identified recommendation IDs identifying the user 18-1 as the recipient, then the recommendation received from the user 18-1 is a new recommendation.
Using FIGS. 8 and 9 as an example, assume that the user ID of the user 18-1 is 0002 and the recommended media item has the media item ID 1389. The recommendation forwarding function 20 may first query the recommendation table 38 using the media item ID 1389 and determine that there are two recommendations for that media item having recommendation IDs 732 and 735. The recommendation forwarding function 20 may then query the recommendation path table 40 using the two recommendation IDs and the user ID of the user 18-1 to determine whether the user 18-1 has previously received either of those recommendations. In this example, the user 18-1, which for this example has the user ID of 0002, previously received the recommendation having the recommendation ID 732 from the user having the user ID 0001. As such, in this particular example, the recommendation received from the user device 14-1 of the user 18-1 is not a new recommendation.
If the recommendation is not a new recommendation, the process proceeds to step 106. If the recommendation is a new recommendation, the recommendation forwarding function 20 assigns a new recommendation ID to the recommendation and creates a new entry in the recommendation table 38 (step 104). The new entry in the recommendation table 38 includes the recommendation ID assigned to the recommendation, the media item ID of the recommended media item, and the user ID of the user 18-1 as the originating user.
Next, whether or not the recommendation is a new recommendation, the recipients for the recommendation are identified (step 106). In one embodiment, the recommendation forwarding function 20 queries the database 26 to obtain the friends list of the user 18-1. The friends of the user 18-1 are identified as the recipients of the recommendation. In another embodiment, the recommendation received from the user device 14-1 may include the user IDs of the desired recipients. Alternatively, the user device 14-1 may provide a list including the user IDs of the desired recipients separately from the recommendation.
Once the recipients are identified, the recommendation forwarding function 20 sends the recommendation to each of the recipients and updates the recommendation path table 40 (step 108). The recommendation path table 40 is updated by creating a new entry for each of the recipients. Each of these entries includes the recommendation ID of the recommendation, the user ID of the user 18-1 as the recommender, and the user ID of the corresponding recipient. Note that if the recommendation is a new recommendation, the recommendation ID for all of the new entries in the recommendation path table 40 is the recommendation ID assigned to the recommendation. Otherwise, the recommendation ID is the same as that for the recommendation for the media item previously received by the user 18-1, which was identified in step 102.
FIGS. 12A, 12B, and 13 illustrate the operation of the highly valued recommendation identification function 22 according to one embodiment of the present invention. FIG. 12A is a flow chart illustrating the receipt and processing of a play notification according to one embodiment of the present invention. First, the play notification is received from one of the user devices 14-1 through 14-N (step 200A). For this example, assume that the play notification is received from the user device 14-1. Next, the highly valued recommendation identification function 22 retrieves or otherwise obtains the record for the media item identified by the play notification from the play count table 34 using the user ID of the user 18-1 and the media item ID of the media item (step 202A). Alternatively, the highly valued recommendation identification function 22 may query the play count table 34 using the user ID of the user 18-1 and the media item ID from the play notification to obtain the corresponding play count value.
A determination is then made as to whether the play count value is greater than a play count threshold value (step 204A). If not, the play count value is incremented by one (1) (step 206A). The play count value is updated in the play count table 34. The highly valued recommendation identification function 22 then determines whether the updated play count value is greater than the play count threshold (step 208A). If so, the process proceeds to FIG. 13 in order to add any recommendation previously received by the user 18-1 for the media item as a highly valued recommendation for the user 18-1. If the updated play count value is not greater than the play count threshold, the process ends.
Returning to step 204A, if the play count value is already greater than the play count threshold, the play count value is incremented by one (1) (step 210A). The play count value is updated in the play count table 34 and the process ends. Note that since the play count value is already greater than the play count threshold, any recommendation for the media item previously received by the user 18-1 has already been identified as a highly valued recommendation.
FIG. 12B illustrates a process similar to that of FIG. 12A performed for received recommendations. Note if play notifications are also used as recommendations or more specifically used to trigger recommendations to the friends of the corresponding user, both the processes of FIG. 12A and FIG. 12B are preferably performed. However, the present invention is not limited thereto. Note that whether or not play notifications are used to trigger recommendations to the friends of the corresponding user may be a user option. Thus, if a user has selected the option to have recommendations sent to his or her friend in response to playback of media items, the playback count value and the recommendation count value may be the same. However, if the user does not select this option or if the user thereafter disables this option, the playback count value and the recommendation count value may be different.
Turning to the flow chart of FIG. 12B, the highly valued recommendation identification function 22 first receives a recommendation from one of the user devices 14-1 through 14-N (step 200B). For this example, assume that the recommendation is received from the user device 14-1. Again, note that the recommendation may be a play notification recommendation where a play notification operates as a recommendation to be provided to the friends of the user 18-1 or a user recommendation initiated by the user 18-1. Next, the highly valued recommendation identification function 22 retrieves or otherwise obtains the record for the media item identified by the recommendation from the recommendation count table 36 using the user ID of the user 18-1 and the media item ID of the media item (step 202B). Alternatively, the highly valued recommendation identification function 22 may query the recommendation count table 36 using the user ID of the user 18-1 and the media item ID from the recommendation to obtain the corresponding recommendation count value.
A determination is then made as to whether the recommendation count value is greater than a recommendation count threshold value (step 204B). If not, the recommendation count value is incremented by one (1) (step 206B). Alternatively, the recommendation count value may be incremented by the number of recipients to receive the recommendation from the user 18-1. The recommendation count value is updated in the recommendation count table 36. The highly valued recommendation identification function 22 then determines whether the updated recommendation count value is greater than the recommendation count threshold (step 208B). If so, the process proceeds to FIG. 13 in order to add any recommendation previously received by the user 18-1 for the media item as a highly valued recommendation for the user 18-1. If the updated recommendation count value is not greater than the recommendation count threshold, the process ends.
Returning to step 204B, if the recommendation count value is already greater than the recommendation count threshold, the recommendation count value is incremented by one (1) (step 210B). Alternatively, the recommendation count value may be incremented by the number of recipients to receive the recommendation from the user 18-1. The recommendation count value is updated in the recommendation count table 36 and the process ends. Note that since the recommendation count threshold is already greater than the recommendation count value, any recommendation for the media item previously received by the user 18-1 has already been identified as a highly valued recommendation.
Turning to FIG. 13, if the updated play count value is greater than the play count threshold (step 208A, FIG. 12A) or if the updated recommendation count value is greater than the recommendation count threshold (step 208B, FIG. 12B), the highly valued recommendation identification function 22 then creates a list of all recommendations of the media item made to the user 18-1 (step 212). More specifically, in one embodiment, the highly valued recommendation identification function 22 performs a double query on the recommendation table 38 and the recommendation path table 40 to identify any recommendations of the media item to the user 18-1. Note that the number of recommendations of the media item to the user 18-1 may be zero if the media item has never been recommended to the user 18-1. For example, the highly valued recommendation identification function 22 may first query the recommendation table 38 with the media item ID of the media item to identify the recommendation ID of each of a number of recommendations for the media item. The highly valued recommendation identification function 22 may then query the recommendation path table 40 with the identified recommendation IDs and the user ID of the user 18-1 as the recipient to identify the recommendation IDs of each recommendation of the media item to the user 18-1.
The first recommendation in the list of recommendations of the media item to the user 18-1 is then identified (step 214). A determination is then made as to whether there is an entry in the highly valued recommendation table 42 for that recommendation using the corresponding recommendation ID (step 216). If so, the process proceeds to step 220. If not, the highly valued recommendation identification function creates an entry for the recommendation for the user 18-1 (step 218). For the embodiment of the highly valued recommendation table 42 shown in FIG. 10, the new entry includes the user ID of the user 18-1 and the recommendation ID. The highly valued recommendation identification function 22 then determines whether there are any more recommendations in the list of recommendations of the media item made to the user 18-1 (step 220). If so, the highly valued recommendation identification function 22 moves to the next recommendation in the list of recommendations of the media item to the user 18-1 (step 222) and returns to step 216. Otherwise, the process ends.
FIGS. 14A and 14B provide a flow chart illustrating the operation of the new friend discovery function 24 of FIG. 1 according to one embodiment of the present invention. First, the new friend discovery function 24 receives a request for a list of potential new friends from one of the user devices 14-1 through 14-N (step 300). For this example, assume that the request is received from the user device 14-1 associated with the user 18-1. In one embodiment, the request includes the user ID of the user 18-1. The new friend discovery function 24 then obtains a list of highly valued recommendations for the user 18-1 from the highly valued recommendation table 42 (step 302).
Moving to FIG. 14B, the new friend discovery function 24 starts at, or identifies, the first highly valued recommendation in the list obtained in step 302 (step 304). The new friend discovery function 24 then obtains a list of all users in the recommendation path for the recommendation from the originating recommender to the user 18-1 (step 306). More specifically, in one embodiment, the new friend discovery function 24 may query the recommendation table 38 with the recommendation ID of the highly valued recommendation to obtain the user ID of the originating user. The new friend discovery function 24 may then query the recommendation path table 40 with the recommendation ID and the user ID of the originating user to identify the recipient of the recommendation from the originating recommender. The new friend discovery function 24 may then query the recommendation path table 40 with the recommendation ID and the user ID of the recipient of the recommendation from the originating recommender to identify the next user in the recommendation path. The process continues until all of the users in the recommendation path from the originating user to the user 18-1 are identified.
The new friend discovery function 24 then starts at, or identifies, the first recommender, or user, in the list of users in the recommendation path (step 308). A determination is made as to whether the recommender is already in the friends list of the user 18-1 (step 310). If so, the process proceeds to step 314. Otherwise, the new friend discovery function 24 identifies the recommender as a potential new friend for the user 18-1 (step 312). The new friend discovery function 24 then determines whether there are any more recommenders in the recommendation path to be processed (step 314). If so, the new friend discovery function 24 goes to the next recommender in the list of users in the recommendation path (step 316) and returns to step 310.
Returning to step 314, once there are no more recommenders in the list of users in the recommendation path, the new friend discovery function 24 determines whether there are more highly valued recommendations for the user 18-1 (step 318). If so, the new friend discovery function 24 moves to the next highly valued recommendation for the user 18-1 (step 320) and returns to step 306. Returning to step 318, once there are no more highly valued recommendations for the user 18-1, the new friend discovery function 24 returns a list of potential new friends to the user device 14-1 of the user 18-1 (step 322), and then the process ends.
At this point, the user 18-1 may select one or more of the potential new friends to add to his or her friends list. Note that the new friend discovery function 24 may provide additional information describing the potential new friends to the user 18-1 at the user device 14-1 automatically or upon request. In an alternative embodiment, either the central server 12 or the user device 14-1 may operate to automatically select or recommend new friends from the list of potential new friends using a technique such as, but not limited to, user profile matching. A user profile may include, for example, biographical information describing the corresponding user, demographic information describing the corresponding user, preferences of the corresponding user such as music preferences, a play history of the corresponding user, or the like. In yet another embodiment, all of the potential new friends may be added as new friends of the user 18-1.
FIG. 15 is a block diagram of the central server 12 of FIG. 1 according to one embodiment of the present invention. In general, the central server 12 includes a control system 50 having associated memory 52. In this embodiment, the recommendation forwarding function 20, the highly valued recommendation identification function 22, and the new friend discovery function 24 are implemented in software and stored in the memory 52. However, the present invention is not limited thereto. The central server 12 may also include one or more digital storage devices 54 such as, for example, one or more hard disk drives or the like. The database 26 may be implemented in the one or more digital storage devices 54. As discussed above, the database 26, or any portion thereof, may alternatively be implemented as a remote database accessible to the central server 12 via a remote connection such as, for example, the network 16. The central server 12 also includes a communication interface 56 communicatively coupling the central server 12 to the network 16 (FIG. 1). Lastly, the central server 12 includes a user interface 58, which may include components such as, for example, a display, one or more user input devices, or the like.
FIG. 16 is a block diagram of the user device 14-1 of FIG. 1 according to one embodiment of the present invention. This discussion is equally applicable to the other user devices 14-2 through 14-N. In general, the user device 14-1 includes a control system 60 having associated memory 62. In this embodiment, the playback notification and recommendation function 44-1 and the media playback function 46-1 are implemented in software and stored in the memory 62. However, the present invention is not limited thereto. The user device 14-1 may also include one or more digital storage devices 64 such as, for example, one or more hard disk drives, one or more memory cards, or the like. In one embodiment, the media collection 48-1 (FIG. 1) may be stored in the digital storage device 64. Alternatively, the media collection 48-1 may be stored in the memory 62. The user device 14-1 also includes a communication interface 66 communicatively coupling the user device 14-1 to the network 16 (FIG. 1). Lastly, the user device 14-1 includes a user interface 68, which may include components such as, for example, a display, one or more user input devices, or the like.
The present invention provides substantial opportunity for variation without departing from the spirit or scope of the present invention. For example, rather than utilizing a central server 12 to forward recommendations among the user devices 14-1 through 14-N, the recommendations may be exchanged between the user devices 14-1 through 14-N directly in a direct peer-to-peer (P2P) fashion. As another example, the functionality of the highly valued recommendation identification function 22 and/or the functionality of the new friend discovery function 24 may alternatively be implemented on one of the user devices 14-1 through 14-N or distributed among two or more of the user devices 14-1 through 14-N. For example, each of the user devices 14-1 through 14-N may have its own highly valued recommendation identification function 22 and/or new friend discovery function 24.
Those skilled in the art will recognize improvements and modifications to the preferred embodiments of the present invention. All such improvements and modifications are considered within the scope of the concepts disclosed herein and the claims that follow.

## Claims

1. A method for operating a server comprising:
receiving a notification of playback of a media item from a device wherein the playback of the media item is based on a media item recommendation received by the device;
determining whether the playback count of the media item is greater than a threshold;
designating the media item recommendation as a highly valued recommendation if the playback count of the media item is greater than the threshold; and
discovering a second user account in the social network using a recommendation path for a highly valued recommendation by:
identifying the recommendation path for the highly valued recommendation of the media item recommendation, where in the recommendation path comprises an originating user account in the social network and at least one intermediate user account in the social network through which the recommendation was propagated to the first user account;
determining that one of the originating user account and the at least one intermediate user account is not already linked to the first user account; and
identifying the one of the originating user account and the at least one intermediate user account that is not already linked to the first user account as the second user account.

2. A system comprising components including:
a server comprising:
a server network communication interface for communicating over a network with a plurality of devices;
at least one server processor; and
server software containing software executable by the at least one server processor whereby the server is operative to
receive a notification of the playback of a media item from a device of the plurality of devices, wherein the playback of the media item is based on a media item recommendation received by the device of the plurality of the devices for a first user account;
determine whether a playback count of the media item is greater than a threshold;
designate the media item recommendation as a highly valued recommendation if the playback count of the media item is greater than the threshold; and
discover a second user account in the social network using a recommendation path for a highly valued recommendation by:
identifying the recommendation path for the highly valued recommendation of the media item recommendation, where in the recommendation path comprises an originating user account in the social network and at least one intermediate user account in the social network through which the recommendation was propagated to the first user account;
determining that one of the originating user account and the at least one intermediate user account is not already linked to the first user account; and
identifying the one of the originating user account and the at least one intermediate user account that is not already linked to the first user account as the second user account;

and


the device of the plurality of devices comprising:
a device network communication interface for communicating over the network with the server;
at least one processor; and
memory containing software executable by the at least one processor whereby the device is operative to:
receive the media item recommendation for the media item;
playback the media item; and
send a notification of the playback of the media item to the server.

3. The system of claim 2, wherein the first user account is associated with a social network comprising the first user account and a third user account and wherein the first user account and the third user account are linked by at least one relationship.

4. The system of claim 3, wherein the at least one relationship is a friend relationship.

5. The system of claim 3, wherein the social network is a media recommendation network wherein the first user account sends media item recommendations to the third user account and the third user account sends media item recommendations to the first user account.

6. The system of claim 2 wherein to discover the second user account, the server is further operative to:
provide information identifying the third user account to the first user account at the device; and
enable the linking of the first and third user accounts by at least one relationship.

7. The system of claim 2 wherein to identify the originating user account and the at least one intermediate user account that is not already linked to the first user account as the potential second user account, the server is operable to compare the user profile of the first user to the user profile of at least the originating user account and intermediate user accounts.

8. The system of claim 2 wherein the server is further operative to increment the playback count in response to receiving the notification.

9. A method of operating a server comprising:
receiving, from a device, a notification of the receipt of a media item recommendation for a media item by the device;
determining whether the recommendation count of the media item is greater than a threshold;
designating the media item recommendation as a highly valued recommendation if the recommendation count of the media item is greater than the threshold; and
discovering a second user account in the social network using a recommendation path for a highly valued recommendation by:
identifying the recommendation path for the highly valued recommendation of the media item recommendation, where in the recommendation path comprises an originating user account in the social network and at least one intermediate user account in the social network through which the recommendation was propagated to the first user account;
determining that one of the originating user account and the at least one intermediate user account is not already linked to the first user account; and
identifying the one of the originating user account and the at least one intermediate user account that is not already linked to the first user account as the second user account.

10. A system comprising components including:
a server comprising:
a server network communication interface;
at least one server processor in communication with the network communication interface; and
server memory containing software executable by the at least one server processor whereby the server is operative to:
receive, from a device, a notification of the receipt of a media item recommendation for a media item by the device for a first user account;
determine whether the recommendation count of the media item is greater than a threshold;
designate the media item recommendation as a highly valued recommendation if the recommendation count of the media item is greater than the threshold;
discover a second user account in the social network using a recommendation path for a highly valued recommendation by:
identifying the recommendation path for the highly valued recommendation of the media item recommendation, where in the recommendation path comprises an originating user account in the social network and at least one intermediate user account in the social network through which the recommendation was propagated to the first user account;
determining that one of the originating user account and the at least one intermediate user account is not already linked to the first user account; and
identifying the one of the originating user account and the at least one intermediate user account that is not already linked to the first user account as the second user account;

and


the device comprising:
a network communication interface adapted to establish communication with the hardware server;
at least one processor; and
memory containing software executable by the at least one processor whereby the device is operative to:
receive the media item recommendation for the media item; and
send the notification of the receipt of the media item recommendation to the server.

11. The system of claim 10, wherein the first user account is associated with a social network comprising the first user account and a third user account and wherein the first user account and the third user account are linked by at least one relationship.

12. The system of claim 11, wherein the at least one relationship is a friend relationship.

13. The system of claim 11, wherein the social network is a media recommendation network wherein the first user account sends media item recommendations to the third user account and the third user account sends media item recommendations to the first user account.

14. The system of claim 10 wherein to discover the second user account, the server is further operable to:
provide information identifying the third user account to the first user account at the device; and
enable the linking of the first and third user accounts by at least one relationship.

15. The system of claim 10 wherein to identify the originating user account and the at least one intermediate user account that is not already linked to the first user account as the potential second user account, the server is operable to compare the user profile of the first user to the user profile of at least the originating user account and the at least one intermediate user account.

16. The system of claim 10 wherein the server is further operative to increment the recommendation count in response to receiving the notification.