The present disclosure relates generally to providing recommendation for content users, and, more specifically, to a method and system for obtaining feedback for a content recommendation system.
The statements in this section merely provide background information related to the present disclosure and may not constitute prior art.
Television programming content providers are increasingly providing a wide variety of content to consumers. Available content is typically displayed to the user using a grid guide. The grid guide typically includes channels and time slots as well as programming information for each information time slot. The programming information may include the content title and other identifiers such as actor information and the like.
Because the number of channels is so great, all of the channels cannot be simultaneously displayed on the screen display. A user can scroll up and down and sideways to see various portions of the program guide for different times and channels. Because of the large number of content titles, time slots and channels, it is often difficult to decide on a program selection to view.
The present disclosure provides a system and method for generating recommendations based upon viewing data from various users using a recommendation algorithm, obtaining user feedback on those recommendations, modifying or replacing the recommendation algorithm accordingly.
In one aspect of the disclosure, a method includes communicating user device data through a network to a simulation engine, communicating a recommendation request from the user device to the simulation engine, generating a content recommendation from a recommendation engine of the simulation engine based on the user device data and an algorithm in response to the recommendation request, communicating the content recommendation to the user device through the network, rating the content recommendation at the user device to form recommendation rating, communicating the recommendation rating to the simulation engine, changing the algorithm in response to the recommendation rating.
In a further aspect of the disclosure, a simulation engine in communication with a plurality of user devices includes an interface receiving user device data and a recommendation request from at least one of the plurality of user devices. The simulation engine also includes a memory storing the user device data therein. The simulation engine also includes a recommendation engine that generates a content recommendation based on the user device data and an algorithm in response to the recommendation request. The interface communicates the content recommendation to the user device. The recommendation engine receives a recommendation rating from at least one of the plurality of user devices and changes the algorithm in response to the recommendation rating.
Further areas of applicability will become apparent from the description provided herein. It should be understood that the description and specific examples are intended for purposes of illustration only and are not intended to limit the scope of the present disclosure.
The drawings described herein are for illustration purposes only and are not intended to limit the scope of the present disclosure in any way.
The following description is merely exemplary in nature and is not intended to limit the present disclosure, application, or uses. It should be understood that throughout the drawings, corresponding reference numerals indicate like or corresponding parts and features.
As used herein, the term module, circuit and/or device refers to an Application Specific Integrated Circuit (ASIC), an electronic circuit, a processor (shared, dedicated, or group) and memory that execute one or more software or firmware programs, a combinational logic circuit, and/or other suitable components that provide the described functionality. As used herein, the phrase at least one of A, B, and C should be construed to mean a logical (A or B or C), using a non-exclusive logical OR. It should be understood that steps within a method may be executed in different order without altering the principles of the present disclosure.
While the following disclosure is made with respect to example DIRECTV® broadcast services and systems, it should be understood that many other delivery systems are readily applicable to disclosed systems and methods. Such systems include wireless terrestrial distribution systems, wired or cable distribution systems, cable television distribution systems, Ultra High Frequency (UHF)/Very High Frequency (VHF) radio frequency systems or other terrestrial broadcast systems (e.g., Multi-channel Multi-point Distribution System (MMDS), Local Multi-point Distribution System (LMDS), etc.), Internet-based distribution systems, cellular distribution systems, power-line broadcast systems, any point-to-point and/or multicast Internet Protocol (IP) delivery network, and fiber optic networks. Further, the different functions collectively allocated among a service provider and integrated receiver/decoders (IRDs) as described below can be reallocated as desired without departing from the intended scope of the present patent.
Further, while the following disclosure is made with respect to the delivery of content (e.g., television (TV), movies, games, music videos, etc.), it should be understood that the systems and methods disclosed herein could also be used for delivery of any media content type, for example, audio, music, data files, web pages, games, etc. Additionally, throughout this disclosure reference is made to data, information, programs, movies, assets, video data, etc., however, it will be readily apparent to persons of ordinary skill in the art that these terms are substantially equivalent in reference to the example systems and/or methods disclosed herein. As used herein, the term title or program will be used to refer to, for example, a media content type such as a movie itself and not the name of the movie.
Referring now to
The head end 12 may communicate various content 30 or program guide data 32 through the satellite 18. The set top box 22 may receive the content 30 and program guide data 32 for use therein. A plurality of set top boxes 22 may be in communication with the head end 12 through a network 36. The network 36 may be one type of network or multiple types of networks. The network 36 may, for example, be a public switch to telephone network, the internet, a mobile telephone network or other type of network.
A mobile device 40 may also be incorporated in the system 10. The mobile device 40 may also receive downlink signals from the satellite 18. The mobile device may also be in communication through a wireless network to the head end 12.
A simulation engine 50 for generating and applying recommendation algorithms is also provided within the system 10. The simulation engine 50 may receive data from the set top boxes 22 and mobile device 40. The simulation engine 50 may, for example, may be a web-based system. The simulation engine 50 communicates content recommendations to the set top box 22 based on an algorithm and user device data. Likewise, the feedback as to the content recommendations may be provided from the set top boxes 22 to the simulation engine 50 through the network 36. The content recommendations may be a list of content such as regularly watched content or related content that is currently available or upcoming. Interaction of the various components of the system through the network is set forth below. It should be noted that although the simulation engine 50 is illustrated as a separate component, the simulation engine 50 may also be incorporated into the head end 12 or another system.
Referring now to
A controller 114 may be a general processor such as a microprocessor that cooperates with control software. In the present example the control software is not changed to perform searching since data is communicated to a central location such as the simulation engine as described below. The controller 114 may be used to coordinate and control the various functions of the user device 22. These functions may include a tuner 120, a demodulator 122, a decoder 124 such as a forward error correction decoder and any buffer or other functions.
The tuner 120 receives the signal or data from the individual channel. The tuner may receive television programming content, program guide data or other types of data. The demodulator 122 demodulates the signal or data to form a demodulated signal or data. The decoder 124 decodes the demodulated signal to form decoded data or a decoded signal. The controller 114 may be similar to that found in current DIRECTV® set top boxes which uses a chip-based multifunctional controller.
The controller 114 is in communication with a memory 130. The memory 130 is illustrated as a single box with multiple boxes therein. The memory 130 may actually be a plurality of different types of memory including the hard drive, a flash drive and various other types of memory. The different boxes represented in the memory 130 may be other types of memory or sections of different types of memory. The memory 130 may be non-volatile memory or volatile memory.
The memory 130 may include storage for various operational data collected during operation of the set top box 22. One type of data storage includes the viewer tracking log 132. The viewer tracking log (VTL) 132 may have data about details of programs that have been watched or played back, including what time that they were watched or played back. The VTL data 132 may also include how long they were watched and program details. Recording deletion data within a digital video recorder may also be included in the VTL memory 132. Recording deletion data corresponds to previous recording deleted from the digital video recorder.
Another type of memory 130 is the settings and the list information (SLI) memory 134. The SLI memory 134 may store various types of data including set top box playlist data 136 that has the playlist for content recorded within the set top box 22. The playlist data contains content visible to users and content currently non-visible to users. Another type of data is the favorite settings for the set top box 22. The favorites may be stored in a favorite's memory 138. Other types of data may also be included in the SLI memory 134 which is illustrated as an “other” data memory 140. The other data memory 140 may include various types of data including ignored suggestions which correspond to Suggestion or recommendation suggestions that were ignored. Another type of data in the other data memory 140 may include the channel subscription data, the blocked channels, adult channels, rating limits set by the set top box 22, current set top box language, prioritizer data, TV resolution data, to do list data, the conditional access module identifier, and a request identifier. The request identifier may be generated at the simulation engine 50 of
The memory 130 may also include advanced program guide memory 144. The advanced program guide (APG) memory 144 may store program guide data that is received within the system. The program guide data may store various amounts of data including two or more weeks worth of program guide data. The program guide data from the APG memory 144 may be communicated in various manners including through the satellite 18 of
The memory 130 may also include a digital video recorder 146. The digital video recorder 146 may be a hard drive, flash drive, or other memory device. A record of the content stored in the digital video recorder is a playlist. The playlist may be stored in the DVR 146 or a separate memory as illustrated.
The set top box 22 may also include a user interface 150. The user interface 150 may be various types of user interfaces such as a keyboard, push buttons, a touch screen, a voice activated interface or the like. The user interface 150 may be used to select a channel, select various information, change the volume, change the display appearance, or other functions. The user interface 150 may also be used for selecting recommendation and providing feedback for recommendations as will be described below.
A network interface 152 may be included within the user device 22 to communicate various data through the network 36 illustrated above. The network interface 152 may be a WiFi, WiMax, WiMax mobile, wireless, cellular, or other types of communication systems.
The network interface 152 may be used for communicating the SLI data, the VTL data, and various other types of data collected at the set top box 22. The network interface 152 may communicate the data to the head end or the simulation engine. The network interface 152 may use various protocols for communication therethrough including, but not limited to, hypertext transfer protocol (HTTP).
Referring now to
The simulation engine 50 includes a recommendation engine 312. The recommendation engine 312 may be microprocessor-based and performs various functions including receiving data from the set top boxes, processing the data from the set top boxes to generate recommendations and adjust algorithms, and storing the data within various databases generating recommendations based upon the data.
The recommendation engine 312 is in communication with a user interface 314. The user interface 314 allows a system operator to create and change algorithms being used to provide recommendations to the set top boxes. The user interface will also allow results to be analyzed and allow specific algorithms to be run on a selected set of data for testing purposes. The user interface 314 may be used in conjunction with a display 360. The display 360 may be a computer monitor or the like. Various screen displays will be described below.
The simulation engine 50 includes a request identifier module 320. The request identifier module 320 generates a request identifier in response to a request from a set top box. The request identifier module 320 communicates the request through the web interface 310 to the set top box. The request identifier may be used in the communication between the set top box 22 and the simulation engine 50 for identification purposes.
The recommendation engine 312 is in communication with a set top box viewer tracking log (VTL) database. The viewer tracking log data may also include playlist, favorite channels and other viewer tracking log data described above. The set top box database 322 stores the data which corresponds to a particular set top box.
A set top box settings and list information database 324 stores the set top box setting and list information into a database corresponding to each set top box or user device.
The recommendation engine 312 is also in communication with an algorithm file 326.
The algorithm file stores the algorithm for generating recommendations therein. As mentioned above the algorithm file may be changed over time by operator intervention to provide better results for the recommendation engine 312.
The advance program guide (APG) database 330 may also be in communication with the recommendation engine 312. The advance program guide database 330 includes program guide data such as object identifiers and channel identifiers, which are used to identify television stations, program start times and other data necessary for providing recommendations.
The recommendation engine produces a human readable results file that is stored in a recommendation results database 334. The recommendation results database 334 contains a list of program object identifiers of recommended programs, the channel identifier or station identifier, and a program start time and other content related content. Further data may also be provided. The algorithm identifier may also be provided with the results file.
A recommendation processing database 336 may also be in communication with the recommendation engine 312. The recommendation processing database 336 is used to store the content results that the algorithm produces and later correlate the content results to the feedback coming from the set top boxes. A feedback aggregation module 338 may use the recommendation processing database 336 to perform the correlation of the feedback coming from the user devices and determine whether the recommendations are relevant.
Referring now to
The You Might Like portion 414 lists recommendations for the viewer. The You Might Like portions are programs that are not regularly watched by users. The You Might Like recommendations can be available now or in future. A plurality of thumbnails 424-430 is provided. The thumbnails 424-430 displayed in the You Might Like portion 414 correspond to recommendations from the recommendation engine.
Because the process described is for improving the recommendation engines, feedback may be provided from the set top box users which are ultimately used for changing the algorithms. For example, feedback may be provided if the user selects a thumbnail to view the recommended program. Feedback may also be provided if the user selects a thumbnail to record the program for later viewing. Feedback may also be provided if the user selects a thumbnail to display the program summary and other program details.
Referring now to
Referring now to
The response signal is indicated by reference numeral 618. In step 620 the simulation engine and, in particular, the recommendation engine therein sends a recommendation signal and a request identifier to the set top box. The recommendation signal may contain or recommendation file having a plurality of recommended programs. The recommendations are generated from one or more algorithms. In steps after step 620, step 624 displays the recommendation on the set top box. It should be noted that a plurality of algorithms may be used for any one request. That is, various algorithms may be tested simultaneously so that users may be provided the best experience. Different recommendations may thus be provided or using each of the different algorithms.
In step 644 the algorithms may be changed based on the feedback. The algorithms may be changed by changing various parameters of an algorithm or changing to a different algorithm or algorithms.
Referring back to step 612 if the set top box has previously requested communications step 630 is performed. If the user or set top box has provided feedback for previous recommendations steps 614-624 are again performed. If no feedback for previous recommendations has been provided, step 632 is performed. Step 632 requests feedback from the user on previous recommendations. One example of a screen display for requesting feedback is provided in
After step 634, steps 614-624 are again performed which sends the set top box data to the simulation engine. A second request may only require updated data. Also after step 634, step 640 sends feedback data and the request identifier back to the simulation engine. After step 640, step 642 generates a log of the feedback of the recommendations.
Referring now to
The list of all potentially viewable programs may be provided based on various settings including the time of day. The potentially available content may be determined from the program guide. The time of day may correspond to a time slot such as a 30 minute time slot used by way of example herein. A score for different item characteristics may be provided. For example, a next program identifier may be used to determine whether to include programs from the next time slot. All programs from the program guide may also be included. The inclusion of pay per view channels may be provided. Also, whether or not a recorded program is in the playlist may also be included. The inclusion of adult content may also be determined. Previously viewed channels may also be another determination. Including local channels or non-local channels may also be used for characteristics for potentially viewable programs. Recently viewed programs may be removed from the potentially reviewable program list. Language settings from the set top box may also be used to determine potentially viewable programs. The number of hours to include programs in the future may also be selected. Further, the potentially viewable programs may also be determined in view of including high definition channels. In step 712 a history filter filters the day of the week, weekend or time window. Thus, the list of all potentially viewable programs is reduced.
In step 714 various program characteristics are used to find the most frequent program characteristic within the filtered history. Each program characteristic may require its own unique algorithm to determine the most frequent set of values. In addition, each program characteristic may have its own setting for the number of frequent numbers to choose. By way of example, the top five channels may be selected but only the top two categories may be selected. After step 714, step 716 applies weights to each viewable program that has a matching program characteristic using a frequency histogram. One way to build a histogram for various program characteristics is to build a frequency histogram from the filtered history data and select the top most frequent program characteristics. Various program characteristics may include a time waited frequency, a channel, a channel group, category, rating, name, descriptor entries, such as actor, director, writer, content identifier, producer and information from outside sources regarding the content. Set top box list that include the SLI data described above, language preferences, daily editorial list, list items, list weights and recommended channel list may also be used to build the histogram.
In steps 718 each potentially viewable program and matching program characteristic weights are summed to build up each score. In step 720 the viewable programs are sorted by scores and the top “N” number of returns are provided.
Referring now to
Referring now to
Referring now to
Referring now to
By selecting different algorithms and tweaking the various perimeters within the algorithm, the algorithms may be adjusted to better provide recommendations. The algorithm change only occurs within the simulation engine 50, and different recommendations would appear in a set top box 22. No software change is needed for the set top box 22.
Those skilled in the art can now appreciate from the foregoing description that the broad teachings of the disclosure can be implemented in a variety of forms. Therefore, while this disclosure includes particular examples, the true scope of the disclosure should not be so limited since other modifications will become apparent to the skilled practitioner upon a study of the drawings, the specification and the following claims.
This application claims the benefit of U.S. Provisional Application No. 61/501,052, filed on Jun. 24, 2011. The entire disclosure of the above application is incorporated herein by reference.
Number | Name | Date | Kind |
---|---|---|---|
5594509 | Florin et al. | Jan 1997 | A |
5831664 | Wharton et al. | Nov 1998 | A |
5842199 | Miller et al. | Nov 1998 | A |
5983214 | Lang et al. | Nov 1999 | A |
6016475 | Miller | Jan 2000 | A |
6526581 | Edson | Feb 2003 | B1 |
6882299 | Allport | Apr 2005 | B1 |
6970127 | Rakib | Nov 2005 | B2 |
6990635 | Kurapati et al. | Jan 2006 | B2 |
7093273 | Marsh | Aug 2006 | B2 |
7254829 | Brown et al. | Aug 2007 | B1 |
7571452 | Gutta | Aug 2009 | B2 |
7581237 | Kurapati | Aug 2009 | B1 |
7895625 | Bryan et al. | Feb 2011 | B1 |
7895626 | Georgis | Feb 2011 | B2 |
8082572 | Tilford | Dec 2011 | B1 |
8583791 | Svendsen | Nov 2013 | B2 |
8607284 | Li et al. | Dec 2013 | B2 |
9342287 | Muller | May 2016 | B2 |
9734507 | Amidon | Aug 2017 | B2 |
20010039520 | Nakade et al. | Nov 2001 | A1 |
20020056112 | Dureau et al. | May 2002 | A1 |
20020078172 | Yoshikai et al. | Jun 2002 | A1 |
20020104087 | Schaffer et al. | Aug 2002 | A1 |
20020154888 | Allen et al. | Oct 2002 | A1 |
20020174429 | Gutta et al. | Nov 2002 | A1 |
20030084448 | Soundararajan | May 2003 | A1 |
20030220830 | Myr | Nov 2003 | A1 |
20030233650 | Zaner et al. | Dec 2003 | A1 |
20030237093 | Marsh | Dec 2003 | A1 |
20040006698 | Apfelbaum | Jan 2004 | A1 |
20040244029 | Gross | Dec 2004 | A1 |
20040255326 | Hicks et al. | Dec 2004 | A1 |
20050050578 | Ryal | Mar 2005 | A1 |
20050055640 | Alten | Mar 2005 | A1 |
20050099493 | Chew | May 2005 | A1 |
20050186988 | Lim et al. | Aug 2005 | A1 |
20050204392 | Na | Sep 2005 | A1 |
20050278737 | Ma et al. | Dec 2005 | A1 |
20060085835 | Istvan et al. | Apr 2006 | A1 |
20060101338 | Kates | May 2006 | A1 |
20060212448 | Bogle | Sep 2006 | A1 |
20060294548 | Potrebic et al. | Dec 2006 | A1 |
20070157249 | Cordray et al. | Jul 2007 | A1 |
20070169148 | Oddo et al. | Jul 2007 | A1 |
20070186241 | Sugimoto et al. | Aug 2007 | A1 |
20070186243 | Pettit et al. | Aug 2007 | A1 |
20070220554 | Barton et al. | Sep 2007 | A1 |
20080066011 | Urrabazo et al. | Mar 2008 | A1 |
20080077852 | Fleishman et al. | Mar 2008 | A1 |
20080092169 | Shannon et al. | Apr 2008 | A1 |
20080109866 | Thomas et al. | May 2008 | A1 |
20080120656 | Jupin | May 2008 | A1 |
20080127253 | Zhang et al. | May 2008 | A1 |
20090100478 | Craner et al. | Apr 2009 | A1 |
20090133059 | Gibbs et al. | May 2009 | A1 |
20090158342 | Mercer et al. | Jun 2009 | A1 |
20090178081 | Goldenberg et al. | Jul 2009 | A1 |
20090199283 | Jain | Aug 2009 | A1 |
20090202218 | Inatomi et al. | Aug 2009 | A1 |
20090217332 | Hindle et al. | Aug 2009 | A1 |
20090262661 | Ueda et al. | Oct 2009 | A1 |
20100046931 | Takao et al. | Feb 2010 | A1 |
20100064325 | Fishman et al. | Mar 2010 | A1 |
20100162335 | Davis | Jun 2010 | A1 |
20100205628 | Davis et al. | Aug 2010 | A1 |
20100251305 | Kimble et al. | Sep 2010 | A1 |
20100333142 | Busse et al. | Dec 2010 | A1 |
20110090402 | Huntington et al. | Apr 2011 | A1 |
20110184899 | Gadanho et al. | Jul 2011 | A1 |
20110214148 | Gossweiler et al. | Sep 2011 | A1 |
20120011550 | Holland | Jan 2012 | A1 |
20120078937 | Hall | Mar 2012 | A1 |
20120089923 | Pettit et al. | Apr 2012 | A1 |
20120095650 | Slothouber et al. | Apr 2012 | A1 |
20120117017 | Phillips et al. | May 2012 | A1 |
20120174155 | Mowrey et al. | Jul 2012 | A1 |
20120174158 | Mowrey et al. | Jul 2012 | A1 |
20120303138 | Demskie | Nov 2012 | A1 |
20120303415 | Edelson | Nov 2012 | A1 |
20120323674 | Simmons | Dec 2012 | A1 |
20130326552 | Adams | Dec 2013 | A1 |
20130326563 | Mulcahy et al. | Dec 2013 | A1 |
20140025609 | Coster | Jan 2014 | A1 |
20140067961 | Archibong et al. | Mar 2014 | A1 |
20140089982 | Narahara et al. | Mar 2014 | A1 |
20140109139 | Jeon et al. | Apr 2014 | A1 |
20140245357 | Huntington et al. | Aug 2014 | A1 |
Number | Date | Country |
---|---|---|
0710017 | May 1996 | EP |
1471690 | Oct 2004 | EP |
0147248 | Jun 2001 | WO |
Entry |
---|
Non-final Office action dated Oct. 22, 2013 in U.S. Appl. No. 13/803,395, filed Mar. 14, 2013 by Romulo Pontual et al. |
Final Rejection dated Sep. 17, 2014 in U.S. Appl. No. 13/529,040, filed Jun. 21, 2012 by Romulo Pontual et al. |
Non-final Office action dated Apr. 23, 2014 in U.S. Appl. No. 13/529,040, filed Jun. 21, 2012 by Romulo Pontual et al. |
Final Rejection dated Apr. 10, 2014 in U.S. Appl. No. 13/803,395, filed Mar. 14, 2013 by Romulo Pontual et al. |
Non-final Office action dated Sep. 30, 2014 in U.S. Appl. No. 13/803,395, filed Mar. 14, 2013 by Romulo Pontual et al. |
Non-final Office action dated Jan. 23, 2015 in U.S. Appl. No. 13/529,040, filed Jun. 21, 2012 by Romulo Pontual et al. |
Final Rejection dated Mar. 30, 2015 in U.S. Appl. No. 13/803,395, filed Mar. 14, 2013 by Romulo Pontual et al. |
Final Rejection dated Jun. 18, 2015 in U.S. Appl. No. 13/529,040, filed Jun. 21, 2012 by Romulo Pontual et al. |
Non-final Office action dated Jun. 8, 2016 in U.S. Appl. No. 13/529,040, filed Jun. 21, 2012 by Romulo Pontual et al. |
Non-final Office action dated Nov. 19, 2015 in U.S. Appl. No. 13/803,516, filed Mar. 14, 2013 by Romulo Pontual et al. |
Colombian Office action dated Jul. 2, 2015 in Colombian Patent Application No. 14-006.899 filed Jun. 7, 2012 by Romulo Pontual et al. |
Number | Date | Country | |
---|---|---|---|
61501052 | Jun 2011 | US |