The present invention relates to systems that employ electronic program guides (EPGs) to assist media users in managing a large number of media-content choices, for example, television programming chatrooms, on-demand video media files, audio, etc. More specifically, the invention relates to such systems that provide “intelligence”, such as an ability to suggest choices and an ability to take actions, for example to record a program, on the user's behalf based on the user's preferences.
A common element among conventional Electronic Program Guide (EPG) systems is their ability to display listings of programs for many available channels. The listings may be generated locally and displayed interactively. The listings are commonly arranged in a grid, with each row representing a particular broadcast or cable channel, such as ABC, PBS, or ESPN and each column of the grid representing a particular time slot, such as 4:00 p.m. to 4:30 p.m. Multiple rows and multiple columns can be displayed on the screen simultaneously. The various scheduled programs or shows are arranged within the rows and columns, indicating the channels and times at which they can be found. The grid can be scrolled vertically so that a viewer can scan through different channels within a given interval of time. The grid may also be scrolled horizontally (panned) to change the time interval displayed.
Data regarding available programs may be received by a cable system or telephone line as a set of data records. Each available program may have a single corresponding data record containing information about the program such as its channel, its starting and ending times, its title, names of starring actors, whether closed-captioning and stereo are available, and perhaps a brief description of the program. It is not difficult to format a grid such as described above from this type of data records. The data spanning a period (e.g., two weeks) is typically formatted once at the server (e.g., the cable system's head-end) and broadcast repeatedly and continuously to the homes served by the cable system. Alternatively, the data may be downloaded via phone line, or other network, either on-demand or on a predetermined schedule.
An EPG system can run on a device with a user interface (hereinafter a “user interface device”), which can be a set-top box (STB), a general purpose computer, an embedded system, a controller within the television, or the server of a communications network or Internet server. The user interface device is connected to the TV to generate displays and receive input from the user. When scrolling to a new column or row, the user interface device may retrieve appropriate information from a stored database (in the user interface device or elsewhere) regarding the programming information that needs to be presented for the new row or column. For instance, when scrolling to a new column, programs falling within a new time slot need to be displayed.
In a world with too many media choices electronic program guides (EPGs) promise to make television and other media viewing manageable. Their real potential in managing large numbers of choices is in interactive “smart” systems. An interactive application of EPGs builds a user-preference database and uses the preference data to make suggestions, filter current or future programming information to simplify the job of choosing, or even make choices on behalf of the user. For example, the system could record a program without a specific request from the user.
A first type of device for building the preference database is a passive one from the standpoint of the user. The user merely makes choices in the normal fashion from raw EPG data and the system gradually builds a personal preference database by extracting a model of the user's behavior from the choices. It then uses the model to make predictions about what the user would prefer to watch in the future. This extraction process can follow simple algorithms, such as identifying apparent favorites by detecting repeated requests for the same item, or it can be a sophisticated machine-learning process such as a decision-tree technique with a large number of inputs (degrees of freedom). Such models, generally speaking, look for patterns in the user's interaction behavior (i.e., interaction with the UI for making selections).
A second type of device is more active. It permits the user to specify likes or dislikes. For example, the user can indicate, through a user interface, that dramas and action movies are favored and that certain actors are disfavored. These criteria can then be applied to predict which from among a set of programs would be preferred by the user.
An example of the first type is MbTV, a system that learns viewers' television watching preferences by monitoring their viewing patterns. MbTV operates transparently and builds a profile of a viewer's tastes. This profile is used to provide services, for example, recommending television programs the viewer might be interested in watching. MbTV learns about each of its viewer's tastes and uses what it learns to recommend upcoming programs. MbTV can help viewers schedule their television watching time by alerting them to desirable upcoming programs, and with the addition of a storage device, automatically record these programs when the viewer is absent.
MbTV has a Preference Determination Engine and a Storage Management Engine. These are used to facilitate time-shifted television. MbTV can automatically record, rather than simply suggest, desirable programming. MbTV's Storage Management Engine tries to insure that the storage device has the optimal contents. This process involves tracking which recorded programs have been viewed (completely or partially), and which are ignored. Viewers can “lock” recorded programs for future viewing in order to prevent deletion. The ways in which viewers handle program suggestions or recorded content provides additional feedback to MbTV's preference engine which uses this information to refine future decisions.
MbTV will reserve a portion of the recording space to represent each “constituent interest.” These “interests” may translate into different family members or could represent different taste categories. Though MbTV does not require user intervention, it is customizable by those that want to fine-tune its capabilities. Viewers can influence the “storage budget” for different types of programs. For example, a viewer might indicate that, though the children watch the majority of television in a household, no more than 25% of the recording space should be consumed by children's programs.
As an example of the second type of system, one EP application (EP 0854645A2) describes a system that enables a user to enter generic preferences such as a preferred program category, for example, sitcom, dramatic series, old movies, etc. The application also describes preference templates in which preference profiles can be selected, for example, one for children aged 10–12, another for teenage girls, another for airplane hobbyists, etc. This method of inputting requires that a user have the capacity to make generalizations about him/herself and that these be a true picture of his/her preferences. It can also be a difficult task for common people to answer questions about abstractions such as: “Do you like dramas or action movies?”
A PCT application (WO 97/49242 entitled System and Method for Using Television Schedule Information) is another example of the second type. It describes a system in which a user can navigate through an electronic program guide displayed in the usual grid fashion and select various programs. At each point, he may be doing any of various described tasks, including, selecting a program for recording or viewing, scheduling a reminder to watch a program, and selecting a program to designate as a favorite. Designating a program as a favorite is for the purpose, presumably, to implement a fixed rule such as: “Always display the option of watching this show” or to implement a recurring reminder. The purpose of designating favorites is not clearly described in the application. However, more importantly, for purposes of creating a preference database, when the user selects a program to designate as a favorite, she/he may be provided with the option of indicating the reason it is a favorite. The reason is indicated in the same fashion as other explicit criteria: by defining generic preferences. The only difference between this type of entry and that of other systems that rely on explicit criteria, is when the criteria are entered.
The first type of system has the advantage of being easier on the user since the user does not have to provide any explicit data. The user need merely interact with the system. For any of the various machine-learning or predictive methods to be effective, a substantial history of interaction must be available to build a useful preference database. As a result, it can take a very long time before systems of the first type can begin to perform effectively (as compared to systems of the second type). Note that the machine-learning method associated with both types of systems can be any of a variety currently known or yet to be developed, for example, decision-tree, neural network, rule-induction, nearest neighbor, or genetic algorithm techniques.
Briefly, an electronic programming guide (EPG) system employs a preference engine and processing system that learns viewers' television watching preferences by monitoring their viewing patterns. The system operates transparently to build a profile of a viewer's tastes. The profile is used to provide services, for example, recommending or automatically recording television programs that the viewer might be interested in watching. To permit the personalization of the preferences database, a user interface is provided to allow the user to simulate various kinds of interaction with the system. This allows the system to build a profile rapidly without requiring a long interaction history in real time over a number of weeks or even months to personalize the system. The invention provides a preference-data building system that permits a user to enter preference data by interacting with a user interface (“UI”) to select a favored program as if the user were selecting programs for use. In this way, the user is able to build the interaction history quickly.
To permit the entry of this “synthetic” or “simulated” interaction history, a user interface is generated and used to permit many content selections to be made in a short period of time. Fast review and selection are possible because the interaction is intended to supply preference information rather than to make actual viewing (recording, channel-blocking, etc.) selections.
In one embodiment, the UI uses old program lineups to generate an EPG display in any practical format, for example the time/channel grid format described in the background section. The system presents the user with the option of specifying programs that the user would watch, record for later viewing, lock with parental controls, etc. The categories can be further narrowed by such criteria as time of day for viewing (so the user would specify programs that would be viewed in the evening as opposed to during the day), weekday or weekend/holiday, or other indirect information. Once the kind of decision being simulated is specified, the user selects programs from the listing. In this way, the system simulates actual use of the system. The system can obtain this simulated interaction behavior in raw form and either save it in raw form or reduce it in some way for incorporation in the preference database depending on designer preferences and the type of user-modeling method being employed.
In another embodiment, the user simply selects from the EPG those programs that are preferred leaving disfavored programs unselected. Alternatively, the user can mark programs as liked and disliked. For example, using a handheld remote control, the user can use scrolling or skipping buttons, such as arrow keys, and indicate preferences with designated “Like” and “Dislike” keys. The user could make more narrow designations such as those considered as desirable for recording, desirable to block from access by children, etc.
Instead of using the grid format, a list may be generated from which redundant choices have already been deleted. The display of the list can be grouped to facilitate comprehension, for example, categories such as evening sitcoms, daytime soaps, etc. This allows intercomparison of items with common characteristics.
The content and grouping of the list may be determined in response to the user interaction. Information in the preference database may be used to help resolve ambiguities in the preference model it contains. For example, if the user likes some daytime soaps and not others, the particular features of the soaps can be resolved more clearly by providing a lot of soaps from which to select. If the user dislikes every soap presented, finer distinctions may not provide useful data and additional soaps would be culled from a candidate list of all possible programs. For another example, if the user appears to like science documentaries, more examples in the list would help the machine-learning system determine whether, for example, technology subject matter was favored over programs about nature and wildlife.
The inventive method of generating preference data has benefits over the criteria-based method of the second type. For one thing, the user may have very clear ideas about what the user likes and dislikes, but not a clear understanding of why. The invention takes advantage of what is revealed by people's raw reactions to choices to provide more accurate input to a predictive model (predictive of future likes and dislikes) than relying on the user's understanding of what the user likes or dislikes about something. Another benefit of specifying preference information in the form of simple likes and dislikes is that it may be less mentally taxing. The user's reaction to a choice of particular programs may be much faster, as well as more accurate, than abstract generalizations about likes and dislikes. Note that preference data may be specified in the form of a ranking of how much a user likes a particular program, for example, on a scale of 1 to 10.
In another embodiment, the invention accepts preferred program data from a source such as a portable memory card. The memory card is loaded with personal data that generally describes user preferences in various environments such as restaurants, computer software, movies, television shows, etc. The relevant information is extracted from the memory card and used to build or augment the preference database. The preference data stored on the memory card may be in the form of rules or criteria such as used in the second type of preference data building devices rather than program selections. These criteria-based data may be combined with the program-preference data in various ways. Two sets of weights may be applied successively to the same set of available program data, one from the program preference data and one from the criteria data. Alternatively, if the machine-learning device used for the first type data generates rules, the second-type criteria can be lumped together with these rules and applied for filtering available programming.
In another feature of the invention, programs can be marked as “Unknown” as well as “Liked” or “Disliked.” Alternatively, programs not marked can be assumed to be unknown. In such cases, this information can be used to strengthen the user profile according to the particular machine-learning device employed.
Embodiments may be a program-display system that works with an EPG system, receives input from the use (“interaction”) with one system, and measures the viewer interaction behavior. In other words, an EPG that “observes” viewer behavior and attempts to use the past viewer behavior to make the system's output more intelligent, such as by recording things the viewer does not explicitly request. To perform this function, the inventive system may have a preference data store to hold data relating to the interaction behavior. The data store could be any type of memory or storage device such as a hard disk, a server, optical drive, smart card, etc. The system also may use a schedule data store to hold program schedule data and a controller programmed to generate predictions about what the user would have done with the system had the user interacted with it. For example, the user might be away at a time a program is available for recording. In such a case, the system could record the program for the user. Also, the system can screen out material that is not likely to interest the user. To do these things, the preference engine controls a channel through which content is transmitted to an output device (be it a monitor or a recording device such as a VCR or hard disk), responsively to the preference data and current schedule.
If the user is available to make selections, the preference engine may display a list of recommended programs responsively to the predictions and the schedule data, and accept input indicating a program to be viewed now or recorded for later use. The controller is also programmed to display a list of available programs and accept input indicative of multiple favored and/or disfavored program items to help teach the system. The material does not have to be categorized and the user does not have to be concerned with the rules by which programs will be ranked by the system. The user only has to inform the system by interacting with it. The display is used for a simulated interaction, so the benefit of multiple selections can be provided in a single session. Also, the session can use old program listings. Thus, the controller is programmed to add to the preference store data that is responsive to the input without controlling a media output device to output the program. Thus, the preference data store can be loaded with new preference data without using (viewing, recording, downloading, down-sampling or otherwise transforming, redirecting, storing, interacting with as in a chat room, etc.) the programs identified.
The controller may also be programmed to generate the preference data from the user input directly, by employing a machine-learning method based on a discovery of patterns in the user input. The pattern-discovery technique may include decision-tree, neural network, rule-induction, nearest neighbor, and genetic algorithm technique, or other techniques. The latter are examples and are not intended to be limiting. The particulars involved in machine learning systems is beyond the scope of this specification, but persons of skill, given the teachings of this specification, would understand how to apply such techniques, including as-yet-unknown techniques, to the invention.
In embodiments, the invention may provide for adding preference data to an EPG system that stores prior program selections where the system has a program database containing a list of stored program identifiers identifying programs whose content is not currently, or scheduled to be, available for use. The prior program selection may be stored, or some distillation of the data may be stored. For example, to use this data to load the preference database, it might be considered immaterial what time the program had been scheduled to air. The stored “old” programs are used for training the preference part of the system and not to control output or recording of a program. A user-interface element displays the identifiers of programs and accepts user input. The user input can be single or multiple selections. The multiple selections could mean making more than one selection at the same time.
In a variation of the invention, the EPG system stores clips from various content items. In this way, a user can rely on more than just the description and title of the program to decide how and if the user would use the program or content. Interacting with the UI could be like simulated channel surfing. Alternatively, the user could just request a clip when the additional information is desired. Clips could be a sample of the content from the particular media item. For example, if the media item is a chat room, the sample could be a ten-minute chat sample, which could be compressed, if all text. If the content were video, it could be time compressed or down-sampled. If it is a television program, the clip could be a video clip. Note that the clips need not be sampled at full bandwidth. Also, thumbnail clips could be used or the clips could be displayed as frame-grabs on a thumbnail display. The display could be pruned according to techniques discussed elsewhere in the specification, particularly in connection with
The media content available may be deliverable through any kind of channel through which media is transmitted (e.g., computer network or Internet, radio signals, broadcast, multicast, dialup). A controller may be connectable to the communications channel to control delivery of the media content through the communications channel responsively to the preference data. The preferences-training feature may be implemented by insuring the controller is programmed to generate UIs just for generating preference data and regular UIs, for using the media content and secondarily generating preference data, and to supply data to the preference store from interactions with both. When displaying the regular UIs redundant entries would not be eliminated so that, for example, both occurrences of a movie airing at different times would be displayed. When displaying the UIs just for purposes of generating preference data, the redundancies can be screened out. The preference-generating UIs can be displayed as lists, thumbnails, etc. The thumbnails can be updated from the last instantiation of the media item. The controller may be programmed to accept commands to limit the identification data displayed for generating preference data. This can be done prior to the simulated interaction or automatically using the preference data as the simulated interaction proceeds. The commands to limit may include a command to omit representation in the identification data set of one or another of the predefined classes of media content. For example, the user could indicate, so to speak, “don't bother showing me any nature programs.” In this way, material in such classes would not be displayed in the list of items from which to pick. Commands may also be accepted to emphasize certain kinds of media content. So, for example, if a user frequently uses content corresponding to a certain class, finer preference distinctions could be made if a large sample from that class were scrutinized by the user and the preferences fed to the machine-learning algorithm.
In some embodiments, the invention can be described in terms of a method of updating the preference database. The steps may be as follows:
An alternative description of steps under an embodiment may include displaying a list of program categories, and accepting commands referencing the program categories; generating a list of programs scheduled to be available currently and in the future and that have been available in the past, and excluding from the list redundant entries when the redundant entries are distinguishable only by time of broadcast. Thus, the system would not eliminate, from the list, two airings of the same movie or successive episodes of the same show. The method also includes the step of modifying the list responsively to the commands referencing the program categories. At a time of programming the method may add the steps of displaying the second list of programs, accepting commands to select multiple programs from the second list, storing the multiple selections, and modifying the preference database responsively to the multiple selections without controlling an output of any of the programs identified in the multiple selections. The step of accepting commands referencing the program categories may include the step of accepting a command to emphasize programs in a selected category in some way. The step of modifying the list in that case may include increasing representation in the list of programs in the selected category as discussed above.
Variations of the method include modifying the step of generating a second list by including a step of generating a list of programs that were scheduled to be available in the past. The step of generating a second list may include displaying a list of program categories, accepting commands referencing the program categories, and excluding programs scheduled to be available currently and in the future in response to the commands referencing the program categories. The step of generating a second list may include displaying a list of program categories, accepting commands referencing the program categories, and excluding programs scheduled to be available currently and in the future (responsively to the commands referencing the program categories).
The invention will be described in connection with certain preferred embodiments, with reference to the following illustrative figures so that it may be more fully understood.
With reference to the figures, it is stressed that the particulars shown are by way of example and for purposes of illustrative discussion of the preferred embodiments of the present invention only, and are presented in the cause of providing what is believed to be the most useful and readily understood description of the principles and conceptual aspects of the invention. In this regard, no attempt is made to show structural details of the invention in more detail than is necessary for a fundamental understanding of the invention, the description taken with the drawings making apparent to those skilled in the art how the several forms of the invention may be embodied in practice.
Referring to
Referring now also to
Note that many substitutions are possible in the above example hardware environment and all can be used in connection with the invention. The mass storage can be replaced by volatile memory or non-volatile memory. The data can be stored locally or remotely. In fact, the entire computer 240 could be replaced with a server operating offsite through a link. Rather than using a remote control to send commands to the computer 240 through an infrared port 215, the controller could send commands through a data channel 260 which could be separate from, or the same as, the physical channel carrying the video. The video 270 or other content can be carried by a cable, RF, or any other broadband physical channel or obtained from a mass storage or removable storage medium. It could be carried by a switched physical channel such as a phone line or a virtually switched channel such as ATM or other network suitable for synchronous data communication. Content could be asynchronous and tolerant of dropouts so that present-day IP networks could be used. Further, the content of the line through which programming content is received could be audio, chat conversation data, web sites, or any other kind of content for which a variety of selections are possible. The program guide data can be received through channels other than the separate data link 260. For example, program guide information can be received through the same physical channel as the video or other content. It could even be provided through removable data storage media such as memory card or disk 220. The remote control 210 can be replaced by a keyboard, voice command interface, 3D-mouse, joystick, or any other suitable input device. Selections can be made by moving a highlighting indicator, identifying a selection symbolically (e.g., by a name or number), or making selections in batch form through a data transmission or via removable media. In the latter case, one or more selections may be stored in some form and transmitted to the computer 240, bypassing the display 170 altogether. For example, batch data could come from a portable storage device (e.g. a personal digital assistant, memory card, or smart card). Such a device could have many preferences stored on it for use in various environments so as to customize the computer equipment to be used.
Referring now to
Referring now to
Referring now to
Referring to
The user interacts with a selection input UI 40, which may be like that of the
In the embodiment of
Referring to
Referring to
A simple way to use error estimates to speed up the process of creating a valid prediction model is to provide more program selections for which predictions have a high error and fewer program selections for which predictions have a low error. It is appropriate to keep showing low error selections in case their high reliability is based on an unreliable pattern or rule (i.e., bad statistic). Another way to do this is for the prediction model to group a number of apparently favored or disfavored selections from either schedule database 30 or 60 which exhibit more than one basis of prediction. The synthetic user interaction UI 365 could, using this information, provide a larger number of selections from this set until one of the bases of prediction became substantially stronger. In this way, the preference database 50 can be built up in the areas where it is weak.
Referring now to
Referring to
Referring to
The programs selecting can be stored clips from previous broadcasts. For example, current systems such as Philips® TiVO® store video content digitally on a hard drive. A large sample of material could be stored and subsequently used to create a selection set. One example of a use of this interface is shown in
Whether the user interaction data 42 is analyzed and/or reduced in some fashion by element 55 before being incorporated in the preference database 50 depends on design considerations and the machine-learning method being used. Examples of machine-learning methods that can be used with the invention include: decision-tree, neural network, rule-induction, nearest neighbor, and genetic algorithms.
The rendering of the selection input UI 25 can be modified according to the preference engine 20 in many ways, including combinations of filtering out low-score choices and highlighting high-score choices. For example low-score channels can be filtered out altogether (e.g., only soaps and nature documentaries score low) but all other content can be displayed with highlighting used to indicate high-score subject matter.
Note that the above functionality can be achieved in the hardware environment described above with reference to
It will be evident to those skilled in the art that the invention is not limited to the details of the foregoing illustrative embodiments, and that the present invention may be embodied in other specific forms without departing from the spirit or essential attributes thereof. The present embodiments are therefore to be considered in all respects as illustrative and not restrictive, the scope of the invention being indicated by the appended claims rather than by the foregoing description, and all changes which come within the meaning and range of equivalency of the claims are therefore intended to be embraced therein.
Number | Name | Date | Kind |
---|---|---|---|
5223924 | Strubbe | Jun 1993 | A |
5465113 | Gilboy | Nov 1995 | A |
5483278 | Strubbe et al. | Jan 1996 | A |
5689663 | Williams | Nov 1997 | A |
5751282 | Girard et al. | May 1998 | A |
5798785 | Hendricks et al. | Aug 1998 | A |
5945988 | Williams et al. | Aug 1999 | A |
5959688 | Schein et al. | Sep 1999 | A |
Number | Date | Country |
---|---|---|
0854645 | Jul 1998 | EP |
WO9749242 | Dec 1997 | WO |
WO9825884 | Jun 1998 | WO |
WO9918722 | Apr 1999 | WO |
WO9920008 | Apr 1999 | WO |
WO9925119 | May 1999 | WO |
0004708 | Jan 2000 | WO |