Method and apparatus for displaying program recommendations with indication of strength of contribution of significant attributes6851090Abstract A method and apparatus are disclosed for displaying available television programs with an indication of the strength of the contribution of one or more program attributes or features to the overall recommendation score assigned by a program recommender. The program and corresponding indication of the strength of the contribution of one or more program attributes can be presented to the user, for example, using grids listing the available television programs by time and date, channel and title. The overall recommendation scores or component scores associated with each program are also displayed to the user. The overall recommendation scores or component scores can be displayed with each program directly or can be mapped onto a color spectrum or another visual cue, such as a variable size-of-text, rate of blinking or bar height. The visual cues are then applied to each program in the program grid in accordance with the present invention. Claims What is claimed is: Description FIELD OF THE INVENTION
RECOMMENDER FONT SIZE/
SCORE COLOR THUMBS UP-DOWN
0-15 DARK RED 10/{character pullout}
16-30 RED 10/{character pullout}
31-45 LIGHT RED 10/{character pullout}
46-55 YELLOW 12/{character pullout}
56-70 LIGHT GREEN 14/{character pullout}
71-85 GREEN 16/{character pullout}
86-100 DARK GREEN 18/{character pullout}
In a further variation of the present invention, the television channels can be sorted in the program grid according to a normalized recommendation score for the time period being examined. For example, for a given half-hour time interval, the program grid can be sorted directly by recommendation score, such that programs with the highest score appear on the top of the program grid listing. Likewise, for time intervals larger than a half hour, a normalized score can be assigned to each channel for the time period of interest and the program grid can then be sorted by the normalized score, such that channels with the highest normalized score for the time period of interest appear on the top of the program grid listing. As shown in FIG. 1, the television programming recommender 100 contains a program database 200 a user profile 400, discussed further below in conjunction with FIGS. 2 and 4, respectively, and a display recommendation process 500, discussed further below in conjunction with FIG. 5. Generally, the program database 200 records information for each program that is available in a given time interval. The information in the program database 200 may be obtained, for example, from the electronic program guide 110. The illustrative user profile 400 contains a set of rules indicating the viewing preferences of the user that have been learned from the user's viewing history. The display recommendation process 500 displays the available programs together with an indication of the strength of the contribution of one or more program attributes to the overall program recommendation score. The television program recommender 100 may be embodied as any computing device, such as a personal computer or workstation, containing a processor 150, such as a central processing unit (CPU), and memory 160, such as RAM and ROM. In addition, the television programming recommender 100 may be embodied as any available television program recommender, such as the Tivo.TM. system, commercially available from Tivo, Inc., of Sunnyvale, Calif., or the television program recommenders described in United States patent application Ser. No. 09/466,406, filed Dec. 17, 1999, entitled "Method and Apparatus for Recommending Television Programming Using Decision Trees," and U.S. patent application Ser. No. 09/498,271, filed Feb. 4, 2000, entitled "Bayesian TV Show Recommender," or any combination thereof, as modified herein to carry out the features and functions of the present invention. FIG. 2 is a sample table from the program database 200 of FIG. 1 that records information for each program that is available in a given time interval. As shown in FIG. 2, the program database 200 contains a plurality of records, such as records 205 through 220, each associated with a given program. For each program, the program database 200 indicates the date/time and channel associated with the program in fields 240 and 245, respectively. In addition, the title and genre for each program are identified in fields 250 and 255. Additional well-known attributes (not shown), such as actors, duration, and description of the program, can also be included in the program database 200. In addition, the program database 200 also optionally records an indication of the overall recommendation score assigned to each program by the television programming recommender 100 in field 270. In this manner, the numerical scores can be displayed to the user in the electronic program guide with each program directly or mapped onto a color spectrum or another visual cue that permits the user to quickly locate programs of interest. For each positive and negative program example (i.e., programs watched and not watched by the user), a number of well-known attributes and corresponding attribute-value pairs are classified for the user, such as the time, date, duration, channel, rating, title and genre of a given program. As shown in FIG. 3, the various attributes are positioned in one or more hierarchical decision trees 301-308 based on a ranking of the entropy of each attribute. Generally, the higher an attribute is positioned along a given branch of the tree (corresponding to a rule) in the hierarchical decision tree 300, the more significant the attribute. Thus, when the component scores are presented for a given attribute in accordance with the present invention, they can optionally be presented in order of their appearance in the hierarchical tree, from the root node down to the leaf node. The illustrative decision tree 302 includes a root node 315 and a number of sub-nodes, such as sub-nodes 340, 345, 350, 355, 360 and 361. Each node and sub-node in the decision tree 302 corresponds to a given attribute and each branch connecting two nodes corresponds to a specific attribute-value pair (or set of attribute value pairs). Each leaf node in the decision tree 302, such as the leaf nodes 370-376, corresponds to either a positive or negative recommendation for a program mounted at the corresponding leaf node. In addition, the corresponding score assigned to a program satisfying the rule is indicated adjacent to the leaf node 370-376. For example, if a given program has a station_call_sign of WNBX and a title of "Saturday Night," the program will be classified under leaf node 370 as a positive example. Thereafter, if a given program in the test data has values meeting this criteria for these attributes the program will be a recommended program with a score of 100.00%. The decision trees 301-308 can be built, for example, using a "top-down divide and conquer" approach. For a more detailed discussion of the generation of decision trees, see, for example, U.S. patent application Ser. No. 09/466,406, filed Dec. 17, 1999, entitled "Method and Apparatus for Recommending Television Programming Using Decision Trees," assigned to the assignee of the present invention and incorporated by reference herein. The decision trees 301-308 can thereafter be converted to rules and recorded in a user profile 400, shown in FIG. 4. FIG. 4 is a sample table from the user profile 400, based on the hierarchical decision trees 301-308 of FIG. 3. The decision tree rules shown in the user profile 400 allow the introspective analysis of the behavior of the present invention. Generally, the decision tree rules shown in the user profile 400 are an ordered list. As shown in FIG. 4, the user profile 400 comprises a plurality of records, such as records 405-423, each associated with a different rule. For each rule identified in column 450, the user profile 400 indicates the corresponding score that is assigned to a program satisfying the rule in column 455. Thus, the user profile 400 is traversed until a matching rule is identified. Once a matching rule is identified, the corresponding recommendation score is applied to the matching program. It is noted that an alternate implementation could allow a number of rules to be satisfied by a given program. Thus, in accordance with the present invention, the number of satisfied rules may be indicated, as well as the attribute-value pairs contributing to each rule. In accordance with the present invention, discussed further below in conjunction with FIGS. 5 and 6A-6C, the attributes that contribute to the matching rule are optionally indicated, together with the overall program score in the program grid. For example, if a given program has a station_call_sign of WNBX and a title of "Saturday Night," the program will be classified under leaf node 370 as a positive example. In the program grid, the program recommendation score of 100.0% is indicated, together with an indication of the attribute-value pairs contributing to the score (station="WNBX" and title="Saturday Night"). FIG. 5 is a flow chart describing an exemplary display recommendation process 500 embodying principles of the present invention. As shown in FIG. 5, the display recommendation process 500 initially obtains the electronic program guide (EPG) 110 during step 510 for the time period of interest. Thereafter, the display recommendation process 500 obtains the recommendation score from the recommender 100 for each available program in the time period of interest during step 520. The display recommendation process 500 then identifies one or more of the significant attributes contributing to the program recommendation score during step 530. Finally, the display recommendation process 500 displays the modified program grid to the user during step 540 with each available program displayed together with the overall recommendation score (or a corresponding visual cue) and, optionally, an indication of the contribution of one or more of the significant attributes to the overall recommendation score. The user can thereafter interact with the modified program grid using known techniques, for example, to select programs, automatically record programs or to program warnings that will automatically notify the user when a particular program is being presented. In one illustrative presentation format, the score ranges are divided up and mapped directly to colors, in the manner described above. For example, if a particular feature has a score of 95, and all values between 86 and 100 are assigned the color dark green, then the contributing attributes will be represented by a dark green bar. If the corresponding cell in the program grid is selected, then the attribute associated with the bar could appear in textual form or the bar could be always displayed in the corner of the cell and only the text would appear when the cell is selected. In a further variation, the value of the recommendation score or component scores would be used to set the height within a bar or the intensity of the color. For example, if the user profile 400 for a particular user has a rule that assigns a score of 100.00 to any program with the title "World News," then any programs appearing in the program grid with the title "World News," should be assigned a score of 100. Furthermore, the cell in the program grid should indicate that the most significant feature contributing to the overall score is the title itself. In such a case, a color bar could be displayed using any of the visual cues discussed above. FIG. 6A is a sample table from the electronic program guide 600 in accordance with a first embodiment of the invention. Specifically, the embodiment of FIG. 6A presents each program together with the overall recommendation score directly and an indication of the most significant contributing attribute. Thus, a user can review the electronic program guide 600 and quickly identify the programs having the highest score and the most desirable attribute. FIG. 6B is a sample table from the electronic program guide 600 in accordance with a second embodiment of the invention. Specifically, the embodiment of FIG. 6B presents each program together with a numerical mapping of the recommendation score onto a color scheme, in the manner described above. In addition, each cell provides an indication of the most significant attribute that contributes to the overall recommendation score. It is noted that for a color mapping implementation, a range of scores can be discretely mapped to a given color, as discussed above, or a score can be mapped to a color in a continuous fashion. FIG. 7A again shows such a discrete mapping of scores, while FIG. 7B represents scores being mapped in a continuous fashion. Thus, a user can review the electronic program guide 600 and quickly identify the programs with dark green, associated with the mostly strongly recommended programs. FIG. 6C is a sample table from the electronic program guide 600 in accordance with a third embodiment of the invention. Specifically, the embodiment of FIG. 6C presents each program together with a numerical mapping of the recommendation score onto a size-of-text scheme, in the manner described above. In addition, each cell provides an indication of the most significant attribute that contributes to the overall recommendation score. Thus, a user can review the electronic program guide 600 and quickly identify the programs with a thumbs up symbol ({character pullout}) and printed with the largest font. The actual intensity or saturation values are computed using well-known algorithms in computer graphics. Although RGB (red, green, blue) values are required for the display hardware, it is generally easier to determine values according to the HSV (hue, saturation, value) model and then convert the result to a RGB representation. First, a hue value is selected corresponding to the color chosen for a given range of recommendation scores:
Hue Score
Value Color Range
0 Red 90-100
0.160 Yellow 80-90
0.333 Green 70-80
0.6 Blue 60-70
Saturation is computed from n, the number of programs in the range. If n has a value greater than 10, n is replaced by 10. Then, the saturation value is the fraction n/10. Finally, the value is fixed at 1.0. This triple (hue, saturation, value) is then converted to (red, green, blue) according to a well-known algorithm. See, for example, "Fundamentals of Interactive Computer Graphics," by J. D. Foley and A. Van Dam, Addison-Wesley Publishing Company, ISBN 0-201-14468-9 (1982). It is to be understood that the embodiments and variations shown and described herein are merely illustrative of the principles of this invention and that various modifications may be implemented by those skilled in the art without departing from the scope and spirit of the invention.
|
Same subclass Same class Consider this |
||||||||||
