|
|
|
Including usage or charge recording at subscriber station |
System and method for scheduling broadcast of and access to video programs and other data using customer profiles5758257
Abstract
A system and method for scheduling the receipt of desired movies and other forms of data from a network which simultaneously distributes many sources of such data to many customers, as in a cable television system. Customer profiles are developed for the recipient describing how important certain characteristics of the broadcast video program, movie or other data are to each customer. From these profiles, an "agreement matrix" is calculated by comparing the recipient's profiles to the actual profiles of the characteristics of the available video programs, movies, or other data. The agreement matrix thus characterizes the attractiveness of each video program, movie, or other data to each prospective customer. "Virtual" channels are generated from the agreement matrix to produce a series of video or data programming which will provide the greatest satisfaction to each customer. Feedback paths are also provided so that the customer's profiles and/or the profiles of the video programs or other data may be modified to reflect actual usage. Kiosks are also developed which assist customers in the selection of videos, music, books, and the like in accordance with the customer's objective profiles.
Claims
We claim:
1. A method of scheduling customer access to data from a plurality of data sources, comprising the steps of:
creating at least one customer profile for each eligible recipient of said data, said customer profile indicating the customer's preferences for data having predetermined characteristics;
creating content profiles for each data source of said data, said content profiles indicating the degree of content of said predetermined characteristics in data from each data source;
inputting recipient identity information;
selecting a customer profile which corresponds to said recipient identity information;
relating said selected customer profile with the content profiles for the data available from each data source to the customer at a particular time by determining a distance between a customer profile and a content profile in a characteristic space by calculating an agreement scalar for common characteristics, ac, between said selected customer profile, cv, and said content profiles, cp, in accordance with the relationship:
ac.sub.ij=l/l+.SIGMA..sub.k w.sub.ik .vertline.cv.sub.ik -cp.sub.jk .vertline.!,
for i=a particular customer of a number of customers i, j=a particular data source of a number of data sources J, and k=a particular characteristic of a data source of a number of data source characteristics K, where cv.sub.ik is treater than or equal to 0 and w.sub.ik is customer i's normalized weight of characteristic k;
determining a subset of data having content profiles which are determined in said relating step to most closely match said selected customer profile; and
presenting said subset of data to said customer for selection.
2. A method of scheduling customer access to video programs, comprising the steps of:
creating at least one customer profile for each customer of said video programs, said customer profile indicating the customer's preferences for predetermined characteristics of the video programs;
creating content profiles for each video program available for viewing, said content profiles indicating the degree of content of said predetermined characteristics in each video program;
determining an agreement matrix which relates said at least one customer profile with the content profiles for certain video programs available for viewing by said customer at a particular time;
determining from said agreement matrix a subset of said video programs having content profiles which most closely match said at least one customer profile; and
presenting said subset of video programs to the customer as at least one "virtual channel" for display on the customer's television.
3. A method as in claim 2, wherein said customer profile creating step comprises the step of creating a plurality of customer profiles for each customer, said plurality of customer profiles being representative of the customer's changing preferences for said predetermined characteristics in accordance with time of the day and of the week, and said agreement matrix determining step comprises the step of using different customer profiles for each customer in accordance with the time of the day and of the week.
4. A method as in claim 3, wherein said customer profile creating step comprises the step of creating combined customer profiles for combinations of customers at a particular customer location at particular times on particular days, and said agreement matrix determining step comprises the step of using different combined customer profiles in accordance with the time of the day and of the week.
5. A method as in claim 2, wherein said agreement matrix determining step comprises the step of comparing said at least one customer profile with the content profiles for each video program available for viewing in a predetermined time period.
6. A method as in claim 2, wherein said agreement matrix determining step comprises the step of determining a distance between a customer profile and a content profile in a characteristic space by calculating an agreement scalar for common characteristics, ac, between said at least one customer profile, cv, and said content profiles, cp, in accordance with the relationship:
ac.sub.ij=l/1+.SIGMA..sub.k w.sub.ik .vertline.cv.sub.ik -cp.sub.jk !.vertline.,
for i=a particular customer of a number of customers I, j=a particular video program of a number of video programs J, and k=a particular video program characteristic of a number of video program characteristics K, where cv.sub.ik is greater than or equal to 0 and w.sub.ik is customer i's normalized weight of characteristic k.
7. A method as in claim 6, wherein said subset determining step comprises the steps of sorting said video programs in an order of ac indicating increasing correlation and selecting as said subset a predetermined number of said video programs having the values for ac indicating the most correlation.
8. A method as in claim 2, comprising the further steps of receiving customer identity information and determining from said customer identity information which customer profile to use in said agreement matrix determining step.
9. A method of scheduling transmission of video programs to a plurality of customers, comprising the steps of:
creating a plurality of customer profiles for each of said plurality of customers of said video programs, said plurality of customer profiles being representative of the customers' changing preferences for predetermined characteristics of the video programs in accordance with time of the day and of the week, at least one customer profile being available at a particular time of the day and of the week;
creating content profiles for each video program available for transmission to said customers, said content profiles indicating the degree of content of said predetermined characteristics in each video program;
determining an agreement matrix which relates said at least one customer profile with the content profiles for certain video programs available for transmission to said customers at a particular time;
determining from said agreement matrix a subset of said video programs having content profiles which most closely match said at least one customer profile; and
scheduling said subset of video programs for transmission from a video head end to said plurality of customers for receipt on the customers' televisions.
10. A method as in claim 9, wherein said customer profiles creating step comprises the steps of creating combined customer profiles for combinations of customers at a particular customer location at particular times on particular days, and forming said at least one customer profile from the combined customer profiles available at a particular time of the day and of the week, said agreement matrix determining step comprising the step of using a customer profile created from combined customer profiles in accordance with the time of the day and of the week.
11. A method as in claim 9, wherein said agreement matrix determining step comprises the step of comparing said at least one customer profile with the content profiles for each video program available for transmission during a predetermined time period.
12. A method as in claim 9, wherein said agreement matrix determining step comprises the step of determining a distance between a customer profile and a content profile in a characteristic space by calculating an agreement scalar for common characteristics, ac, between said at least one customer profile, cv, and said content profiles, cp, in accordance with the relationship:
ac.sub.ij=l/l+.SIGMA..sub.k w.sub.ik .vertline.cv.sub.ik -cp.sub.jk .vertline.!, for i=a particular customer of a number of customers I, j=a particular video program of a number of video programs J, and k=a particular video program characteristic of a number of video program characteristics K, where cv.sub.ik is greater than or equal to 0 and w.sub.ik is customer i's normalized weight of characteristic k.
13. A method as in claim 12, wherein said subset determining step comprises the steps of sorting said video programs in an order of ac indicating increasing correlation and selecting as said subset a predetermined number of said video programs having the values for ac indicating the most correlation.
14. A method as in claim 12, wherein said scheduling step comprises the steps of:
(a) determining a video program j which most closely matches the customer profiles of said plurality of customers of said video programs;
(b) scheduling said video program j for receipt by said plurality of customers and decrementing a number of channels available for transmission of video programs to said plurality of customers;
(c) when said number of channels available for transmission of video programs to a particular customer of said plurality of customers reaches zero, removing said particular customer from said plurality of customers for scheduling purposes; and
(d) repeating steps (a)-(c) until the number of video programs scheduled for transmission equals the number of channels available for transmission of video programs.
15. A method as in claim 9, comprising the further steps of:
encoding communications between said video head end and said plurality of customers; and
transmitting said encoded video programs to said plurality of customers.
16. A method as in claim 15, wherein said encoding step comprises the steps of:
generating a seed random number N at either the video head end or a customer's set top terminal for seeding a pseudo random number generator of the customer's set top terminal and a pseudo random number generator of the video head end;
encrypting seed random number N using a public key algorithm and a public key P known to the customer's set top terminal and the video head end to yield encrypted seed random number E(N,P);
providing the encrypted seed random number E(N,P) to the other of the customer's set top terminal and the video head end at which the seed random number N was not generated;
decrypting the encrypted seed random number E(N,P) at the other of the customer's set top terminal and the video head end at which the seed random number N was not generated using a private key of the other of the customer's set top terminal and the video head end at which the seed random number N was not generated to yield seed random number N;
initializing the pseudo random number generator of the customer's set top terminal and the pseudo random number generator of the video head end with seed random number N to generate pseudo random sequence K.sub.i at the customer's set top terminal and the video head end; and
for each number i in random sequence K.sub.i, logically exclusive-ORing K.sub.i with a data stream P.sub.i to be transmitted to the customer's set top terminal, thereby forming a data stream C.sub.i to be transmitted from the video head end to the customer's set top terminal in said transmitting step, and decrypting data stream C.sub.i at the customer's set top terminal to yield a decrypted data stream P.sub.i by logically exclusive-ORing sequence K.sub.i with data stream C.sub.i.
17. A method of scheduling customer access to data from a plurality of data sources, comprising the steps of:
creating at least one customer profile for each eligible recipient of said data, said customer profile indicating the customer's preferences for data having predetermined characteristics;
creating content profiles for each data source of said data, said content profiles indicating the degree of content of said predetermined characteristics in data from each data source;
monitoring which data sources are actually accessed by each recipient; and
updating, without input from each customer, each customer profile in accordance with the content profiles of the data sources actually accessed by that customer to automatically update each customer's actual preferences for said predetermined characteristics.
18. A method of scheduling customer access to video programs, comprising the steps of:
creating at least one customer profile for each customer of said video programs, said customer profile indicating the customer's preferences for predetermined characteristics of the video programs;
creating content profiles for each video program available for viewing, said content profiles indicating the degree of content of said predetermined characteristics in each video program;
monitoring which video programs are actually viewed by each customer; and
updating, without input from each customer, each customer profile in accordance with the content profiles of the video programs actually viewed by that customer to automatically update each customer's actual preferences for said predetermined characteristics.
19. A method as in claim 18, wherein said customer profile creating step comprises the step of creating a plurality of customer profiles for each customer, said plurality of customer profiles being representative of the customer's changing preferences for said predetermined characteristics in accordance with time of the day and of the week, and said updating step comprises the step of updating different customer profiles for each customer in accordance with the time of the day and of the week.
20. A method as in claim 19, wherein said customer profile creating step comprises the step of creating combined customer profiles for combinations of customers at a particular customer location at particular times on particular days, and said updating step comprises the step of updating different combined customer profiles in accordance with the time of the day and of the week.
21. A method as in claim 18, comprising the further steps of receiving customer identity information and determining from said customer identity information which customer profile to update in said updating step.
22. A method as in claim 18, further comprising the steps of:
determining an agreement matrix which relates said at least one customer profile with the content profiles for certain video programs available for viewing by said customer at a particular time;
determining from said agreement matrix a subset of said video programs having content profiles which most closely match said at least one customer profile; and
presenting said subset of video programs to the customer as a virtual channel for display on the customer's television.
23. A method as in claim 22, wherein said agreement matrix determining step comprises the step of comparing said at least one customer profile with the content profiles for each video program available for viewing in a predetermined time period.
24. A method as in claim 22, wherein said agreement matrix determining step comprises the step of determining a distance between a customer profile and a content profile in a characteristic space by calculating an agreement scalar for common characteristics, ac, between said at least one customer profile, cv, and said content profiles, cp, in accordance with the relationship:
ac.sub.ij=l/l+.SIGMA..sub.k w.sub.ik .vertline.cv.sub.ik -cp.sub.jk .vertline.!,
for i=a particular customer of a number of customers I, j=a particular video program of a number of video programs J, and k=a particular video program characteristic of a number of video program characteristics K, where cv.sub.ik is greater than or equal to 0 and w.sub.ik is customer i's normalized weight of characteristic k.
25. A method as in claim 24, wherein said subset determining step comprises the steps of sorting said video programs in an order of ac indicating increasing correlation and selecting as said subset a predetermined number of said video programs having the values for ac indicating the most correlation.
26. A method as in claim 18, wherein said updating step comprises the steps of adjusting said at least one customer profile, cv.sub.ik, for customer i and video program characteristic k, to a new customer profile, cv.sub.ik ', in accordance with the equation:
cv.sub.ik =cv.sub.ik -.DELTA.(cv.sub.ik -cp.sub.jk),
where cp.sub.jk represents the degree of video program characteristic k in video program j.
27. A method as in claim 18, wherein said updating step comprises the steps of adjusting customer i's weighting of video program characteristic k, w.sub.ik, in said at least one customer profile, cv.sub.ik, to a new weighting, w.sub.ik ', in accordance with the equation:
w.sub.ik '=(w.sub.ik -.DELTA..vertline.cv.sub.ik -cp.sub.jk .vertline.)/.SIGMA..sub.k (w.sub.ik -.DELTA..vertline.cv.sub.ik -cp.sub.jk .vertline.)
where cp.sub.jk represents the degree of video program characteristic k in video program j.
28. A method as in claim 18, comprising the further step of updating the content profiles, cp.sub.jk, of certain video programs j having video program characteristics k to new content profiles, cp.sub.jk ', to update the customer profiles of customers i who actually watch video program j, in accordance with the equation:
cp.sub.jk '=cp.sub.jk -.DELTA.(cv.sub.ik -cp.sub.jk),
where cv.sub.ik represents the customer profile of customer i for video program characteristic k.
29. A method of scheduling transmission of video programs to a plurality of customers, comprising the steps of:
creating at least one clustered customer profile for each of said plurality of customers of said video programs, said clustered customer profile indicating said plurality of customers' combined preferences for predetermined characteristics of the video programs;
creating content profiles for each video program available for transmission to said customers, said content profiles indicating the degree of content of said predetermined characteristics in each video program;
monitoring which video programs are actually viewed by each customer; and
updating, without input from each customer, each clustered customer profile in accordance with the content profiles of the video programs actually viewed by said plurality of customers to automatically update the actual preferences of said plurality of customers for said predetermined characteristics.
30. A method as in claim 29, wherein said clustered customer profile creating step comprises the steps of creating a plurality of customer profiles for each customer, said plurality of customer profiles being representative of the customer's changing preferences for said predetermined characteristics in accordance with time of the day and of the week, and forming said at least one clustered customer profile from the customer profiles available at a particular time of the day and of the week, said updating step comprising the step of updating different clustered customer profiles in accordance with the time of the day and of the week.
31. A method as in claim 30, wherein said clustered customer profile creating step comprises the steps of creating combined customer profiles for combinations of customers at a particular customer location at particular times on particular days, and forming said at least one clustered customer profile from the combined customer profiles available at a particular time of the day and of the week, said updating step comprising the step of updating different clustered customer profiles in accordance with the time of the day and of the week.
32. A method as in claim 29, further comprising the steps of:
determining an agreement matrix which relates said at least one clustered customer profile with the content profiles for certain video programs available for transmission to said customers at a particular time;
determining from said agreement matrix a subset of said video programs having content profiles which most closely match said at least one customer profile; and
scheduling said subset of video programs for transmission from a video head end to said plurality of customers for receipt on the customers' televisions.
33. A method as in claim 32, wherein said agreement matrix determining step comprises the step of comparing said at least one customer profile with the content profiles for each video program available for transmission during a predetermined time period.
34. A method as in claim 32, wherein said agreement matrix determining step comprises the step of determining a distance between a customer profile and a content profile in a characteristic space by calculating an agreement scalar for common characteristics, ac, between said at least one customer profile, cv, and said content profiles, cp, in accordance with the relationship:
ac.sub.ij=l/l+.SIGMA..sub.k w.sub.ik .vertline.cv.sub.ik -cp.sub.jk .vertline.!,
for i=a particular customer of a number of customers I, j=a particular video program of a number of video programs J, and k=a particular video program characteristic of a number of video program characteristics K, where cv.sub.ik is greater than or equal to 0 and w.sub.ik is customer i's normalized weight of characteristic k.
35. A method as in claim 34, wherein said subset determining step comprises the steps of sorting said video programs in an order of ac indicating increasing correlation and selecting as said subset a predetermined number of said video programs having the values for ac indicating the most correlation.
36. A method as in claim 34, wherein said scheduling step comprises the steps of:
(a) determining a video program j which most closely matches the customer profiles of said plurality of customers of said video programs;
(b) scheduling said video program j for receipt by said plurality of customers and decrementing a number of channels available for transmission of video programs to said plurality of customers;
(c) when said number of channels available for transmission of video programs to a particular customer of said plurality of customers reaches zero, removing said particular customer from said plurality of customers for scheduling purposes; and
(d) repeating steps (a)-(c) until the number of video programs scheduled for transmission equals the number of channels available.
37. A method as in claim 29, wherein said monitoring step comprises the steps of storing, at each customer's set top terminal, a record of the video programs actually watched by the customer at the customer's location, and polling said set top terminals to retrieve said records of the video programs actually watched by the customers at each of the customer locations.
38. A method as in claim 29, wherein said updating step comprises the steps of adjusting said at least one customer profile, cv.sub.ik, for customer i and video program characteristic k, to a new customer profile, cv.sub.ik ', in accordance with the equation:
cv.sub.ik '=cv.sub.ik -.DELTA.(cv.sub.ik -cp.sub.jk),
where cp.sub.jk represents the degree of video program characteristic k in video program j.
39. A method as in claim 29, wherein said updating step comprises the steps of adjusting customer i's weighting of video program characteristic k, w.sub.ik, in said at least one customer profile, cv.sub.ik, to a new weighting, w.sub.ik ', in accordance with the equation:
w.sub.ik '=(w.sub.ik -.DELTA..vertline.cv.sub.ik -cp.sub.jk .vertline.)/.SIGMA..sub.k (w.sub.ik -.DELTA..vertline.cv.sub.ik -cp.sub.jk .vertline.)
where cp.sub.jk represents the degree of video program characteristic k in video program j.
40. A method as in claim 29, comprising the further step of updating the content profiles, cp.sub.jk, of certain video programs j having video program characteristics k to new content profiles, cp.sub.jk ', to update the customer profiles of customers i who actually watch video program j, in accordance with the equation:
cp.sub.jk '=cp.sub.jk -.DELTA.(cv.sub.ik -cp.sub.jk),
where cv.sub.ik represents the customer profile of customer i for video program characteristic k.
41. A method of scheduling customer access to data from a plurality of data sources, comprising the steps of:
creating a customer profile for each customer of said plurality of data sources, said customer profile indicating said customer's preferences for predetermined characteristics of the data sources;
monitoring which data sources are actually accessed by each customer; and
updating each customer profile to reflect the frequency of selection of the data sources by customers with customer profiles substantially similar to said each customer profile.
42. A method as in claim 41, wherein said profile creating step comprises the steps of:
selecting a number of desired groups K into which said customers are divided whereby each customer in a group has a customer profile substantially similar to a customer profile of each other customer in said group;
grouping said customers into K groups so as to minimize: ##EQU18## where .vertline.v.sub.i -v.sub.k .vertline. is a distance between the vector of characteristics of the data sources accessed by customer i and the centroid of group k; and
determining an agreement matrix ac.sub.ij, where for each customer i, a jth row of the agreement matrix is a vector v.sub.k for a group k in which customer i belongs.
43. A method of scheduling customer access to data from a plurality of data sources, comprising the steps of:
creating at least one customer profile for each eligible recipient of said data, said customer profile including a profile of data previously accessed by said customer;
creating content profiles for each data source of said data, said content profiles reflecting the customer profiles of those customers who have previously accessed said data from each data source;
relating said at least one customer profile with the content profiles for the data available from each data source to the customer;
determining a subset of data having content profiles which are determined in said relating step to most closely match said at least one customer profile; and
presenting said subset of data to said customer for selection.
44. A data transmission system which schedules customer access to data from a plurality of data sources, comprising:
at least one customer profile for each eligible recipient of said data, said customer profile indicating the customer's preferences for data having predetermined characteristics;
content profiles for each data source of said data, said content profiles indicating the degree of content of said predetermined characteristics in data from each data source;
means for inputting recipient identity information;
means for selecting a customer profile which corresponds to said recipient identity information;
a processor which relates said selected customer profile with the content profiles for the data available from each data source to the customer at a particular time and which determines a subset of data having content profiles which most closely match said selected customer profile, said processor being programmed to determine a distance between a customer profile and a content profile in a characteristic space by calculating an agreement scalar for common characteristics, ac, between said selected customer profile, cv, and said content profiles, cp, in accordance with the relationship:
ac.sub.ij =l/l+.SIGMA..sub.k w.sub.ik .vertline.cv.sub.ik -cp.sub.jk .vertline.!,
for i=a particular customer of a number of customers i, j=a particular data source of a number of data sources J, and k=a particular characteristic of a data source of a number of data source characteristics K, where cv.sub.ik is greater than or equal to 0 and w.sub.ik is customer i's normalized weight of characteristic k; and
means for presenting said subset of data to said customer for selection.
45. A data transmission system which schedules customer access to video programs received from a video head end, comprising:
at least one customer profile for each customer of said video programs, said customer profile indicating the customer's preferences for predetermined characteristics of the video programs;
content profiles for each video program available for viewing, said content profiles indicating the degree of content of said predetermined characteristics in each video program;
an agreement matrix which relates said at least one customer profile with the content profiles for certain video programs available for viewing by said customer at a particular time;
means for determining from said agreement matrix a subset of said video programs having content profiles which most closely match said at least one customer profile; and
means for presenting said subset of video programs to the customer as at least one "virtual channel" for display on the customer's television.
46. A system as in claim 45, wherein said at least one customer profile comprises a plurality of customer profiles for each customer, said plurality of customer profiles being representative of the customer's changing preferences for said predetermined characteristics in accordance with time of the day and of the week, and said agreement matrix uses different customer profiles for each customer in accordance with the time of the day and of the week.
47. A system as in claim 46, wherein said customer profile comprises combined customer profiles for combinations of customers at a particular customer location at particular times on particular days, and said agreement matrix uses different combined customer profiles in accordance with the time of the day and of the week.
48. A system as in claim 45, further comprising means for transmitting said content profiles to each customer along with electronic program guide data for upcoming television viewing periods.
49. A system as in claim 45, wherein said agreement matrix compares said at least one customer profile with the content profiles for each video program available for viewing in a predetermined time period.
50. A system as in claim 45, wherein said determining means comprises a processor programmed to determine a distance between a customer profile and a content profile in a characteristic space by calculating an agreement scalar for common characteristics, ac, between said at least one customer profile, cv, and said content profiles, cp, in accordance with the relationship:
ac.sub.ij =l/l+.SIGMA..sub.k w.sub.ik .vertline.cv.sub.jk -cp.sub.jk .vertline.!,
for i=a particular customer of a number of customers I, j=a particular video program of a number of video programs J, and k=a particular video program characteristic of a number of video program characteristics K, where cv.sub.ik is greater than or equal to 0 and w.sub.ik is customer i's normalized weight of characteristic k.
51. A system as in claim 50, wherein said determining means sorts said video programs in an order of ac indicating increasing correlation and selects as said subset a predetermined number of said video programs having the values for ac indicating the most correlation.
52. A system as in claim 45, comprising means for inputting customer identity information and for determining from said customer identity information which customer profile to use in calculating said agreement matrix.
53. A system of scheduling transmission of video programs from a video head end to a plurality of customers, comprising the steps of:
a plurality of customer profiles for each of said plurality of customers of said video programs, said plurality of customer profiles being representative of the customers' changing preferences for predetermined characteristics of the video programs in accordance with time of the day and of the week, at least one customer profile being available at a particular time of the day and of the week;
content profiles for each video program available for transmission to said customers, said content profiles indicating the degree of content of said predetermined characteristics in each video program;
an agreement matrix which relates said at least one customer profile with the content profiles for certain video programs available for transmission to said customers at a particular time;
means for determining from said agreement matrix a subset of said video programs having content profiles which most closely match said at least one customer profile; and
means for scheduling said subset of video programs for transmission from said video head end to said plurality of customers for receipt on the customers' televisions.
54. A system as in claim 53, wherein said customer profiles comprise combined customer profiles for combinations of customers at a particular customer location at particular times on particular days, said at least one customer profile being formed from the combined customer profiles available at a particular time of the day and of the week, and said agreement matrix uses a customer profile created from combined customer profiles in accordance with the time of the day and of the week.
55. A system as in claim 53, further comprising means for transmitting said content profiles to each customer along with electronic program guide data for upcoming television viewing periods.
56. A system as in claim 53, wherein said agreement matrix compares said at least one customer profile with the content profiles for each video program available for transmission during a predetermined time period.
57. A system as in claim 53, wherein said determining means comprises a processor programmed to determine a distance between a customer profile and a content profile in a characteristic space by calculating an agreement scalar for common characteristic s, ac, between said at least one customer profile, cv, and said content profiles, cp, in accordance with the relationship:
ac.sub.ij =ll+.SIGMA..sub.k w.sub.ik .vertline.cv.sub.ik -cp.sub.jk .vertline.!,
for i=a particular customer of a number of customers I, j=a particular video program of a number of video programs J, and k=a particular video program characteristic of a number of video program characteristics K, where cv.sub.ik is greater than or equal to 0 and w.sub.ik is customer i's normalized weight of characteristic k.
58. A system as in claim 57, wherein said subset determining means sorts said video programs in an order of ac indicating increasing correlation and selects as said subset a predetermined number of said video programs having the values for ac indicating the most correlation.
59. A system as in claim 57, wherein said scheduling means comprises a processor programmed to perform the steps of:
(a) determining a video program j which most closely matches the customer profiles of said plurality of customers of said video programs;
(b) scheduling said video program j for receipt by said plurality of customers and decrementing a number of channels available for transmission of video programs to said plurality of customers;
(c) when said number of channels available for transmission of video programs to a particular customer of said plurality of customers reaches zero, removing said particular customer from said plurality of customers for scheduling purposes; and
(d) repeating steps (a)-(c) until the number of video programs scheduled for transmission equals the number of channels available for transmission of video programs.
60. A system as in claim 53, further comprising:
means for encoding communications between said video head end and said plurality of customers; and
means for transmitting said encoded video programs to said plurality of customers.
61. A system as in claim 60, wherein said encoding means comprises at said video head end:
means for receiving encrypted seed random number E(N,P), where N is an unencrypted seed random number and P is a public key known to a customer's set top terminal and the video head end;
means for decrypting the encrypted seed random number E(N,P) using a private key of the video head end to yield seed random number N; and
a pseudo random number generator initialized with seed random number N to generate pseudo random sequence K.sub.i at the video head end; and
means for logically exclusive-ORing sequence K.sub.i with data stream P.sub.i to be transmitted to the customer's set top terminal, thereby forming a data stream C.sub.i for transmission from the video head end to the customer's set top terminal by said transmitting means; and
said encoding means comprises at said customer's set top terminal:
a pseudo random number generator initialized with seed random number N to generate pseudo random sequence K.sub.i at the customer's set top terminal;
means for receiving data stream C.sub.i from the video head end; and
means for decrypting data stream C.sub.i, to yield a decrypted data stream P.sub.i by logically exclusive-ORing sequence K.sub.i with data stream C.sub.i.
62. A system for scheduling customer access to data from a plurality of data sources, comprising:
at least one customer profile for each eligible recipient of said data, said customer profile indicating the customer's preferences for data having predetermined characteristics;
content profiles for each data source of said data, said content profiles indicating the degree of content of said predetermined characteristics in data from each data source;
means for monitoring which data sources are actually accessed by each recipient; and
means for updating, without input from each customer, each customer profile in accordance with the content profiles of the data sources actually accessed by that customer to automatically update each customer's actual preferences for said predetermined characteristics.
63. A system for scheduling customer access to video programs received from a video head end, comprising:
at least one customer profile for each customer of said video programs, said customer profile indicating the customer's preferences for predetermined characteristics of the video programs;
content profiles for each video program available for viewing, said content profiles indicating the degree of content of said predetermined characteristics in each video program;
means for monitoring which video programs are actually viewed by each customer; and
means for updating, without input from each customer, each customer profile in accordance with the content profiles of the video programs actually viewed by that customer to automatically update each customer's actual preferences for said predetermined characteristics.
64. A system as in claim 63, wherein said at least one customer profile comprises a plurality of customer profiles for each customer, said plurality of customer profiles being representative of the customer's changing preferences for said predetermined characteristics in accordance with time of the day and of the week, and said updating means updates different customer profiles for each customer in accordance with the time of the day and of the week.
65. A system as in claim 64, wherein said at least one customer profile comprises combined customer profiles for combinations of customers at a particular customer location at particular times on particular days, and said updating means updates different combined customer profiles in accordance with the time of the day and of the week.
66. A system as in claim 63, further comprising means for transmitting said content profiles to each customer along with electronic program guide data for upcoming television viewing periods.
67. A system as in claim 63, further comprising means for inputting customer identity information and for determining from said customer identity information which customer profile to update with said updating means.
68. A system as in claim 63, further comprising:
means for determining an agreement matrix which relates said at least one customer profile with the content profiles for certain video programs available for viewing by said customer at a particular time and for determining from said agreement matrix a subset of said video programs having content profiles which most closely match said at least one customer profile; and
means for presenting said subset of video programs to the customer as a virtual channel for display on the customer's television.
69. A system as in claim 68, wherein said agreement matrix determining means compares said at least one customer profile with the content profiles for each video program available for viewing in a predetermined time period.
70. A system as in claim 68, wherein said agreement matrix determining means determines a distance between a customer profile and a content profile in a characteristic space by calculating an agreement scalar for common characteristics, ac, between said at least one customer profile, cv, and said content profiles, cp, in accordance with the relationship:
ac.sub.ij =l/l+.SIGMA..sub.k w.sub.ik .vertline.cv.sub.ik -cp.sub.jk .vertline.!,
for i=a particular customer of a number of customers I, j=a particular video program of a number of video programs J, and k=a particular video program characteristic of a number of video program characteristics K, where cv.sub.ik is greater than or equal to 0 and w.sub.ik is customer i's normalized weight of characteristic k.
71. A system as in claim 70, wherein said agreement matrix determining means sorts said video programs in an order of ac indicating increasing correlation and selects as said subset a predetermined number of said video programs having the values for ac indicating the most correlation.
72. A system as in claim 63, wherein said updating means adjusts said at least one customer profile, cv.sub.ik, for customer i and video program characteristic k, to a new customer profile, cv.sub.ik ', in accordance with the equation:
cv.sub.ik '=cv.sub.ik -.DELTA.(cv.sub.ik -cp.sub.jk),
where cp.sub.jk represents the degree of video program characteristic k in video program j.
73. A system as in claim 63, wherein said updating means adjusts customer i's weighting of video program characteristic k, w.sub.ik, in said at least one customer profile, cv.sub.ik, to a new weighting, w.sub.ik ', in accordance with the equation:
w.sub.ik '=(w.sub.ik -.DELTA..vertline.cv.sub.ik -cp.sub.jk .vertline.)/.SIGMA..sub.k (w.sub.ik -.DELTA..vertline.cv.sub.ik -cp.sub.jk .vertline.)
where cp.sub.jk represents the degree of video program characteristic k in video program j.
74. A system as in claim 63, wherein said updating means updates the content profiles, cp.sub.jk, of certain video programs j having video program characteristics k to new content profiles, cp.sub.jk ', and updates the customer profiles of customers i who actually watch video program j, in accordance with the equation:
cp.sub.jk '=cp.sub.jk -.DELTA.(cv.sub.ik -cp.sub.jk),
where cv.sub.ik represents the customer profile of customer i for video program characteristic k.
75. A system for scheduling transmission of video programs from a video head end to a plurality of customers, comprising:
at least one clustered customer profile for each of said plurality of customers of said video programs, said clustered customer profile indicating said plurality of customers' combined preferences for predetermined characteristics of the video programs;
content profiles for each video program available for transmission to said customers, said content profiles indicating the degree of content of said predetermined characteristics in each video program;
means for monitoring which video programs are actually viewed by each customer; and
means for updating, without input from each customer, each clustered customer profile in accordance with the content profiles of the video programs actually viewed by said plurality of customers to automatically update the actual preferences of said plurality of customers for said predetermined characteristics.
76. A system as in claim 75, wherein said clustered customer profile comprises a plurality of customer profiles for each customer, said plurality of customer profiles being representative of the customer's changing preferences for said predetermined characteristics in accordance with time of the day and of the week, said at least one clustered customer profile being formed from the customer profiles available at a particular time of the day and of the week, and said updating means updates different clustered customer profiles in accordance with the time of the day and of the week.
77. A system as in claim 76, wherein said clustered customer profile comprises combined customer profiles for combinations of customers at a particular customer location at particular times on particular days, said at least one clustered customer profile being formed from the combined customer profiles available at a particular time of the day and of the week, and said updating means updates different clustered customer profiles in accordance with the time of the day and of the week.
78. A system as in claim 75, further comprising means for transmitting said content profiles to each customer along with electronic program guide data for upcoming television viewing periods.
79. A system as in claim 75, further comprising:
means for determining an agreement matrix which relates said at least one clustered customer profile with the content profiles for certain video programs available for transmission to said customers at a particular time, and for determining from said agreement matrix a subset of said video programs having content profiles which most closely match said at least one customer profile; and
means for scheduling said subset of video programs for transmission from said video head end to said plurality of customers for receipt on the customers' televisions.
80. A system as in claim 79, wherein said determining means compares said at least one customer profile with the content profiles for each video program available for transmission during a predetermined time period.
81. A system as in claim 79, wherein said determining means comprises a processor programmed to determine a distance between a customer profile and a content profile in a characteristic space by calculating an agreement scalar for common characteristics, ac, between said at least one customer profile, cv, and said content profiles, cp, in accordance with the relationship:
ac.sub.ij =l/l+.SIGMA..sub.k w.sub.ik .vertline.cv.sub.ik -cp.sub.jk .vertline.!,
for i=a particular customer of a number of customers I, j=a particular video program of a number of video programs J, and k=a particular video program characteristic of a number of video program characteristics K, where cv.sub.ik is greater than or equal to 0 and w.sub.ik is customer i's normalized weight of characteristic k.
82. A system as in claim 81, wherein said determining means sorts said video programs in an order of ac indicating increasing correlation and selects as said subset a predetermined number of said video programs having the values for ac indicating the most correlation.
83. A system as in claim 81, wherein said scheduling means comprises a processor programmed to perform the steps of:
(a) determining a video program j which most closely matches the customer profiles of said plurality of customers of said video programs;
(b) scheduling said video program j for receipt by said plurality of customers and decrementing a number of channels available for transmission of video programs to said plurality of customers;
(c) when said number of channels available for transmission of video programs to a particular customer of said plurality of customers reaches zero, removing said particular customer from said plurality of customers for scheduling purposes; and (d) repeating steps (a)-(c) until the number of video programs scheduled for transmission equals the number of channels available.
84. A system as in claim 75, wherein said monitoring means stores, at each customer's set top terminal, a record of the video programs actually watched by the customer at the customer's location, and polls said set top terminals to retrieve said records of the video programs actually watched by the customers at each of the customer locations.
85. A system as in claim 75, wherein said updating means adjusts said at least one customer profile, cv.sub.ik, for customer i and video program characteristic k, to a new customer profile, cv.sub.ik ', in accordance with the equation:
cv.sub.ik '=cv.sub.ik -.DELTA.(cv.sub.ik -cp.sub.jk),
where cp.sub.jk represents the degree of video program characteristic k in video program j.
86. A system as in claim 75, wherein said updating means adjusts customer i's weighting of video program characteristic k, w.sub.ik, in said at least one customer profile, cv.sub.ik, to a new weighting, w.sub.ik ', in accordance with the equation:
w.sub.ik '=(w.sub.ik -.DELTA..vertline.cv.sub.ik -cp.sub.jk .vertline.)/.SIGMA..sub.k (w.sub.ik -.DELTA..vertline.cv.sub.ik -cp.sub.jk .vertline.)
where cp.sub.jk represents the degree of video program characteristic k in video program j.
87. A system as in claim 75, wherein said updating means updates the content profiles, cp.sub.jk, of certain video programs j having video program characteristics k to new content profiles, cp.sub.jk ', and updates the customer profiles of customers i who actually watch video program j, in accordance with the equation:
cp.sub.jk '=cp.sub.jk -.DELTA.(cv.sub.ik -cp.sub.jk)
where cv.sub.ik represents the customer profile of customer i for video program characteristic k.
88. A system for scheduling customer access to data from a plurality of data sources, comprising:
at least one customer profile for each eligible recipient of said data, said customer profile including a profile of data previously accessed by said customer;
a content profile for each data source of said data, each content profile reflecting the customer profiles of those customers who have previously accessed said data from each data source;
means for relating said at least one customer profile with the content profiles for the data available from each data source to the customer;
means for determining a subset of data having content profiles which most closely match said at least one customer profile; and
means for presenting said subset of data to said customer for selection.
89. A system for scheduling customer access to data provided by a plurality of data sources, comprising:
means for creating a customer profile for each customer of said plurality of data sources, said customer profile indicating said customer's preferences for predetermined characteristics of the data sources;
means for monitoring which data sources are actually accessed by each customer; and
means for updating each customer profile to reflect the frequency of selection of the data sources by customers with customer profiles substantially similar to said each customer profile.
90. A method as in claim 89, wherein said means for creating a customer profile comprises processing means which selects a number of desired groups K into which said customers are divided whereby each customer in a group has a customer profile substantially similar to the customer profile of each other customer in said group, groups said customers into K groups so as to minimize: ##EQU19## where .vertline.v.sub.i -v.sub.k .vertline. is a distance between the vector of characteristics of the data sources accessed by customer i and the centroid of group k, and determines an agreement matrix ac.sub.ij, where for each customer i, a jth row of the agreement matrix is a vector V.sub.k for a group k in which customer i belongs.
91. A multimedia terminal for receiving data from a plurality of data sources, comprising:
means for storing at least one customer profile indicating a customer's preferences for data having predetermined characteristics;
means for storing content profiles for each data source of said data, said content profiles indicating the degree of content of said predetermined characteristics in data from each data source;
means for inputting recipient identity information;
means for selecting different customer profiles which correspond to said recipient identity information in accordance with the time of day and day of the week;
processing means for relating said selected customer profiles with the content profiles for the data available from each data source to the customer at a particular time and for determining a subset of data having content profiles which most closely match said selected customer profile; and
a display guide for presenting said subset of data to said customer for selection.
92. A multimedia terminal as in claim 91, wherein said display guide presents said subset of data to the customer as a virtual data channel.
93. A multimedia terminal as in claim 91, further comprising means for storing an electronic program guide, wherein said display guide highlights programs within said electronic program guide which correspond to said subset of data.
94. A multimedia terminal as in claim 91, further comprising an interface which through which said processing means provides upstream data messages.
95. A multimedia terminal as in claim 94, further comprising encrypting means for encrypting said upstream data messages.
Description
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to a system and method for controlling broadcast of and/or customer access to data such as video programs in accordance with objective profile data indicative of the customer's preferences for that data. More particularly, a preferred embodiment of the invention relates to a system and method for determining from objective profile data of the customers which data or video programming is most desired by each customer so that the customers may receive data or video programming customized to their objective preferences. The objective profile data is updated on a continuing basis to reflect each customer's changing preferences so that the content of the data channels or video programming may be updated accordingly.
2. Description of the Prior Art
The so-called "Information Super Highway" is expected to bring wondrous technological changes to society. Data of all kinds will become readily available to the public in quantities never before imaginable. Recent breakthroughs in video compression technologies are expected to extend the "Information Super Highway" right into the video realm by allowing customers to receive literally hundreds of video channels in their homes. While the prospects of opening a whole new world of information to the average person are exciting, there is much concern that the average person will simply be overwhelmed by the quantity of data piped into their homes. Some techniques must be developed which permit the travelers of the Information Super Highway to navigate through the plethora of available information sources without getting hopelessly lost.
For example, in the home video context, it is desired to provide mechanisms which present the available video information to the customers in a comprehensible way. Such mechanisms should eliminate the necessity of "channel surfing" to find a program suitable for viewing out of the hundreds of video programming alternatives which are expected to be made available. The present invention is thus designed to help the customer of video and other data services to receive, with minimal effort, the information he or she is most interested in.
Numerous systems are available which assist customers in determining which video programs to watch. For example, electronic program guides and the like are available which give customers on-screen access to the upcoming programming whereby the desired programming may be selected in advance for later recording. An early system described in U.S. Pat. No. 4,170,782 to Miller allows the viewer to preselect a television viewing schedule of desired television channels to be viewed during subsequent time periods. Miller also monitors the television programs actually watched by the television viewer and relays this information to a central data processing center over a communication link. Subsequent interactive cable systems, such as that described by Freeman in U.S. Pat. No. 4,264,924, permit the viewer to select the information to be received on particular channels. The cable system described by Freeman also provides individually tailored messages to the individual viewers. Similarly, Young disclosed in U.S. Pat. No. 4,706,121 a system which permits the viewer to select programs from schedule information by controlling a programmable television tuner to provide the broadcast signals for the selected programs to the television receiver at the time of broadcast. This system can also be used to control a VCR for unattended recording of the selected programs. Further details of such a VCR recording system is provided by Young in U.S. Pat. Nos. 4,977,455 and 5,151,789. Other systems, such as that described by Reiter et al. in U.S. Pat. No. 4,751,578, provide updatable television programming information via telephone link, magnetic cards, floppy disks, television or radio sub-carrier, and the like, to the viewer's television screen in such a manner that the viewer may selectively search this information.
Unfortunately, in each of the aforementioned prior art systems, the customer must actively select the desired programming. In other words, these systems facilitate access to programming designated by the customer but provide no assistance to the customer in determining what programming to select for subsequent viewing. With the possibility of several hundred video channels soon becoming available to video customers, additional systems are desirable which assist the customer in selecting the desired programming.
The system described by Herz et al. in U.S. Pat. No. 5,351,075 partially addresses the above problems, at least with respect to the provision of movies over cable television. As described therein, members of a "Home Video Club" select the video programs they would like to see in the following week. A scheduling computer receives the members' inputs for the current week and determines the schedule for the following week based upon the tabulated preferences. This schedule is then made available to the members of the Home Video Club. If, when, and how often a particular video program is transmitted is determined by the customer preferences received by the scheduling computer. Prime time viewing periods are used to make certain that the most popular video programs are broadcast frequently and at the most desirable times. As with the aforementioned systems, the "Home Video Club" system does not automatically broadcast the most desired video programs to the customers but instead requires the active participation of the customers to "vote" for the most desired video programs for subsequent viewing.
It is desired to extend a customer preference system such as the "Home Video Club" to include general cable programming offerings and to minimize active customer involvement in the determination of the desired programming. Unlike the movie scheduling system described in the "Home Video Club" application, the number and content of general cable programming channels is scheduled in advance and typically cannot be changed by the customer through a simple voting system. As a result, the customer can only vary his or her video programming by changing channels. In other words, the customer typically illustrates his or her programming preferences by changing channels. Indeed, such changes are monitored by Nielsen, Arbitron, and other ratings agencies in setting the rates for advertising. In U.S. Pat. No. 5,155,591, one of the present inventors carried this concept a step further by obtaining information about the customers and then demographically targeting television commercials to the customers most likely to respond favorably to such advertising. Unfortunately, however, this demographic and customer preference information has not been specifically described for providing customized channels which better reflect the customers' preferences for the programming itself.
The present inventors have found that the aforementioned problems may be overcome by creating customized programming channels from all of the programming available at any time and broadcasting the customized programming channels to groups of customers. The customer's set top multimedia terminal then creates "virtual channels" as a collection of the received programming data from one or more of the customized programming channels at any point in time for receipt on the customer's television. These virtual channels are received as an additional offering to the regular broadcast transmission and are customized to the customer's preferences. Thus, as used herein, a "virtual channel" is a channel formed as a composite of several source materials or programs which may or may not change during respective time periods to reflect the programming most desirable to the customer during that time period. The creation of such "virtual channels" is intended to minimize the amount of "channel surfing" necessary to find the most preferred video program at a particular time.
Previous attempts at providing such selective access to programming have required active customer participation. For example, in U.S. Pat. No. 4,381,522, Lambert disclosed a system in which the customer is permitted to specify which television signal source is to be connected to the video switch for broadcasting of a desired television program to the customer. The desired program is selected from a program schedule channel provided to the customer. Hashimoto discloses more elaborate systems in U.S. Pat. Nos. 4,745,549 and 5,075,771 in which programs suitable to individual customer's tastes are selected from all of the available television programs in accordance with the customer preferences specified on a customer questionnaire or provided from the customer over a telephone link or the like. The viewer preference data provided using the questionnaires, the telephone lines, and the like is then statistically processed by linear programming to provide an individual subscriber television program list which may be used by the video provider to select which programs to broadcast to particular individuals. Subscriber complaints about the program list are used to "tune" the television program list to better match the individual's tastes. An automatic controller is also used to automatically control a television or video cassette recorder in accordance with the subscriber's specified tastes. However, the system disclosed by Hashimoto works from limited objective data provided by the customer in response to a questionnaire and provides no mechanism for validating the accuracy of the profile of that customer other than through the use of a complaint system. In addition, the system disclosed by Hashimoto does not determine the desirability of particular video programs but merely allows the customer to characterize those types of programs to which he or she may be most interested.
For the reasons noted above, feedback regarding the customer programming and purchasing preferences is highly desirable. It is highly desirable to develop a technique for better acquiring and quantifying such customer video programming and purchasing preferences. Along these lines, Strubbe recently described a system in U.S. Pat. No. 5,223,924 which provides an interface for automatically correlating the customer preferences with the television program information and then creating and displaying a personalized customer program database from the results of the correlation. In the Strubbe system, the customer specifies whether he or she "likes" a particular video program and the database is updated accordingly. Then, from the video programs "liked" by the customer, a second, personalized, database is created. However, as with each of the systems described above, the Strubbe system does not develop customer profiles and automatically update the database of "liked" videos using feedback. Also, Strubbe does not teach that the preference information may be used to predict what new video programs the customer may like and then schedule those new video programs for viewing.
Those in the technical press have fantasized about so-called "smart" televisions which will keep track of past viewing preferences and suggest new programs that match the customer's personal tastes so that the customer need not "channel surf" through the 500 channel video system of the future. However, prior to the present invention, no one known to the present inventors has been able to make such "smart" televisions a reality. Indeed, the present invention is believed to be the first system to create "virtual channels" of recommended programming for each customer of a video or other data service.
SUMMARY OF THE INVENTION
The present invention relates to a system and method for making available the video programming and other data most desired by the customer by developing an "agreement matrix" characterizing the attractiveness of each available source of video programming or data to each customer. From the agreement matrix, one or more "virtual channels" of data, customized to each customer, are determined. At any given time, the one or more virtual channels include the video programming or other data which is predicted to be most desirable to the customer based on the customer's preferences. The virtual channels are determined by selecting from the available alternatives only those video programs or other data which most closely match the customer's objective preferences.
In accordance with the invention, a method of scheduling customer access to data from a plurality of data sources is provided. Although the technique of the invention may be applied to match customer profiles for such disparate uses as computerized text retrieval, music and music video selection, home shopping selections, infomercials, and the like, in the presently preferred embodiment, the method of the invention is used for scheduling customer access to video programs and other broadcast data. In accordance with the preferred method, objective customer preference profiles are obtained and compared with content profiles of the available video programming. The initial customer profiles are determined from customer questionnaires, customer demographics, relevance feedback techniques, default profiles, and the like, while the initial content profiles are determined from questionnaires completed by "experts" or some sort of customer's panel, are generated from the text of the video programs themselves, and/or are determined by adopting the average of the profiles of those customers who actually watch the video program. Based on the comparison results, one or more customized programming channels are created for transmission, and from those channels, each customer's set top multimedia terminal may further determine "virtual channels" containing a collection of only those video programs having content profiles which best match the customer's profile and hence are most desirable to the customer during the relevant time frame.
Preferably, one or more customer profiles are created for each customer of the video programs. These customer profiles indicate the customer's preferences for predetermined characteristics of the video programs and may vary in accordance with time of day, time of the week, and/or customer mood. Such "characteristics" may include any descriptive feature suitable in describing particular video programs, such as classification category; directors; actors and actresses; degree of sex and/or violence; and the like. Corresponding content profiles are created for each video program available for viewing and generally indicate the degree of content of the predetermined characteristics in each video program. An agreement matrix relating the customer profiles with the content profiles is then generated. Preferably, the agreement matrix enables the system to determine a subset of the available programs at a particular point in time which is most desirable for viewing by the customer. The determined subset of video programs is then presented to the customer for selection in the conventional manner, except that each "virtual channel" includes a collection of the offerings available on all of the originally broadcast channels from the cable system. The "virtual channels" are then generated by the customer's set top multimedia terminal for display on the customer's television. The customer may then select the desired video programming, which may or may not include the programming offered on the "virtual channels." Similar techniques are used at the video head end to determine which video programs to transmit to each node for use in the creation of the "virtual channels" at each customer's set top multimedia terminal.
Preferably, the customer profile creating step comprises the step of creating a plurality of customer profiles for each customer, where the plurality of customer profiles are representative of the customer's changing preferences for the predetermined characteristics in accordance with time of the day and of the week. In such an embodiment, the agreement matrix determining step comprises the step of using different customer profiles for each customer in accordance with the time of the day and of the week, thereby reflecting changes in the customer's preferences or "moods" during the course of the week. In addition, the customer profile creating step preferably comprises the step of clustering customer profiles for combinations of customers expected to view the video programs at a particular customer location at particular times on particular days. For example, the clustered profiles for a customer's residence may contain the combined profiles of Mom and Dad in the evening and the combined profiles of the children in the afternoon. In this embodiment, the agreement matrix determining step comprises the step of using the different clustered customer profiles in accordance with the time of the day and of the week. Alternatively, the appropriate customer profiles for use in calculating the agreement matrix may be determined directly from identity information received from the customer or assigned to the customer in accordance to the cluster of customers to which that customer belongs. In the latter technique, it will be appreciated that customer profiles are not strictly necessary since each customer is assigned an initial customer profile determined from the clustered profiles of the other customers in his or her cluster of customers.
In the presently preferred embodiment of the invention, the agreement matrix determining step comprises the step of comparing the customer profiles with the content profiles for each video program available for viewing in a predetermined time period. In particular, the agreement matrix determining step preferably comprises the step of determining a distance in multidimensional characteristic space between a customer profile and a content profile by calculating an agreement scalar for common characteristics, ac, between the customer profile, cv, and the content profiles, cp, in accordance with the relationship:
ac.sub.ij =1/1+.SIGMA..sub.k w.sub.ik.vertline. CV.sub.ik -CP.sub.jk .vertline.!,
for i=a particular customer of a number of customers I, j=a particular video program of a number of video programs J, and k=a particular video program characteristic of a number of video program characteristics K, where w.sub.ik is customer i's weight of characteristic k. As will be appreciated by those skilled in the art, an agreement matrix so defined is the reciprocal of the distance d (=1/ac) in multi-dimensional space between the customer profile vector and the content profile vector and that many different distance measurement techniques may be used in determining the distance d. In such an embodiment, the subset determining step preferably comprises the steps of sorting the video programs in an order of ac indicating increasing correlation and selecting as the subset a predetermined number of the video programs having the values for ac indicating the most correlation.
When scheduling video programs at a head end using the techniques of the invention, the agreement matrix is preferably determined from customer profiles of a plurality of customers and the video programming is scheduled using the steps of:
(a) determining a video program j which most closely matches the customer profiles of the plurality of customers of the video programs;
(b) scheduling the video program j for receipt by the plurality of customers and decrementing a number of channels available for transmission of video programs to said customers;
(c) when the number of channels available for transmission of video programs to a particular customer of the plurality of customers reaches zero, removing the particular customer from the plurality of customers for scheduling purposes; and
(d) repeating steps (a)-(c) until the number of video programs scheduled for transmission equals the number of channels available for transmission of video programs.
In accordance with a currently preferred embodiment of the invention, a passive feedback technique is provided for updating the customer profiles in accordance with the video programming actually watched by the customer. Such a method in accordance with the invention preferably comprises the steps of:
creating at least one customer profile for each customer of the video programs, the customer profile indicating the customer's preferences for predetermined characteristics of the video programs;
creating content profiles for each video program available for viewing, the content profiles indicating the degree of content of the predetermined characteristics in each video program;
monitoring which video programs are actually watched by each customer; and
updating each customer profile in accordance with the content profiles of the video programs actually watched by that customer to update each customer's actual preferences for the predetermined characteristics.
Preferably, the monitoring function is accomplished by storing, at each customer's set top multimedia terminal, a record of the video programs actually watched by the customer at the customer's location and, in the case of a system with a two-way communication path to the head end, polling the set top multimedia terminals of all customers to retrieve the records of the video programs actually watched by the customers at each customer location. Also, from the retrieved records, combined customer profiles may be determined which reflect the customer profiles of a plurality of customers. Then, by determining the agreement matrix using the combined customer profiles for each node, programming channels containing the video programming which are collectively most desired by the customers making up the combined customer profiles may be determined for transmission from the head end to each of the customers connected to the same node.
When a predicted video program is not selected by the customer, it is desirable to update the agreement matrix to better reflect the customer's tastes. The updating of the agreement matrix may be accomplished in a variety of ways. For example, the customer profile, cv.sub.ik, for customer i and video program characteristic k may be adjusted to a new customer profile, cv.sub.ik, in accordance with the equation:
cv.sub.ik '=cv.sub.ik -.DELTA.(cv.sub.ik -cp.sub.jk),
where cp.sub.jk represents the degree of video program characteristic k in video program j and .DELTA. is a small constant which can vary in accordance with the desired accuracy for the profiles. On the other hand, customer i's weighting of video program characteristic k, w.sub.ik, in the customer profile, cv.sub.ik may be adjusted to a new weighting, w.sub.ik ', in accordance with the equation:
w.sub.ik =(w.sub.ik -.DELTA..vertline.cv.sub.ik -cp.sub.jk .vertline.)/.SIGMA..sub.k (w.sub.ik -.DELTA..vertline.cv.sub.ik -cp.sub.jk .vertline.).
In addition, the content profiles, cp.sub.jk, of certain video programs j having video program characteristics k may be adjusted to new content profiles, cp.sub.jk ', to update the customer profiles of customers i who actually watch video program j, in accordance with the equation:
cp.sub.jk '=cp.sub.jk -.DELTA.(cv.sub.ik -cp.sub.jk),
where cv.sub.ik represents the customer profile of customer i for video program characteristic k. Of course, other updating techniques are also possible within the scope of the invention.
Since the data passing from the set top multimedia terminal to the head end contains data which the customers may consider to be confidential, the two-way transmission system of the invention may be modified to encrypt the transmissions from the set top multimedia terminals to the head end. Similarly, as in the case of pay-per-view programming, it is often desirable to encrypt the transmissions from the head end to the set top multimedia terminals. In accordance with the invention, a secure transmission system from the head end to the set top multimedia terminal is obtained by performing the steps of:
(1) At the set top multimedia terminal, generate a seed random number N to be used for the random number generator.
(2) Retrieve the public key P from the head end and encrypt the seed random number N as E(N,P) at the set top multimedia terminal using a public key algorithm such as RSA which is known to be difficult to break.
(3) Send the encrypted seed N (E(N,P)) to the head end where E(N,P) is received and decrypted to yield N using the head end's private key Q.
(4) The head end and set top multimedia terminals then initialize their respective pseudo-random number generators with N as a seed.
(5) Begin the encryption at the head end by generating the first number in the sequence K.sub.i, and logically exclusive-ORing it with the first data word in the stream P.sub.i, thereby forming C.sub.i (i.e., C.sub.i =EOR(K.sub.i, P.sub.i)).
(6) Send the result C.sub.i from the encryptor at the head end to the set top.
(7) Form K.sub.i at the synchronized random number generator of the set top multimedia terminal, which has also been initialized with seed N, by decrypting the received C.sub.i to yield P.sub.i. This is done by exclusive-ORing K.sub.i with C.sub.i to yield P.sub.i (i.e., P.sub.i =EOR(K.sub.i,C.sub.i)), generating the next pseudo-random K.sub.i in the sequence at the head end and the set top multimedia terminal, determining whether all words i in the sequence have been decrypted, and repeating steps (5)-(6) until all words in the digital video stream have been decrypted. Normal processing of the digital video stream continues from that point. Secure transmission from the set top multimedia terminal to the head end is obtained in the same manner by reversing the set top multimedia terminal and the head end in steps (1)-(7) above.
Those skilled in the art will appreciate that the techniques described herein are applicable to numerous other areas of technology in which it is desirable to assist the customer in the selection of a data service which best meets that customer's needs. For example, the agreement matrix of the invention may be used to facilitate text retrieval in a computer database system and may be implemented in a kiosk or personal computer designed to assist in the selection of movies, music, books, and the like. All such embodiments will become apparent to those skilled in the art from the following description of the preferred embodiments.
BRIEF DESCRIPTION OF THE DRAWINGS
The above and other objects and advantages of the invention will become more apparent and more readily appreciated from the following detailed description of the presently preferred exemplary embodiments of the invention taken in conjunction with the accompanying drawings, of which:
FIG. 1 is a flow chart illustrating the flow of processing of the customer and content profile data in accordance with a preferred embodiment of the invention.
FIG. 2 is a flow chart illustrating the method of selecting the contents of channels which are to be transmitted from a CATV head end to a plurality of customers in accordance with the invention.
FIG. 3 is a flow chart illustrating the method of passively updating customer profiles in accordance with the invention.
FIG. 4 is a generalized system overview of a one-way customer profile system in accordance with the invention in which customized virtual channels are created at the set top multimedia terminals from the channels received from the CATV head end.
FIG. 5 is a generalized system overview of a two-way customer profile system which expands upon the embodiment of FIG. 4 by feeding back data representative of the customers' viewing habits from the customers' set top multimedia terminals to the CATV head end for purposes of optimally scheduling the channels for transmission from the head end in accordance with the recorded customer preferences.
FIG. 6 is a block diagram of a cable television distribution system, including an optional two-way return path, which has been modified to transmit video programs determined from the fed back customer profile data in accordance with the techniques of the invention.
FIG. 7 is a flow diagram of an upstream encryption technique for encrypting data sent from the set top multimedia terminal to the head end in accordance with the techniques of the invention.
FIG. 8 is a flow diagram of a downstream encryption technique for encrypting data sent from the head end to the set top multimedia terminal in accordance with the techniques of the invention.
FIG. 9 is a block diagram of the software used in the set top multimedia terminals in a preferred embodiment of the invention.
FIG. 10 is a block diagram of a preferred hardware implementation of a set top multimedia terminal in accordance with the invention.
FIG. 11 is a simplified block diagram of a computer kiosk or personal computer which uses the profile and clustering techniques of the invention to assist a customer in the selection of videos for rental, music or books for purchase, and the like.
DETAILED DESCRIPTION OF THE PRESENTLY PREFERRED EMBODIMENTS
The present invention will be described in detail below with respect to FIGS. 1-11. Those skilled in the art will appreciate that the description given herein is for explanatory purposes only and is not intended to limit the scope of the invention. For example, while the invention is described with respect to a cable television broadcasting system, those skilled in the art will appreciate that the system described herein may also be used for selecting receipt of desired data services and shop at home services, and for selecting from available music and multimedia offerings. Accordingly, the scope of the invention is only to be limited by the scope of the appended claims.
I. Overview
The present invention relates to a customer profile system in which the characteristics of a data source are quantified in some objective manner and stored as content profiles and the customer's preferences for those characteristics are stored in the form of one or more customer profiles. In the following detailed description, the present inventors will describe how the techniques of the invention are used for creating content profiles which characterize the data sources in accordance with their degree of content of predetermined characteristics. Techniques will also be described for creating, weighting, and updating customer profiles which reflect the customer's affinity for those predetermined characteristics. From the content profiles and the customer profiles, an agreement matrix will be described which matches the customers' preferences and the contents of the data sources available at any point in time. As will be described in detail below, the agreement matrix is used at the customer's set top multimedia terminal to create "virtual" data channels from the available data sources, or, alternatively, the agreement matrix may be used by the data provider to determine which data sources of those available will have the most appeal to his or her customers.
A preferred embodiment of the invention will be described in the context of a one-way CATV transmission system and a two-way transmission CATV transmission system with feedback for adjusting the agreement matrix. Several of the numerous possible alternative embodiments for application of the techniques of the invention will then be described.
II. Content Profiles and Customer Profiles
As noted above, a preferred embodiment of the invention will be described for application in a CATV distribution system for aiding a customer in the selection of video programming for viewing by matching the available video programming to each customer's objective preferences. Accordingly, the content and customer profiles will include characteristics which are useful in defining the characteristics of video programming. Of course, when the present invention is used to assist in the selection of data from other data sources, the content and customer profiles will include completely different characteristics.
In accordance with the preferred embodiment of the invention, the content profiles describe the contents of video programs and are compared mathematically in a computer to customer profiles to generate an agreement matrix which establishes the degree of correlation between the preferences of the customer or customers and the video programming available during each video programming time slot. The content profiles and the customer profiles are thus described as a collection of mathematical values representing the weighted significance of several predetermined characteristics of the video programming. For ease of description, the present inventors will describe the mathematical basis for the content profiles and the customer profiles in this section and will describe the generation of the agreement matrix and the uses of the agreement matrix in the next section.
A. Terminology
The following subscription indices will be used throughout this specification:
______________________________________
i customers (i = 1,2, . . . , I);
j programs (j = i,2, . . . , J);
k characteristics
(k = 1,2, . . . , K);
l categories (l = 1,2, . . . , L);
______________________________________
and the following variables will be used throughout this specification:
cv.sub.ik : customer i's rating for characteristic k;
CV.sub.i : the vector {cv.sub.ik .vertline.k.epsilon.K} which forms customer i's profile for all characteristics k;
sv.sub.ik : spread (flexibility) in viewer i's rating for characteristic k;
wv.sub.ik : customer i's weight of characteristic k;
cp.sub.jk : objective weighting of program j for characteristic
CP.sub.j : the vector {cp.sub.jk .vertline.k.epsilon.K} which forms program j's profile for all characteristics k;
sp.sub.jk : spread (flexibility) in program j's rating for characteristic k; and
ac.sub.ij : agreement scalar representing similarity between CV.sub.i and CP.sub.j.
It should be noted at the outset that cv.sub.ik indicates customer i's preferred level for characteristic k, while cp.sub.jk indicates the level of presence of a characteristic in the program. sv.sub.ik and sp.sub.jk, on the other hand, respectively represent customer i's flexibility in accepting different levels of characteristic k and the flexibility in the determination of the degree of content of characteristic k in program j.
cv and cp may have values between 0 and +10, where the actual range number indicates the relevance of that characteristic. In other words, a video programming having a value of +10 for a given characteristic has the highest degree of content for that variable. The values of cv and cp should always be non-negative, since both are related to the level of characteristics, the former being the desired level and the latter being the actual level. Naturally, zero in cv means the customer's rejection of a characteristic, while zero in cp indicates the absence of a characteristic in a program. Those skilled in the art may wish to allow cv to become negative so that the magnitude of negativity could indicate the level of the customer's aversion to a characteristic. However, there are drawbacks in using negative values in this manner. First, a negative value will blur the meaning of cv and sv and weaken the statistical basis for their calculation. Second, cv has been defined as the desired level of a characteristic, which should be non-negative. Thus, the level of aversion is preferably expressed as a point value, instead of a range of values.
Preferably, the level of aversion is expressed by the combination of a zero-value in cv and a certain value in the corresponding wv. For example, when customer i totally rejects characteristic k, cv.sub.ik can be set to -1, which means prohibition. Any program k for which cv.sub.ik <0 will be excluded from the recommendation list for customer i. Of course, as in the Strubbe system, the values could simply be "0" or "1" to indicate the presence or absence of a characteristic.
wv.sub.ik illustrates the importance of characteristic k to customer i. Typically, different characteristics bear different levels of importance for a customer, and the introduction of this variable catches the variation. Although any scaling system may be used, the weight variable, wv, may simply weight the associated characteristic on a scale of 0-5, where 5 indicates the highest affinity for the associated characteristic. On the other hand, as in the Strubbe system, the weights could simply indicate a "like" or "dislike" value for each characteristic.
Finally, as will be described in more detail below, the agreement scalar for characteristics, ac, is the weighted average of the values of a variant of the two-sample t test for significance between CV and CP.
B. Creating Initial Customer and Content Profiles
A profile, either of a customer (Customer Profile) or of a program (Content Profile), is composed of arrays of characteristics which define the customer profile vector CV.sub.i and the program profile vector CP.sub.j. To increase the accuracy in statistical estimation, the selection of the characteristics should follow the following guidelines:
The characteristics should be descriptive of the features of the programs;
The list should be fairly inclusive, i.e., include all the common features of the programs; and
There should be no synonyms, nor much overlapping in meaning between two or more characteristics. In other words, the correlations between the characteristics are desirably minimized.
For example, characteristics currently in use for characterizing video programming include film genres such as westerns, comedies, dramas, foreign language, etc. as defined by the American Film Institute and/or as provided via existing television database services; directors; actors/actresses; attributes such as amount and degree of sex, violence, and profanity; MPAA rating; country of origin; and the like. Of course, many other characteristics may be used, such as those characteristics used in the Minnesota Psychological Test or other more particularized categories based on life experiences and emotions. Such characteristics may also be value based by indicating the scientific, socio-political, cultural, imagination evoking, or psychological content as well as the maturity level to which the program appeals.
In accordance with the invention, there are several ways to develop the initial customer and content profiles for such characteristics. For example, the initial customer profile may be assigned on the basis of the customer's zip code or other characteristic demographic information. In other words, the profile may be set to a profile typical of the customer's zip code area or to a typical profile determined by interviews or empirically by monitoring what customers watch. Similarly, each customer may be assigned a generic customer profile which is personalized over time through the profile adjustment techniques to be described below. Alternatively, a customer may be asked to name several of his or her favorite movies and television shows so that an initial customer profile may be determined by combining or averaging the content profiles of the selected movies and television shows. In addition, each customer may complete a ballot for each viewing mood. This latter approach builds upon the technique described by Hashimoto in U.S. Pat. Nos. 4,745,549 and 5,075,771 and will be described in some detail here.
For explanation purposes, it will be assumed that the initial customer profile is determined from an initial customer questionnaire or ballot. When completing the initial questionnaire, the customer may choose between two voting schemes, one (Scheme A) by characteristics, and the other (Scheme B) by categories. Scheme A is straightforward. In Scheme A, the customer gives acceptable ranges for all the characteristics which identify a video program. The customer's profile {cv.vertline.cv.epsilon.CV } is immediately obtained by simply calculating the means of these ranges. In Scheme B, however, the customer gives a specific rating for each of the categories. If ccv.sub.il is the rating for customer i for category l, with a scale of 10 in which zero means least satisfaction with the category and 10 means the greatest satisfaction, the customer's profile {cv.sub.ik .vertline.cv.sub.ik .epsilon.CV.sub.i } may be calculated as:
cv.sub.ik =1/N.sub.L,*.SIGMA..sub.1, cc.sub.kl, (1'.epsilon.L')Equation (1)
where L' is the set of categories in which ccv.sub.il =max.sub.1 ccv.sub.il and N.sub.L, is the cardinality of L'. In other words, a customer's rating of a characteristic equals the objective content rating of that characteristic in the customer's most preferred category. If there are multiple most-preferred categories, indicated as ties in ccv, the objective content ratings can be used.
Alternatively, the customer may be required to input an upper limit cvu.sub.ik and a lower limit cvl.sub.ik for characteristic k to show his/her acceptable range for characteristic k, where cv.sub.ik is calculated as:
cv.sub.ik =(cvu.sub.ik +cvl.sub.ik)/2 Equation (2)
i.e., the middle point of the range. If customer i wants to indicate his/her indifference to characteristic k, i.e., that he/she can accept any level of characteristic k, then he/she may either let cvu.sub.ik =10 and cvl.sub.ik =0, or let wv.sub.ik =0.
The initial value for cp.sub.jk is calculated as the mean of all votes on that characteristic by "experts" or other viewers used to characterize the video programs. As will be noted below, initial profiles for video programs may be obtained by using a panel of experts or customers to assign content profiles or by assigning the customer profiles to the video programs on the basis of those who liked the video program during a test screening. On the other hand, the initial value for sv.sub.ik is calculated as:
sv.sub.ik =(cvu.sub.ik -cvl.sub.ik)/Z, Equation (3)
where Z preferably equals 2. The calculation simulates that for standard deviation, where the cutting point for rejection in normal distribution is usually when the divisor Z=2. Accordingly, cv is of point value, and sv is of range value. Thus, while the value of the divisor Z in Equation (3) may be altered to tighten/loosen the cutting point, the divisor in Equation (2) may not be changed. sp, on the other hand, may be calculated as the standard deviation in the experts' or test group's votes on cp.
The major advantage of Scheme B is that much burden will be taken away from the customer in the ballot completion process, since as a rule, the number of characteristics well exceed the number of categories. The disadvantage, however, is the inaccuracies due to the fact that not all the characteristics in the customer's favorite category are on the customer's most preferred level. The inaccuracy may be reduced by expanding the most-preferred categories to those with ccv values in a certain upper percentile, rather than with the maximum ccv values. The value of sv can be derived from the deviation of ccv's in the customer's most-preferred categories. To help the customers vote more consistently, each category is preferably accompanied by a list of keywords (i.e., characteristics that are relevant to the category).
Similarly, the content profile may be determined using questionnaires completed by a panel of experts or customers who determine the content of all video programming available for broadcast. The same scaling systems would be used as for the customer profiles. For statistical purposes, it is desired that the expert or customer panel be as large as possible. As will be noted below, once the system of the invention is in operation, the customer profiles of those who actually watch a particular video program during an initial screening by a sample group may be used to assign a content profile to that program for subsequent viewings. In such a system, those customers who watch the program from beginning to end will be presumed to have "liked" the program. The customer profiles of those who "liked" the program would then be combined to create the initial profile for that program. That program would then be ready for broadcast to all members of the network.
Alternatively, in the presently preferred embodiment, more sophisticated techniques are used to generate the initial content profiles. In the preferred embodiment, the content profile of a program is determined automatically from the word frequency of certain words in the text or on-line description of a program or the frequency of certain words in the closed captions of a television show, where such words are chosen as representative of certain categories. Of course, other simpler techniques such as one which simply determines the presence or absence of particular characteristics may be used within the scope of the invention.
The weighting of the characteristics in the customer and content profiles somewhat depends on how the profiles were determined initially. For example, the weighting of the customer profiles may be obtained directly from a questionnaire by asking the customer to appropriately scale (from 1-10) his or her preference for each characteristic. On the other hand, if the customer profile is assigned based on demographics, zip code, and the like, the average weights for other customers with the same demographics, zip code, and the like may be used. When more statistical techniques are used for creating the initial customer and content profiles, the weights may be determined mathematically as, for example, the reciprocal of the standard deviation of the characteristics. Of course, other weighting techniques may also be used.
C. Adjusting Customer Profiles
As noted above, the data from which the initial customer profile is derived may be obtained through ballot filling, whereby a number of characteristics are listed and the customer gives his/her preference rating (cv) and flexibility range (sv) for each characteristic. However, people often do not provide all of the necessary responses or the correct responses to such ballots or questionnaires. Similarly, when the initial customer profiles are assigned to new customers on the basis of demographics and the like, there is a substantial likelihood that the initial customer profile will need considerable adjustment. Moreover, the system should account for the fact that many people's tastes change over time. Thus, to ensure accuracy of the profiles, there must be some way to correct errors in the initial customer profiles and to adjust the customer profiles over time.
In accordance with the invention, a passive feedback technique is provided whereby the programming viewed by the customers are automatically monitored and used to adjust the customer profiles. That technique will be described in more detail in Section V below. This section will instead refer to an active feedback mechanism which will be referred to as a "rave review."
As noted above, one way to establish an initial customer profile is to show an unrated program or portion of a program to a target audience and to assign to the unrated program a combination of the customer profiles of those who actually watched the program or portion of the program from beginning to end or to assign ratings inputted by those who completed a survey. A similar technique may be used for error correction or for creating initial customer profiles. In particular, the customer is exposed to a series of short sections of different video programs. Each section is characterized by a few characteristics, and the assigned characteristic level of each of the characteristics is presented to the customer. The customer is then asked to state his/her most preferred level for the characteristic given the assigned characteristic level for the viewed section of the video program. For instance, if the level of "action" in a section of the movie "First Blood" is assigned a value of 8, the customer may give 4-6 as his/her acceptance range. On the other hand, if the customer strongly disagrees with the assigned characteristic level, he/she may provide his/her own estimation of the level of the characteristic in the presented program section and give his/her acceptance accordingly. Of course, the major advantage of such a "rave review" procedure over ballot completion is that instead of voting on an abstract concept, the customer now makes estimations based on concrete examples.
Since the customer may not be able to remember exactly his/her preferred level of a characteristic that he/she indicated in a previous review or in an original ballot or may not have known his or her assigned initial value for a characteristic, he/she may intentionally or involuntarily repeat the same level for the same characteristic in one review if that characteristic appears in more than one program section, even if that characteristic should not have the same level. Therefore, in a "rave review" a program section with a large variety of characteristics should be selected to avoid repetitions of the same characteristic across several video clips. In addition, the customer should be advised that while making level estimations he/she should concentrate on the features of the current program sections and forget his/her previous ratings.
As mentioned above, changes in a customer profile should be expected over time. In other words, the values of cv and sv obtained from the rave reviews typically will be different from the values specified in the original ballot and during previous rave reviews. In order to avoid dramatic changes in the values, the setting of the new values should take into consideration both the old and the new data. Thus, if x represents either cv or sv, x.sup.n is the value of x after period n (n "rave review" changes), and y.sup.n is the value obtained during time n, then:
x.sup.n =y.sup.n when n=1 Equation (4)
and
x.sup.n =x.sup.n-1 +(1/n) (y.sup.n-1 -x.sup.n-1) when n>1. Equation (5)
Each y is obtained either from the customer's ballot or rave review, but typically y.sup.1 is from the ballot data, and y 1>1, is from the rave review data. From the above equations, it follows that:
x.sup.n =(1/n) .SIGMA..sub.1 y.sup.1, Equation (6)
i.e., the new value of x after the n iterations is equal to the average of all the n-1 previous data. The method is formally termed MSA, or Method of Successive Average. With this method, data at each iteration is equally accounted for in the final value. Any dramatic changes will be damped down, especially at later iterations (when n is large). This approach agrees with intuition, since a customer's profile should stabilize over time.
However, customers may have systematic bias in estimating their preferences. For instance, a customer may constantly underestimate or overestimate his/her preference rating for a characteristic. One way to detect the inaccuracy is to check if there are some customers who, when viewing various programs in rave reviews, constantly disagree with the content profile value for a particular characteristic and suggest disproportionately higher/lower ratings. If frequently the t values in the t significance test turn out to be insignificant despite their agreement, then it may be necessary to adjust the customers' ratings of the characteristic in question in the direction opposite to their suggestions.
Another way to make adjustments to the customers' combined ratings is through the clustering of customers. Customers are asked to give overall ratings for various programs. If a group of customers come up with very similar ratings for most of the programs in a category, it is assumed that the actual acceptance ranges for these customers for each characteristic relevant to the category forms a narrow distribution, i.e., their values are close to each other. However, if in the distribution of stated ratings, some outside values which are far away from the majority are seen, then the indication is that these outside values need to be adjusted.
There are many algorithms to find outsiders in a population. For instance, all the values may be sorted in the ascending order of their absolute distances from the mean, and gaps searched for at the lower end. Those values that are located below the largest gap would be outsiders. For statistical validity, the mean and standard deviation of the population less the outsiders may be calculated and a t significance test conducted to determine if any of the outsiders belong to the population. Only those that do not belong will be subject to adjustment.
D. Adjusting Content Profiles
As discussed above, in a rave review, the customer may state his/her disagreement with the rating of a characteristic in a video program and put forward his/her own rating for each characteristic in the program. This provides a mechanism for adjustment of the content profiles.
In general, the present invention may use the ratings of experts or test groups as the reference base. Generally, the calculation of the agreement scalar ac is based on the values of cp and sp. Since the values of cp and sp are used in calculating ac for all customers, any inaccuracy in their values will affect the final results for all customers. (By contrast, an inaccuracy in the value of a customer's cv and sv only affects the results for that customer.) By definition, customers collectively make ratings relatively closer to reality than any experts or test groups. In other words, the customer's rating is reality. For instance, if all the customers on the average tend to overestimate a particular characteristic (for one or all programs), then the experts' or test groups' objective ratings for that characteristic (for one or all programs) should be raised to agree with the customers' perceptions.
Again, MSA may be used for the content profile adjustment, letting x be either cp or sp and letting y.sup.n be the value collectively suggested in period n by the customers for the variable, where y.sup.n is defined as:
y.sup.n =(1/I).SIGMA..sub.i y.sup.n.sub.i, Equation (7)
where y.sup.n.sub.i is the value suggested by customer i during period n. By substituting y in Equation (5) into Equation (4), the x.sup.n+1 value may be calculated. For customers who do not state disagreement, their y.sup.n.sub.i may be set to x.sup.n, i.e., the original content profile. Therefore, y.sup.n is the average of the customers' suggested value at period n. The resultant x.sup.n+1 is the adjusted content profile after period n.
This method would be less useful if only the content profiles of a characteristic for individual programs may be adjusted. Often, the relative bias is systematic, i.e., as seen from the customer's side, the characteristic values may underestimate or overestimate the significance of a characteristic for programs of certain or all categories. This problem can also be addressed as follows.
For clarity in discussion, subscripts again will be used. y.sub.jk is the customers' average suggested rating for characteristic k for program j. The distribution of the customers' ratings is assumed to be normal. For simplicity, time subscripts are dropped. A t value significance test is then conducted as:
t.sub.jk =(y.sub.jk -cp.sub.jk)/S.sub.yjk-cp jk (i=1,2, . . ,I; j=1,2, . . ,; k1,2, . . ,K) Equation (8)
where: ##EQU1## and where: t.sub.jk is the t value for significance of difference between the customers' suggested rating of characteristic k for program j and the corresponding assigned objective rating;
S.sub.yjk-cpjk is the standard deviation between the distribution of y.sub.jk and that of cp.sub.jk ;
I is the total number of customers; and
M is the total number of "experts."
If t.sub.jk is significant for a pre-defined level (say 0.05) with degree of freedom of I+M-2, then cp.sub.jk is determined to be significantly different from y.sub.jk. In that case, an adjustment in cp.sub.jk is necessary, and MSA is calculated to obtain the new cp.sub.jk from y.sub.jk.
With the above method, only the assigned objective rating of a characteristic for individual programs is adjusted. In order to adjust the assigned objective ratings of a characteristic for all the programs in a category, the following is used:
T.sub.lk =(1/J.sub.l).SIGMA..sub.jl t.sub.j-l k Equation (10)
where:
T.sub.lk is the average of the t values for characteristic k in all the programs for category 1;
t.sub.j-l k is the t value for significance of the difference between the customers' suggested rating of characteristic k for program j.sub.1 and the corresponding objective rating; and J.sub.1 is the number of programs in category 1.
If an adjustment of the assigned objective rating of a characteristic over several or all categories is desired, the t values of an even wider range are averaged. For instance, if it is necessary to make an adjustment for all categories, calculate:
T.sub.k =(1/L*.SIGMA..sub.l J.sub.l) .SIGMA..sub.l .SIGMA..sub.j-l t.sub.j-l k, Equation (11)
where:
T.sub.k is the average of the t values for characteristic k in all programs.
When a content profile value cp is changed to cp', it is also necessary to change the corresponding sp (deviation in cp) to sp'. Because there is a distribution in cp, there must be some expert(s) whose rating(s) is below or above the mean (cp). If through the above calculation cp overestimates/underestimates reality, it is assumed that only those experts whose ratings are above/below the mean made an overestimation/underestimation. Therefore, after the adjustment, the new deviation sp' should be smaller than sp.
One possible calculation of sp' is:
sp'=sp/(1+.alpha.*.vertline.cp'-cp.vertline./cp) Equation (12)
Since cp>0, sp'<sp (i.e., sp always declines after adjustment). If a .alpha.=1, cp=3, cp'=4, and sp=1, then sp'=0.75. The parameter .alpha. thus determines the rate of decreasing in sp with the rate of change in cp.
It should be pointed out that before making actual changes to content profiles determined by experts or test groups, it is desirable to consult with the experts or test groups for the proposed changes. That will not only preclude any unreasonable changes, but also will reduce possible future bias by the experts or test groups.
E. Customer Moods and Time Windows
Few people are purely single minded, especially when enjoying entertainment. Besides a generic propensity, it is therefore reasonable to assume that each customer could have one or more viewing moods, and in each of the moods he/she would like to watch a particular set of program categories. For normal and not highly capricious people, the moods should be time-specific, i.e., each mood has a time window, within which the mood is effective.
On the other hand, people are not free all the time. The time when they can enjoy entertainment is limited. The time window concept can be used to represent this temporal limitation as well. Thus, each time window can be expressed as a pair of time variables, l and u, where l is the starting point of the window and u is the ending point of the window. Customer profiles used in accordance with the preferred embodiment of video scheduling preferably incorporate this concept of moods and time windows.
In the present invention, each customer preferably has a generic mood and may also have some specific moods. Both generic moods and specific moods may or may not be time-specific. In fact, a non time-specific mood can also have a time window, only with l=u, i.e., its window covers the whole day. Typically, for a particular customer, the time window for his/her generic mood will have the greatest width, and the width of the windows for his/her specific moods will decrease with an increase in specification. In this sense, all the moods of a customer form a tree, in which the generic mood is the root, and a specific mood becomes the child of another mood if the former's window is contained in the latter's window. For example, if a customer has four moods: generic, peaceful, violent, speculative, the generic mood may cover all times, the violent mood may cover 6 a.m. to noon, the peaceful mood 6 p.m. to midnight, and the speculative mood from 8 p.m. to midnight. Thus, the speculative mood is a child (subset) of the peaceful mood. The mood at the lowest (most specific) level of the hierarchy is generally used to develop the program list for the customer (described below).
The definition of moods can be the responsibility of the customer. When ballots are used to create the initial customer profiles, each ballot may correspond to a mood. In other words, a mood may be equivalent to a customer profile. The generic mood or generic customer profile is required unless there is an automatic system default mood or profile. Beyond that, the customer can fill out as many ballots as he/she likes to establish specific moods.
A satisfaction factor, sf, is attached to each mood. For the generic mood, sf=1, which is the base. sf increases as the time window narrows since it is reasonable to believe that people get greater satisfaction as their more specific requirements are met. sf is either determined by the customer or takes a default value. For instance, the system may set a maximum value on sf for the most specific window, which is two hours wide, and do a linear interpolation to find the sf values for windows of greater widths. If the customer provides the sf values for his various mood windows, the values will be normalized in light of the base value of one and the above-mentioned system-set maximum value.
With the introduction of time windows, each customer i (or customer-mood i, to be more accurate) will take on time window superscripts as i.sup.l.sbsp.--i, u.sbsp.--i, while each program j will become j.sup.l.sbsp.--j, u.sbsp.--j, where l.sub.j is the starting time of program j and u.sub.j is the ending time of program j. The calculation of the agreement scalar ac then proceeds as will be described in the next section. However, the calculation of as, the final objective value, becomes:
as.sub.ij =sf.sub.i *wc.sub.i,*ac.sub.ij -wf*f(l.sub.i, u.sub.i, l.sub.j, u.sub.j)!, Equation (13)
where f(l.sub.i, u.sub.i, l.sub.j, u.sub.j) gives a punishment value expressing the customer's dissatisfaction due to the mismatch between the time window of customer-mood i and the broadcast time of program j, sf.sub.i is the normalized satisfaction factor of customer-mood i, wc.sub.i is the weight for the existing agreement scalar, and wf is the weight for f, which needs to be determined through practice.
The major issue here is the form of the punishment function f. Intuitively, f=0 when the mood window contains the broadcast window, i.e., l.sub.i .ltoreq.1.sub.j, and u.sub.i .ltoreq.u.sub.j, and f increases as the two windows move away from each other. Since u.sub.i -l.sub.i .gtoreq.u.sub.j -l.sub.j, i.e., the mood window is not narrower than the broadcast window, the time discrepancy d between the two windows may be expressed as:
d=max(0, l.sub.i -l.sub.j, u.sub.j -u.sub.i), Equation (14)
So f=f(d).
It is reasonable to expect that the customer's dissatisfaction increases rather sharply when the mismatch of the time windows first begins, which means he/she will miss some part of the program. But when the time mismatch increases further, the customer's discontent will level off. For example, the customer will feel quite upset if he/she misses the beginning ten minutes of a program which he/she likes. However, if he/she has already missed the first one hour and a half, his/her dissatisfaction will not increase much if he/she misses the remaining half an hour. This non-linear relationship can be well expressed by the following negative exponential equation:
f(d)=.alpha.(l-e.sup.-.beta.d), Equation (15)
where .alpha. is the maximum dissatisfaction that a customer could have for missing a program, and .beta. is a parameter which determines how sharply f(d) increases with d. The greater the value of .beta., the steeper the curve would be. It can be seen through Equation (15) that f(d)=0 when d=0, and f(d)=.alpha. when d=.infin.. Thus, the punishment function becomes:
f(l.sub.i, u.sub.i, l.sub.j, u.sub.j)=.alpha.(1-exp(max (0, l.sub.i -l.sub.j, u.sub.j -u.sub.i))). Equation (16)
Given the form of Equation (13), a may be set to one since the extent of dissatisfaction can be adjusted by the weight parameter wf.
III. Calculation of Agreement Matrix
The calculated agreement scalars, ac, form an agreement matrix, AC, which provides measurements of the similarity between the customer profiles and the content profiles. Its calculation incorporates the desired amounts of the various characteristics used to define the programs, their importance (weights) to each customer, and the amounts of these characteristics present in each program as determined by experts or test groups. Assuming there are I customers, J programs, K characteristics, and M experts, then each cell in the initial agreement matrix (agreement scalar for cv.sub.ik and cp.sub.jk) may be calculated as:
ac.sub.ij =1/+(1/K) .SIGMA..sub.k (wv.sub.ik /W.sub.i) t.sub.ijk !(i=1,2, . . . I, j=1,2, . . . J), Equation (17)
where: ##EQU2## and: ##EQU3## and: ac.sub.ij : agreement scalar between the profiles of customer i and that of program j;
t.sub.ijk : t value for significance of difference between the rating of characteristic k in customer i and that in program j;
S.sub.CVik-CPjk :standard deviation between the distribution of cv.sub.ik and that of cp.sub.jk ;
W.sub.i: .SIGMA..sub.k WV.sub.ik, i.e., the sum of all weights for customer i;
M: number of "experts" who rate program j; and
N: number of times of consideration before the customer reaches a final decision on the rating for cv.
The magnitude of each of the t values shows the deviation of the customer's ratings of a characteristic from that of the video program given the distributions of the ratings by both the customer and the experts or test group. If the t value is significant at a predetermined level of significance, e.g., 0.05 for degree of freedom of 2M-2, then the two distributions could be regarded as belonging to the same population. The average of all the t values can serve as an indicator of the divergence (distance in characteristic space) between the profile of the customer and that of the program. Therefore, the variable ac, which is basically the reciprocal of the average of the t values (reciprocal of the distance), exhibits the level of agreement between the two profiles. Thus, ac .epsilon.(0,1) and reaches its maximum value of 1 (perfect agreement) only when .SIGMA..sub.k wv.sub.ik *t.sub.ijk =0 or wv.sub.ik * t.sub.ijk =0 (i=1,2, . . ,I; j=1,2, . . ,J; k=1,2, . . ,K) since wv.sub.ik >=0 and t.sub.ijk >=0. In other words, perfect agreement will be met only when there is no difference between the customer profile and the content profile, or when there are differences only on certain characteristics and the customer ignores those characteristics. As a result, sorting all the programs in the ascending order of ac renders a recommendation list of programs for the customer.
In the original formulation of the t significance test, both M and N are the sample sizes. While M is the number of experts or members in the test group, N represents the number of times of consideration before the customer reaches his/her final decision on the rating for cv. N's value may be determined empirically through experiments. Generally speaking, the higher N's value, the lower the flexibility in the customer's acceptance for various characteristics on average. Preferably, N=M-1 so that dispersions in cv, which is interpreted as the customer's acceptance range, and in cp, which represents the difference in the experts' voting, are equally counted. This calculation is underpinned by the assumption that both the distributions of the experts' vote and the customer's rating are normal (Gaussian). Although the assumption is not guaranteed, that is the best that can be hoped for.
Once the initial customer profiles and initial content profiles have been established, a simpler form of Equation (17) may be used by combining wv and s into a single measure of importance:
w.sub.ik =wv.sub.ik /(l/J).SIGMA..sub.j s.sub.ijk,
where: ##EQU4## where sv.sub.ik is the spread in customer i's rating for characteristic k (inversely correlated with the importance of k to i), and sp.sub.ik is the spread in the experts' ratings for characteristic k. Thus:
ac.sub.ij =1/1 +.SIGMA..sub.k w.sub.ik .vertline.cv.sub.ik -cp.sub.jk .vertline.!, Equation (21)
This simpler notation is preferred and will be used throughout the discussion below. However, the algorithms described below are all easily extended to the more complex model of Equation (17). Generally, the more complex form of the agreement matrix (Equation (17)) is only preferred when the customers are asked questions to build their customer profiles. The simpler form of the agreement matrix (Equation (21)) is preferred when the profiles are initialized using demographics and updated using passive monitoring, as in the presently preferred implementation of the present invention.
For purposes of illustration, a calculation of a simple agreement matrix will be described here.
It is assumed that there are only two customers: (1) John and (2) Mary. Their sample customer profiles are as follows:
______________________________________
romance high-tech
violence
______________________________________
characteristic (cv):
1 John 3.0 9.0 7.0
2 Mary 9.0 3.0 0.0
standard deviation (sv):
1 John 1.0 2.0 1.0
2 Mary 1.0 0.5 0.0
weight (wv):
1 John 2.0 9.0 5.0
2 Mary 8.0 3.0 7.0
______________________________________
The available programs are as follows:
______________________________________
Program Titles
______________________________________
1 Star Trek
2 Damnation Alley
3 Forever Young
4 Terminator II
5 Aliens
6 Fatal Attracti |