Source: http://www.google.com/patents/US8069076?ie=ISO-8859-1&dq=6,891,551
Timestamp: 2015-05-07 07:28:36
Document Index: 675832353

Matched Legal Cases: ['art 5', 'arts 1', 'arts 1', 'art 0', 'art 0', 'art 0', 'art 0']

Patent US8069076 - Generating audience analytics - Google PatentsSearch Images Maps Play YouTube News Gmail Drive More »Sign inAdvanced Patent SearchPatentsThe present invention is directed to generating audience analytics that includes providing a database containing a plurality of user input pattern profiles representing the group of users of terminal device, in which each user of the group is associated with one of the plurality of user input pattern...http://www.google.com/patents/US8069076?utm_source=gb-gplus-sharePatent US8069076 - Generating audience analyticsAdvanced Patent SearchPublication numberUS8069076 B2Publication typeGrantApplication numberUS 10/551,102PCT numberPCT/US2004/008924Publication dateNov 29, 2011Filing dateMar 24, 2004Priority dateMar 25, 2003Also published asCA2520117A1, EP1606754A2, EP1606754A4, US20070011039, WO2004088457A2, WO2004088457A3Publication number10551102, 551102, PCT/2004/8924, PCT/US/2004/008924, PCT/US/2004/08924, PCT/US/4/008924, PCT/US/4/08924, PCT/US2004/008924, PCT/US2004/08924, PCT/US2004008924, PCT/US200408924, PCT/US4/008924, PCT/US4/08924, PCT/US4008924, PCT/US408924, US 8069076 B2, US 8069076B2, US-B2-8069076, US8069076 B2, US8069076B2InventorsAnthony Scott OddoOriginal AssigneeCox Communications, Inc.Export CitationBiBTeX, EndNote, RefManPatent Citations (84), Non-Patent Citations (45), Referenced by (11), Classifications (21), Legal Events (3) External Links: USPTO, USPTO Assignment, EspacenetGenerating audience analytics
US 8069076 B2Abstract
1. A computer-implemented method of generating audience analytics comprising:
providing, by a computer, a database containing a plurality of user input pattern profiles representing a group of users of a terminal device, wherein the computer communicates with the terminal device over a network, the network comprising one or more of the Internet and a nodal television distribution network, wherein each user of the group is associated with one of the plurality of user input pattern profiles;
using, by the computer, an affinity-day part algorithm to generate the plurality of user input pattern profiles by detecting user affinity types and time of day input data, the user affinity types and time of day input data each being represented in an affinity sub-profile, the affinity types corresponding to at least one of a television station, a programming genre, a language, and a movie;
assigning, by the computer, a weight to the generated plurality of user input pattern profiles, the assigned weight being greater than a weight associated with a plurality of existing user input pattern profiles, by applying a decay factor to the plurality of existing user input pattern profiles;
detecting, by the computer, a user input pattern based upon use of the terminal device by a current user;
dynamically matching, by the computer, the user input pattern of the current user with one of the user input pattern profiles contained in the database
identifying, by the computer, the current user based upon dynamic matching of the user input pattern generated by the current user with one of the user input pattern profiles;
processing, by the computer, each user input pattern profile to identify a demographic type;
providing, by the computer, a plurality of biometric behavior models wherein each biometric behavior model identifies a unique demographic type;
comparing, by the computer, each user input pattern profile against the plurality of biometric behavior models to match each user input pattern profile with one of the biometric behavior models such that each user input pattern profile is correlated with one demographic type; and
generating, by the computer, an audience analytic based upon the identified demographic types.
2. The method of claim 1 wherein the user input pattern of the current user comprises clickstream data.
3. . The method of claim 1 wherein the clickstream data relates to particular Web sites visited by the user or the duration of visits to the Web sites.
4. The method of claim 1 wherein the database providing step comprises generating a user input pattern profile for each user based upon clickstream data generated by the user when using the terminal device.
5. The method of claim 1 wherein the user input pattern comprises one or more of user keystroke data, mouse usage data and remote control usage data.
6. The method of claim 1 wherein the terminal device comprises one of a computer and a set top box.
7. The method of claim 1 further comprising transmitting one or more of targeted content and targeted advertising to the user in accordance with the dynamically-matched user input pattern profile.
8. A computer-implemented method of generating audience analytics comprising:
using an affinity-day part algorithm to generate the plurality of user input pattern profiles by detecting user affinity types and time of day input data, the user affinity types and time of day input data each being represented in an affinity sub-profile, the affinity types corresponding to at least one of a television station, a programming genre, a language, and a movie;
assigning a weight to the generated plurality of user input pattern profiles, the assigned weight being greater than a weight associated with a plurality of existing user input pattern profiles, by applying a decay factor to the plurality of existing user input pattern profiles;
dynamically matching the user input pattern of the current user with one of the user input pattern profiles contained in the database, wherein dynamically matching the user input pattern comprises comparing a partial user input, as a current user input comprising the partial user input is being generated by the current user, with one of the user input pattern profiles contained in the database;
9. A system for generating audience analytics, the system comprising:
means for using an affinity-day part algorithm to generate the plurality of user input pattern profiles by detecting user affinity types and time of day input data, the user affinity types and time of day input data each being represented in an affinity sub-profile, the affinity types corresponding to at least one of a television station, a programming genre, a language, and a movie;
means for assigning a weight to the generated plurality of user input pattern profiles, the assigned weight being greater than a weight associated with a plurality of existing user input pattern profiles, by applying a decay factor to the plurality of existing user input pattern profiles;
means, responsive to the means for detecting the user input pattern, for dynamically matching the user input pattern of the current user with one of the user input pattern profiles contained in the database, wherein dynamically matching the user input pattern comprises comparing a partial user input, as a current user input comprising the partial user input is being generated by the current user, with one of the user input pattern profiles contained in the database;
10. A system for generating audience analytics, the system comprising:
means for providing a database containing a plurality of user input pattern profiles representing a group of users of a terminal device, wherein each user of the group is associated with one of the plurality of user input pattern profiles, wherein the plurality of user input pattern profiles are generated from an affinity-day part algorithm by detecting user affinity types and time of day input data, the user affinity types and time of day input data each being represented in an affinity sub-profile, the affinity types corresponding to at least one of a television station, a programming genre, a language, and a movie;
means for assigning a weight to the generated plurality of user input pattern profiles, the assigned weight being greater than a weight associated with a plurality of existing user input;
11. The system of claim 10 wherein the terminal device comprises a computer.
12. The system of claim 10 wherein the terminal device comprises a television set top box.
13. The system of claim 10 wherein the steps are implemented in a computer, and the computer communicates with the terminal device over a network.
14. The system of claim 13 wherein the network comprises the Internet.
15. The system of claim 13 wherein the network comprises a nodal television distribution network.
16. The system of claim 10 further comprising transmitting targeted content to the current user in accordance with the dynamically-matched user input pattern profile.
17. The system of claim 10 further comprising transmitting targeted advertising to the current user in accordance with the dynamically-matched user input pattern profile.
The present application is related to and claims priority from commonly owned U.S. Provisional Application Ser. No. 60/457,223 filed on Mar. 25, 2003 entitled �Generating Audience Analytics�. The present invention claims priority from commonly owned U.S. patent application Ser. No. 09/558,755 filed on Apr. 21, 2000 entitled �Method and System for iTV User Profiling, Content Recommendations, and Selective Content Delivery�, which in turn claims priority from U.S. Provisional Patent Application Ser. No. 60/154,640 filed on Sep. 17, 1999 and entitled �Method and Apparatus for Predictive Marketing.�
U.S. patent application Ser. No. 09/558,755 filed on Apr. 21, 2000 entitled �Method and System for iTV User Profiling, Content Recommendations, and Selective Content Delivery� incorporated herein by reference as if set forth in its entirety.
U.S. patent application Ser. No. 09/766,377 filed on Jan. 19, 2001 entitled �Method and Apparatus for Data Clustering� incorporated herein by reference as if set forth in its entirety.
U.S. Provisional Patent Application Ser. No. 60/360,068 filed Feb. 25, 2002 entitled �Privacy-Maintaining Methods and Systems for Collecting Information� incorporated herein by reference as if set forth in its entirety.
U.S. patent application Ser. No. 10/117,654 filed on Apr. 5, 2002 entitled �Method and Apparatus for Identifying Unique Client Users from User Behavior Data� incorporated herein by reference as if set forth in its entirety.
In addition to generating audience analytics, the ability to distinguish which users are watching a given television program can be used to target content delivery, provide advertising, or create program viewing recommendations for the user. Exemplary methods of identifying a current user can be found in commonly-owned U.S. patent application Publication No. 2002/0178257 published Nov. 28, 2002, entitled �Method and Apparatus For Identifying Unique Client Users From User Behavioral Data,� which is expressly incorporated by reference herein. Methods of identifying a current user and delivering targeted content are described in commonly-owned U.S. patent application Ser. No. 09/558,755 filed Apr. 21, 2000, entitled �Method And System For Web User Profiling And Selective Content Delivery,� which is also expressly incorporated by reference herein.
In the Internet (or other computer network) embodiments, the client terminals 214 connect to multiple servers 212 via the network 216, which is preferably the Internet, but can be an Intranet or other known connections. In the case of the Internet, the servers 212 are Web servers that are selectively accessible by the client devices. The Web servers 212 operate so-called �Web sites� and support files in the form of documents and pages. A network path to a Web site generated by the server is identified by a Uniform Resource Locator (URL).
One example of a client terminal device 214 is a personal computer such as, for example, a Pentium-based desktop or notebook-computer running a Windows operating system. A representative computer includes a computer processing unit, memory, a keyboard, a pointing device such as a mouse, and a display unit. The screen of the display unit is used to present a graphical user interface (GUI) for the user. The GUI is supported by the operating system and allows the user to use a point and click method of input, e.g., by moving the mouse pointer on the display screen to an icon representing a data object at a particular location on the screen and pressing on the mouse buttons to perform a user command or selection. Also, one or more �windows� may be opened up on the screen independently or concurrently as desired. The content delivered by the system to users is displayed on the screen.
Client terminals 214 typically include browsers, which are known software tools used to access the servers 212 of the network. Representative browsers for personal computers include, among others, Netscape Navigator and Microsoft Internet Explorer. Client terminals 214 usually access the servers 212 through some Internet service provider (ISP) such as, e.g., America Online. Typically, multiple ISP �point-of-presence� (POP) systems are provided in the network, each of which includes an ISP POP server linked to a group of client devices 214 for providing access to the Internet. Each POP server is connected to a section of the ISP POP local area network (LAN) that contains the user-to-Internet traffic. The ISP POP server can capture URL page requests and other data from individual client devices 214 for use in identifying unique users as will be described below, and also to distribute targeted content to users.
As is well known, the World Wide Web is the Internet's multimedia information retrieval system. In particular, it is a collection of servers of the Internet that use the Hypertext Transfer Protocol (HTTP), which provides users access to files (which can be in different formats such as text, graphics, images, sound, video, etc.) using, e.g., a standard page description language known as Hypertext Markup Language (HTML). HTML provides basic document formatting and allows developers to specify links to other servers and files. These links include �hyperlinks,� which are text phrases or graphic objects that conceal the address of a site on the Web.
U.S. patent application Ser. No. 09/558,755 filed Apr. 21, 2000 and entitled �Method And System For Web User Profiling And Selective Content Delivery� is expressly incorporated by reference herein. That application discloses a method and system for profiling online users based on their observed surfing habits and for selectively delivering content, e.g., advertising, to the users based on their individual profiles.
User identification can be performed using any one of these types of user behavioral data or by combining two or more types of data. A so-called �fusion� algorithm is accordingly provided for combining the outputs from two or more of the sub-algorithms to detect unique users. Briefly, the fusion algorithm keeps track of which combinations of particular patterns from, e.g., three types of data (e.g., {click pattern �A,� keystroke pattern �C,� mouse pattern �F�}) recur most consistently, and associates these highly recurrent combinations with particular users.
One set of clickstream statistics can be the Top N (N can be variable, but is usually 8-10) unique URLs or channels/programs that appear in the current clickstream, selected according to total duration of visits at these URLs or of viewing of the channels/programs. The total duration is computed and stored. In addition to the Top-N unique URLs or channels/programs, a catch-all category named �Other� can also be maintained.
Another set of clickstream statistics can be a matrix mapping �From� URLs to �To� URLs or �From� channels/programs to �To� channels/programs that captures the total number of all transitions from one URL or channel/program to the next in the clickstream. Transitions can be tracked among the Top-N URLs or channels/programs as well as those in the �Other category.� In addition, �Start� and �End� URLs or channels/programs can be used along with the �From� and �To� dimensions, respectively.
These statistics can be used to form a pattern of user surfing behavior. They can capture both the content of the clickstream (as represented by the content of the Top-N URLs or channels/programs), as well as some of the idiosyncratic surfing behavior of the user (as manifested, e.g., in transition behavior and proportion of sites or channels/programs that are �Other�).
1) Dot-product of �duration� unit vectors
Two �duration� vectors are considered to be similar if they point in the same direction in URL or channels/programs-space, i.e., each clickstream visits many of the same Top-N URLs or channels/programs in similar proportions, regardless of the actual length or duration of the clickstream. This similarity is measured by computing the dot-product between the �duration� unit vectors. Perfect similarity returns a value of unity, no similarity returns zero. The similarity of �Other� values is preferably not included in this calculation since two clickstreams with identical �Other� values might have in fact no similarity at all.
2) Dot-product of unit-vectorized �transition� matrices.
For similar reasons, the transition matrices can be compared using a dot-product metric. The matrices must first be vectorized (i.e., the elements are placed in a vector). Transitions to and from �Other� are considered generally significant and can be included in the calculation.
3) Similarity of �Other� duration.
The proportion of time spent at �Other� URLs or channels/programs relative to the total user session time can be compared. Similarity is measured by computing for each of the two clickstreams to be compared the proportion of time spent at �Other� URLs or channels/programs, then dividing the smaller of the two by the larger.
Clickstreams that have high similarity values can be considered possibly to have been generated by the same person. There are many possible ways to compute similarity. For example, one way to match a clickstream to one of a set of candidates is to select the candidate that has the highest similarity value. This technique is called a �hard match�.
Alternatively, a somewhat more conservative approach can be to select a small group of very similar candidates rather than a single match. This group of candidates can subsequently be narrowed using some other criteria. This technique can be called finding a �soft match�. A similarity threshold can be specified for soft matching. Soft matching is preferable when it is desired to match users according to multiple input pattern types such as keystroke and mouse dynamics in addition to clickstream behavior.
One type of keystroke statistic that is particularly efficient and useful for characterizing typing behavior is the �digraph� interval. This is the amount of time it takes a user to type a specific sequence of two keys. By tracking the average digraph interval for a small set of select digraphs, a profile of typing behavior can be constructed.
EA 22
A �fusion� algorithm, which is generally illustrated in FIG. 5, is provided to track associations among recurring patterns, to determine which patterns are significant, and to assign unique user status to those that are most significant. In addition, the fusion algorithm manages the addition and deletion of unique users from the system.
As previously described, each individual algorithm (e.g., for clickstream, keystroke, and mouse usage data) can perform a soft match between the current input data and its set of tracked patterns, and returns a list of most similar patterns along with their respective similarity scores as shown in step 380. For example, the clickstream algorithm might return the following set of matched pattern data for clickstream data: {(pattern �2,�0.9), (pattern �4,�0.7), (pattern �1,�0.65)}, where the first entry of each matched pattern data indicates the particular matched pattern, and the second entry indicates the similarity score for that match.
The fusion algorithm tracks the frequency of recurrence of each possible combination of patterns among multiple individual algorithms. For example, a possible combination can have the form: {click pattern �c,� key pattern �k,� mouse pattern �m�}. If there are a total of C click patterns, K keystroke patterns, and M mouse patterns being tracked, then the total number of tracked combinations is C*K*M, which can be up to, but not limited to, a few hundred assuming the number of keystroke and mouse patterns is about 5, and the number of clickstream patterns is about 10.
Unique users can be associated with patterns whose scores stand out significantly from the rest. After every update of combination scores, the fusion algorithm can determine if any additions or deletions from the current set of inferred unique users is indicated as shown in step 390. A new user can be added if the score of some combination exceeds a given threshold. An existing user can be deleted if the score of the corresponding combination falls below a given threshold. These thresholds are relative to the magnitudes of the entire set of scores, and represent degrees of �standing out� among all the combinations.
If an addition and a deletion occur at about the same time, it is possible that a particular user has simply �drifted�, in which case that profile should be reassigned rather than being deleted and a new personal profile created.
For cases in which the system is unable to identify a user (or group of users) with a sufficient degree of certainty, the user could be designated as �unknown� and an average user profile for the terminal device could be assumed.
0-11 12-17 18-20 21-24 25-34 35-49 50-54 55-64 65-99 Income:
0-24,999 25,999 50,999 75,999 100,000 150,000 and up Education:
Some High School High School Graduate Some College Associates Degree Bachelor's Degree Post Graduate Occupation:
Administrative Craftsman Educators Executive Laborer Homemaker Military Professional Sales Service Student Technical Self-employed Retired Race:
Hispanic Non-Hispanic African American Caucasian Asian Native American Psychographic Categories
Air Car Rental Lodging Reservations Maps Finance/Investments:
Banking Brokers Quotes Insurance Mortgage Sports:
Auto Racing Baseball Basketball Fantasy Sports Football Hockey Soccer Golf Tennis Recreation & Hobbies:
Cycling Golf Hiking Sailing Snow Sports Surfing Tennis Home & Garden Pets Genealogy Photography Games Toys Entertainment:
Movies/Film Music Theater TV/Video Sci-Fi Humor Games Toys Auto:
Trucks SUV Sports car News and Information:
Magazines Weather Politics:
Democrat Republican E-shopping:
Groceries Furniture Auctions Cards/Gifts Apparel Books Music TV/Video Software E-purchasing
Each rating is accompanied by a confidence measure, which is an estimate of the accuracy of the rating. The confidence number is determined by analyzing the Web site/iTV act and rating it on the type and specificity of content, with narrower and more singular content providing a higher confidence number. When the confidence measure in a particular category is below a predetermined threshold, information from other user profiles is preferably used to provide a more accurate rating in a process referred to as �profile completion.�
10.0 (.75)
25.0 (.15)
0.0 (1.00)
0.0 (.28)
50.0 (.77)
85.0 (.82)
In this way, parts of the user profile that have low confidence ratings are �completed� or �filled-in.� An example is shown below in Table 2.
10.0 (.89), 21.0 (.75), 0.0 (1.00), 17.0 (74), 0.0 (1.00),
52.0 (.64), 95.0 (.90)
12.0 (.77), 5.0 (.15), 0.0 (1.00), 12.0 (.85), 0.0 (1.00), . . .
40.0 (.84), 90.0 (.75)
11.0 (81), 20.0 (.77), 0.0 (1.00), 0.0 (1.00), 0.0 (1.00), . . .
75.0 (.77), 81.0 (.73)
10.0 (.56), 25.0 (.68), 4.0 (.27), 11.0 (.77), 0.0 (1.00), . . .
55.0 (80), 85.0 (.85)
12.0 (75), 22.0 (.77), 0.0 (1.00), 10.0 (.83), 2.0 (.30), . . .
60.0 (.41), 80.0 (45)
11.0 (76), 21.1 (.62), 0.9 (.85), 9.4 (.84), 0.5 (.86), . . .
55.8 (.69), 87.1 (74)
In the example above, the ideal profile is calculated in the following manner. The rating for each category in the ideal profile is calculated by multiplying the rating times the confidence measure for each user. These products are then added across users in each category. This sum is then divided by the sum of the confidence measures added across users in the category. In mathematical terms, Rideal,j=ΣRijCij/ΣCij, where Rideal,j is the rating for the ideal profile in category j, Rij is the rating in category j for user i, Cij is the confidence measure in category j for user i and the sum is taken over i as i ranges from 1 to n, which is 5 in the example. The confidence measure for each category in the ideal profile is calculated by taking the average of the confidence measure across users in the same category, Cideal,j=ΣCjj/n, where Cideal,j is the confidence measure for category j in the ideal profile, Cij is the confidence measure in category j for user i, and the sum is taken over i as i ranges from 1 to n, which is 5 in this example.
TABLE 3 �Completed� User Profile User ID Sports Finance Movies Music TV Health Gardening 1 10.0 (.75) 21.1 (62) 0.0 (1.00) 9.4 (.84) 0.0 (1.00) 50.0 (.77) 85.0 (.82) Affinity-Day Part Algorithm:
1. Weekdays 6 a.m.-9 a.m. 2. Weekdays 9 a.m.-3 p.m. 3. Weekdays 3 p.m.-6 p.m. 4. Weekdays 6 p.m.-8 p.m. 5. Weekdays 8 p.m.-11 p.m. 6. Weekdays 11 p.m.-2 a.m. 7. Weekdays 2 a.m.-6 a.m. 8. Fridays 8 p.m.-11 p.m. 9. Fridays and Saturdays 11 p.m.-2 a.m. 10. Saturdays and Sundays 2 a.m.-6 a.m. 11. Saturdays 6 a.m.-12 noon. 12. Saturdays 12 noon-8 p.m. 13. Saturdays 8 p.m.-11 p.m. 14. Sundays 6 a.m.-12 noon 15. Sundays 12 noon-8 p.m. 16. Sundays 8 p.m.-11 p.m. The day parts used with station affinities can be the same as the day parts used for genres with the exception that day part 5 (primetime weekdays) has been broken down into individual days to achieve greater accuracy in the recommendations.
17. Mondays 8 p.m.-11 p.m. 18. Tuesdays 8 p.m.-11 p.m. 19. Wednesdays 8 p.m.-11 p.m. 20. Thursdays 8 p.m.-11 p.m. The numbering scheme reflects how the day parts can be numbered in the database. Day parts 1-16 can be used with genre affinities and day parts 1-4, 6-20 can be used with station affinities. For both sets of affinities there can also be an additional sub-profile to which all events are added representing the average behavior of the STB over all time periods. This is the average profile or average day part and is represented by the number 0 in the database. This average sub-profile is used for rating items when enough information isn't available within a specific day part.
A viewing event for a channel causes the duration to be added to the particular channel's sum in the day part and the overall sum in the day part. The same is then repeated in the average day part. There is a minimum duration for a viewing event to cause the profile to be updated. In one practice, viewing events greater than 10 seconds are considered. This filters out tuning events caused by channel surfing. The viewing event may only affect the sums for the given channel. The information for the genres is handled similarly, except that the possibility exists for an item to have multiple genres. Shows with compound genre, i.e. RealityAdventureDrama, are split into single genres. Data supplied by Tribune Media Service (TMS), a television program guide data supplier, can order the genres listed for a program so that the first genre listed is the most relevant to the program, the second genre listed is second most relevant and so on. This information can be used to attribute the viewing time in a weighted fashion that is proportional to the order of in which the genres are listed. Since it is unclear how much more the first genre should be weighted compared to the second and so on, a fairly conservative method is employed to easily maintain normalization of the categories. The formula for distributing the viewing time of a program among the various genres of the program is as follows: (# of genres for the program−the index of the current genre+1)/(sum of the index for all the genres of the program) where the index of each genre reflects the order in which it was listed. So if the RealityAdventureDrama� show was watched for 30 minutes, instead of crediting the 30 minutes to one genre or crediting 30 minutes to each genre or even crediting 10 minutes to each genre, the household is credited proportionally for each of the individual categories.
In this example, there are 3 genres for the program, the index for each genre reflects the order in which it is listed (Reality�index 1, Adventure�index 2, Drama�index 3), and the sum of the indexes is 6. Therefore the 30 minutes of viewing time will be distributed among the three genres in the following way:
Reality−weighting=(3−1+1)/6=0.5, 0.5*30=15 minutes, Adventure−weighting=0.33, 0.33*30=10 minutes, and Drama−weighting=0.16, 0.16*30=5 minutes. Referring to FIG. 8, a flowchart depicting updating affinity sub-profiles, the duration of time spent watching programs of a particular genre, as indicated in step 602, comprises:
Duration(Genre i, User j, Day Part k)=Duration(Genre i, User j, Day Part k)+((#genres for current program−index of current genre+1)/(sum of index for all genres of current program))*viewing duration of current program. Updating the duration of time spent watching a station, as shown in step 604, can be more directly calculated since a user may only watch one station at a time. For example, the duration of time spent watching a station, shown in 604, can comprise:
Duration(Station i, User j, Day Part k)=Duration(Station i, User j, Day Part k)+viewing duration of current program, where current program was viewed on station i during day part k. The genre sum can be kept separate from the channel sum so that items without one type of information will not dilute the information for the other (i.e. shows without genres will not dilute the ratings of all genres). As with channels, the genres' average day part sub-profile is updated the same way as the specific day part sub-profile.
The user's language profile is used to act as a filter that allows us to only recommend programs in a language that the user is familiar with. The language of a program can be determined by checking the �ProgramLanguage� field in the Program table. Referring again to FIG. 8, updating the duration of time spent watching programming of a particular language, as indicated in step 606, is similar to the duration update for stations described above and comprises:
Duration(Language i, User j, Day Part k)=Duration(Language i, User j, Day Part k)+viewing duration of current program, where current program was viewed in language i during day part k. In this example, there are separate from genre, station, and language are three other affinities that typically don't have subcategories: first run, pay, and movie. The �First Run� affinity is created to act as a filter that allows us to not recommend re-runs to users who don't like to watch re-runs. For each program that is watched, it can be determined if it is a re-run by checking the �Repeat� field in the Schedule table. Alternatively, the �Original Air Date� field in the Program Table can be checked to determine if it is earlier than the current airdate.
Step 608 of FIG. 8 depicts updating the duration of time spent watching first run programming, similar to the duration update for stations described above and can be stated as:
Duration(First Run, User j, Day Part k)=Duration(First Run, User j, Day Part k)+viewing duration of current program, where the current program is not a repeat. The �Pay� affinity is created to act as a filter to help us determine which users might be interested in receiving recommendations for pay content such as PPV or VOD. Over time this category will reflect PPV movies as well as VOD. To determine that a channel is PPV, the �servicetier� field can be selected in the Channel table. A value of 4 can denote PPV.
As shown in FIG. 8, updating the duration of time spent watching pay content is similar to the duration update for stations described above and comprises:
Duration(Pay, User j, Day Part k)=Duration(Pay, User j, Day Part k)+viewing duration of current program, where the current program is pay content. The �Movie� affinity is different from the genre affinities in order to create separate user profiles for movies. Additionally, the movie affinity differs from the movie profile, which will be discussed in detail below. The movie affinity measures the user's interest in watching movies during a given day part. The movie profile contains detailed information into what types of movies the user, likes to watch. The movie profile has been separated out from the other profiles to improve the quality of making movie recommendations, particularly for VOD and PPV. When the user's movie affinity score is above threshold for a given day part, then the user's movie profile will be used to recommend movies. In order to determine if a program is a movie, the �Program Type� field in the Program table can be used. Typically, all programs of program type �MV� are movies. In order to track feature films instead of made for TV movies, the program type �MV� can be used where the field �MadeForTV� in the Program table is equal to �N�.
Referring to FIG. 8, updating the duration of time spent watching movies is similar to the duration update for stations described above and comprises:
Duration(Movie, User j, Day Part k)=Duration(Movie, User j, Day Part k)+viewing duration of current program, where the current program is a movie and is not �MadeForTV�. Referring now to step 506 a of FIG. 7, in one embodiment a profile can be aged so that after a certain period the existing profile will be begin to decay and the new data will have greater weight. As a result, two ways of generating genre and station scores can be employed. For the first part of the profiling (before decay begins) the scores are generated much in the same manner as in previous implementations. The scores are based on the duration spent on a category divided by the total duration. Examples of this for Genre and Station comprise the following:
Score(Station i, User j, Day Part k)=Duration(Station i, User j, Day Part k)/Total Viewing Duration for Day Part k Score(Genre i, User j, Day Part k)=Duration(Genre i, User j, Day Part k)/Sum across all Genres: Duration(Genre i, User j, Day Part k), where Duration(Genre i, User j, Day Part k) is defined as above. Score(Language i, User j, Day Part k)=Duration(Language i, User j, Day Part k)/Total Viewing Duration for Day Part k Score(First Run, User j, Day Part k)=Duration(First Run, User j, Day Part k)/Total Viewing Duration for Day Part k Score(Pay, User j, Day Part k)=Duration(Pay, User j, Day Part k)/Total Viewing Duration for Day Part k Score(Movie, User j, Day Part k)=Duration(Movie, User j, Day Part k)/Total Viewing Duration for Day Part k The scores can be calculated in this way for the first 20 hours of television viewing within each day part (except for day part 0, the average profile, which will be calculated this way for the first 120 hours of television viewing). After which the day part profiles will begin to decay. The profiles that may decay are the Genre profile and the station profile. Language, First Run, Pay, and Movie affinities do not decay. The values of 20 and 120 are parameters that may be selectively changed. The scores during the decay period (after the 20 hour limit has been reached) are:
Score(Genre i, User j, Day Part k)=(1−df*Wg)*Score(Genre i, User j, Day Part k)+df*Wg and for all n not equal to i, Score(Genre n, User j, Day Part k)=(1−df*Wg)*Score(Genre n, User j, Day Part k) These two steps will result in normalized Genre Scores, i.e. the total of all genre scores will always be 1 for each day part. The parameter df is a decay factor that is currently given a value of 0.4 but may be modified after testing. In general the df value for the average day part (day part 0) will probably be different than the df value for the other day parts. The weighting factor Wg=(viewing duration of current program attributed to Genre k/program duration), where viewing duration attributed to genre k is determined as described in the previous section. Similarly for stations,
Score(Station i, User j, Day Part k)=(1−df*Ws)*Score(Station i, User j, Day Part k)+df*Ws and for all n not equal to i, Score(Station n, User j, Day Part k)=(1−df*Ws)*Score(Station n, User j, Day Part k) where Ws=(viewing duration of current program/program duration). The values of df are the same as in the genre equations. In implementing the affinity-day part algorithm 500, it is not necessary to update the total hours of viewing after the 20 hour limit has been reached. However, information regarding the actual total hours of viewing can be kept. If the program duration information needed in calculating the weighting factors (Wg and Ws) is difficult to obtain, the viewing ratio can be replaced by different values for events <10 minutes, <20 minutes, <30 minutes, etc with the value being 1 after a certain number of minutes.
For example, there are eight movie eras: the silent era (pre-1927), the pre-WWII era (1927-1940), the golden era (1941-1954), the transition era (1955-1966), the silver era (1967-1979), the modern era (1980-1995), and the post-modern era (1996-present). The era of a film can be determined by selecting the �ReleaseYear� field from the Program table. In cases where the release year field is �NULL�, the movie has not been released and should be treated as a regular program and not as a movie.
Many movie distributors exist, but only about a dozen major ones. The distributor can be determined by selecting the �DistributingCompany� field from the Program table. Some of the movies in the TMS database do not have a distributor listed. However, when there is a distributor listed it is a useful piece of data that will be used when it is available. For example, most films available on PPV and VOD have distributors, therefore tracking this data will become more relevant as PPV and VOD content is recommend.
The Genre categories are the same as the genres used in the regular profile. As in the previous genre profiles, the genre can be retrieved from a program genre table. The star rating measures the quality of the movie and can be retrieved from the �StarRating� field of the Program table. The star rating is stored as a varchar and is converted to a float.
Score(Genre i, User j, Day Part k)=Duration(Genre i, User j, Day Part k)/Sum across all Genres: Duration(Genre i, User j, Day Part k), where Duration(Genre i, User j, Day Part k) is defined as above. The star rating score that accompanies each genre score will be the average star rating for all movies of that genre can be stated as:
Score(Star Rating Genre i, User j, Day Part k)=Sum (Star Rating Genre i, User j, Day Part k)/Sum (# of Movies of Genre i, User j, Day Part k) The distributor score will be the time spent viewing movies of a given distributor divided by the total time spent viewing movies for a given day part. The scores for eras are also calculated similarly and comprise:
Score(Distributor i, User j, Day Part k)=Duration(Distributor i, User j, Day Part k)/Total Movie Viewing Duration for Day Part k Score(Era i, User j, Day Part k)=Duration(Era i, User j, Day Part k)/Total Movie Viewing Duration for Day Part k In a further practice, the minimum viewing time for an event to be added to the profile is set to 1 second (i.e. no cutoff), settable with the code. Additionally, station IDs are linked to channel affinities so that if there is a change to the channel lineup the user will still get the correct recommendations. If the system does not have direct access to the station Ids on the set top box then, the channel information is combined with unique keys. Additionally, genre durations can be weighted when being recorded to the profile in the order they appear in the data listings.
As shown in FIG. 7, rating an item determines how closely that item matches the profile and assigns a numerical value representing that degree of closeness. Typically, the values do not carry units and are meaningful in relation to the values of other items. Higher values mean a closer (i.e. �better�) match. The total rating of an item is calculated based on the determined match score for its channel and genres.
Before ratings are generated there are several factors that filter out programming that is either inappropriate to recommend or of no interest to the user. In one practice, programs of the genre �Adults Only� can be given a rating of 0 and will not be recommended. If the program is an R-rated movie and it airs before 8 p.m., it can be given a rating of 0. The rating of a movie can be found by using the MPAARating field in the Program table. If the program is �paid programming� then it can be given a rating of 0. This can be determined from the �ShowType� field in the Program table. If the programming language does not match one of the languages for which the user has a language affinity above threshold (0.05) then the program can be given a rating of 0. If the �First Run� affinity of the user for a given day part is above the first run threshold (0.6), then all repeats in the given day part will be given a rating of 0. If the �Pay� affinity of the user for a given day part is less than the pay threshold (0.4) then all pay events in the given day part will be given a rating of 0. If the program occurs on a premium channel and the user's score for that station is zero, then the program will be given a rating of 0.
In general the rating for a program for a particular user or household can be determined by multiplying the Genre score and Station score in the user profile that matches the genre and station of the program for the appropriate day part. The ratings are calculated in a five-stage process. During the movie stage, ratings are generated for movies that might not be showing on stations the user normally watches. During the favorite programs stage the program must match both the station affinity and genre affinity of the user for the current day part. In the favorite stations stage, the station scores from the current day part can be used to generate ratings. In the behavior expanding stage, a clustering algorithm can be used to recommend non-movie programs occurring on stations the user doesn't usually watch. In the fill-in stage, the station scores from the average profile can be used to generate ratings. Constants are added at various stages to ensure that the ratings reflect the relevance of the programming. At each stage a boosting factor is introduced for shows (non-movies) that are premieres or finales. This can be determined by checking the �premierfinale� field in the Program table. Programs that are premieres or finales have their ratings boosted by adding 0.2 to their rating if they already have a non-zero rating. Premieres or finales for programs that don't match the user's interests are not boosted.
When a program has multiple genres, the genres can be treated as a series of individual genres (�Action�, �Adventure�, �Comedy�) or they can be treated as a compound genre (�ActionAdventureComedy�) or as a combination of both (�Action�, �Adventure�, �Comedy�, �ActionAdventureComedy�). For simplicity and to conserve on space, each of the genres is treated individually. So the first genre listed is generally the one that best describes the show and the second genre listed is second best, etc. To account for this an index for the genres can be created that correspond to the position in the listing. This index can be used to weight how much that genre will contribute to the program rating. The genre score then contributes to the program rating in the following way:
Genre portion of program rating=(Program Genre Score k)�(User Genre Score k) for all k where Program Genre Score k=(#genres for current program−index of current genre+1)/(sum of index for all genres of current program) and User Score k is>threshold and Genre k is a genre of the current program. Station portion of programming rating=(User Station Score k), for all k where User Station Score k is>threshold and Station k is a station of the current program. The current threshold value for both station and genre scores is 0.05. So for the favorite programs stage the rating is:
Program rating=2+(Genre portion׼)+(Station portion׾) where the portions are calculated using the day part profile of the user that corresponds to the day part during which the current program airs. This first stage is designed to recommend shows that users watch most frequently. This stage applies to all non-movie programming. If a program is a movie and the user has a movie affinity that is above threshold then it is rated in the next stage. The movie stage can take place if the user has a Movie affinity in the current day part that is above threshold. This stage allows us to make recommendations for movies on stations the user doesn't normally watch. In this case, the user's movie profile can be used for the day part in question. The rating is generated from the distributor, era, and genre scores and the star scores are used as filters. The station scores from the regular profile are used as boosting mechanisms.
Program rating=1+(((Genre portion)+(Era score)+(Distributor score))/3), where the Genre portion is calculated in the same way as the Genre portion for non-movie programming described above. If the movie is occurring on a station that the user has an above threshold score for the current day part then adding 1 to it boosts the program rating. This will put the program rating on a par with the program ratings generated in the favorite programs stage.
In the favorite stations stage of the process, programs that did not receive a rating during the first stage are given a rating if the program station matches a station for which the user has a score above threshold in their day part profile. Program rating=1+Station portion where Station portion is calculated using the day part profile of the user that corresponds to the day part of the program being rated. The value of 1 is included in the equation to insure that the ratings generated in this stage are always higher than the ratings generated in the final stage. This stage is designed to recommend programs on the users favorites stations for a given day part. The programs may or may not have been viewed previously by the user
The behavior expanding stage uses clustering to recommend non-movie programs on stations the user has never watched. All of the stations are clustered based on the type of content available on the stations across a month's worth of TMS data. The clusters are further refined using a group of TV experts to ensure the quality of the clusters. Ratings are generated based on the user's station scores for the current day part. Any non-network station scores above the cluster threshold of 0.1 will be used to generate ratings for new stations in the same cluster. The station with a score above 0.1 is referred to as an �Ideal Station� in the equations. Since there are often many stations within each cluster, there may be many programs to choose from. In order to maintain a careful balance between new and old shows, one program can be chosen from a given cluster to recommend. The program will be chosen among stations that have user score below threshold (0.05) for the day part, i.e. the station has rarely been viewed by the user during this day part. This part of the process uses feedback. The first time this behavior expanding rating process occurs, stations that the user has never or rarely watched before are selected based on the genre score for the program. Each time a new station is recommended, a record is kept that it has been chosen. The next time the system is in this stage of the ratings, only stations that have never been viewed (station score below threshold) and which have not been previously recommended more than the limit (currently set at 5) are chosen. Out of these available stations, the program with the highest genre score is chosen. If there is a tie, the program is selected at random. By using a station score threshold that is above zero and a limited number of recommendations greater than 1, this builds up the rating for a new station to the point where recommendations will be generated on the basis of being a regularly watched program rather than a station that has never been watched. In this manner, behavior can be influenced and stations moved from �never been watched� to �regularly viewed�. The rating for the program is generated using the genre score for the program and the station score of the ideal station.
Program rating=1+(Genre portion׼)+(Ideal Station portion׾) where the portions are calculated using the day part profile of the user that corresponds to the day part during which the current program airs and the Ideal Station portion>0.2 and the Station of the chosen program has a Station score below threshold and has not been recommended more than the limit. In the fill-in stage of the process, programs that did not receive a rating during the first two stages are given a rating if the program station matches a station for which the user has a score above threshold in their average profile (day part 0).
Program rating=Station portion, where Station portion is calculated using the day part 0 profile of the user. This final stage recommends program on the user's favorite stations across all day parts. The programs may or may not have been viewed previously by the user. If after all of this there are still not enough ratings, the ranker will address the issue either by filling the remaining slots with the remaining channels listed in numerical order.
Referring to FIGS. 1 and 9, a neural network can generate a plurality of user input pattern profiles and identify a current user based on matching for example, viewing of the program �Bear in the Big Blue House� may be indicative that there is a young child present in the household. Suppose the average audience for �Bear in the Big Blue House� has the following demographic values: Male=0.374, Female=0.626, Age 0-12=0.624, Age 13-17=0.014, Age 18-20=0.036, Age 21-24=0.041, Age 25-34=0.126, Age 35-49=0.081, Age 50-54=0.022, Age 55-64=0.039, Age 65+=0.019. Viewing �Bear in the Big Blue House� would provide evidence that the household contains at least one female and a child under the age of 12. The only other possible demographic indicator is Age 25-34=0.12. If this demographic value is greater than the average for the sample, it might be concluded that viewing this show can also be indicative of the presence of an adult in the household. Combined with the fact that children rarely live in a household without a parent, one could conclude from this one piece of viewing information that the household contains a child under the age of 12 and an adult between the ages of 25 and 34. Additionally, one could conclude that the parent is most likely to be the mother given the high Female rating for the program.
Referring now to FIG. 9, depicted is a neural network 700 for processing profile data. The neural network 70 can contain three layers. A first layer 780 is an input layer with nodes 780.1-780.n corresponding to exemplary demographic categories. In the embodiment illustrated by FIG. 9, �n� can represent a single digit or double-digit integer. However in other circumstances, �n� can also represent an infinite number of nodes.
As illustrated in FIG. 9, a third layer 750 exists as a relationship layer that receives inputs from the second layer 790 and accumulates evidence for the relationships that occur between the members of the household. The third layer 750 depicts the resulting relationship: parent-child (since you can't be a parent without having a child) that is represented by a node 752 labeled �parent�. If the exemplary nodes 790.1-790.8 in the second layer 790 have strong excitation for man or woman nodes and the boy or girl nodes, then the parent relationship node in the third layer 750 will become active. Alternatively, if only the second layer 790 existed, one could print out all of the individuals to a database and determine how many parents exist based on the individual's database.
In addition to the lateral and feed forward connections in the neural network 700, there are also feedback connections. For example, once a parent-child node becomes active this node can send feedback to the corresponding classifications in the second layer 780 to strengthen the connections. Furthermore, nodes 790.1-790.8 in the second layer have connections to the first layer 780 that enables age calculation to occur more precisely than a general classification of �adult male�.
Referring to FIGS. 6 and 9, assume a trained version of the neural network 700 embedded in a profiling engine in a new household. In this new household the viewing event is watching the program �Bear in the Big Blue House�. Using the same data as before, the nodes in the first layer 780 corresponding to �female�, �0-12�, and �25-34� would become excited. Depending on the level of inhibition between the nodes for �0-12� and �25-34� the nodes might both remain active or only the �0-12� node could remain active. For the sake of this example, assume both nodes remain active. At the second layer 90, the nodes for �girl� and �woman� will become active and in turn the nodes will activate the relationship node at the third level 100 that corresponds with �parent� node 752.
Assume the next viewing event is �Economic News� and the demographic values are Male=0.82, Female=0.18, 0-12=0, 13-17=0, 18-20=0.01, 21-24=0, 25-34=0.88, 35-49=0.02, 50-54=0, 55-64=0, and 65+=0.08. In this example, the �male� and �25-34� nodes would become active at the first layer 780, stimulating the �man� node at the second layer 790, which in turn would stimulate the �parent� node 752 at the third layer 750 based on the previous evidence for a child. Thus after two viewing events, the household now appears to have a mother, father, and young girl.
Referring to FIG. 9, the previous neural network example described above included the conditional probability of the household that watched �Economic News� having a person between the ages of 25 and 34 is 0.88 (expressed mathematically as P(25�34/Economic News)=0.88).
And much in the same way that the neural network has a layer to capture relationships in typical family compositions, using a Bayes classifier algorithm, the conditional probabilities above can be enhanced by adding information based on the known probabilities of family composition derived from census data. Thus, if there is a high probability of person between the ages of 0 and 5 being in the household based on user input pattern data or user viewing patterns, then this information can be combined with conditional probabilities from census data to (P(24�35/0�5)=0.58) to determine the probability that there is an adult between the ages of 24 and 35 in the household.
Referring to FIGS. 1, 4 and 6, if the demographic value(s) for a program request made by a user matches an existing user profile, then the matching program request and user profile are combined to create an updated inferred user profile using an averaging algorithm. If however, the demographic for the program request does not match any of the existing profiles for the same day part, then a new profile is created for the current day part. For example, assume the first program viewed by the household is �Bear in the Big Blue House� for 23 minutes on Monday at 8 a.m. with the program demographic values given above. The following new profile would be created comprising the same profile as the program.
Gender� ID
Continuing with this example, assume the next program viewed is �Economic News� for 20 minutes at Tuesday at 7 a.m. with the program demographic values given above. In this instance, the current information would not match the existing profile for the day part and the following new profile would be created, as shown in Table 5 below.
Referring again to FIG. 6, television program profiles available from, for example, A. C. Nielsen are stored in the local categorized program database 464. In one practice of the present invention, the database comprises a selectively chosen list of shows whose Nielsen data are highly indicative of either a particular age group or gender group. The list is balanced so that it is not biased toward any particular age or gender group (i.e. if a list of 100 programs had 70 shows that were indicators of �maleness� then an inordinate percentage of the profiles generated would be male).
For each viewing of a program having a stored profile, the program profile is averaged or combined into the user's profile. The profiles include a rating in each category that reflects the probability that there is a member of that demographic category in the household who accessed the television program. An example of an update when the given information matches an existing profile is given in Table 6 below. In this example, assume the household profile is currently the same as in the previous table and the household views �Adventures of Winnie the Pooh� for 17 minutes and which has the following demographics: Male=0.40, Female=0.60, Age 0-12=0.64, . . . , Age 25-34=0.08 . . . For this example, the current data would match the profile for user 1 and the profile would be updated as in Table 6 below.
Continuing with our current example, assume that only two distinct profiles exist for the Weekday 6-9 a.m. day part�one for a male between the ages of 25 and 34 and one for a female between the ages of 0 and 12. If a viewing event occurs between the hours of 6-9 a.m. during a weekday, it can be assumed the viewing event belongs to one of the two profiles known to exist for this time period. Thus, if two distinct profiles are known for a day part and one profile is an adult male and the other profile is a female child, a difference in button press speed will exist during the corresponding viewing session.
Patent CitationsCited PatentFiling datePublication dateApplicantTitleUS5223924May 27, 1992Jun 29, 1993North American Philips CorporationSystem and method for automatically correlating user preferences with a T.V. program information databaseUS5347632Jul 28, 1989Sep 13, 1994Prodigy Services CompanyReception system for an interactive computer network and method of operationUS5572643Oct 19, 1995Nov 5, 1996Judson; David H.Web browser with dynamic display of information objects during linkingUS5592551Apr 19, 1994Jan 7, 1997Scientific-Atlanta, Inc.Method and apparatus for providing interactive electronic programming guideUS5659350Dec 2, 1993Aug 19, 1997Discovery Communications, Inc.Operations center for a television program packaging and delivery systemUS5710884Mar 29, 1995Jan 20, 1998Intel CorporationSystem for automatically updating personal profile server with updates to additional user information gathered from monitoring user's electronic consuming habits generated on computer during useUS5740252Oct 13, 1995Apr 14, 1998C/Net, Inc.Apparatus and method for passing private demographic information between hyperlink destinationsUS5740549Jun 12, 1995Apr 14, 1998Pointcast, Inc.Information and advertising distribution system and methodUS5754774Feb 15, 1996May 19, 1998International Business Machine Corp.Client/server communication systemUS5761662May 8, 1997Jun 2, 1998Sun Microsystems, Inc.Personalized information retrieval using user-defined profileUS5794210Dec 11, 1995Aug 11, 1998Cybergold, Inc.Attention brokerageUS5798785Dec 2, 1993Aug 25, 1998Discovery Communications, Inc.Terminal for suggesting programs offered on a television program delivery systemUS5801747Nov 15, 1996Sep 1, 1998Hyundai Electronics AmericaMethod and apparatus for creating a television viewer profileUS5812784Apr 22, 1997Sep 22, 1998Microsoft CorporationMethod and apparatus for supporting multiple, simultaneous services over multiple, simultaneous connections between a client and network serverUS5848396Apr 26, 1996Dec 8, 1998Freedom Of Information, Inc.Method and apparatus for determining behavioral profile of a computer userUS5848397Apr 19, 1996Dec 8, 1998Juno Online Services, L.P.Method and apparatus for scheduling the presentation of messages to computer usersUS5913040Aug 22, 1995Jun 15, 1999Backweb Ltd.Method and apparatus for transmitting and displaying information between a remote network and a local computerUS5945988May 30, 1997Aug 31, 1999Intel CorporationMethod and apparatus for automatically determining and dynamically updating user preferences in an entertainment systemUS5946646Mar 29, 1995Aug 31, 1999Digital Broadband Applications Corp.Interactive advertising system and deviceUS5948061Oct 29, 1996Sep 7, 1999Double Click, Inc.Method of delivery, targeting, and measuring advertising over networksUS5959623Dec 8, 1995Sep 28, 1999Sun Microsystems, Inc.System and method for displaying user selected set of advertisementsUS5966695Oct 17, 1995Oct 12, 1999Citibank, N.A.Sales and marketing support system using a graphical query prospect databaseUS5974398Apr 11, 1997Oct 26, 1999At&T Corp.Method and apparatus enabling valuation of user access of advertising carried by interactive information and entertainment servicesUS6005597Oct 27, 1997Dec 21, 1999Disney Enterprises, Inc.Method and apparatus for program selectionUS6012051Feb 6, 1997Jan 4, 2000America Online, Inc.Consumer profiling system with analytic decision processorUS6014638May 29, 1996Jan 11, 2000America Online, Inc.System for customizing computer displays in accordance with user preferencesUS6014654Mar 28, 1997Jan 11, 2000Nec CorporationInformation filtering apparatus for filtering information for interests of users and a method thereforUS6018372Sep 4, 1997Jan 25, 2000Liberate TechnologiesElectronic program guide with multiple day plannerUS6026368Jul 17, 1995Feb 15, 200024/7 Media, Inc.On-line interactive system and method for providing content and advertising information to a targeted set of viewersUS6041311Jan 28, 1997Mar 21, 2000Microsoft CorporationMethod and apparatus for item recommendation using automated collaborative filteringUS6049777Mar 14, 1997Apr 11, 2000Microsoft CorporationComputer-implemented collaborative filtering based method for recommending an item to a userUS6064980Mar 17, 1998May 16, 2000Amazon.Com, Inc.System and methods for collaborative recommendationsUS6078866Sep 14, 1998Jun 20, 2000Searchup, Inc.Internet site searching and listing service based on monetary ranking of site listingsUS6088722 *Nov 29, 1995Jul 11, 2000Herz; FrederickSystem and method for scheduling broadcast of and access to video programs and other data using customer profilesUS6092049Mar 14, 1997Jul 18, 2000Microsoft CorporationMethod and apparatus for efficiently recommending items using automated collaborative filtering and feature-guided automated collaborative filteringUS6112192 *May 9, 1997Aug 29, 2000International Business Machines Corp.Method for providing individually customized content in a networkUS6119101Jan 17, 1997Sep 12, 2000Personal Agents, Inc.Intelligent agents for electronic commerceUS6134532Nov 14, 1997Oct 17, 2000Aptex Software, Inc.System and method for optimal adaptive matching of users to most relevant entity and information in real-timeUS6144944Apr 22, 1998Nov 7, 2000Imgis, Inc.Computer system for efficiently selecting and providing informationUS6157946Feb 26, 1997Dec 5, 2000Netzero Inc.Communication system capable of providing user with picture meeting characteristics of user and terminal equipment and information providing device used for the sameUS6163316Oct 3, 1997Dec 19, 2000Texas Instruments IncorporatedElectronic programming system and methodUS6177931Jul 21, 1998Jan 23, 2001Index Systems, Inc.Systems and methods for displaying and recording control interface with television programs, video, advertising information and program scheduling informationUS6208975 *Jun 19, 1997Mar 27, 2001Sabre Inc.Information aggregation and synthesization systemUS6236975Sep 29, 1998May 22, 2001Ignite Sales, Inc.System and method for profiling customers for targeted marketingUS6236978Nov 14, 1997May 22, 2001New York UniversitySystem and method for dynamic profiling of users in one-to-one applicationsUS6243760Jun 24, 1997Jun 5, 2001Vistar Telecommunications Inc.Information dissemination system with central and distributed cachesUS6285983Mar 19, 1999Sep 4, 2001Lend Lease Corporation Ltd.Marketing systems and methods that preserve consumer privacyUS6285987 *Jan 22, 1997Sep 4, 2001Engage, Inc.Internet advertising systemUS6295061Nov 30, 1999Sep 25, 2001Dbm KoreaComputer system and method for dynamic information displayUS6298348Mar 12, 1999Oct 2, 2001Expanse Networks, Inc.Consumer profiling systemUS6305017Mar 2, 2000Oct 16, 2001United Video Properties, Inc.Interactive television program guide with selectable non-program optionsUS6311211Jan 14, 1999Oct 30, 2001Juno Online Services, Inc.Method and apparatus for delivering electronic advocacy messagesUS6327574Feb 1, 1999Dec 4, 2001Encirq CorporationHierarchical models of consumer attributes for targeting content in a privacy-preserving mannerUS6334110Mar 10, 1999Dec 25, 2001Ncr CorporationSystem and method for analyzing customer transactions and interactionsUS6366298Jun 3, 1999Apr 2, 2002Netzero, Inc.Monitoring of individual internet usageUS6385590 *Nov 22, 2000May 7, 2002Philip LevineMethod and system for determining the effectiveness of a stimulusUS6427063May 22, 1997Jul 30, 2002Finali CorporationAgent based instruction system and methodUS6449632Apr 1, 1999Sep 10, 2002Bar Ilan University Nds LimitedApparatus and method for agent-based feedback collection in a data broadcasting networkUS6708335Aug 18, 1999Mar 16, 2004Webtv Networks, Inc.Tracking viewing behavior of advertisements on a home entertainment systemUS6757691 *Nov 9, 1999Jun 29, 2004America Online, Inc.Predicting content choices by searching a profile databaseUS6769009Apr 20, 2000Jul 27, 2004Richard R. ReismanMethod and system for selecting a personalized set of information channelsUS6845102Oct 9, 1997Jan 18, 2005Cisco Technology, Inc.Method and system for network access over a low bandwidth linkUS6882977Jul 31, 2000Apr 19, 2005Hewlett-Packard Development Company, L.P.Method and facility for displaying customer activity and valueUS6882990Aug 7, 2000Apr 19, 2005Biowulf Technologies, LlcMethods of identifying biological patterns using multiple data setsUS6889218May 15, 2000May 3, 2005International Business Machines CorporationAnomaly detection methodUS7003792Nov 30, 1999Feb 21, 2006Index Systems, Inc.Smart agent based on habit, statistical inference and psycho-demographic profilingUS7020643Jan 25, 2002Mar 28, 2006Microsoft CorporationMethod and system for clickpath funnel analysisUS7092926 *Apr 5, 2002Aug 15, 2006Sedna Patent Services, LlcMethod and apparatus for identifying unique client users from user behavioral dataUS7328216 *Aug 11, 2003Feb 5, 2008Recommind Inc.System and method for personalized search, information filtering, and for generating recommendations utilizing statistical latent class modelsUS7496553Aug 14, 2006Feb 24, 2009Sedna Patent Services, LlcMethod and apparatus for identifying unique client users from user behavioral dataUS20010011264Aug 4, 1999Aug 2, 2001Charles KawasakiMethod and system for creating and using a computer user's personal interest profileUS20010049620Feb 28, 2001Dec 6, 2001Blasko John P.Privacy-protected targeting systemUS20010056370Apr 2, 2001Dec 27, 2001Sivan TaflaMethod and system for presenting an animated advertisement on a web pageUS20020004744Mar 1, 2001Jan 10, 2002Muyres Matthew R.Micro-target for broadband contentUS20020013729Jul 30, 2001Jan 31, 2002Nec Corporation.Advertisement presentation systemUS20020059094Jun 7, 2001May 16, 2002Hosea Devin F.Method and system for profiling iTV users and for providing selective content deliveryUS20020129368Oct 31, 2001Sep 12, 2002Schlack John A.Profiling and identification of television viewersUS20050028208Aug 26, 2004Feb 3, 2005United Video Properties, Inc.Interactive television program guide with remote accessEP1606754A2Mar 24, 2004Dec 21, 2005Anthony Scott OddoGenerating audience analyticsWO2000033233A1Dec 2, 1999Jun 8, 2000Telecom Partners LtdSubscriber identification systemWO2000049801A1Feb 17, 2000Aug 24, 2000Index Systems IncSystem and method for tailoring television and/or electronic program guide features, such as advertisingWO2001020481A2Sep 6, 2000Mar 22, 2001Predictive Networks IncMethod and system for web user profiling and selective content deliveryWO2002082214A2Apr 5, 2002Oct 17, 2002Predictive Networks IncMethod and apparatus for identifying unique client users from user behavioral dataWO2002102030A2Jun 7, 2002Dec 19, 2002Predictive Networks IncMETHOD AND SYSTEM FOR PROFILING iTV USERS AND FOR PROVIDING SELECTIVE CONTENT DELIVERY* Cited by examinerNon-Patent CitationsReference1"AdForce and Activate Deliver Next Generation Web Advertising," Business Wire (Nov. 8, 2000).2Advisory Action mailed Feb. 26, 2007, in co-pending U.S. Appl. No. 09/877,974, 5 pp.3Advisory Action mailed Feb. 3, 2004, in co-pending U.S. Appl. No. 09/558,755, 3pp.4Advisory Action mailed Feb. 4, 2009, in co-pending U.S. Appl. No. 09/877,974, 3 pp.5Advisory Action mailed Jan. 14, 2008, in co-pending U.S. Appl. No. 09/877,974, 4 pp.6Advisory Action mailed Jul. 14, 2010, in co-pending U.S. Appl. No. 09/877,974, 3 pp.7Advisory Action mailed Jun. 30, 2010, in co-pending U.S. Appl. No. 09/558,755, 4 pp.8Advisory Action mailed Oct. 1, 2007, in co-pending U.S. Appl. No. 09/558,755, 4 pp.9 *Balabanovic, Marko. An Adaptive Web Page Recommendation Service. Department of Computer Science, Stanford University. 1997.10 *Bloedorn, Eric; Mani, Inderjeet. Using NLP for Machine Learning of User Profiles. Artificial Intelligence Technical Center, The MITRE Corporation 1998.11BPAI Decision mailed Aug. 29, 2006, in co-pending U.S. Appl. No. 09/558,755, 10 pp.12BPAI Decision mailed May 28, 2009, in co-pending U.S. Appl. No. 09/558,755, 8 pp.13CacheFlow Delivers cIQ Content-Smart Delivery Architecture. Business Wire. New York: Feb. 12, 2001. from Proquest. p. 2.14Examiner's Answer to Appeal Brief mailed May 29, 2008, in co-pending U.S. Appl. No. 09/558,755, 32 pp.15Examiner's Answer to Appeal Brief mailed Nov. 3, 2005, in co-pending U.S. Appl. No. 09/558,755, 19 pp.16Frook, John Evan. Web Add-On Helps Identify Site Visitors. CommunicationsWeek. Manhasset: Oct. 30, 1995. p. 27 from proquest.17 *Good, Nathaniel; Schafer, J. Ben; Konstan, Joseph A.; Borchers, Al; Sarwar, Badrul; Herlocker, Jon; and Riedl, John. Combining Collaborative Filtering with Personal Agents for Better Recommendations. GroupLens Research Project. Dept. of Computer Science and Engineering, University of Minnesota. 1999.18 *Harvey, Bill. Better Television Audience Measurement through the research integration of set-top box data.19International Search Report in corresponding PCT/US04/08924, Dec. 28, 2004, Sedna Patent Services, LLC.20Kannan, P. et al., "Marketing Information on the I-Way," Communications of the ACM, vol. 41, No. 3, pp. 35-43 (Mar. 1998).21Miscellaneous Action mailed Aug. 10, 2006, co-pending U.S. Appl. No. 09/877,974, 5 pp.22Notice of Allowance mailed Feb. 22, 2011, in pending U.S. Appl. No. 09/877,974, 11 pp.23Notice of Allowance mailed Sep. 29, 2011 in U.S. Appl. No. 09/558,755, 16 pages.24Office Action mailed Mar. 16, 2011, in pending U.S. Appl. No. 09/558,755, 8 pp.25 *Pazzani, Michael J. Framework for Collaborative, Content0Based and Demographic Filtering. Department of Informaiton and Computer Science University of California, Irvine. 1999.26U.S Official Action mailed Apr. 14, 2010, in U.S. Appl. No. 09/558,755.27U.S Official Action mailed Apr. 3, 2003, in U.S. Appl. No. 09/558,755.28U.S Official Action mailed Apr. 3, 2008, in U.S. Appl. No. 09/877,974.29U.S Official Action mailed Aug. 11, 2005, in U.S. Appl. No. 09/877,974.30U.S Official Action mailed Dec. 1, 2006, in U.S. Appl. No. 09/877,974.31U.S Official Action mailed Dec. 16, 2004, in U.S. Appl. No. 09/877,974.32U.S Official Action mailed Jan. 13, 2010, in U.S. Appl. No. 09/877,974.33U.S Official Action mailed Jan. 24, 2006, in U.S. Appl. No. 09/877,974.34U.S Official Action mailed Jan. 4, 2007, in U.S. Appl. No. 09/558,755.35U.S Official Action mailed Jul. 9, 2007, in U.S. Appl. No. 09/558,755.36U.S Official Action mailed May 15, 2009, in U.S. Appl. No. 09/877,974.37U.S Official Action mailed May 17, 2007, in U.S. Appl. No. 09/877,974.38U.S Official Action mailed Nov. 12, 2003, in U.S. Appl. No. 09/558,755.39U.S Official Action mailed Oct. 22, 2008, in U.S. Appl. No. 09/877,974.40U.S Official Action mailed Oct. 31, 2007, in U.S. Appl. No. 09/877,974.41U.S Official Action mailed Sep. 11, 2002, in U.S. Appl. No. 09/558,755.42U.S Official Action mailed Sep. 14, 2010, in U.S. Appl. No. 09/877,974.43U.S Official Action mailed Sep. 29, 2010, in U.S. Appl. No. 09/558,755.44U.S Official Action mailed Sep. 30, 2009, in U.S. Appl. No. 09/558,755.45U.S. Appl. No. 09/558,755, filed Apr. 21, 2000 entitled "Method and System for Web User Profiling and Selective Content Delivery".* Cited by examinerReferenced byCiting PatentFiling datePublication dateApplicantTitleUS8458119Aug 18, 2011Jun 4, 2013Manyworlds, Inc.People matching in subscription-based communitiesUS8458120Aug 18, 2011Jun 4, 2013Manyworlds, Inc.Search-based people matching system and methodUS8478716Aug 18, 2011Jul 2, 2013Manyworlds, Inc.Proximity-based people matching system and methodUS8515900Aug 18, 2011Aug 20, 2013Manyworlds, Inc.Environment-responsive people matching system and methodUS8515901Nov 9, 2011Aug 20, 2013Manyworlds, Inc.Explanatory people matching system and methodUS8677243 *Sep 1, 2006Mar 18, 2014Nokia CorporationMedia recommendation system and methodUS8918903 *Nov 8, 2011Dec 23, 2014Symantec CorporationSystems and methods for performing authentication validationUS20080059422 *Sep 1, 2006Mar 6, 2008Nokia CorporationMedia recommendation system and methodUS20090150437 *Dec 7, 2007Jun 11, 2009Gustavo De Los ReyesSystem and method for tracking an individual using typeprintingUS20120096155 *Dec 27, 2011Apr 19, 2012Manyworlds, Inc.Subscription-based Temporally Sequenced RecommendationsUS20140244566 *Dec 22, 2011Aug 28, 2014Edward L. HewettAccurately Estimating the Audience of Digital Content* Cited by examinerClassifications U.S. Classification705/7.29, 705/7.31International ClassificationG06Q99/00, G06Q10/00, G06FCooperative ClassificationG06Q30/0201, G06Q30/0204, G06Q30/0202, H04H60/45, G06F21/316, H04H60/65, H04H60/46, G06Q30/02European ClassificationG06Q30/02, H04H60/45, H04H60/65, H04H60/46, G06F21/31B, G06Q30/0201, G06Q30/0204, G06Q30/0202Legal EventsDateCodeEventDescriptionNov 11, 2008ASAssignmentOwner name: COX COMMUNICATIONS, GEORGIAFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SEDNA PATENT SERVICES, LLC;REEL/FRAME:021817/0486Effective date: 20080913Owner name: COX COMMUNICATIONS, INC.,GEORGIAFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SEDNA PATENT SERVICES, LLC;US-ASSIGNMENT DATABASE UPDATED:20100427;REEL/FRAME:21817/486Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SEDNA PATENT SERVICES, LLC;REEL/FRAME:21817/486Owner name: COX COMMUNICATIONS, INC., GEORGIAOwner name: COX COMMUNICATIONS, INC., GEORGIAFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SEDNA PATENT SERVICES, LLC;REEL/FRAME:021817/0486Effective date: 20080913Owner name: COX COMMUNICATIONS, INC.,GEORGIAFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SEDNA PATENT SERVICES, LLC;US-ASSIGNMENT DATABASE UPDATED:20100427;REEL/FRAME:21817/486Effective date: 20080913Owner name: COX COMMUNICATIONS, INC.,GEORGIAFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SEDNA PATENT SERVICES, LLC;REEL/FRAME:21817/486Effective date: 20080913Owner name: COX COMMUNICATIONS, INC.,GEORGIAFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SEDNA PATENT SERVICES, LLC;REEL/FRAME:021817/0486Effective date: 20080913Aug 9, 2006ASAssignmentOwner name: SEDNA PATENT SERVICES, LLC, PENNSYLVANIAFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ODDO, ANTHONY SCOTT;REEL/FRAME:018085/0001Effective date: 20050926Apr 4, 2005ASAssignmentOwner name: SEDNA PATENT SERVICES, LLC, PENNSYLVANIAFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:PREDICTIVE MEDIA CORPORATION FORMERLY KNOWN AS PREDICTIVENETWORKS, INC.;REEL/FRAME:016002/0806Effective date: 20050216RotateOriginal ImageGoogle Home - Sitemap - USPTO Bulk Downloads - Privacy Policy - Terms of Service - About Google Patents - Send FeedbackData provided by IFI CLAIMS Patent Services