Home
Patent Search
IMT Blog
REGISTER
|
SIGN IN
United States Patent Application
20020129368
Kind Code
A1
Schlack, John A. ; et al.
September 12, 2002
Profiling and identification of television viewers
Abstract
Profiling a television viewer by monitoring and processing, locally at a television viewing environment, the viewer's interactivity (e.g., via a remote control unit) with the television viewing environment. Generating one or more profiles for each viewer based on one or more of the multitude of interactions of each viewer and on, in general, the viewing habits and preferences of the viewer. Automatically and reliably, detecting or inferring at a particular time, which specific individual or individuals, are actually interacting with the TV in household comprising more than one individual. Such viewer identification and profile generation can be used to facilitate the delivery of targeted content, including targeted advertising.
Inventors:
Schlack; John A.
(Southampton, PA)
, Sutton; Andrew
(Norristown, PA
)
, Rampulla; Andrew J.
(Quakertown, PA
)
, Eldering; Charles A.
(Doylestown, PA
)
Correspondence Name and Address:
300 NORTH BROADSTREET
EXPANSE NETWORKS, INC.
DOYLESTOWN
PA
18901
US
Series Code:
998979
Filed:
October 31, 2001
U.S. Current Class:
725/46
U.S. Class at Publication:
725/46
Intern'l Class:
H04N 005/445
Claims
What is claimed is:
1. A method for profiling a plurality of identities of a television viewing audience based on the interactivity of the identities with a television, the method comprising: monitoring user interactions with the television; filtering the user interactions into at least one interaction category; processing each of the at least one interaction categories in order to create at least one category profile for each associated category, wherein each of the at least one category profiles identify attributes about the user for that category of interaction; and generating an interaction profile by combining all of the category profiles.
2. The method of claim 1, wherein the at least one interaction category includes at least some subset of channels and volume levels.
3. The method of claim 1, wherein said monitoring includes monitoring time associated with each of the user interactions; and said processing includes processing at least some subset of data from at least some subset of the at least one interaction category with respect to time in order to create at least one category profile.
4. The method of claim 3, wherein the at least one category profile includes at least some subset of channel viewing duration, channel dwell time, channel surf order, channel holding factor, channel volume level, channel selects, and channel change frequency.
5. The method of claim 1, further comprising detecting an initiation of a television viewing session; and detecting a termination of the television viewing session, wherein said monitoring, filtering, processing and generating are continually performed for the television viewing session in order to generate a session profile.
6. The method of claim 5, further comprising generating a signature profile based on the session profile.
7. The method of claim 6, further comprising storing the signature profile.
8. The method of claim 6, wherein said generating a signature profile includes correlating the session profile to a plurality of pre-existing signature profiles.
9. The method of claim 8, wherein said correlating includes correlating at least a portion of the category profiles that make up the session profile with corresponding portions of category profiles that make up the plurality of pre-existing signature profiles.
10. The method of claim 9, wherein said correlating at least a portion of the category profiles includes applying weighting factors to the category profiles.
11. The method of claim 8, wherein said correlating is iteratively performed while the session profile is being generated.
12. The method of claim 8, wherein said generating a signature profile further includes determining if the session profile satisfies a correlation threshold with at least one of the pre-existing signature profiles.
13. The method of claim 12, wherein said generating a signature profile further includes selecting the pre-existing signature profile having highest correlation value over the correlation threshold; and updating the selected pre-existing signature profile to include the session profile.
14. The method of claim 13, wherein said updating includes updating the selected pre-existing signature profile by adding the session profile on a time weighted basis.
15. The method of claim 13, wherein said updating is done at a predetermined time interval.
16. The method of claim 15, wherein the predetermined time interval is an end of day part.
17. The method of claim 13, wherein said updating is done once the viewing session has been terminated.
18. The method of claim 13, further comprising comparing the updated signature profile to the plurality of pre-existing signature profiles to determine whether the updated signature profile exceeds a threshold correlation with at least one of the other pre-existing signature profiles; and combining the updated signature profile with a most correlated pre-existing viewing signature profile if the correlation threshold was exceeded.
19. The method of claim 18, wherein said comparing includes comparing at least a portion of the category profiles that make up the updated signature profile with corresponding portions of category profiles that make up the plurality of pre-existing signature profiles.
20. The method of claim 19, wherein said comparing at least a portion of the category profiles includes applying weighting factors to the category profiles.
21. The method of claim 18, wherein said combining combines the updated viewing signature profile and the most correlated pre-existing signature profile on a time weighted basis.
22. The method of claim 12, wherein said generating a signature profile further includes making the session profile a new signature profile when the session profile does not satisfy the correlation threshold with any of the preexisting signature profiles.
23. The method of claim 5, further comprising determining whether the session profile satisfies a minimum session threshold; and discarding the session profile when the viewing session profile does not satisfy the minimum session threshold.
24. The method of claim 23, wherein the minimum session threshold is a minimum session duration.
25. The method of claim 7, further comprising ranking the pre-existing signature profiles based on viewing attributes, when total number of viewing signature profiles stored exceeds a pre-determined maximum number; and discarding lowest ranked pre-existing signature profile.
26. The method of claim 25, wherein the viewing attributes include at least a subset of total viewing duration and recency of signature profile modification.
27. The method of claim 8, wherein the pre-existing signature profiles are created and stored independently of any session profiles of the television household audience.
28. The method of claim 5, wherein the at least one category profile is a viewing duration profile identifying various viewing duration attributes for the viewing session.
29. The method of claim 28, wherein the various viewing duration attributes include at least some subset of average viewing duration, viewing duration by day, viewing duration by day-part, channel viewing duration, source network viewing duration, program genre viewing duration, program category viewing duration, and program viewing duration.
30. The method of claim 5, wherein the at least one category profile is a channel change frequency profile identifying various channel change frequency attributes for the viewing session.
31. The method of claim 5, wherein the at least one category profile is a holding factor profile identifying various holding factor attributes for the viewing session.
32. The method of claim 5, wherein the at least one category profile is a dwell time profile identifying various dwell time factor attributes for the viewing session.
33. The method of claim 5, wherein the at least one category profile is a surf profile identifying various surfing attributes for the viewing session.
34. The method of claim 33, wherein the surf profile identifies attributes including at least some subset of network surfing, channel surfing, and EPG surfing.
35. The method of claim 5, wherein the at least one category profile is delineated by day or day-part.
36. The method of claim 5, wherein the at least one category profile is a probable demographic trait profile predicting various demographic attributes associated with users during the viewing session
37. The method of claim 36, wherein the probable demographic trait profile identifies attributes including at least some subset of probable gender, probable age, probable education-level, probable income-level, and probable ethnicity.
38. The method of claim 5, wherein the user interactions include at least a subset of channel changes, volume changes, record commands, EPG activation.
39. The method of claim 5, wherein said detecting an initiation includes detecting a television power-on event as the initiation of the television viewing session.
40. The method of claim 5, wherein said detecting an initiation includes detecting interactivity of the television viewing audience with the television as the initiation of the television viewing session.
41. The method of claim 5, wherein said detecting an initiation includes detecting a predetermined event as the initiation of the television viewing session.
42. The method of claim 41, wherein the predetermined event is a day or day-part transition.
43. The method of claim 5, wherein said detecting a termination includes detecting a television power-off event as the termination of the television viewing session.
44. The method of claim 5, wherein said detecting a termination includes detecting inactivity of the television viewing audience with the television as the termination of the television viewing session.
45. The method of claim 5, wherein said detecting a termination includes detecting a predetermined event as the termination of the television viewing session.
46. The method of claim 5, wherein said detecting a termination includes detecting that a different identity is interacting with the television as the termination of the television viewing session.
47. The method of claim 46, wherein said detecting that a different identity is interacting with the television includes detecting when current interactions with the television deviate from the session profile generated to that point in the session.
48. The method of claim 47, wherein said detecting when current interactions with the television deviate from the session profile generated to that point includes comparing at least a portion of the category profiles that make up the current interactions with corresponding portions of category profiles that make up the session profile generated to that point.
49. The method of claim 48, wherein said comparing at least a portion of the category profiles includes applying weighting factors to the category profiles.
50. The method of claim 5, wherein said detecting a termination includes iteratively correlating the session profile to a plurality of pre-existing signature profiles; matching the session profile to one of the plurality of pre-existing viewing signature profiles having the highest correlation if the correlation is above a predefined matching threshold; iteratively correlating the session profile to the matched signature profile; and terminating the viewing session when the session profile deviates beyond a pre-determined termination threshold from the matched signature profile.
51. The method of claim 50, wherein said iteratively correatfing the session profile to a plurality of pre-existing signature profiles includes correlating at least a portion of the category profiles that make up the session profile with corresponding portions of category profiles that make up the plurality of pre-existing signature profiles.
52. The method of claim 51, wherein said correlating at least a portion of the category profiles includes applying weighting factors to the category profiles.
53. The method of claim 50, wherein said iteratively correlating the session profile to the matched signature profile includes correlating at least a portion of the category profiles that make up the session profile with corresponding portions of category profiles that make up the matched signature profile.
54. The method of claim 53, wherein said correlating at least a portion of the category profiles includes applying weighting factors to the category profiles.
55. The method of claim 5, further comprising receiving specific content for display on the television based on the session profile.
56. The method of claim 5, further comprising correlating the session profile with advertisement profiles; and selecting an advertisement associated with highest correlation advertisement profile for display on the television;
57. The method of claim 56, wherein said correlating includes correlating at least a portion of the category profiles that make up the session profile with corresponding portions of advertisement profiles.
58. The method of claim 57, wherein said correlating at least a portion of the category profiles includes applying weighting factors to the category profiles.
59. The method of claim 1, further comprising retrieving data associated with at least a subset of the user interactions, wherein said filtering includes filtering the user interactions into the at least one interaction category based at least in part on the associated data.
60. The method of claim 59, wherein the retrieved data includes at least some subset of programs, networks, program genre, and program categories associated with each channel selected during the session.
61. A system for profiling a plurality of identities of a television viewing audience based on the interactivity of the identities with a television, the system comprising: means for monitoring user interactions with the television; means for filtering the user interactions into at least one interaction category; means for processing each of the at least one interaction categories in order to create at least one category profile for each associated category, wherein each of the at least one category profiles identify attributes about the user for that category of interaction; and means for generating an interaction profile by combining all of the category profiles.
62. The system of claim 61, wherein said means for monitoring monitors time associated with each of the user interactions; and said means for processing processes at least some subset of data from at least some subset of the at least one interaction category with respect to time in order to create at least one category profile.
63. The system of claim 61, further comprising means for detecting an initiation of a television viewing session; and means detecting a termination of the television viewing session, wherein said means for monitoring, said means for filtering, said means for processing and said means for generating continually operate for the television viewing session in order to generate a session profile.
64. The system of claim 63, further comprising means for generating a signature profile based on the session profile.
65. The system of claim 64, wherein said means for generating a signature profile correlates the session profile to a plurality of pre-existing signature profiles; determines if the session profile satisfies a correlation threshold with at least one of the pre-existing signature profiles; selects the pre-existing signature profile having highest correlation value over the correlation threshold; and updates the selected pre-existing signature profile to include the session profile.
66. A method of generating a profile for an entity interacting with a television based on one or more interactions of the entity with the television, the method comprising: monitoring interactivity of the entity with the television; retrieving data associated with at least some subset of the interactivity; organizing the interactivity into interactivity categories based at least in part on the retrieved data; and generating the profile based at least in part on the interactivity categories.
67. The method of claim 66, wherein said monitoring includes monitoring at least some subset of channel change activity, volume control activity, and EPG activity.
68. The method of claim 66, wherein the interactivity categories include at least some subset of channels, networks, genres of programs, programs, genre of ads, and ads.
69. The method of claim 66, wherein the interactivity categories are segregated by day part.
70. The method of claim 66, wherein the profile captures viewing habits for the entity.
71. The method of claim 70, wherein the viewing habits include entity preferences for at least some subset of channels, networks, program genre, programs, ad genre, and ads.
72. The method of claim 71, wherein the entity preferences include at least some subset of viewing duration, dwell time, holding factor, and volume level.
73. The method of claim 70, wherein the viewing habits include at least some subset of channel change frequency, channel change order, volume levels, and EPG use.
74. The method of claim 70, wherein the viewing habits are broken out by day part.
75. The method of claim 66, wherein the profile predicts demographic traits associated with the entity.
76. The method of claim 75, wherein the demographic traits are in the form of probabilistic determinations.
77. The method of claim 75, wherein the demographic traits are generated by applying heuristic rules to the interactivity categories.
78. The method of claim 66, further comprising delivering specific content to the entity based on the profiles.
79. The method of claim 78, wherein the specific content includes advertising.
80. The method of claim 66, further comprising comparing the profile to a plurality of signatures that better defines attributes associated with the entity.
81. The method of claim 80, wherein each of the plurality of signatures are a compilation of associated profiles generated from previous interactions with the television.
82. The method of claim 66, wherein the retrieved data includes at least some subset of programs, networks, program genre, and program categories associated with each channel selected by the entity.
83. A system for generating a profile for an entity interacting with a television based on one or more interactions of the entity with the television, the system comprising: means for monitoring interactivity of the entity with the television; means for retrieving data associated with at least some subset of the interactivity; means for organizing the interactivity into interactivity categories based at least in part on the retrieved data; and means for generating the profile based at least in part on the interactivity categories.
84. The system of claim 83, wherein said means for generating the profile captures at least some subset of viewing duration for channels, networks, program genre, and programs; dwell time for channels, networks, program genre, and programs; holding factor for channels, networks, program genre, and programs; channel change frequency; surf order; and volume level.
85. The system of claim 83, wherein said means for generating the profile applies heuristic rules to the interactivity categories in order to generate a demographic profile that predicts demographic traits associated with the entity.
86. A method of identifying which subscriber from a plurality of potential subscribers is interacting with a television, wherein an actual identity of the subscriber is not required as the subscriber is identified by specific interactivity traits and the subscriber may be a single user or a plurality of users, the method comprising: monitoring interactivity with the television; generating a session profile based on the interactivity; comparing the session profile with one or more stored signature profiles, wherein each signature profile is associated with a particular user or group of users; and identifying the user or group of users interacting with the television based on said comparing.
87. The method of claim 86, wherein the session profile and the signature profiles identify viewing habits of the users including at least some subset of program genre viewing habits, program category viewing habits, network viewing habits, and dwell time habits.
88. The method of claim 86, wherein the session profile and the signature profiles identify probable demographic traits of the users.
89. The method of claim 88, wherein the demographic traits are used to distinguish the session profile from the signature profiles.
90. The method of claim 88, wherein the demographic traits are generated by applying heuristic rules to the interactivity.
91. The method of claim 90, wherein the heuristic rules are applied to program genre and program categories viewed.
92. The method of claim 90, wherein the heuristic rules are applied based on time of viewing.
93. The method of claim 86, further comprising retrieving data associated with at least some subset of the interactivity, wherein said generating includes generating the profile based on the interactivity and the retrieved data.
94. The method of claim 93, wherein the retrieved data includes at least some subset of programs, networks, program genre, and program categories associated with each channel selected by the user.
95. The method of claim 86, further comprising recording time associated with at least some subset of the interactivity, wherein said generating includes generating the profile based on the interactivity and the associated time.
96. The method of claim 86, wherein said comparing includes correlating various categories of the session profile with respective categories in the one or more stored signature profiles.
97. The method of claim 96, wherein said comparing further includes averaging correlations of each of the categories.
98. The method of claim 97, wherein said averaging includes averaging the correlations of each of the categories on a weighted basis.
99. The method of claim 86, wherein the signature profiles are a time weighted average of session profiles generated based on previous interactions with the television.
100. The method of claim 86, wherein the signature profiles are standard profiles that represent various attributes of television viewers.
101. The method of claim 86, further comprising updating the signature profile associated with the identified user to include the session profile at end of current session.
102. The method of claim 101, wherein the end of the current session may be marked by some subset of a power off event, a change in viewing attributes, periods of inactivity, end of programs, transition to a next day part, or transition to a next day.
103. The method of claim 86, further comprising delivering the user or group of users targeted advertisements based on the signature profile they are identified with.
104. A system for identifying which subscriber from a plurality of potential subscribers is interacting with a television, wherein an actual identity of the subscriber is not required as the subscriber is identified by specific interactivity traits and the subscriber may be a single user or a plurality of users, the system comprising: means for monitoring interactivity with the television; means for generating a session profile based on the interactivity; means for comparing the session profile with one or more stored signature profiles, wherein each signature profile is associated with a particular user or group of users; and means for identifying the user or group of users interacting with the television based on said comparing.
105. The method of claim 104, further comprising means for retrieving data associated with at least some subset of the interactivity, wherein said means for generating generates the profile based on the interactivity and the retrieved data.
106. The method of claim 104, further comprising means for recording time associated with at least some subset of the interactivity, wherein said means for generating generates the profile based on the interactivity and the associated time.
107. A device for determining traits associated with an entity interacting with the television, the device comprising: a network interface for receiving program content from a television delivery network; a user interface for interacting with the entity; an event queue for capturing interactions with the entity; and a profile engine for generating a session profile based on the interactions captured in the event queue.
108. The device of claim 107, wherein said network interface also receives program data from the television delivery network and said profile engine generates the session profile based on the interactions and the associated program data.
109. The device of claim 108, further comprising a program database for storing program data.
110. The device of claim 109, wherein the program data stored in the program database includes at least a subset of network, program, program genre, and program category for each channel and each time slot.
111. The device of claim 110, wherein the session profile includes a demographic prediction of the entity and said profile engine generates the demographic prediction by applying heuristic rules to the program genre and program category for each channel selected by the entity.
112. The device of claim 107, further comprising a clock, wherein said event queue records the time of each captured interaction.
113. The device of claim 112, wherein said event queue also uses said clock to capture internal events including at least a subset of end of program and end of day part.
114. The device of claim 107, wherein said profile engine determines session boundaries for each interactivity session and generates a session profile for each interactivity session.
115. The device of claim 115, wherein said profile engine determines session boundaries by identifying specific events including at least some subset of a power on/off event, a change in viewing attributes, periods of inactivity, end of programs, transition to a next day part, and transition to a next day.
116. The device of claim 107, further comprising a profile database for storing signature profiles, wherein a signature profile is a compilation of similar session profiles, each signature profile including at least one session profile.
117. The device of claim 116, wherein said profile engine compares session profiles to the signature profiles and adds the session profile to the signature profile that is most similar as long as a predefined correlation threshold is met.
118. The device of claim 117, wherein the session profile is added on a time weighted basis.
119. The device of claim 116, wherein said profile engine compares session profiles to the signature profiles and stores the session profile in said profile database as a signature profile if the session profile does not meet a correlation threshold with any of the signature profiles.
120. The device of claim 116, wherein said profile engine determines the amount of time associated with a interactivity session and discards the session profile if the interactivity session does not meet a predetermined duration threshold.
121. The device of claim 107, wherein said profile engine includes a plurality of profile filters, each of said plurality of profile filters processing a portion of the events captured in said event queue and generating a portion of the session profile.
122. The device of claim 107, wherein said television delivery system is a cable television system, a switched digital video system, or a satellite delivery system.
123. The device of claim 107, wherein said network interface device transmits the profiles to the television delivery system.
124. The device of claim 107, wherein said network interface device transmits channel change commands to the television delivery system.
125. The device of claim 107, wherein the device is coupled to a television and interaction with the television is communicated therethrough.
126. The device of claim 125, wherein the device is a set-top box.
Description
[0001] This application claims priority under 35 U.S.C. .sctn. 119(e) for Provisional application Nos. 60/260,946 (Docket # T734-00) filed on Jan. 11, 2001 and 60/263,095 (Docket # T735-00) filed on Jan. 19, 2001. Both of the aforementioned applications are herein incorporation by reference, but are not admitted to be prior art.
[0002] This application is related to all of the Applicants co-pending applications, patents and publications listed below. The entire list below is herein incorporated in their entirety but are not admitted to be prior art:
[0003] U.S. application Ser. No. 09/204,888, filed on Dec. 3, 1998
entitled "Subscriber Characterization System" (Docket No. T702-00);
[0004] PCT Application PCT/US99/28528 (WIPO Publication WO 00/33160A3), filed on Dec. 2, 1999 entitled "Subscriber Characterization and Advertisement Monitoring System" (Docket No. T702-00PCT);
[0005] U.S. patent application Ser. No. 09/516,983, filed on Mar. 1, 2000
entitled "Subscriber Characterization with Filters" (Docket No. T702-02);
[0006] U.S. patent application Ser. No. 09/591,577, filed on Jun. 9, 2000
entitled "Privacy-Protected Advertising System" (Docket No. T702-03);
[0007] U.S. patent application Ser. No. 09/635,252, filed on Aug. 9, 2000
entitled "Subscriber Characterization Based on Electronic Program Guide Data" (Docket No. T702-04);
[0008] U.S. application Ser. No. 09/205,653, filed on Dec. 3, 1998
entitled "Client-Server Based Subscriber Characterization System" (Docket No. T703-00);
[0009] U.S. application Ser. No. 09/205,119, filed on Dec. 3, 1998
entitled "Advertisement Monitoring System" (Docket No. T704-00);
[0010] U.S. application Ser. No. 09/516,314, filed on Mar. 1, 2000
entitled "Advertisement Monitoring and Feedback System" (Docket No. T704-01);
[0011] U.S. application Ser. No. 09/452,893, filed on Dec. 2, 1999
entitled "Subscriber Identification System" (Docket No. T705-01);
[0012] PCT Application PCT/US99/28600 (WIPO Publication WO 00/33233), filed on Dec. 2, 1999 entitled "Subscriber Identification System" (Docket No. T705-01PCT);
[0013] U.S. patent application Ser. No. 09/635,253, filed on Aug. 9, 2000
entitled "Subscriber Identification Based on Electronic Program Guide Data" (Docket No. T705-02);
[0014] U.S. Pat. No. 6,298,348, issued on Oct. 2, 2001 entitled "Consumer Profiling System" (Docket No. T706-00);
[0015] PCT Application PCT/US99/28628 (WIPO Publication WO 00/33228), filed on Dec. 2, 1999 entitled "Consumer Profiling and Advertisement Selection System" (Docket No. T706-00PCT);
[0016] U.S. patent application Ser. No. 09/553,637, filed on Apr. 20, 2000
entitled "Advertising Management System for Digital Video Streams" (Docket No. T708-01);
[0017] PCT Application PCT/US00/10633 (WIPO Publication WO 00/64165), filed on Apr. 20, 2000 entitled "Advertising Management System for Digital Video Streams" (Docket No. T708-01PCT);
[0018] U.S. patent application Ser. No. 09/553,099, filed on Apr. 20, 2000
entitled "Advertisement Insertion Techniques for Digital Video Streams" (Docket No. T708-02);
[0019] U.S. patent application Ser. No. 09/568,084, filed on May 10, 2000
entitled "Advertisement Subgroups for Digital Video Streams" (Atty. Docket No. T711-01);
[0020] PCT Application PCT/US00/12710 (WIPO Publication WO 00/69163), filed on May 10, 2000 entitled "Advertisement Subgroups for Digital Video Streams" (Docket No. T711-01PCT);
[0021] U.S. patent application Ser. No. 09/568,477, filed on May 10, 2000
entitled "Advertisement Subgroups for Digital Video Streams" (Docket No. T711-02);
[0022] U.S. patent application number 09/635,539, filed on Aug. 10, 2000
entitled "Delivering targeted advertisements in cable-based networks" (Docket No. T711-03);
[0023] U.S. patent application Ser. No. 09/694,848, filed on Oct. 20, 2000
entitled "Method and Apparatus for Inserting Digital Media Advertisements into Statistical Multiplexed Streams" (Docket No. T712-10);
[0024] PCT Application PCT/US00/29034 (WIPO Publication WO 01/30086A), filed on Oct. 20, 2000 entitled "Method and Apparatus for Inserting Digital Media Advertisements into Statistical Multiplexed Streams" (Docket No. T712-10PCT);
[0025] U.S. patent application Ser. No. 09/796,339, filed on Feb. 28, 2001
entitled "Privacy-Protected Targeting System" (Docket No. T715-10);
[0026] PCT Application PCT/US01/06650 (WIPO Publication WO 01/65453A1), filed on Feb. 28, 2001 entitled "Privacy-Protected Targeting System" (Docket No. T715-10PCT);
[0027] U.S. patent application Ser. No. 09/635,542, filed on Aug. 10, 2000
entitled "Grouping Subscribers Based on Demographic Data" (Docket No. T719-00);
[0028] U.S. patent application Ser. No. 09/635,544 filed on Aug. 10, 2000
entitled "Transporting Ad Characterization Vectors" (Docket No. T720-00);
[0029] U.S. patent application Ser. No. 09/712,790 filed on Nov. 14, 2000
entitled "Queue Based Advertisement Scheduling and Sales" (Docket No. T721-10);
[0030] PCT Application PCT/US01/27217, filed on Aug. 31, 2001 entitled "Targeted Advertising at the Set-Top Box" (Docket No. T721-10PCT);
[0031] U.S. patent application Ser. No. 09/731,606 filed on Dec. 7, 2000
entitled "System for Providing Targeted Advertisements Using Advertiser Specific Target Groups" (Docket No. T721-12);
[0032] U.S. patent application Ser. No. 09/748,949 filed on Dec. 27, 2000
entitled "Advertisement Filtering and Storage for Targeted Advertisement Systems" (Docket No. T721-13);
[0033] U.S. patent application Ser. No. 09/742,527 filed on Dec. 21, 2000
entitled "System and Method for Automatically Managing Avail Inventory Data and Avail Pricing" (Docket No. T721-14);
[0034] U.S. patent application Ser. No. 09/748,942 filed on Dec. 27, 2000
entitled "Advertisement Distribution System for Distributing Targeted Advertisements in Television Systems" (Docket No. T721-15);
[0035] U.S. patent application Ser. No. 09/742,506 filed on Dec. 21, 2000
entitled "Internet Based Electronic Program Guide Advertisement Insertion Method and Apparatus" (Docket No. T721-16);
[0036] U.S. patent application Ser. No. 09/748,943 filed on Dec. 27, 2000
entitled "Delivering Targeted Advertisements to the Set-Top Box" (Docket No. T721-17);
[0037] U.S. patent application Ser. No. 09/742,534 filed on Dec. 21, 2000
entitled "Queue Based Head-End Advertisement Scheduling Method and Apparatus" (Docket No. T721-18);
[0038] U.S. patent application Ser. No. 09/742,852 filed on Dec. 21, 2000
entitled "System for Rescheduling and Inserting Advertisements" (Docket No. T721-19);
[0039] U.S. patent application Ser. No. 09/750,800 filed on Dec. 28, 2000
entitled "System and Method for Delivering Targeted Advertisements Using Multiple Presentation Streams" (Docket No. T721-20);
[0040] U.S. patent application Ser. No. 09/766,004 filed on Jan. 19, 2001
entitled "System and Method for Delivering Statistically Scheduled Advertisements" (Docket No. T721-21);
[0041] U.S. patent application Ser. No. 09/824,434 filed on Apr. 2, 2001
entitled "Grouping of Advertisements on an Advertising Channel in a Targeted Advertising System" (Docket No. T721-22);
[0042] U.S. patent application Ser. No. 09/658,204 filed on Sep. 8, 2000
entitled "Targeted Advertising Through the Electronic Program Guide" (Docket No. T723-00);
[0043] U.S. Provisional Application No. 60/238,059, filed on Oct. 5, 2000
entitled "Platform Independent Addressable Television Advertising System" (Atty. Docket No. T726-00);
[0044] U.S. Provisional Application No. 60/238,056, filed on Oct. 5, 2000
entitled "Method and System for Addressable Advertising in the Electronic Program Guide" (Atty. Docket No. T727-00);
[0045] U.S. patent application Ser. No. 09/749,255 filed on Dec. 27, 2000
entitled "Scheduling and Linking IPG Ads in Conjunction with Programming Ads in a Television Environment" (Docket No. T727-10);
[0046] PCT Application PCT/US01/31682, filed on Oct. 5, 2001 entitled "Targeting Ads on IPG's Live Programming and Recorded Programming, and Coordinating the Ads therebetween" (Docket No. T727-10PCT)
[0047] U.S. patent application Ser. No. 09/680,622 filed on Oct. 6, 2000
entitled "Method and System for Addressable and Program Independent Advertising During Recorded Programs" (Docket No. T728-10);
[0048] U.S. patent application Ser. No. 09/751,349 filed on Dec. 28, 2000
entitled "Inserting Local Signals During MPEG Channel Changes" (Docket No. T730-10);
[0049] U.S. Provisional Application No. 60/267,370, filed on Feb. 8, 2001
entitled "Presentation Stream Switching Using Channel Maps" (Docket No. T736-00);
[0050] U.S. Provisional Application No. 60/278,612, filed on Mar. 26, 2001
entitled "Formation and Utilization of Cable Microzones" (Docket No. T737-00);
[0051] U.S. Provisional Application No. 60/281,037, filed on Apr. 3, 2001
entitled "Personal Video Recorder (PVR) Market Overview and Advertising Opportunities" (Docket No. T738-00);
[0052] U.S. Provisional Application No. 60/329,992, filed on Oct. 17, 2001
entitled "Personal Video Recorder (PVR) System Requirements and Specification" (Docket No. T738-01);
[0053] U.S. patent application Ser. No. 09/928,024 on Aug. 10, 2001
entitled "Targeting Ads to Subscribers based on Privacy Protected Subscriber Profiles" (Docket No. T741-10); and
[0054] PCT Application PCT/US01/25261, filed on Aug. 10, 2001 entitled "Targeting Ads to Subscribers based on Privacy Protected Subscriber Profiles" (Docket No. T741-01PCT).
BACKGROUND OF THE INVENTION
[0055] Advertising forms an important part of broadcast programming including broadcast video (television), radio and printed media. The revenues generated from advertisers subsidize and in some cases pay entirely for programming received by subscribers. For example, over the air broadcast programming (non-cable television) is provided entirely free to the subscribers and is essentially paid for by the advertisements placed in the shows that are watched. Even in cable television systems and satellite-based systems, the revenues from advertisements subsidize the cost of the programming, and were it not for advertisements, the monthly subscription rates for cable television would be many times higher than at present. Radio similarly offers free programming based on payments for advertising. The low cost of newspapers and magazines is based on the subsidization of the cost of reporting, printing and distribution from the advertising revenues.
[0056] Along with the multitude of programming choices that the television viewer faces, the viewers are subject to advertisements. While advertisements are sometimes beneficial to subscribers and deliver desired information regarding specific products or services, consumers generally view advertising as a "necessary evil" for broadcast-type entertainment. A prior art (present model) of providing advertisements along with actual programming is based on linked sponsorship. In the linked sponsorship model, the advertisements are inserted into the actual programming based on the contents of the programming, e.g., a baby stroller advertisement may be inserted into a parenting program. Even with linked sponsorship, advertising, and in particular broadcast television advertising, is mostly ineffective. That is, a large percentage, if not the majority, of advertisements do not have a high probability of affecting a sale. In addition to this fact, many advertisements are not even seen/heard by the subscriber who may mute the sound, change channels, or simply leave the room during a commercial break. The reasons for such ineffectiveness are due to the fact that the displayed advertisements are not targeted to the subscribers' needs, likes or preferences. Generally, the same advertisements are displayed to all the subscribers irrespective of the needs and preferences of the subscribers.
[0057] In order to deliver more targeted programming and advertising to subscribers, it is necessary to understand their likes and dislikes to a greater extent than is presently done today. Targeting of an ad requires knowing certain attributes of the target viewer, demographic, psychograph, and any data relevant to determining the relative appropriateness of an ad for the particular viewer. Systems which identify subscriber preferences based on their purchases and responses to questionnaires allow for the targeted marketing of literature in the mail, but do not in any sense allow for the rapid and precise delivery of programming and advertising which is known to have a high probability of acceptance to the subscriber. In order to determine which programming or advertising is appropriate for the subscriber, knowledge of that subscriber and of the subscriber's programming preferences is required. Characterizing or profiling viewers based on viewing habits may be used to achieve targeted advertising.
[0058] Methods for monitoring the viewing habits of television viewers, for classifying TV programming into categories, and for using the viewing habits for determining viewing preferences have been previously disclosed. For example
[0059] Bedard (WIPO publication WO 98/21877A2), assigned to Hyundai Electronics of San Jose, Calif., discloses a method for monitoring a viewer's viewing habits in order to arrange an electronic program guide (EPG) and determine viewing preferences;
[0060] Barton et al. (WIPO publication WO 00/59223), assigned to TIVO, Inc. of Alviso, Calif., discloses a data storage and scheduling system in a personal video recorder (PVR). Based on past viewing habits/preferences, the PVR automatically records desired programs; and
[0061] Maissel et al. (WIPO publication WO 99/01984A1), assigned to NDS Limited of Middlesex, England, discloses a method of customizing the EPG by monitoring viewing behavior to create a preference profile.
[0062] A method for delivering targeted ads to different demographic groups in a television environment was disclosed by Wachob (U.S. Pat. No. 5,155,591), assigned to General Instrument of Hatboro, Pa. Wachob discloses a cable television system for broadcasting different commercial messages to different demographically targeted audiences. Demographic information is obtained and targeted audiences are formed based on subscriber address (i.e., geographic location) or on household survey information such as a viewing habit diary kept by the subscriber.
[0063] Methods for delivering advertising or other customized programming to viewers in a television environment based on previous viewing habits or menu selections has previously been disclosed. For example, Despain et al. (WIPO publication WO 00/14951), assigned to Next Century Media, Inc. of New Paltz, N.Y., discloses a system for targeted advertising in a digital system. In the system, a digital set-top box (STB) captures and uploads household data viewing preferences to the cable operator head end, which can then be used to deliver targeted ads and other content to the viewer based on the viewer preferences. An on-screen questionnaire is used to elicit demographic attributes and preferences from viewers. "Boo" and "applause" buttons on the remote control are used by the viewer to indicate viewer likes/dislikes. Channel change data can be captured and sent upstream, and in conjunction with data from the questionnaires and interactive buttons, may be used to provide each viewer with their own custom menu and forms of customized programming. However, Despain et al. do not teach local storing and processing of data to generate a viewer profile to be stored and utilized at the STB. Moreover, it does not teach specific methods on how to create a demographic, psychographic or other viewer profile from a multitude of viewer interaction data or how to correlate or use those profiles for the delivery of targeted advertisements.
[0064] A preference agent for monitoring television programs watched by a viewer is disclosed in Gogoi et al. (WIPO publication WO 99/65237), assigned to Metabyte, Inc. of Freemont, Calif. The preference agent, located within a STB or PVR, also retrieves category information about viewed programs, and generates a viewer program preference profile. The preference agent automatically records or suggests programs of interest to the viewer based on the viewer's program preference profile.
[0065] The creation of user profiles on an interactive computer is disclosed in Freeman et al. (U.S. Pat. No. 5,861,881), assigned to ACTV Inc., of Freeman, N.Y. The profiles are based on the selections made during one of the interactive programs, however, are limited to interactive program activity by the viewer, and are not based on general viewing habits or general surf activity.
[0066] Hendricks et al. (U.S. Pat. No. 6,160,989), assigned to Discovery Communications Inc., of Bethesda, Md., discloses a network controller that provides monitoring and control of STBs. The network controller also gathers data received from the STBs to compile subscriber viewing information and programs watched information. The data is processed to generate packages of advertisements, as well as account and billing reports, targeted towards each STB. To build a personal profile, the viewer answers a series of questions presented on a series of questionnaire menu screens.
[0067] Barton et al. (WIPO publication WO 00/59223), assigned to TIVO Inc. of Alviso, Calif., disclose a data storage and scheduling system, wherein viewing preferences can be inferred from viewing patterns, and where the navigation actions of the TV channels by the viewer are recorded, stored, and then sent upstream. However, Barton et al. do not teach or suggest local profiling or viewer identification, or how profiles could be utilized to delivery targeted advertising.
[0068] For the foregoing reasons, a need exists for a method and system for monitoring click-stream and other interactivity of a viewer with the viewer's television viewing environment and generating one more viewer profiles therefrom. Additionally, a need exists for the monitoring of interactivity and generation of viewer profiles to be performed within the television viewing environment (i.e., TV, STB, PVR). Furthermore, a need exists for such profiling to be done in a secure and privacy-protected manner. Moreover, a need exists for a reliable way of automatically, detecting or inferring, which specific individual or individuals, are actually watching the TV in a household comprising more than one individuals at a particular time, and for generating one or more profiles per each individual.
SUMMARY OF THE INVENTION
[0069] The invention comprises a method of characterizing or profiling one or more viewer's, by monitoring and processing at the viewer set-top or receiver, each viewer's interactivity (e.g., via a remote control unit) with the set-top receiver, and then generating one or more profiles for each viewer based on one or more of the multitude of interactions of each viewer and on, in general, the viewing habits and preferences of the viewer. The invention further comprises a method of automatically and reliably, detecting or inferring at a particular time, which specific individual or individuals, are actually watching (i.e., interacting with the remote) the TV in household comprising more than one individual. Such viewer identification and profile generation can be used to facilitate the delivery of targeted content including targeted advertising.
[0070] The invention also comprises a system for carrying out the local (i.e., at the set-top) profiling of viewers based on their viewing preferences and other interactions at the set-top and for distinguishing between viewers in a multi-viewer household. The invention further comprises a profiler or profiling agent, resident at the viewer's receiver or set-top, and whereby the click-stream and other interactivity by a viewer can be monitored and processed to generate one more viewer profiles and for distinguishing between viewers in a multi-viewer household.
[0071] In a preferred embodiment, the profiling agent is resident at a viewer's receiver and is responsible for profiling a single household, and distinct individual members of that household. The set-top box profiler monitors the viewing behavior and other receiver interactivity of the viewers including their viewing preferences and utilizing data about programming viewed or not viewed, derives characteristics about and generates profiles of the household and of individual viewers within the household. In a preferred embodiment, the profiles are comprised of profile categories, including the categories of preferred programs, preferred networks, viewing duration, channel change frequency, and holding factor per program or program category. The program data may be delivered to the set-top box periodically (e.g., on a carousel) or may be delivered with the video (e.g., in the VBI or in the PSI).
[0072] In a preferred embodiment, the profiler identifies different viewing sessions, a period of time during which viewership is static and does not change (i.e., a session of one or more specific viewers), based on viewing and other habits and preferences exhibited by the viewer or viewers, and creates session profiles for each session. Signature profiles are created from one or more correlated session profiles, and subsequent session profiles are correlated and matched with existing signature profiles. Sessions (or session durations) may be defined by, for example, the cycling of power (on/off) of the set-top box, a specific window of time or day-part, periods of inactivity, and monitoring channel change, viewing and other viewer activity.
[0073] In one embodiment, the profiler comprises an event queue that stores viewer interactivity as viewer-generated events. The profile engine accepts events from the event queue, reads database information (e.g., program data), and processes the events to produce the subscriber profiles. Events are dispatched to the profiling engine based on the clock time, and each of these events may be used to update and modify the viewer's profile. In a preferred embodiment the profile engine uses filters to process events. Each filter may handle one or more profiles elements, determining whether or not each specific event is applicable to (i.e., should be used to update) one or more profiles.
[0074] In one embodiment, automatic session detection uses channel change and other information to dynamically determine which viewer is watching television at any given time. In a preferred embodiment, reliable viewer identification is accomplished and more complete, updated and accurate profiles of particular viewers are generated, by combining current session data with historical data for those viewers. This historical data, or signature, is an aggregation of session data for a particular viewer or type of viewer, and reflects a set of viewing and interactivity habits. During a specific session, as the profiler collects viewer interactivity session data, the profiler continuously correlates the session data with existing signature data in order to match the session data to a specific signature. This correlation associates long term viewing habits with a particular user based on their short term viewing habits. Moreover, matching session data with a signature identifies a particular viewer and an associated profile.
[0075] In one embodiment, the signature profile represents an individual viewer. In an alternate embodiment, the signature profile represents a plurality of household viewers. In another embodiment, the signature profile is a standard profile, created independently of any session data or created from aggregated session data from a plurality of household.
[0076] Default or standard signature profiles, comprising standard profile categories may be generated, independent of local viewing sessions, and may be downloaded to the local receiver or set top. Local viewing session profiles are correlated with these standard signature profiles to identify one or more particular attributes of the session viewer.
[0077] Advantages of the invention include the ability to, based on viewing habits and other interactions, identify individual viewers or groups of viewers that possess or share certain preferences, demographic, or other relevant traits, and the ability to identify one or more particular viewers, from among a larger group of viewers, and to reliably identify whether that viewer is a man, a woman, or a child. The identification of specific viewers, based on each viewers current and previous interactivity with a receiver, and the characterization (profiling) of each of those viewers (or groups of viewers) creates enormous opportunities for content providers and advertisers to address their content to an individual or groups of individuals with particular demographic traits or who have particular interests. An additional advantage of the invention is that the local monitoring and profile generation at the set-top is consistent with and affords solutions to security and privacy considerations.
[0078] These and other features and objects of the invention will be more fully understood from the following detailed description of the preferred embodiments that should be read in light of the accompanying drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
[0079] The accompanying drawings, which are incorporated in and form a part of the specification, illustrate the embodiments of the present invention and, together with the description serve to explain the principles of the invention.
[0080] In the drawings:
[0081] FIG. 1 illustrates exemplary television delivery networks for which the current invention could be implemented;
[0082] FIG. 1 illustrates exemplary television delivery systems for which the current system could be implemented;
[0083] FIG. 2A illustrates an exemplary system diagram and architecture of the current invention, according to one embodiment;
[0084] FIG. 2B illustrates an exemplary context diagram of a Viewer Characterization and Profiling System (VCPS), according to one embodiment;
[0085] FIGS. 3A-B illustrate an exemplary head-end channel map table format and channel map table respectfully, according to one embodiment;
[0086] FIGS. 4A-B illustrate an exemplary head-end network table format and network table respectfully, according to one embodiment;
[0087] FIGS. 5A-B illustrate an exemplary head-end BpID table format and BpID table respectfully, according to one embodiment;
[0088] FIGS. 6A-B illustrate an exemplary head-end program table format and program table respectfully, according to one embodiment;
[0089] FIGS. 7A-B illustrate an exemplary set-top box (STB) channel map header format and channel map table format respectfully, according to one embodiment;
[0090] FIG. 8 illustrates an exemplary program schedule;
[0091] FIGS. 9A-C illustrate exemplary STB fixed length program header format and fixed length program record format respectively, according to one embodiment;
[0092] FIG. 10A-C illustrate exemplary STB variable length program header format, network record format, and program record format respectively, according to one embodiment;
[0093] FIG. 11 illustrates an exemplary logic flow of how user interactions are captured, according to one embodiment;
[0094] FIG. 12 illustrates an exemplary class diagram of how the click stream of a viewer is processed to generate a viewer profile, according to one embodiment;
[0095] FIG. 13 illustrates an exemplary subset of genres and categories as defined by the VCPS, according to one embodiment;
[0096] FIG. 14 illustrates an exemplary conversion of program data, according to one embodiment;
[0097] FIG. 15 illustrates an exemplary process flow of genre data, according to one embodiment;
[0098] FIG. 16 illustrates an exemplary preferred program category profile, according to one embodiment;
[0099] FIG. 17 illustrates an exemplary graphical representation of the genre profile of a viewer, according to one embodiment;
[0100] FIGS. 18A-C illustrate exemplary tables for probabilities based on program categories, adjustments to those probabilities based on day part, and normalization of the adjusted probabilities respectively, according to one embodiment;
[0101] FIG. 19 illustrates an exemplary set of conditional probabilities for different genres, according to one embodiment;
[0102] FIG. 20 illustrates an exemplary preferred networks profile, according to one embodiment;
[0103] FIGS. 21A-B illustrate examples of records and graphs of network viewership by day part profile table and graph respectively, according to one embodiment;
[0104] FIGS. 22A-B illustrate exemplary average viewing duration profile table and graph respectively, according to one embodiment;
[0105] FIG. 23 illustrates an exemplary channel change frequency by day part profile, according to one embodiment;
[0106] FIG. 24 illustrates an exemplary holding factor profile, according to one embodiment;
[0107] FIGS. 25A-D illustrate exemplary channel order, surf session and dwell time profiles, and a dwell time graph respectively, according to one embodiment;
[0108] FIG. 26 illustrates an exemplary process flow chart illustrating how sessions are automatically initiated and terminated and new sessions detected, according to one embodiment;
[0109] FIGS. 27A-B illustrate examples of how the time span of a viewing session can be determined and delimited, according to one embodiment;
[0110] FIGS. 28A-C illustrate examples of how viewing sessions can be defined based on viewer activity or inactivity, according to one embodiment;
[0111] FIG. 29 illustrates a sliding window is used to identify session termination and initiation points, according to one embodiment;
[0112] FIG. 30 illustrates sliding windows and their associated data sub-sessions, according to one embodiment;
[0113] FIGS. 31A-B illustrate how session data is compared with the signature data already stored on the VCPS, according to one embodiment;
[0114] FIGS. 32A-B illustrate an exemplary process flow chart of how events are processed and associated with a particular session, and how the sliding window is managed, according to one embodiment;
[0115] FIG. 33 illustrates how session data are correlated and matched to signature data, according to one embodiment;
[0116] FIG. 34 illustrates an exemplary process flow of how session data is saved and matched to a signature, according to one embodiment; and
[0117] FIGS. 35A-B illustrate an exemplary process flow generating the session profile and adding the session profile to a correlated signature profile based on the event queue, according to one embodiment.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
[0118] In describing a preferred embodiment of the invention illustrated in the drawings, specific terminology will be used for the sake of clarity. However, the invention is not intended to be limited to the specific terms so selected, and it is to be understood that each specific term includes all technical equivalents which operate in a similar manner to accomplish a similar purpose.
[0119] With reference to the drawings, in general, and FIGS. 1 through 35
in particular, the method and apparatus of the present invention is disclosed.
[0120] The present invention can be implemented for use with various television (TV) delivery systems including, but not limited to, digital broadcast satellite (DBS) systems, switched digital video (SDV) systems, local multipoint distribution systems (LMDS), multichannel multipoint distribution systems (MMDS), hybrid fiber coax (ARC) systems, the Internet, other cable TV (CTV) systems, or other terrestrial wireless networks. The TV delivery system can deliver programming in various forms, including but not limited to digital video, analog video, or streaming media. The programming may be compressed in accordance with a variety of now known or later discovered compression standards, such as the current Motion Picture Expert Group (MPEG-2) standard for digital video.
[0121] FIG. 1 illustrates exemplary embodiments of three of the most common types of TV delivery networks discussed above with respect to FIG. 1 with which the present invention can be suitably used. These include DBS 100, CTV 120, and very high-speed digital subscriber line (VDSL) 150. A DBS system 100 transmits a programming stream comprising upwards of a hundred channels of TV programming directly from a geo-stationary satellite transmitter 102 orbiting the earth to a receiving antenna 104
mounted on or near each subscriber's house 106. The programming stream is transmitted from the antenna via a cable (not shown) to a satellite receiving station 108 in the form of a set-top box (STB) in the subscriber's house 106. The satellite receiving station (i.e., STB) 108
selects a channel and demodulates the signal for delivery to a monitor 110, such as a television. Most DBS systems 100 are arranged such that data also can be sent in the upstream direction, that is, from the STB 108 to the DBS provider. In most DBS systems 100, the STB 108 also is coupled to the telephone line and is designed and programmed to place telephone calls to the DBS service provider to periodically send information in the upstream direction. Such information commonly may comprise requests for Pay-Per-View (PPV) programs, requests for changes in the subscription (a request that one or more of premium channels be added to the service, etc.).
[0122] A CTV network 120, such as digital cable network, transmits multiple channels of TV information from a head end or central office (HE/CO) 190 via a cable network 122. Particularly, the channels are transmitted via cables 124, such as fiber optic cables, to nodes 126. The nodes are essentially switching/routing stations that service multiple homes (usually a few hundred). The nodes 126 route the signals to individual subscribers 128. For digital cable, the individual subscribers 128 will have STBs 130 that select a particular channel from the transmit stream, demodulate it and forward it for display on one or more monitors (i.e., televisions) 132. Upstream information may be sent from the STB 130 to the HE/CO 190 via a dedicated upstream channel over the cable. In cable systems that do not support two-way communication, the upstream "channel" can be through the telephone as described above in connection with DBS systems 100.
[0123] A VDSL system 150 transmits TV programming over the regular telephone network. Particularly, TV signals are transmitted from a broadband distribution terminal (BDT) 152 within the HE/CO 190 via cables 154, such as fiber optic cables, to a universal service access multiplexer (USAM) 156 that delivers the data to multiple individual subscriber households 160 via regular telephone twisted wire pair 158
using VDSL modems and protocols. The USAM 156 receives a wide bandwidth signal comprising some or all of the television channels. However, because of the bandwidth limitations of twisted pair wire, typically only about one channel of television programming at a time can be delivered from the USAM 156 to the household. Accordingly, the subscriber has a STB 162 that is similar in functionality to the previously discussed STBs for DBS and CTV, except that when the user changes channels such as by operating a remote control, the remote channel change signal is received by the STB 162 and transmitted to the USAM 156 which switches the channel for the user and begins sending the newly selected channel to the household. Such systems are known as SDV systems. SDV systems are essentially fully modern asynchronous two-way communication networks. Accordingly, the STB 162 can transmit information upstream via the same VDSL modem that receives the downstream signals. SDV systems typically operate using an asynchronous transfer mode (ATM) protocol that is well-known in the networking arts.
[0124] In an alternative embodiment, the TV signals are transmitted from the BDT 152 to a broadband network unit (BNU) 164. The BNU 164 delivers the data to individual households 160 using coaxial cable 166.
[0125] It should be noted that STBs are described above with reference to FIG. 1. The current invention may be incorporated in an STB but may also be incorporated in other devices that can perform the same, similar, or additional functions. These devices may include, but are not limited to, TV, Video Cassette Recorder (VCR), Digital Video Recorder (DVR), Personal Video Recorder (PVR), Residential Gateway (RG), and computers. For simplicity the term STB will be used herewithin to cover all the various devices.
[0126] FIG. 2A illustrates an exemplary system diagram and architecture of the current invention, according to one embodiment of the invention. As illustrated, the architecture includes a HE 210 and a STB 220. The HE 210
delivers program content to the STB 220 and may receive commands, such as channel change commands, or viewer profiles 199 from the STB 220. The HE 210 includes a communications manager 212, a program database 214 and a profile database 216. In one embodiment, the HE 210 also includes a compressor 218. The communications manager 212 handles the communications with the STB 220, including packaging and delivering program content to the STB 220 and receiving data, such as commands or profiles, from the STB 220. The program database 214 stores information about the programs to be broadcast. The profile database 216 stores profiles for multiple households connected thereto. The profile database may group or cluster profiles according to similarity. The compressor 218 is used to compress program information prior to being transmitted to the STBs 220.
[0127] The STB 220 receives program content from the HE 210 and delivers the program content to the TV, receives and processes commands from a viewer, and monitors the interactions of the viewer to generate viewer profile(s). The STB 220 includes a communications manager 222, a user interface 224, a profile engine 230, profile filters 240, a profile database 250, a program database 260, a clock 270, and an event queue 280.
[0128] The communications manager 222 handles the communications with the HE 210. The communications manager 222 may receive program content or database downloads (i.e., program data, channel maps) from the HE 210 and may transmit commands (ie., channel changes), profiles (i.e., updated), or other information including anonymous system statistics (i.e., audience measurements). The user interface 224 allows the viewer to interact with the STB 220, for example, via a conventional remote control unit. The viewer interactions include, but are not limited to, channel and volume changes, EPG activity, and participation in interactive entertainment and advertisements.
[0129] The program database 260 stores program data including, but not limited to, name, network, time, and genre of programs being transmitted or to be transmitted from the HE 210. The event queue 280 stores both viewer-generated events and internal events. Viewer-generated events include viewer interactions as mentioned above. Internal events include, but are not limited to, the end of a program or the end of a day part. The clock 270 runs independently within the system. The clock 270 is used to mark the time that the viewer generated events occur and to trigger internal events, such as, program changes, end of day parts, and change of day. The events are dispatched from the event queue 280 to the profiling engine 230 based on the clock 270.
[0130] The profile engine 230 accepts events from the event queue 280 and, if applicable, retrieves program data related to a selected program from the program database 260. The profile engine 230 in conjunction with the profile filters 240, processes the events to produce the viewer profiles 199 which are then stored in the profile database 250. Each of the profile filters 240 handles a single profile element (as will be described further herein).
[0131] It should be noted that typical STBs likely include some type of user interface and network interface (i.e., communications manager). The communications manager 222 and the user interface 224 may be typical components of a STB or slight modifications thereof. Also, the clock 270
may be standard component of a STB. The profile database 250, the program database 260 and the event queue 280 may be a single memory device or may be separate memory devices. The profile engine 230 and the profile filters are resident software applications stored and running on the STB 220. As one of ordinary skill in the art would know, there are numerous variations of this architecture that are well within the scope of the current invention.
[0132] The term program data in the context of the present invention is meant to include and encompass one or more subsets of information, which identifies, describes and generally characterizes specific television programs and television networks, categories of programs and networks, etc. Program data can be readily obtained from several commercial enterprises including TVdata of Glen Falls, N.Y. In a preferred embodiment, program data is used in order to be able to characterize what program and networks are viewed, surfed, or the like. For instance, program data is used to convert channel, date, and time into a program name and content type. This information determines the types of programs that are preferred by a household and how long certain programs hold their attention.
[0133] In a preferred embodiment, the HE 210, or other upstream system, generates and stores the program database 214 and transmits relevant program data to the STB 220. According to one embodiment, the relevant program data are placed on a download carousel, where they are transmitted in their entirety to the STB 220. Alternatively, the relevant program data can be downloaded periodically in smaller increments. In another embodiment, the program data is transmitted with the programs. For example, the program data is transmitted within the vertical blanking interval (VBI) or the program specific information (PSI) of a transport stream, such as, a Motion Picture Expert Group (MPEG-b 2) transport stream. It should be understood however, that many alternate methods for getting the program data exist and the utility and scope of the present invention is not limited by how the data is obtained.
[0134] In one embodiment, the HE 210 aggregates the program data by cable supplier, date, time, and television network to produce a variety of tables. These tables or a variation thereof are downloaded to the STB 220. Furthermore, the STB 220 may receive program data in one format and subsequently process the downloaded program data to produce other tables and alternate formats. As will be evident to those skilled in the art, the format of the program data at the HE 210, the format by which it is downloaded to the STB 220, and the format of the program data stored at the STB 220 can be widely variable. The invention is in no way limited to the specific formats discussed and illustrated below.
[0135] FIG. 2B depicts a context diagram of a Viewer Characterization and Profiling System (VCPS) 290 according to one embodiment of the invention. The VCPS 290 monitors interactivity 291 of one or more viewers 292 with the TV. The interactivity includes, but is not limited to, channel changes, volume changes, EPG activity, and power on/off events. According to one embodiment, the VCPS 290 generates one or more viewer profiles 293
(session profiles 294 and signature profiles 295) based on the interactivity. The viewer profiles 293 identify characteristics about one or more categories of viewing habits of the user, including but not limited to, channel change rate, dwell time, amount of TV watched, volume habits, and EPG habits. According to another embodiment, the VCPS 290
uses program data 296, such as program and network information 297 (i.e., stored in program database 260), to further define the viewer profiles 293 to include viewing preferences related to specific networks, program types, and programs. According to another embodiment, the VCPS 290
utilizes heuristic rules 298 to further define the viewer profiles to infer preferences and demographic traits of the viewer.
[0136] The session profiles 294 identify characteristics about the user (or group of users) for that particular viewing session. The signature profiles 295 are a compilation of closely related session profiles 294
(are associated with the same user or group of users). The VCPS 290 can identify which user (or group of users) are interacting with the TV by correlating the current session profile 294 with one or more signature profiles 295. The session profile 294 is identified with the signature profile 295 having the highest correlation, as long as it meets a predefined correlation threshold. The identification is an identification of preferences and not necessarily an actual identification of the user (or users). The viewer profiles 293 can be used for a variety of purposes including, but not limited to, delivering targeted content including advertising and for distinguishing a particular viewer from a household of multiple viewers.
[0137] FIGS. 3A and 3B illustrate an exemplary channel map table format and channel map table that may be stored in the program database 214. As illustrated in FIG. 3A, the channel map table format includes for each field a column for name 300, type 302 (i.e., integer, string), size 304
(number of bytes), flags 306, and description 308. The fields captured in the channel map table include user perceived channel indicator (UPCI) 310
and broadcast program iID (BpID) 312, which are both required 2 byte integers. The UPCI 310 is the channel number illustrated on the front panel of the STB 220 and the BpID 312 is a service provider's reference number for a particular network or presentation stream. As illustrated in FIG. 3B, the table simply converts the UPCI 310 that the viewer recognizes into the BpID 312 that the HE 210 recognizes. For example, a UPCI of 02 is a BpID of 27.
[0138] FIGS. 4A and 4B illustrate an exemplary network table format and network table that would be stored in the program database 214. As illustrated in FIG. 4A, the network table format includes for each field a column for name 400, type 402 (i.e., integer, string), size 404 (number of bytes), flags 406, and description 408. The fields captured in the network table include network ID (NET_LID) 410, network name (NET_NAME) 412, network call sign (NET_CALL) 414, and network reference (NET_REF) 416. Each of the fields has the characteristics defined in the table. For example, the NET_ID 410 is a 4-byte long integer that is a unique and required field. FIG. 4B illustrates how for each NET_NAME 412 and NET_CALL 414 there is a unique NET_ID 410 assigned and potentially a unique NET_REF 416. For example, WHYY FOX Philadelphia is assigned a NET_ID of 0001, but does not have a NET_REF.
[0139] FIG. 5A illustrates an exemplary BpID table format for a BpID table that would be stored in the program database 214. As illustrated, the BpID table format includes a column for name 500, type 502, size 504, flags 506, and description 508. The fields captured in the BpID table include a unique record ID (BID_ID) 510, the BpID (BID_BPID) 512, a broadcast domain number (BID_BDMNUM) 514, and the NET_ID (BID_NETID) 516. Both the BID_BDMNUM 514 and the BID_NETID 516 are foreign keys that point to the network table (FIG. 4B) and a broadcast table (not illustrated) respectively. FIG. 5B illustrates an exemplary BpID table.
[0140] FIG. 6A illustrates an exemplary program table format for a program table that would be stored in the program database 214. As illustrated, the program table format includes a column for name 600, type 602, size 604, flags 606, and description 608 columns. The fields captured in the program table include a unique program ID (PRG_ID) 610, program start time (PRG_START) 612, program end time (PRG_END) 614, the NET_ID (PRG_NETID) 616, and program title (PRG_TITLE) 618. The program table contains the program data provided by, for example, TVData. As such, the program table should also include the program type and program category (not illustrated) that TVData uses to classify programs. FIG. 6B illustrates an exemplary program table.
[0141] As would be understood by those of ordinary skill in the art, the STB 220 will likely not have sufficient memory to store the entire program database 214 in the program database 260. As such, either the HE 210 will modify the program database 214 and transmit the modified database to the STB 220 or the HE 210 will transmit the entire program database 214 and the STB 220 will process the data and store a modified version thereof. In either event, exemplary headers and table formats for the STB 220 are discussed below.
[0142] Within the STB 220 the channel map and the network tables can be combined into a single table that would be specific to a local service domain or zone. FIG. 7A illustrates an exemplary channel map header format. As illustrated, the channel map header format includes for each field a column for name 700, type 702 (i.e., integer, string), size 704
(number of bytes), flags 706, and description 708. The fields captured in the channel map header include channel map version (version) 710, number of records in the channel map (count) 712 and size in bytes of the record (size) 714.
[0143] FIG. 7B illustrates an exemplary channel map record format. As illustrated, the channel map record format also includes a column for name 700, type 702, size 704, flags 706, and description 708. The fields captured in the channel map record include UPCI 730, BpID 732, network call sign (netcall) 734, network reference number (netref) 736, and an index of the network in a program table (netidx) 738. The netidx 738 has a different meaning based on whether the program database 260 has a fixed or variable number of records (discussed below). As one skilled in the art would recognize, the channel map table size would be the number of presentation streams multiplied by the record size plus the header size. As illustrated the header is 6 bytes and the record is 24 bytes, so if there were 200 presentation streams the channel map table would be 4806
bytes.
[0144] A program table within the STB 220 may be either a fixed or variable length table. For a fixed length program table the time period covered will be divided into time slots of equal length, for example, 5
minutes, 10 minutes, 30 minutes. As would be obvious to one skilled in the art the granularity depends on the amount of storage in the STB 220. The fixed length program table stores information about the programs appearing in those slots for each of the networks. It is possible that one network may have multiple programs during a single time slot. In those cases, the program table captures the program that airs for the majority of the time slot. For example, FIG. 8 illustrates an exemplary program schedule displaying programs 800 airing for each of three networks 810 for the 8:00 to 8:30 time slot 820. While ESPN and CNN each only have one program during this time slot, TBS has two different programs airing in this time slot, since TBS programs are aired at 5 and 35 minutes past the hour. The program data table would assign Ripley's Believe It or Not! to the 8:00 time slot since it covers 25 of the 30
minutes of that slot.
[0145] The fixed record size and fixed slot size allow the VCPS 290 to very rapidly locate the program information for the network at the given time. The fixed length program table is also easily divided into one or two hour increments. This enables the program data for the current time to be transmitted to the STBs 220 quickly and often. In a fixed length table, each network has only one entry per time slot. The program data is found by locating the start of the time slot corresponding to the event time and adding the netidx 738.
[0146] FIG. 9A illustrates an exemplary fixed length program header format. As illustrated, the fixed length program header format includes for each field a column for name 900, type 902, size 904, flags 906, and description 908. The fields captured in the fixed length program header include program table version number (version) 910, number of minutes per slot (slotsize) 912, number of slots (slotcount) 914, starting date/time of the program table (startdate) 916, and number of networks per slot (netcount).
[0147] FIG. 9B illustrates an exemplary fixed length program record format. As illustrated, the fixed length program record format also includes a column for name 900, type 902, size 904, flags 906, and description 908. The fields captured in the fixed length program record include network reference number (netref) 930, program type (type) 932
and the program ID (prgid) 934. The netref 930 verifies that the channel map corresponds to the program table by requiring that this field match the like-named netref field 736 in the channel map corresponding to the network reference number. The prgid 934 is a host-assigned unique program ID, and is used to calculate the holding factor for programs. Programs that are the same, even if aired at different times, will have the same prgid 934. The type 932 contains the type or category of the program corresponding to the prgid 934.
[0148] As one skilled in the art would recognize, the fixed length program table size would be approximately 96K for 200 channels having 30 minute time slots and 24 hours of data (200 channels * 10 bytes/time slot/channel * 48 time slots). If the program table size was too large, the time slots could be increased, the amount of time captured for in the table could be decreased, the netref 930 could be removed so that the verification wasn't performed or other modifications that would be obvious to one of ordinary skill in the art.
[0149] A variable length program table is particularly useful when the accuracy of exactly what program is being viewed is of critical importance. The variable length program table includes a variable length program header (FIG. 10A), a variable length network header (FIG. 10B), and one or more variable length data records (FIG. 10C).
[0150] FIG. 10A illustrates an exemplary variable length program header format. As illustrated, the variable length program header format includes for each field a column for name 1000, type 1002, size 1004, flags 1006, and description 1008. The fields captured in the variable length program header include a program table version number (version) 1010, starting date and time of the program table (startdate) 1012, duration of the program table (duration) 1014, and number of networks (netcount) 1016.
[0151] FIG. 10B illustrates an exemplary variable length network header format. As illustrated, the variable length network header format includes fields for network reference number (NETREF) 1020, and number of programs for the network (count) 1022.
[0152] FIG. 10C illustrates an exemplary variable length data record format. As illustrated, the variable length data record format includes for each program a start time (start) 1030, which is expressed as difference from the startdate 1012, duration of program (duration) 1032
measured in minutes, program type (type) 1034, and a program ID (prgid) 1036.
[0153] In a variable length table, all program data for a single network is specified prior to moving on to the next network. The netidx 738
provides the location for the start of the program data for that network. The program information is then sequentially searched to locate the program time that corresponds to the event. A variable length program table provides the VCPS 290 the most exact data about the programs. Since the number of records is variable, the exact table size is unknown. As would be obvious to one of ordinary skill in the art, the data sizes of the program records can be reduced at the cost of flexibility and accuracy.
[0154] FIG. 11 illustrates an exemplary logic flow of how user interactions are captured by the VCPS 290. The user interface 224
receives user interactions 1100, such as, channel changes 1102 and power on/off 1104, and forwards these interactions 1100 to the event queue 280. The event queue 280 captures these viewer interactions 1100 and time stamps them according to the time 1110 provided by the clock 270. The clock 270 is also used to initiate internal events 1120, such as, change of day part (not illustrated), and end of show 1122, and these internal events 1120 are also stored in the event queue 280. As illustrated, the event queue 280 includes four entries, each entry identifying the time 1110 and the type of event. For example, the first event was a channel change 1102 that occurred at 10:29:55. The entries from the event queue 280 and the time 1110 from the clock 270 are provided to the profile engine 230. In a preferred embodiment, the entries are taken in time order (i.e., first in, first out).
[0155] FIG. 12 illustrates an exemplary class diagram of how the click stream of a viewer is processed to generate a viewer profile. A ClickStreamManager 1210 manages a ClickEventListener 1220, a ClickStreamProcessor 1230, and a ProgramContentManager 1240. The ClickEventListener 1220 listens for events, both internal and via the user interface, and time stamps the event with the time provided by a clock 1250. As one of ordinary skill in the art would recognize, internal events, such as change of day part, change of day, and end of program, are not related to the click stream of a viewer but may still be captured by the ClickEventListener 1220 and processed by the other components of the exemplary class diagram of FIG. 12.
[0156] The ClickStreamProcessor 1230 retrieves events from the ClickEventListener 1220 and, if applicable, requests program data for a selected program from the ProgramContentManager 1240. The ProgramContentManager 1240 retrieves the applicable program data from ProgramContent 1270. The program data includes, but is not limited to, program title, program genre, program category, and network. The ClickStreamProcessor 1230 then processes the events and, if applicable, program data utilizing ClickStreamFilters 1260 to filter events such that only the appropriate event types are used in generating profile categories.
[0157] The ClickStreamFilters 1260 direct and add data to the relevant profile category to generate or update a Profile 1290 comprising multiple profile categories. Such categories, as described further herein, include preferred networks, preferred programs, viewing duration, channel change frequency, and holding factor. The ClickStreamProcessor 1230 also generates a ClickEventRecord 1295, which is a record of events for a given session or other time period.
[0158] In one embodiment, the ClickStreamProcessor 1230 will continually poll the ClickEventListener 1220 for the next event. If no events have been triggered, the ClickStreamProcessor 1230 will sleep for a short period of time. Otherwise, the ClickStreamProcessor 1230 will handle an event and then immediately check for the next event. Event processing is based on the event time. According to this embodiment, the ClickStreamProcessor 1230 handles events, such as channel change and power on/off events, from the remote control to dynamically update a viewer's profile. Thus, the ClickStreamProcessor 1230 spends most of its time polling the ClickEventListener 1220 for new events. When an event occurs, the ClickStreamProcessor 1230 passes the ClickStreamFilters 1260
(an array of profile filters), which extract specific data for the household or viewer profile.
[0159] Referring back to FIG. 2A, the profile filters 250 are a set of components that implement an interface and provide mechanisms to profile the viewer based on viewer interaction with the television. Each event that occurs, whether viewer interaction or an internal event, is passed to each profile filter 250. Each profile filter 250 determines whether or not the event is relevant to the data the profile filter 250 is tracking. Each filter performs an aspect of profiling. For example, one filter may track average channel change frequency while another tracks preferred content.
[0160] In a preferred embodiment, profiles generated by the VCPS 290
include multiple profile categories, each category reflecting distinct relevant characteristics about a viewer's viewing preferences and habits. Examples of profile categories include, but are not limited to:
[0161] preferred programs--measure of the amount of time a viewer(s) watch a particular program or program category;
[0162] preferred networks--measure of the amount of time viewer(s) watch a particular network;
[0163] viewing duration--amount of viewing time per viewing session;
[0164] channel change frequency--average number of channel changes per time period;
[0165] holding factor per program or program category--how much of an entire program or program category a household or individual watches; and
[0166] surf sequence--typical order networks are visited in a surf routine.
[0167] As one of ordinary skill in the art would recognize, there are rumerous other profile categories that could be included that would fall within the scope of the current invention. The current invention is in no way not limited to the categories described herein.
[0168] In order to generate a preferred programs profile, the VCPS 290
collects information (characterizations) about the programs that a viewer or household watches. The characterizations about the programs may include, but is not limited to, types, categories, genres, or some combination thereof. In a preferred embodiment, the characterizations will include genre and category for each program. The genre is a consistent high-level classification of a program (i.e., a generic set of program types or categories), such as sports, comedy, drama, etc. A category is a sub-class of the genre classification that is a more specific classification than the genre.
[0169] FIG. 13 illustrates an exemplary subset of genres 1310 and categories 1320 as defined by the VCPS 290. As illustrated, a comedy genre includes categories for movie, network series, syndicated, and TV movie. As one of ordinary skill in the art would recognize, the number and type of genres 1310, the number and type of categories 1320, and the relationship therebetween can be modified without departing from the scope of the current invention.
[0170] The program genre and categories may be defined by the VCPS 290, received from a service provider (e.g., TVData), or derived from a service provider. In a preferred embodiment, program characterizations are obtained from, for example, TVData and these characterizations are converted into genre and category. TVData provides a program type and category for each category and these characterizations are translated (e.g., mapped) into the program classifications of genre and category.
[0171] FIG. 14 illustrates an exemplary conversion of program type 1400
and program category 1410 provided by TVData converted to program genre 1420 and program category 1430 in the VCPS 290. For example, a TVData program type "SY" (syndicated) and category "comedy" maps to a VCPS genre "comedy" and type "syndicated". The TVData category is not necessarily a subset of the type. Moreover a "*" indicates a "match all" meaning that the type or category matches all categories or types respectively. The VCPS 290 types are a subset of the genre.
[0172] The VCPS 290 tracks the total number of seconds that a viewer watches particular program categories (genres). The VCPS 290 responds to all channel change and power on/off events. When a channel change occurs, the VCPS 290 records the time and network, and locates the program's characteristics from the program table. When the next channel change occurs, the VCPS 290 notes the elapsed time and stores that elapsed time in an array. Because it is possible that a program will end prior to a channel change, the VCPS 290 saves the elapsed time to the appropriate program category (genre) and then gets the program information for the program that is about to air such that when a channel change or power off event occurs the appropriate time spent on each program category will be accurate.
[0173] The VCPS 290 may also track the preferred program categories (genres) of the household by day or day part. A day part is a range of time during the day that is used by advertisers to characterize viewers. The VCPS 290 can create an event for a day part by saving elapsed time to the specific day part and generating a new event for the next day part.
[0174] FIG. 15 illustrates an exemplary process flow for processing genre data in order to generate a viewer profile. The process starts when a new event is detected and is passed to the genre filter at step 1501. A check is made as to whether or not the event is a power on event or a new session event at step 1503. If yes at step 1503, the current session data up to that point is cleared at step 1505, and the current channel and event time are saved (i.e., stored in memory for the new session) at step 1507. If no at step 1503, then the actual program data associated with the channel tuned to at the event time is obtained at step 1509. The genre for the particular program is then determined, utilizing the program data, at step 1511. The total genre viewing time is calculated at step 1513. The current session profile is then updated to reflect the total genre viewing time for that session at step 1515. The current channel and event time are then saved at step 1507. The processing of the event is then complete (step 1517).
[0175] FIG. 16 illustrates an exemplary preferred program category (genre) profile 1600, reflecting the top five program categories (genres) chosen by this viewer and the associated relative durations that those program categories were watched. The category profile 1600 includes program type (genre) 1610, duration 1620 (total time spent viewing each program type 1610 in HH:MM:SS format), percent 1630 (percentage of the total viewing time spent viewing that the particular program type) and a bar graph 1640
reflective of the percent 1630, or the duration 1620, or both for each program type 1610. As illustrated, the number one program type (genre) 1610 is shopping, which this particular viewer has viewed over 30% of the time.
[0176] Note that this example profile is an aggregated profile comprising more than a weeks worth of data. A similar session profile comprising a much smaller span of viewing time may also be obtained by the VCPS 290. As one of ordinary skill in the art would recognize, there are numerous other formats of this graph that would be well within the scope of the current invention. For example, the bar graphs 1640 could be a pie chart or the chart could be further broken out by day or day part.
[0177] FIG. 17 illustrates an exemplary graphical representation of the genre profile of a viewer based on viewing time of each genre. The genres 1700 (i.e., art, entertainment) are displayed along the horizontal axis and the viewing duration (time) 1720 is displayed along the vertical axis. In the exemplary illustration, the total viewing time 1730 is identified in the upper right hand corner. As illustrated, the entertainment genre is watched the most at approximately 10 hours of the total of nearly 23 hours of programming that have been monitored. As one of ordinary skill in the art would recognize, the graph could have different styles, formats, or orientations, or could be a table or other representation, without departing from the scope of the current invention. For example, the graph could be further broken out by day or day part.
[0178] As previously discussed, program categories 1320 are more specific than genres 1310 and therefore provide for increased granularity. The VCPS 290 also tracks program categories 1320 in the same fashion as it tracks program genre 1310. An exemplary graphical representation of the program category profile is not illustrated. However, as one of ordinary skill in the art would recognize, the graph of the program category profile would be similar to the genre profile illustrated in FIG. 17
except that it would have more data points and each data point would likely account for less time. In one embodiment, all the program categories may be illustrated on one graph. In an alternative embodiment, a separate graph may be illustrated for each genre. According to one embodiment, the program category profile can be broken out by, for example, day part.
[0179] A viewer type profile estimates what type of viewer (i.e., man, woman or child) is watching a particular program. In one embodiment, the VCPS 290 uses program classifications (genre/category) and day part information to derive the estimates. FIG. 18A illustrates an exemplary table of probabilities of the viewer type based on the genre/category of programs. The table includes a genre/category column 1810 and columns associated with the probability of a viewer of a program having that genre/category being a male 1812, a female 1814 or a child 1816. As illustrated in the exemplary table, the probability of a man watching an action/movie is 40%, while the probability is 30% for woman and children.
[0180] The VCPS 290 may adjust the probability data based on the day part. For example, because the probability that a daytime viewer is a man is lower than the probability that the viewer is a woman or a child, this fact results in an adjusted and reduced probability that the daytime viewer is male. FIG. 18B illustrates an exemplary day part adjustment table, according to one embodiment. The table includes a day part column 1820 and adjustment columns for men 1822, women 1824, and children 1826. The adjustment factor is multiplied by the probability defined in the table of FIG. 18A to determine an adjusted probability. An adjustment value of 1.0 indicates that no adjustment is required, while values smaller than 1.0 will adjust the probability downwards, and values larger than 1.0 will adjust the probability upwards. For example, the adjustment factor for weekdays between 09:00-16:00 is 0.3, 0.9 and 1.0, for men, women and children respectively.
[0181] As one of ordinary skill in the art would recognize, applying the adjustment factor will likely mean that the sum of the probabilities for a particular day part will not equal 1.0. FIG. 18C illustrates an exemplary table for normalizing the probabilities. The table includes columns for viewer type 1830 (man, woman, child), for adjusted probability 1840, adjusted sum 1850, and normalized probability 1860. Using a viewer watching an action movie (respective probabilities of 0.4, 0.3 and 0.3 from FIG. 18A), during daytime hours (respective adjustments of 0.3, 0.9, 1 from FIG. 18B) the viewer has an adjusted probability of 0.12, 0.27 and 0.3 of being a man, women or child respectively (see column 1840). As illustrated, the adjusted sum 1850 is 0.69 and the normalized probabilities 1860 are 0.174, 0.391 and 0.435 respectively.
[0182] The distinction of a viewer type by gender, as described above, can be readily extended to other viewer types and demographics, and in general any set of heuristic rules or probabilities can be applied to the viewer interactivity data to generate predicted viewer traits and demographics, as will be evident to those skilled in the art. The present invention is not meant to be limited to distinguishing three viewer types as described, but could include additional sets of rules and probabilities which, in conjunction with viewer interactivity data, can be used to derive or infer viewer demographics and other attributes.
[0183] FIG. 19 illustrates an exemplary table of conditional probabilities of the likely viewer demographic makeup for different program categories (genres). The table includes different demographic groups 1910 (i.e., age, income) for different program categories 1920 (i.e., news, fiction). Each demographic group 1910 has numerous categories 1930 defined thereunder (i.e., ages 0-10, 10-18). Each cell in the table contains a conditional probability that represents the likelihood that the viewer or viewing group watching a particular category (genre) of program 1920 is within a particular category 1930 for each demographic group 1910. For example, as illustrated there is a 10% chance that a viewer watching the news will be between the ages of 0-10. As will be evident to those of ordinary skill in the art, other sets of rules and probabilities could also be utilized without departing from the scope of the present invention.
[0184] In order to generate a preferred network profile, the VCPS 90
tracks the networks that are most watched by each viewer or household. FIG. 20 illustrates an exemplary preferred networks profile 2000, reflecting the top five networks 2010 chosen by this viewer, the associated percentage 2020 and relative duration 2030 those networks were watched. Horizontal bars 2040 also graphically illustrate the relative duration of network viewing. The VCPS 290 responds to all channel change and power on/off events. When a channel change occurs, the VCPS 290
records the time and network, and when the next channel change occurs, the VCPS 290 notes the elapsed time and stores that elapsed time in an array. The VCPS 290 may also track the preferred networks by day or day part. Note that this exemplary profile is an aggregated profile comprising more than a weeks worth of data. A similar session profile comprising a much smaller span of viewing time may also be generated by the VCPS 290.
[0185] FIG. 21A illustrates an exemplary network viewership table broken out by day part. The day parts may be associated with a single day, weekdays, weekends, or other intervals that may be appropriate. As illustrated, the breakout is for weekdays. The network viewership table includes a network column 2110 and various day part columns 2120. As illustrated, there is a total of eight-day parts having varying time durations associated therewith. The viewership duration for each day part for each network is recorded in the appropiate cell of the table. As illustrated, the time is in seconds, but could be in minutes, hours or other suitable time parameters. As one of ordinary skill in the art would recognize, the number and duration of the day parts could vary without departing from the scope of the current invention.
[0186] FIG. 21B illustrates an exemplary graphical representation of viewership by network day part. The graph displays the total time 2130
(illustrated in hours) on the vertical axis and the channels (networks) 2140 illustrated on the horizontal axis.
[0187] A viewing duration profile is the average duration of each viewing session. This is useful for determining how much television a viewer or household watches at a time (e.g., per session). This information can help identify the households that do not watch television often. To collect statistics for this profile, the VCPS 290 responds to power on/off events. The VCPS 290 tracks the elapsed time between a power on event and a power off event. The VCPS 290 also generates an average duration of each session (i.e., average viewing duration for all viewing sessions).
[0188] FIG. 22A illustrates an exemplary average viewing statistics profile 2200. The profile 2200 includes average statistics for viewing duration 2210, click frequency 2220, and the holding factor 2230. The viewing duration 2210 depicts the total amount of time (i.e., in minutes) of this particular viewing session. The click frequency 2220 depicts the frequency of channel changes during the particular viewing session. The holding factor 2230 is how much of an entire program a household watches and the average holding factor 2230 is the average of all the holding factors. No matter how many channel changes occur, the VCPS 290 will track the total time that each program is viewed.
[0189] The VCPS 290 also tracks viewing duration by day or day part. FIG. 22B illustrates an exemplary viewing duration profile by day part 2250. The profile 2250 includes the total duration 2255 (i.e., in hours) that the profile 2250 is based on, a period column 2260 and day of week columns 2270. The period column 2260 indicates the time of day, for example, as illustrated, the periods are each 4-hour periods of time (e.g., 8 pm to midnight). The days of week columns 2270, illustrate each day of the week (e.g., Monday, Tuesday, etc.). The profile 2250 tracks the viewing duration (i.e., in hours) for each period of time for each day of the week. As illustrated, the greatest viewing duration was on Friday between the hours of 8 pm and midnight (e.g., 17 hrs).
[0190] A channel change frequency profile measures how often or rapidly a viewer or household changes channels. This information can be used to determine characteristics about the household and it can help differentiate individual users within the household. FIG. 23 illustrates an exemplary channel change frequency by day part profile 2300. The channel change frequency is expressed as the average number of channel changes per time period (i.e., 30 minutes). As illustrated, the profile 2300 includes the total number of channel changes (clicks) 2310, a period column 2320, and day of week columns 2330. The number of clicks 2310 is recorded for a certain time period (e.g., one week). The period column 2320 includes time periods in which the channel changes are calculated (i.e., 4 pm to 8 pm). The day of week columns 2330 include a column for each day of the week (i.e., Monday, Tuesday, etc.). The profile 2300
tracks channel changes and calculates channel change frequency for a given day, during a given period of time. As illustrated, for Tuesday between 4 pm and 8 pm the channel change frequency calculated for that day part is illustrated as "0". To collect statistics for this profile 2300, the VCPS 290 responds to all channel change events, and collects the number of channel changes. The profile 2300 is then generated by calculating the average channel change rate for a predetermined period of time (e.g., 30 minutes).
[0191] A holding factor profile generally indicates relative interest levels in certain programs by a viewer or household. A holding factor is how much of an entire program a viewer or household watches. The VCPS 290
tracks the total time that each program is viewed. FIG. 24 illustrates an exemplary holding factor profile 2400 for an example household for specific programs. For each program title 2405, a holding factor 2420
along with the viewing duration 2415 (i.e., in seconds) and dwell time 2410 (i.e., in seconds) for a sample household is illustrated. The average holding factor takes into account the total time a particular program is watched for the entire duration of the program. For example, an hour-long program airs on channel A. Assuming a household watches channel A for 20 minutes, then changes to another channel for 10 minutes, then returns to channel A for 20 minutes, and finally turns the STB 220
off. The holding factor 1220 for the program on channel A is 40/60=66.7%. Note that in this example the holding factor is the total time spent viewing an individual program. For holding factors that are tracked by individual programs, a program reference number identifies each program. The VCPS 290 stores the program reference number in the program table. The VCPS 290 responds to power on/off events, channel change events, end of program events, and end of day part events. It is to be understood that the holding factor profile 2400 could also be applied to networks, program categories, genres, etc, and is not limited to specific program.
[0192] A channel search sequence is the order that the viewer typically visits specific networks, and this may be tracked by day part. The VCPS 290 tracks the order the networks are typically visited by averaging the visit position of each network over a series of channel surf sequences. This is quite useful for profiling and viewer identification as there may be certain channels that a particular viewer typically watches, or a specific surf sequence a particular viewer may perform.
[0193] FIG. 25A illustrates an exemplary table with data related to surf sequence channel order being captured and processed. The table includes a column for networks 2500, channel surf sequences 2510, 2520, 2530 and a typical search order 2540. The networks column 2500 lists networks that are desirable to track. As illustrated five networks are tracked (CNN, ESPN, HIST, TBS, TLC). The channel surf sequence columns 2510, 2520, 2530
capture the order that each network was selected during a surf sequence. For example, in the first surf sequence 2510, ESPN was t