Patent Publication Number: US-2015074090-A1

Title: Historical Media Recommendation Service

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is a continuation of U.S. patent application Ser. No. 11/471,797, which was filed Jun. 21, 2006, the disclosure of which is hereby incorporated by reference in its entirety. 
    
    
     BACKGROUND 
     The present disclosure relates to a media recommendation service for recommending media content to a user. 
     Recent years have seen a shift in music listening habits from physical media such as Compact Discs (COs) and cassettes to digital media stored on the user&#39;s playback device such as Moving Pictures Experts Group Layer 3 (MP3) files. This transition has made music much more accessible to listeners worldwide. However, the increased accessibility of music has only heightened a long-standing problem for the music industry, which is namely the issue of linking audiophiles with new music that matches their listening preferences. 
     Many companies, technologies, and approaches have emerged to address this issue of music recommendation. Some companies have taken an analytical approach. They review various attributes of a song, such as melody, harmony, lyrics, orchestration, vocal character, and the like, and assign a rating to each attribute. The ratings for each attribute are then assembled to create a holistic classification for the song that is then used by a recommendation engine. The recommendation engine typically requires that the user first identify a song that he or she likes. The recommendation engine then suggests other songs with similar attributions. Companies using this type of approach include Pandora (http://www.pandora.com), Sound Flavor (http://www.soundflavor.com), MusiciP (http://www.musicip.com), and MongoMusic (purchased by Microsoft in 2000). 
     Other companies take a communal approach. They make recommendations based on the collective wisdom of a group of users with similar musical tastes. These solutions first profile the listening habits of a particular user and then search similar profiles of other users to determine recommendations. Profiles are generally created in a variety of ways such as looking at a user&#39;s complete collection, the playcounts of their songs, their favorite playlists, and the like. Companies using this technology include Last.fm (http://www.last.fm), Music Strands http://www.musicstrands.com). WebJay (http://www.webjay.org), Mercora (http://www.mercora.com), betterPropaganda (http://www.betterpropaganda.com), Loomia (http://www.loomia.com), eMusic (http://www.emusic.com), musicmatch (http://www.mmguide.musicmatch.com), genielab (http://genielab.com/), upto11 (http://www.upto11.net/), Napster (http://www.napster.com), and iTunes (http://www.itunes.com) with its celebrity playlists. 
     The problem with the prior art is that it fails to incorporate a pop culture historical context to music recommendation. For many users, musical preferences are heavily influenced by the type and nature of music that was popular at the time they became interested in music, as witnessed by the popularity of oldies radio stations (i.e., stations playing music from the 1950s) and classic rock stations (i.e., stations playing music from the 1970s and 1980s). Further, their musical tastes are also influenced by the type and nature of other media (such as movies and television) that were popular at particular points in time. For instance, movies such as Saturday Night Fever, Grease, Chariots of Fire, Top Gun, Footloose, Flashdance, The Breakfast Club, and Pretty Woman and television shows such as MASH, Cheers, Happy Days, Fame, and Moonlighting all had soundtracks that enjoyed great popularity in their respective time periods. 
     For example, a user may like a particular artist from the early 1980s, such as Michael Jackson, but they might also enjoy songs from the television show Fame and the film Top Gun. However, recommendation systems based on music similarity would fail to make these suggestions to the user. As for communal based recommendation systems, they may perform marginally better in this case. More specifically, since communal based recommendation systems rely primarily on musical relationships set forth by particular users, they will inherently reflect some degree of pop culture association in their music recommendations. In other words, some people will remember artists, songs, and movies that were popular at the same time as another given artist or song or movie, and their collections and profile will reflect these associations. However, memory can be unreliable, and it is dubious that one user or collection of users can make all of the associations. 
     Therefore, there is a need for a media recommendation system that provides recommendations based on a historical context. 
     SUMMARY 
     The present invention provides a media recommendation system for recommending media content that is historically related to seed media content. The recommended media content may be songs, television programs, movies, or a combination thereof, and the seed media content may be a song, television program, or movie. 
     In one embodiment, the media recommendation service provides music recommendations to the user based on a seed song. In general, information identifying the seed media content (e.g., a song) is provided to a server. The server obtains historical information for the seed media content such as the release date of the seed media content, the date the seed media content first appeared on the music charts, the duration of the seed media content on the music charts, the date the seed media content obtained its peak position on the music charts, and the like. Based on the historical information, the server determines a time window for the seed media content. The server then queries a media content database (e.g., a music database) based on the time window to identify historically related songs or albums associated with media content historically related to the seed media content. In an embodiment the server queries a music database to determine songs that were popular during the same time window as the seed media content. The server in an embodiment may also query a television database and a movie database to identify songs or albums associated with television programs or movies that were popular during the same time window as the seed media content. In an embodiment, a list of the historically related songs (or albums) are received by the server. In an embodiment, historically related songs (or albums) obtained from the various databases are aggregated and the list of historically related songs (or albums) are created based on the aggregation. In a similar fashion, other types of historically related media content such as television programs and movies may be determined based on the seed media content. 
     In another embodiment, the media recommendation service provided by the server may recommend music, television programs, movies, or any combination thereof based on a seed song, seed album, seed television program, or seed movie. 
     Those skilled in the art will appreciate the scope of the present Invention and realize additional aspects thereof after reading the following detailed description in association with the accompanying drawings. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWING FIGURES 
       The accompanying drawings 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 media recommendation system operating to recommend media content historically related to seed media content according to one embodiment of the present invention; 
         FIG. 2  illustrates the operation of the system of  FIG. 1  to recommend songs historically related to a seed song according to one embodiment of the present invention; 
         FIG. 3  is an exemplary block diagram of the central server of  FIGS. 1 and 2  according to one embodiment of the present invention; and 
         FIG. 4  is an exemplary block diagram of the user device of  FIGS. 1 and 2  according to one embodiment of the present invention. 
     
    
    
     DETAILED DESCRIPTION 
     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 media recommendation system  10  according to one embodiment of the present invention. While the following discussion focuses on recommending songs to a user based on a seed song, the present invention is not limited thereto. The system  10  may operate to recommend songs, albums, television programs, movies, or any combination thereof based on a seed song, album, television program, or movie. In general, the system  10  includes a central server  12  and a user device  14  interconnected by a network  16 , which may be a distributed public network such as the Internet. Note that while only one user device  14  is illustrated for clarity, the central server  12  may provide media recommendation services to any number of user devices. Further, while the central server  12  is illustrated as a single server, the central server  12  may alternatively be implemented as a number of distributed servers. 
     The central server  12  includes a recommendation engine  18 . The recommendation engine  18  may be implemented in software, hardware, or a combination of software and hardware. The recommendation engine  18  includes a music engine  20 , a television engine  22 , and a movie engine  24 . As discussed below, the music engine  20  communicates with recommendation service  26  to query a music database  28  to obtain historical information for a seed song, where in this embodiment the recommendation service  26  and the music database  28  are hosted by a music server  30 . The recommendation engine  18  then determines a time window for the seed song based on the historical information, and the music engine  20  sends a request to the recommendation service  26  such that the music database  28  is queried to identify other songs historically related to the seed song. The television engine  22  communicates with a recommendation service  32  to query a television database  34  based on the time window of the seed song to identify songs associated with television programs that are historically related to the seed song. In this embodiment, the recommendation service  32  and the television database  34  are hosted by a television server  36 . In a similar fashion, the movie engine  24  operates to communicate with a recommendation service  38  to query a movie database  40  based on the time window of the seed song to identify songs associated with movies that are historically related to the seed song. In this embodiment, the recommendation service  38  and the movie database  40  are hosted by a movie server  42 . 
     While the databases  28 ,  34 , and  40  are illustrated as three separate databases hosted by three separate servers, the present invention is not limited thereto. For example, the television and movie databases  34  and  40  may be hosted by a single server and may be implemented as a single database. Further, each of the databases  28 ,  34 , and  40  may be implemented as a single database or as a number of distributed databases. Existing databases that may be used or modified to be used by the system  10  include, but are not limited to, the Gracenote music database available at http://www.gracenote.com, the Billboard music charts available at http://www.billboard.biz, the Classic TV database available at http://www.classic-tv.com, and the IMDB movie and television database available at http://www.imdb.com. 
     The user device  14  may be, for example, a personal computer, a laptop computer, a Personal Digital Assistant (PDA), mobile telephone, or the like having access to the network  16 . In this embodiment, the user device  14  includes a media player  44 , a recommendation queue  46 , a media collection  48 , and media metadata  50 . The media player  44  may be implemented in software, hardware, or a combination of hardware and software and operates to play media content such as, for example, songs and videos. As discussed below, in one embodiment, the recommendation services of the central server  12  are invoked when a song is played by the media player  44 . The recommendation queue  46  may be implemented as part of the media player  44  or as part of an application associated with the central server  12  and operates to store recommendations, such as a list of recommended songs, provided by the central server  12 . The recommendations may be presented to the user via the media player  44  or, alternatively, a custom application. 
     In one embodiment, the media collection  48  includes a number of songs forming the user&#39;s media, or music, collection. The media collection  48  may additionally include a number of television programs such as episodes of “Lost,” a number of movies, or both television programs and movies. The media metadata  50  is information describing the content of the media collection  48 . Note that while the media metadata  50  is illustrated as being separate from the media collection  48 , the media metadata  50  may alternatively be stored as part of the media files forming the media collection  48 . As an example, for a song, the media metadata  50  may include 103 tags, which include information such as, but not limited to, the title of the song, artist of the song, album from which the song came, date of release, lyrics, and the like. Further, the metadata for the song may be included within the digital song file. Alternatively, the metadata for the song may be stored in an application file associated with, for example, the media player  44 . 
       FIG. 2  illustrates the operation of the system  10  of  FIG. 1  according to one embodiment of the present invention. Again, while  FIG. 2  focuses on the situation where the central server  12  provides recommended songs based on a seed song, the present invention is not limited thereto. First, seed song identification information is provided from the user device  14  to the central server  12  (step  100 ). The seed song identification information may be provided based on a manual request by the user of the user device  14  for recommendations based on a particular seed song, or may be automatically provided when, for example, the seed song is played by the media player  44  of the user device  14 . The seed song identification information includes the metadata for that song, which may include, for example, title, artist, album, release date, lyrics, and the like. The seed song identification information may additionally or alternatively include one or more samples of the seed song or one or more fingerprints for the seed song generated by the user device  14 . The samples or fingerprints for the seed song may be used by the central server  12  to identify the seed song or to validate that the metadata provided by the user device  14  for the seed song is correct. For further details of identifying a song based on samples of the song or fingerprints for the song, the interested reader is directed to commonly owned and assigned U.S. patent application Ser. No. 11/392,051, entitled SYSTEM AND METHOD FOR ARCHIVING A MEDIA COLLECTION, filed Mar. 29, 2006, which is hereby incorporated herein by reference in its entirety. 
     The central server  12  then identifies the song based on the seed song identification information (step  102 ). Once identified, the central server  12 , and more specifically the music engine  20  of the recommendation engine  18 , requests historical information for the seed song from the music server  30  (step  104 ), and the music server  30  obtains the requested historical information from the music database  28  and returns the historical information to the central server  12  (step  106 ). The historical information may include information identifying any and all albums on which the seed song was released, a release date for the seed song, the release date for each album on which the seed song was released, a date that the seed song first appeared on the music charts, a duration or range of dates that the seed song remained on the music charts, a date that the seed song first went off of the music charts, the beginning position of the seed song on the music charts, the highest position the seed song obtained on the music charts, the position of the seed song on the music charts immediately before leaving the music charts, and the like. All or a portion of the historical data may be included within the metadata for the song provided from the user device  14 . If so, the recommendation engine  18  may obtain the historical information from the metadata rather than the music server  30 . Exemplary music charts are the Billboard music charts, the Contemporary Hit Radio music charts, the American Bandstand music charts, the American Top 40 music charts, the VH1 music charts, the MTV music charts, the Hit Parade music charts, the UK Singles Charts, and EuroChart. However, other music charts may additionally or alternatively be used. Note that media popularly charts may be used herein to generally refer to music charts, television charts, and movie charts providing the relative popularity songs, music albums, television programs, and movies. 
     Once the historical information is obtained, the recommendation engine  18  identifies a time window for the seed song (step  108 ). While this discussion focuses on a single time window, multiple time windows for the seed song may be identified and used by the recommendation engine  18 . Generally, the time window for the song is a time period during which the seed song was popular in society. More specifically, as a first example, the time window may be a predetermined time period around the initial release date of the seed song. Thus, if the seed song was released in June of 1983, the time window may be identified as, for example, the two month period of Jun. 1, 1983 to Jul. 31, 1983. As a second example, the time window may correspond to the time period that the seed song was on the music charts. Thus, if the seed song was on the Billboard music charts from Mar.15, 1985 to Jun. 1, 1985, the time window may be, for example, Mar. 15, 1985 to Jun. 1, 1985 or Mar. 1, 1985 to Jun. 30, 1985. As a third example, the time window may correspond to the time that the seed song first occupied the music charts, the time that the seed song reached its peak position on the music charts, the time that the seed song exited the music charts, a time that the seed song was re-released, or the like. 
     After identifying the time window for the seed song, the music engine  20  of the central server  12  sends a request to the music server  30 , and more specifically the recommendation service  26 , for other songs historically related to the seed song (step  110 ). The request includes the time window for the seed song. In response, the recommendation service  26  queries the music database  28  based on the time window for the seed song and sends a response including a list of songs historically related to the seed song to the central server  12  (step  112 ). The songs returned by the recommendation service  26  of the music server  30  may include, for example, songs released during the time window for the seed song, songs that were on one or more music charts during the time window for the seed song, songs by artists that had a song on one or more music charts during the time window for the seed song, songs by artists who released a song or album during the time window for the seed song, or the like. 
     The number of songs returned by the music server  30  may be reduced by using additional criteria. As a first example, either the recommendation engine  18  or the recommendation service  26  may randomly select songs from one or more music charts during the time window for the seed song rather than selecting all songs from the music charts during the time window for the seed song. As a second example, either the recommendation engine  18  or the recommendation service  26  may select only those songs from one or more music charts during the time window for the seed song that occupied a position in the charts above a threshold such as the 10th position on the charts. As a third example, songs returned by the music server  30  may be filtered based on criteria such as one or more music attributes of the seed song or based on communal profiles for the seed song. 
     Next, the television engine  22  of the central server  12  sends a request to the television server  36 , and more specifically the recommendation service  32 , for songs associated with television programs historically related to the seed song (step  114 ). The request includes the time window for the seed song. In response, the television server  36  returns a list of songs associated with television programs historically related to the seed song (step  116 ). More specifically, using the time window for the seed song, the recommendation service  32  queries the television database  34  to identify television programs that were popular or originally released during the time window for the seed song. The recommendation service  32  then identifies any songs, such as soundtracks, associated with the identified television programs. For example, television shows such as “MASH,” “Cheers,” “Happy Days,” “Fame,” and “Moonlighting” had soundtracks that enjoyed great popularity during their respective time periods. Note that once the recommendation service  32  determines that a television program has an associated soundtrack, the recommendation service  32  may query the music server  30  to identify the songs on the soundtrack if the television database  34  does not include this information. Still further, the recommendation service  32  may determine whether the directors, producers, and actors associated with the identified television programs are also associated with other television shows. If so, the recommendation service  32  may further identify songs for those television shows. 
     Next, the movie engine  24  of the central server  12  sends a request to the movie server  42 , and more specifically the recommendation service  38 , for songs associated with movies historically related to the seed song (step  118 ). The request includes the time window for the seed song. In response, the movie server  42  returns a list of songs associated with movies historically related to the seed song (step  120 ). More specifically, using the time window for the seed song, the recommendation service  38  queries the movie database  40  to identify movies that were popular or originally released during the time window for the seed song. The recommendation service  38  then identifies any songs, such as soundtracks, associated with the identified movies. Note that once the recommendation service  38  determines that a movie has an associated soundtrack, the recommendation service  38  may query the music server  30  to identify the songs on the soundtrack if the movie database  40  does not include this information. Still further, the recommendation service  38  may determine whether the directors, producers, and actors associated with the identified movies are also associated with other movies. If so, the recommendation service  38  may further identify songs for those movies. 
     The number of songs returned by the music, television, and movie servers  30 ,  36 , and  42  may be reduced by filtering the songs either at the recommendation engine  18  or the respective recommendation services  26 ,  32 , and  38  based on music attributes, where only songs having music attributes similar to those of the seed song will be recommended to the user. In another embodiment, the songs returned by the servers  30 ,  36 , and  42  may be filtered at the user device  14 . The music attributes may include, for example, but are not limited to genre, melody, tone, beats-per-minute, and the like. The number of songs may additionally or alternatively be reduced by using communal user music profiles to identify songs that are similar to the seed song. More specifically, the system  10 , and more specifically the central server  12 , may maintain profiles for each user in the system  10 , where the profiles may include information such as, but not limited to, information identifying the songs in the user&#39;s music collection, the playcounts of the songs in the user&#39;s music collection, favorite playlists, and the like. Using the profiles of other users having the seed song in their music collections or on their favorite playlists, the recommendation engine  18 , or alternatively the user device  14 , may filter the songs from the servers  30 ,  36 , and  42  based on the profiles of those users. For example, songs from the servers  30 ,  36 , and  42  that do not appear in the music collection of other users who have the seed song in their music collection or on their favorite playlists may be filtered, where the filtered songs are not recommended to the user at the user device  14 . 
     At this point, the central server  12 , and more specifically the recommendation engine  18 , generates a list of recommended songs based on the responses from the servers  30 ,  36 , and  42  (step  122 ). The list of recommended songs may be in any desired order. In one embodiment, the list first includes songs from the music server  30 , then songs from the television server  36 , and then songs from the movie server  42 . In another embodiment, the songs from the servers  30 ,  36 , and  42  are randomly sorted to provide the list of recommended songs. In yet another embodiment, the songs from the servers  30 ,  36 , and  42  may be assigned a score or priority based on a comparison of the music attributes of the songs with the music attributes of the seed song. Then, the songs may be sorted by their scores or priorities to provide the list of recommended songs. 
     The list of recommended songs is then provided to the user device  14  (step  124 ). The list of recommended songs may include information identifying the recommended songs, Uniform Resource Locators (URLs) enabling download or streaming of the recommended songs from a subscription based music service, URLs enabling purchase and download of the recommended songs from an a-commerce site, URLs enabling playback of samples of the recommended songs, samples of the recommended songs, or the like, or any combination thereof. Once at the user device  14 , the recommended songs may be presented to the user of the user device  14  (step  126 ). For example, the recommended songs may be presented as a list including the information identifying the songs with URLs enabling playback of samples and, if desired, purchase of the recommended songs. The recommended songs may alternatively be presented to the user at the user device  14  as a playlist for the media player  44 . This may be particularly beneficial where the user has access to a subscription based music service. 
       FIG. 3  is a block diagram of an exemplary embodiment of the central server  12 . In general, the central server  12  includes a control system  52  having associated memory  54 . In this example, the recommendation engine  18  is at least partially implemented in software. As such, the recommendation engine  18  is stored in the memory  54  and operates to instruct the control system  52  to operate according to the present invention. The central server  12  also includes a communication interface  56  communicatively coupling the central server  12  to the network  16  ( FIG. 1 ). In addition, the central server  12  may include a user interface  58 , which may include components such as, for example, a display, keyboard or other input device, and the like. 
       FIG. 4  is a block diagram of an exemplary embodiment of the user device  14 . In general, the user device  14  includes a control system  60  having associated memory  62 . In this example, the media player  44  is implemented at least partially in software and is stored in memory  62 . The recommendation queue  46  may also be implemented in the memory  62 . The user device  14  may also include a storage unit  64  which may be, for example, a hard-disc drive or the like. The storage unit  64  operates to store the media collection  48  and the media metadata  50 . The user device  14  also includes a communication interface  66  communicatively coupling the user device  14  to the network  16  ( FIG. 1 ). The communication interface  66  may provide, for example, a wired or wireless connection to the network  16 . The user device  14  may also include a user interface  68 , which may include components such as, for example, a display, keyboard or other input device, and the like. 
     The present invention provides substantial opportunity for variation without departing from the spirit or scope of the present invention. Numerous variations will be apparent to one of ordinary skill in the art upon reading this disclosure. For example, a single server may host all three of the databases  28 ,  34 , and  40 . As another example, the databases  28 ,  34 , and  40  may be stored locally at the central server  12 . As yet another example, while the time window for the seed song provided to each of the servers  30 ,  36 , and  42  is the same in the discussion above, the present invention is not limited thereto. The narrowness or breadth of the time window for each of the servers  30 ,  36 , and  42  may be determined based on, for example, a priority assigned to each of the servers  30 ,  36 , and  42 . For instance, the music server  30  may have a higher priority than the television and music servers  36  and  42 . As such, the time window for the request sent to the music server  30  may be broader than the time windows for the requests sent to the television and music servers  36  and  42 . 
     In addition, while the discussion above focuses on recommending songs historically related to a seed song, the present invention is not limited thereto. More specifically, the central server  12  may recommend songs, music albums, television programs, movies, or any combination thereof based on a seed song, seed television program, or seed movie. For example, based on a seed song, the recommendation engine  18  of the central server  12  may query the music server  30  to identify songs historically related to the seed song, query the television server  36  to identify television programs historically related to the seed song and songs associated with the historically related television programs, and query the movie server  42  to identify movies historically related to the seed song and songs associated with the historically related movies. The central server  12  may then recommend songs, television programs, and movies historically related to the seed song. 
     In a similar fashion, if a seed television program is used, the central server  12  may query the television server  36  to obtain historical information for the seed television program, and then determine a time window for the seed television program. The recommendation engine  18  of the central server  12  may query the music server  30  to identify songs historically related to the seed television program, query the television server  36  to identify television programs historically related to the seed television program and songs associated with the historically related television programs, and query the movie server  42  to identify movies historically related to the seed television program and songs associated with the historically related movies. The central server  12  may then recommend songs, television programs, and movies historically related to the seed television program. 
     If a seed movie is used, the central server  12  may query the movie server  42  to obtain historical information for the seed movie, and then determine a time window for the seed movie. The recommendation engine  18  of the central server  12  may query the music server  30  to identify songs historically related to the seed movie, query the television server  36  to identify television programs historically related to the seed movie and songs associated with the historically related television programs, and query the movie server  42  to identify movies historically related to the seed movie and songs associated with the historically related movies. The central server  12  may then recommend songs, television programs, and movies historically related to the seed movie. 
     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.