WO2001015449A1 - Method and apparatus for creating recommendations from users profile built interactively - Google Patents

Method and apparatus for creating recommendations from users profile built interactively Download PDF

Info

Publication number
WO2001015449A1
WO2001015449A1 PCT/IB2000/001131 IB0001131W WO0115449A1 WO 2001015449 A1 WO2001015449 A1 WO 2001015449A1 IB 0001131 W IB0001131 W IB 0001131W WO 0115449 A1 WO0115449 A1 WO 0115449A1
Authority
WO
WIPO (PCT)
Prior art keywords
program
user
recommendations
metadata
program metadata
Prior art date
Application number
PCT/IB2000/001131
Other languages
French (fr)
Inventor
Franck Vamparys
Original Assignee
Singularis S.A.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Singularis S.A. filed Critical Singularis S.A.
Priority to AU63105/00A priority Critical patent/AU6310500A/en
Publication of WO2001015449A1 publication Critical patent/WO2001015449A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44213Monitoring of end-user related data
    • H04N21/44222Analytics of user selections, e.g. selection of programs or purchase activity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/251Learning process for intelligent management, e.g. learning user preferences for recommending movies
    • H04N21/252Processing of multiple end-users' preferences to derive collaborative data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25866Management of end-user data
    • H04N21/25891Management of end-user data being end-user preferences
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/4508Management of client data or end-user data
    • H04N21/4532Management of client data or end-user data involving end-user characteristics, e.g. viewer profile, preferences
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/466Learning process for intelligent management, e.g. learning user preferences for recommending movies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/466Learning process for intelligent management, e.g. learning user preferences for recommending movies
    • H04N21/4668Learning process for intelligent management, e.g. learning user preferences for recommending movies for recommending content, e.g. movies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/475End-user interface for inputting end-user data, e.g. personal identification number [PIN], preference data
    • H04N21/4756End-user interface for inputting end-user data, e.g. personal identification number [PIN], preference data for rating content, e.g. scoring a recommended movie
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/482End-user interface for program selection
    • H04N21/4826End-user interface for program selection using recommendation lists, e.g. of programs or channels sorted out according to their score
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/84Generation or processing of descriptive data, e.g. content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/162Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing
    • H04N7/165Centralised control of user terminal ; Registering at central
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • H04N7/17309Transmission or handling of upstream communications
    • H04N7/17318Direct or substantially direct transmission and handling of requests

Definitions

  • This invention relates to entertainment media management systems, and, more particularly, to an apparatus and method that recommends a program to a user based on program metadata and on user profiles.
  • a program is a media (most likely an electronic media such as music, television programs, digital video or a tangible item such as a book, compact disc or a live event such as a play, opera, etc.) with validity periods.
  • Validity periods define time periods when the program can be delivered to users.
  • Program metadata are data that describes a program.
  • US Pat. No. 5,410,344 provides a system for selecting programs for presentation to a viewer.
  • a neural network is an black box of processing elements with a limited number of inputs and outputs. These processing elements are able to "learn” by receiving weighted inputs that, with time and repetition, can be made to produce appropriate outputs.
  • the viewer preference file is accessible only locally on the viewer terminal and contains no implicit ratings so that the value and efficiency of recommendations are limited.
  • a terminal offers the ability to assist a viewer in choosing programs for viewing.
  • Program recommendations are built from information on frequently viewed programs, persistent profile information and user mood information. This information is interpreted into preferred program indicators and matched with the program metadata to suggest a list of programs.
  • the first limitation of this system is that it is not able to make suggestions by correlated profiles of different users.
  • the second limitation is that the data gathering and analysis techniques used are adequate for a powerful terminal but not for a central profiling server with millions of users.
  • a computer-readable medium is encoded with a method of profiling that collects explicit and implicit data on users related to programs that can be accessed by users and to provide program recommendations to each user.
  • the system and method is designed for the server-side and limited resource terminals to set up user profiles from explicit and implicit data simultaneously on a full program schedule database as well as a specific program (e.g., movie) database.
  • Schedules on program availability and program metadata are broadcast to or received on request by the user terminal through a communication medium from a central system that contains a network of physical servers (network, application, database server for example).
  • a user interactively rates a program or a field of the program metadata
  • this explicit rating is sent to the profiling server through the return path and is stored in the user's profile database.
  • the profiling server collects information on user tastes with respect to program metadata.
  • the profiling server also receives implicit information from user behavior such as user program remind actions, user purchase actions, or user monitoring information. All these implicit ratings complete the profile of each user.
  • the recommendation engine of the profiling server evaluates the profile of users with the schedule of programs that are now available and that will be available in the near future.
  • the recommendation engine builds recommendations of programs for users.
  • the recommendation engine works with several different filtering engines such as a content filtering engine and a collaborative filtering engine and treats one user at a time in each filtering engine. Recommendations are weighted and gathered at the output of these filtering engines and a unique recommendation per program is generated by the recommendation engine for each user. Then the list of program recommendations is stored in the profile of the user. These recommendations are sent to each user terminal on terminal request or by a push from the profiling server. The user can access the resulting recommendations through a user interface that displays recommendations of the best programs for him with different scenarios such as portal, menus, tickers, virtual channels, and lists.
  • An object of the invention is to provide a system and method for server-side and limited resource terminals to set up user profiles from explicit and implicit data simultaneously on a full program schedule database as well as a specific program database. Another object of the invention is to generate user program recommendations from the knowledge of the user profile itself, and also from the profiles of its neighbors that have the same tastes.
  • FIG. 1 is a block diagram of a profiling and recommendation system
  • FIG. 2 is a schematic diagram of a terminal screen of the invention
  • FIG. 3 is a flow chart of the method of collecting the explicit ratings of the user on program metadata
  • FIG. 4 is a flow chart of the method of collecting implicit data on the programs the user has watched by storing the switches between channels;
  • FIG. 5 is a flow chart of the method of collecting implicit data on the programs the user has watched by evaluating the user's viewing time
  • FIG. 6 is a block diagram of a system of the invention including a two-way profile server that receives, stores program metadata and user explicit/implicit data and then builds and returns program recommendations;
  • FIG. 7 is a block diagram of a recommendation engine that provides program recommendations from a set of filtering engines
  • FIG. 8 is a flow diagram of a method for selecting programs from the user profile and from program metadata in the content filtering engine
  • FIG. 9 is a block diagram of a user terminal including network connections and user interactions
  • FIG. 10 is a representative program description guide with explicit ratings displayed on top of a TV program.
  • the present invention 100 is shown as part of an expanded program delivery system 100 that delivers programs 102 and program metadata 104 from a central server 106 to a user terminal 108 through a network 110.
  • the central server 106 can be located at the operator head-end and the user terminal 108 can be an operator set-top box (STB) or the television itself.
  • the central server 106 can be integrated into the web and application servers and the terminal 108 can be a personal computer (PC) 114.
  • the terminal 108 is a device that displays programs 102 and program metadata 104 to a user and that can interact with the user.
  • the terminal 108 is usually a set-top box (STB) or the television set.
  • the terminal 108 can also be a wireless device (PDAs, mobile phones, etc.).
  • the system 100 operates within the context of a content or service provider system for communicating programs 102 and programs metadata 104 to users 116.
  • This system 100 is composed of two parts 118 and 120.
  • the first part 118 is the central server 106 that manages and delivers content to the users 116.
  • the second part 120 is the user terminal 108 that receives the content and allows the user 116 to interact with the central server 106.
  • a content management system 122 manages programs 102 and programs metadata 104 and is synchronized with the content delivery system 124 that sends programs 102 to the network 110, destined to the users 116.
  • the content management system 122 also sends program metadata 104 to the profiling server 126.
  • the profiling server 126 collects information on programs metadata 104 and on user profiles and stores these data in the program metadata database 128 and in the users profile database 130.
  • the profiling server 126 is the main component of the invention: from the collected data, the server 126 builds and delivers program recommendations to each user 116. The recommendations are received by the terminal 108. A user 116 can use different terminals 108 to access its profile on the profiling server 126.
  • the profiling server 126 imposes no constraints on the infrastructure of the network 110 if we assume a reasonable bandwidth adequate for the number of users 116.
  • program metadata 104 may also be obtained from other sources, such as a ftp xml file or in the media itself, digitally embedded in the content and need not come from the content management system 122.
  • a program 102 is described by its metadata 104. Metadata 104 of programs contain a large set of possible fields but only a few subsets of this fields are useful for the profiling server 126 and its recommendation engine 132. A more detailed description of a preferred embodiment is provided as follows.
  • Program ID 218 The Program ID 218 uniquely identifies a particular program 102.
  • the ID 218 can be an integer (32 bits) or a long integer (64 bits) or a string of bytes not exceeding 2000 bytes.
  • Title 208 The title 208 uniquely identifies the main title of the program 102 and is defined as a string.
  • the category 210 identifies the media content and media type category of a program 102.
  • the media type category defines the type of program 102 such as a movie, song, a documentary, a live event, a software, etc.
  • the media type category is defined in one level, which means it is one element of a list of category values.
  • the media content category indicates the nature of the content of the program 102. It consists of three hierarchical level categories. For example, a program 102 might have the media content level categories of (1) sport, (2) football, and (3) Arsenal. In the case of an Electronic Program Guide (EPG), the two higher-level fields can be compatible with category fields defined in the Digital Video Broadcasting Standard (DVB). Category fields are defined as strings. Optionally, a unique ID can be added to the string definition.
  • Description 220 describes the program 102 in a textual form and is defined as a string. This field is optional for the recommendation engine but useful for the users 116.
  • People 212 identify the stars or other persons of interest in the program 102.
  • One individual is defined by a people category and by name. Examples of people category are: actor, producer, presenter, famous, etc.
  • People categories and people names are designed as strings.
  • a unique ID can be added to the string definition.
  • Keywords 214 describe the program 102 by a list of keywords. Each keyword represents the content of one part of the program 102. These keywords can be interpreted without the category fields. For example, a keyword might be the "Louvre” in the context of the category "documentary, travel, France". Optionally, a unique ID can be added to the string definition of the keyword.
  • Parental rating 216 identifies restrictions regarding who can access the associated program 102. For example, the rating might be "users older than 13". Classification can be by age or based upon content such as violence, language, nudity and/or sex. Parental control attributes are defined as strings. Optionally, a unique ID can be added to the string definition.
  • Explicit data 136 is data that are produced by a direct interaction with the user 116. Each user 116 can indicate using a rating scale his preferences on or his reaction to a specific program 102 or a program category or people or keywords. All the user ratings using the rating scale are collected by the profiling server 126 and are stored in the users profile database 130. When a user 116 purchases a program 102 or makes a remind action on a program, these actions are also stored in the user's profile database 130. Implicit data 134 is data that is monitored by the terminal 108 and sent to the profiling server 126. This data 134 is also stored in the user's profile database 130. Implicit data 134 gives information on the viewing habits of the user 116, such as which programs 102 he has watched or used, and the time of day the program was viewed.
  • the user profile database 130 is structured as follows:
  • the profiling server 126 collects this information. Examples of this information are: nickname, age, zip code, gender, income, etc.
  • Processed data This data contains information that is generated by the profiling server 126. For example, this includes program recommendations data generated for each user.
  • Aggregated data This data contains data that are extracted and aggregated based on a user profile 138. In this aggregated data, reference to an individual user 116 is lost.
  • a submethod 300 acquires explicit data 136 by collecting the user's tastes by means of a rating process.
  • the terminal 108 receives program metadata 104 and stores the data locally.
  • the metadata is displayed when necessary or requested.
  • the user can select a field 214 of a displayed program 200, assign a grade 206 for that field 214 and validate this rating using a validate button such as that on a remote control or touch screen.
  • the rating 206 is saved locally on the terminal 108.
  • the rating is sent to the profiling server 126 asynchronously.
  • a delay can be added before the transmission of the profiling server 126 in order to facilitate the management of the load of the server.
  • the profiling server 126 can activate the recommendation engine 132 and immediately returns program recommendations 204 generated from the new rating.
  • Fields 222 that can be rated are the metadata 104 available for each program 200 such as title, categories, people, keywords, etc. The same rating process also applies to purchases and reminder requests acquisition.
  • a submethod 400 is described for acquisition of implicit data 134 on a terminal 108.
  • a time counter is initialized and the system is waiting a user action.
  • the user changes a channel.
  • an evaluation of the manner in which channels are changed (the "channel zapping") is performed. This evaluation determines the time spent on the previous channel.
  • the duration between zapping is evaluated.
  • zapping information is accepted and is saved locally 120.
  • the method collects a predefined (configurable) number of channel changes/zappings on the terminal 108.
  • the method sends this information to the profiling server 126 asynchronously.
  • the recommendation engine 132 does not only need to know zapping information but also how long a user has watched a program 200. This information can be built from the zapping information and from the program schedule on the server side 106. However, this additional information can also be built up in the terminal 108.
  • this last option has the advantage of reducing the load of the server 106.
  • the initial steps 502, 504, 506 of this submethod 500 are the same as that of FIG. 4 and this submethod works in parallel with the main method shown in FIG. 4.
  • an evaluation step 508 is added which evaluates the programs 200 watched. This evaluation step 508 determines how long the current program 200 of the previous channel has been watched by the user.
  • a time check step 510 if the program 200 is terminated, the time the program was watched is evaluated to determine whether it exceeds the predetermined limit (which is configurable). If so, in a saving step 512, the pro gram- watched information is stored locally on the terminal 108.
  • a collection step 514 the method returns to the first step 502 until the number of program 200 watched reaches a maximum.
  • a subsequent step 516 after having collected a predefined (configurable) number of watched program information on the terminal 108, the information is sent to the profiling server 126 asynchronously.
  • the profiling server 126 includes a core platform system 602 that synchronizes all the subsystems (132,604,606) of the profiling server 126.
  • a program agent system 604 receives program metadata 104 from the content management system 122, parses the program metadata 104, converts the program metadata into an internal format as described earlier, and stores the new program metadata in the program metadata database 128. Only the program agent system 604 has to be adapted when a different content management system 122 is connected to the profiling server 126.
  • a user agent system 606 is the gateway between the user terminal 120 and the users profile database 130.
  • the user agent system 606 receives explicit and implicit data 136 and 134 respectively from the user terminal 120. It identifies, validates and then stores the data in the user profile database 130. If the terminal 120 requests immediate program recommendations built on the newly received data, the user agent system 606 sends the request to the core platform system 602 that activates the recommendation engine 132. The recommendation engine 132 returns the program recommendation list to the core platform system 602 that sends the recommendations to the terminal 120 through the user agent system 606.
  • the core platform system 606 controls and manages program and user agent sys- terns 604 and 606, respectively, as well as the recommendation engine 132.
  • the profiling system 126 has been designed as a flexible architecture.
  • the engine 132 has two working modes. In a first working mode, called a low priority batch mode, the recommendation engine 132 builds new program recommendations for each user when the core platform system 602 informs it that the new program metadata 104 has been added to the program metadata database 128. Depending on the size of the user's profile database 130, the update of each user can take a long time.
  • a second mode with a high priority allows the profiling system 600 to respond faster to a request of a user. In this mode, the profiling server 126 brings instant gratification of the user by giving him program recommendations related to the new rating he has sent to the profiling server 126.
  • the recommendation engine 132 can easily be adapted to multi-processors and multi-servers architecture with hash coding techniques on users.
  • the recommendation engine 132 selects the user it wishes to treat.
  • the recommendation engine 132 reads the user profile stored in the users profile database 130. Then the recommendation engine 132 activates different filtering engines 706, 708 and 710 with that profile.
  • the recommendation engine 132 supports multiple algorithms and can aggregate the result of the different filtering engines 706, 708 and 710 to a single list of program recommendations.
  • the user profile in the user profile database 130 is updated. In order to accomplish this, the weighting coefficients 712, 714 and 716 are added to each respective program recom-
  • Coefficients 712, 714 and 716 differ depending on the filtering engine 706, 708 or 710 to which they apply and also depending on the program content category because a filtering engine can be better adapted to one content category than another content category.
  • the collaborative filtering engine 708 gives l o better results with the movie content category than with the sport content category.
  • the coefficients 712, 714 and 716 can be tuned manually. They can also evolve dynamically by using a feedback adaptive algorithm well adapted to heuristic algorithms.
  • the recommendation engine 132 adapts the
  • the recommendation engine 132 uses two
  • the content filtering engine 706 generates recommendations separately for each user while the collaborative filtering engine 708 finds correlation between the user tastes.
  • the collaborative filtering requires bootstrap to start to generate recommendations while the content filtering
  • the content of the filtering engine 706 can generate program recommendations as soon as at least one rating has been made by the user 116. Of course, if only a few ratings are given, the customization of the programming recommendations is low.
  • One solution consists of providing a default profile when the user profile is first created.
  • This default profile can be built on the basic data mentioned under the heading "Program Metadata and User Profiles", available on the user 116 and on aggregated data such as the best or the most rated programs by other users.
  • Another more interesting solution is to leave the choice to the user 116 to choose, as a default profile, the profile of a famous person he likes.
  • Collaborative filtering has proven useful for movie, book, music or documentaries. Content filtering has powerful availability with news, sport, people, and all strongly categorized items. In the TV context it also fits for periodic programs 102.
  • the collaborative filtering engine 708 requires more intensive CPU resources than the optimized content filtering engine 706, the collaborative filtering engine 708 can only be used for a subset of all the programs 102 (e.g. movies, documentaries, music). These two algorithms respectively have proved to be well adapted to item recommendation and are complementary. Nevertheless, the recommendation engine 132 can easily integrate another filtering engine such as a more general social filtering engine 710. Each filtering engine 706, 708, 710 has access to the program metadata database 128 with the explicit and implicit data 136 and 134.
  • FIG. 8 describes the internal architecture of the content filtering engine 706, custom developed according to the needs of the present invention.
  • the engine 706 is optimized for structured and categorized metadata.
  • program metadata 104 with a right validity period are selected in a selection step 810 and indexed in an indexing step 812 for each program field such as "title”, "people", “content category”, and "keyword” used by the engine.
  • the engine 706 separates information on user tastes 802, user purchases 804, user reminder requests 806 and use monitoring information 808.
  • Each information category 702, 704, 706 and 708 goes through a tuned matching engine for tastes 814 for purchases 816 for reminder requests 818 and for monitoring 820.
  • Each matching engine 814, 816, 818 and 820 uses the same algorithm based on static matching rules and non-linear distance estimation between program metadata 104 and user profile fields (defined in user profiles section) but with different rules and distance estimation coefficients for each matching engine. Rules and distance estimation coefficients are based on heuristics built on the knowledge acquired through development, study, and experimentation. Use of matching rules allows the purveyor to find a balance between search (Indexes) and knowledge (Rules), the two main approaches of Al. Details on rule-based algorithm can be found in Charles Forgy, "The Rete Algorithm: A Fast Algorithm for the Many Pattern / Many Object
  • a first level 830 aggregates program recommendations built from the user behavior (purchase, remind, monitoring) and a second level 832 aggregates these recommendations with the recommendations built in the taste matching engine 814.
  • the matching engines (814, 816, 818 and 820) take into account at what time the program 200 has been watched, reminded and/or purchased. For example, some users 116 watch movies in the evening and news in the morning while others watch news in the evening.
  • the recommendation engine 132 tries to follow this time pattern when it generates the program recommendations.
  • the content filtering engine 706 generates as output a program recommendation list 906 with a grading 920 on the programs of the list 918.
  • the terminal 120 is a device that displays programs 102 and program metadata 104 to a user 116, collects and sends explicit and implicit data 136 and 134, respectively, on users to the profiling server 126.
  • a user 116 interacts with the profiling server 126 through the terminal 120 that displays its personal recommendations 204.
  • the terminal 120 displays a program description panel 902 with information on one program on top of another.
  • Metadata 104 is displayed, including the program title 908, the content category 910 and a list of people 912.
  • the rating panel 904 applied on the selected item 914 ("Peter Barton" in this example) and the user 116 can change the grade of the explicit rating 916.
  • Program recommendations available for the current user 116 are displayed in the recommendation panel 906.
  • Each program recommendation is represented by its title 918 and its grade 920, in this case, one to five stars. Different processes of interaction can also be used.
  • the program recommendations 906 can be displayed in a portal, on menus or be received by e-mail.

Abstract

A system is provided for generating program recommendations for a plurality of users based on program metadata and user profiles. The system uses a central prolifing server unit that includes a program agent system, a user agent system, and a recommendation engine. The program agent system has means for importing program metadata from a content management system and for storing the program metadata into a program metadata database. The user agent system includes (i) means for collecting explicit and/or implicit information on program metadata and users; (ii) means for storing the explicit and/or implicit information into a user profile database; and (iii) means for transmitting a list of program recommendations for users to user terminals. The recommendation engine includes a (i) means for building program recommendations for users based on program metadata and user profiles, through use of a plurality of filtering engines for evaluating user profiles, with a schedule of available programs; (ii) means for gathering and weighting the built program recommendations in order to generate a list of program recommendations per user; and (iii) means for storing said list of program recommendations in a user profile database.

Description

METHOD AND APPARATUS FOR CREATING RECOMMENDATIONS FROM USERS PROFILE BUILT INTERACTIVELY
Background of the Invention
This invention relates to entertainment media management systems, and, more particularly, to an apparatus and method that recommends a program to a user based on program metadata and on user profiles.
In order to better understand this disclosure, the following definitions are offered. A program is a media (most likely an electronic media such as music, television programs, digital video or a tangible item such as a book, compact disc or a live event such as a play, opera, etc.) with validity periods. Validity periods define time periods when the program can be delivered to users. Program metadata are data that describes a program.
Recently, breakthroughs in digital technologies allow users to receive hundreds of video channels. In fact, it is widely believed that the barrier of 1000 channels will soon be broken. In this new environment, the amount of content available is overwhelming. Electronic guides are limited by the amount of information that can be displayed on a single screen at a given time. Additional tools are therefore required in order to help the user find a program that he is interested in. One way to do this is to propose recommendations on programs addressing an individual user's preferences (for example user tastes, behavior, demographic information). The prior art includes various systems directed toward enhancing television-viewing efficiency by providing individual suggestions. For example, an early system described in US Pat. No. 4,170,782, the content of which is incorporated herein by reference, allows the viewer to preselect a television- viewing schedule of desired television channels to be viewed during selected time periods. This system also monitors the television viewer and relays this information to a central data processing center over a communications link. Other similar systems, such as those described in US Pats no. 4,264,924 and 4,706,121 , the contents of which are incorporated by reference, facilitate access to programming but provide no assistance to the user in determining what programming to select for subsequent viewing. US Pat. No. 4,745,549 and 5,075,771, the contents of which are incorporated herein by reference, try to provide selective access to programming from user preferences built on a user questionnaire. However, this kind of interaction based on a general questionnaire does not provide any insights as to the desirability of a particular program.
The system described in US Pat. No. 5,223,924, the content of which is incorporated by reference, begins to address the above problem by providing a user interface for automatically correlating the user preferences with TV program information and creating and displaying a personalized user program database based on the results of the correlation using a "free- text search" engine. In this system, the user profile is limited to automatically update the database of "preferred" programs using direct user feedback.
US Pat. No. 5,410,344, the content of which is herein incorporated by reference, provides a system for selecting programs for presentation to a viewer. The programs selected from a viewer preference file built with explicit ratings on program metadata and from a neural network engine. A neural network is an black box of processing elements with a limited number of inputs and outputs. These processing elements are able to "learn" by receiving weighted inputs that, with time and repetition, can be made to produce appropriate outputs. The viewer preference file is accessible only locally on the viewer terminal and contains no implicit ratings so that the value and efficiency of recommendations are limited.
US Pat. No. 5,534,911, the content of which is incorporated by reference, describes a virtual personal channel but user profile is stored locally and is non persistent between sessions. In U.S. Pat. No. 5,801,747, the content of which is incorporated by reference, a user-profiling server is described. However, user profiles are built only based on viewing activities of the user. Further, the system can only display preferred channels or categories.
Some prior art systems address the problem of suggesting programs from a large program database such as a movie database (for video on demand) as described in U.S. Pat. No. 5,483,278, the content of which is incorporated by reference. In this system, the user makes explicit ratings on program metadata. The system presents programs in an individual order and the user can rate them explicitly (e.g., by selecting "liked" or "disliked") and the order of program presentation to the user is modified. The user profile is stored locally with respect to the terminal and is non persistent so that the interest of such a system is limited.
Referring to US Pat. No. 5,758,257 and US Pat. No 6,020,883(the content of which is incorporated by reference), two profiles are built from explicit ratings, one on content data and one on viewer's preferences. An "agreement matrix" is then calculated by comparing the two profiles and a "virtual channel" is generated, providing personal recommendations on programs to each viewer. A feedback path with monitoring information is also provided so that user profiles and content profiles can be improved. This system works also with movies, music or book databases (kiosk). This system includes an "agreement matrix" and is well adapted to work inside a powerful terminal but not on a profiling server with millions of users and a limited resource terminal.
In US Pat. No. 5,798,785, the content of which is incorporated herein by reference, a terminal offers the ability to assist a viewer in choosing programs for viewing. Program recommendations are built from information on frequently viewed programs, persistent profile information and user mood information. This information is interpreted into preferred program indicators and matched with the program metadata to suggest a list of programs. The first limitation of this system is that it is not able to make suggestions by correlated profiles of different users. The second limitation is that the data gathering and analysis techniques used are adequate for a powerful terminal but not for a central profiling server with millions of users.
Therefore, what is needed is a system and method which overcomes the drawbacks of the prior art, generating user program recommendations from the knowledge of the user profile itself, and also from the profiles of its neighbors that have the same tastes. Summary of the Invention
A computer-readable medium is encoded with a method of profiling that collects explicit and implicit data on users related to programs that can be accessed by users and to provide program recommendations to each user.
The system and method is designed for the server-side and limited resource terminals to set up user profiles from explicit and implicit data simultaneously on a full program schedule database as well as a specific program (e.g., movie) database.
Schedules on program availability and program metadata are broadcast to or received on request by the user terminal through a communication medium from a central system that contains a network of physical servers (network, application, database server for example). When, from a terminal, a user interactively rates a program or a field of the program metadata, this explicit rating is sent to the profiling server through the return path and is stored in the user's profile database. The profiling server collects information on user tastes with respect to program metadata. The profiling server also receives implicit information from user behavior such as user program remind actions, user purchase actions, or user monitoring information. All these implicit ratings complete the profile of each user. Then the recommendation engine of the profiling server evaluates the profile of users with the schedule of programs that are now available and that will be available in the near future. Based on the evaluation process, the recommendation engine builds recommendations of programs for users. The recommendation engine works with several different filtering engines such as a content filtering engine and a collaborative filtering engine and treats one user at a time in each filtering engine. Recommendations are weighted and gathered at the output of these filtering engines and a unique recommendation per program is generated by the recommendation engine for each user. Then the list of program recommendations is stored in the profile of the user. These recommendations are sent to each user terminal on terminal request or by a push from the profiling server. The user can access the resulting recommendations through a user interface that displays recommendations of the best programs for him with different scenarios such as portal, menus, tickers, virtual channels, and lists.
An object of the invention is to provide a system and method for server-side and limited resource terminals to set up user profiles from explicit and implicit data simultaneously on a full program schedule database as well as a specific program database. Another object of the invention is to generate user program recommendations from the knowledge of the user profile itself, and also from the profiles of its neighbors that have the same tastes.
Brief Description of the Drawings
The features and advantages of the present invention will become more apparent and understood from the following detailed description which should be read in conjunction with the accompanying drawings, in which:
FIG. 1 is a block diagram of a profiling and recommendation system;
FIG. 2 is a schematic diagram of a terminal screen of the invention; FIG. 3 is a flow chart of the method of collecting the explicit ratings of the user on program metadata;
FIG. 4 is a flow chart of the method of collecting implicit data on the programs the user has watched by storing the switches between channels;
FIG. 5 is a flow chart of the method of collecting implicit data on the programs the user has watched by evaluating the user's viewing time;
FIG. 6 is a block diagram of a system of the invention including a two-way profile server that receives, stores program metadata and user explicit/implicit data and then builds and returns program recommendations;
FIG. 7 is a block diagram of a recommendation engine that provides program recommendations from a set of filtering engines;
FIG. 8 is a flow diagram of a method for selecting programs from the user profile and from program metadata in the content filtering engine;
FIG. 9 is a block diagram of a user terminal including network connections and user interactions;
FIG. 10 is a representative program description guide with explicit ratings displayed on top of a TV program.
Detailed Description of the Preferred Embodiment
The following embodiments of the present invention will now be described in detail relative to Figures 1 to 10.
Referring now to Fig. 1 , the present invention 100 is shown as part of an expanded program delivery system 100 that delivers programs 102 and program metadata 104 from a central server 106 to a user terminal 108 through a network 110. In the case of a cable television system, the central server 106 can be located at the operator head-end and the user terminal 108 can be an operator set-top box (STB) or the television itself. In the case of an Internet solution, the central server 106 can be integrated into the web and application servers and the terminal 108 can be a personal computer (PC) 114. The terminal 108 is a device that displays programs 102 and program metadata 104 to a user and that can interact with the user. In the television field, the terminal 108 is usually a set-top box (STB) or the television set. The terminal 108 can also be a wireless device (PDAs, mobile phones, etc.).
Major System Components
Referring again to Fig. 1 , the system 100 operates within the context of a content or service provider system for communicating programs 102 and programs metadata 104 to users 116. This system 100 is composed of two parts 118 and 120. The first part 118 is the central server 106 that manages and delivers content to the users 116. The second part 120 is the user terminal 108 that receives the content and allows the user 116 to interact with the central server 106. A content management system 122 manages programs 102 and programs metadata 104 and is synchronized with the content delivery system 124 that sends programs 102 to the network 110, destined to the users 116. The content management system 122 also sends program metadata 104 to the profiling server 126. The profiling server 126 collects information on programs metadata 104 and on user profiles and stores these data in the program metadata database 128 and in the users profile database 130. The profiling server 126 is the main component of the invention: from the collected data, the server 126 builds and delivers program recommendations to each user 116. The recommendations are received by the terminal 108. A user 116 can use different terminals 108 to access its profile on the profiling server 126. The profiling server 126 imposes no constraints on the infrastructure of the network 110 if we assume a reasonable bandwidth adequate for the number of users 116.
It should be noted that program metadata 104 may also be obtained from other sources, such as a ftp xml file or in the media itself, digitally embedded in the content and need not come from the content management system 122.
Program Metadata and User Profiles
A program 102 is described by its metadata 104. Metadata 104 of programs contain a large set of possible fields but only a few subsets of this fields are useful for the profiling server 126 and its recommendation engine 132. A more detailed description of a preferred embodiment is provided as follows.
(a) Program ID 218: The Program ID 218 uniquely identifies a particular program 102. The ID 218 can be an integer (32 bits) or a long integer (64 bits) or a string of bytes not exceeding 2000 bytes.
(b) Title 208: The title 208 uniquely identifies the main title of the program 102 and is defined as a string.
(c) Category 210: The category 210 identifies the media content and media type category of a program 102. The media type category defines the type of program 102 such as a movie, song, a documentary, a live event, a software, etc. The media type category is defined in one level, which means it is one element of a list of category values. The media content category indicates the nature of the content of the program 102. It consists of three hierarchical level categories. For example, a program 102 might have the media content level categories of (1) sport, (2) football, and (3) Arsenal. In the case of an Electronic Program Guide (EPG), the two higher-level fields can be compatible with category fields defined in the Digital Video Broadcasting Standard (DVB). Category fields are defined as strings. Optionally, a unique ID can be added to the string definition.
(d) Description 220: The description 220 describes the program 102 in a textual form and is defined as a string. This field is optional for the recommendation engine but useful for the users 116.
(e) People 212: People 212 identify the stars or other persons of interest in the program 102. One individual is defined by a people category and by name. Examples of people category are: actor, producer, presenter, famous, etc. People categories and people names are designed as strings. Optionally, a unique ID can be added to the string definition.
(f) Keywords 214: Keywords 214 describe the program 102 by a list of keywords. Each keyword represents the content of one part of the program 102. These keywords can be interpreted without the category fields. For example, a keyword might be the "Louvre" in the context of the category "documentary, travel, France". Optionally, a unique ID can be added to the string definition of the keyword.
(g) Parental rating 216: Parental rating 216 identifies restrictions regarding who can access the associated program 102. For example, the rating might be "users older than 13". Classification can be by age or based upon content such as violence, language, nudity and/or sex. Parental control attributes are defined as strings. Optionally, a unique ID can be added to the string definition.
User profiles are built on explicit and implicit data 134, 136 collected by the profiling server 126. Explicit data 136 is data that are produced by a direct interaction with the user 116. Each user 116 can indicate using a rating scale his preferences on or his reaction to a specific program 102 or a program category or people or keywords. All the user ratings using the rating scale are collected by the profiling server 126 and are stored in the users profile database 130. When a user 116 purchases a program 102 or makes a remind action on a program, these actions are also stored in the user's profile database 130. Implicit data 134 is data that is monitored by the terminal 108 and sent to the profiling server 126. This data 134 is also stored in the user's profile database 130. Implicit data 134 gives information on the viewing habits of the user 116, such as which programs 102 he has watched or used, and the time of day the program was viewed.
The user profile database 130 is structured as follows:
(a) Basic data: When users buy or log on to the terminal 108, he must identify himself. The profiling server 126 collects this information. Examples of this information are: nickname, age, zip code, gender, income, etc.
(b) History data: This data contains all the explicit and implicit data
134 and 136 collected.
(c) Processed data: This data contains information that is generated by the profiling server 126. For example, this includes program recommendations data generated for each user. (d) Aggregated data: This data contains data that are extracted and aggregated based on a user profile 138. In this aggregated data, reference to an individual user 116 is lost.
Referring now to FIGs. 2 and 3, a submethod 300 is described that acquires explicit data 136 by collecting the user's tastes by means of a rating process. In a first step 302, the terminal 108 (shown in FIG 2) receives program metadata 104 and stores the data locally. In a second step 304, the metadata is displayed when necessary or requested. In a third step 306, following the display of the metadata 104, the user can select a field 214 of a displayed program 200, assign a grade 206 for that field 214 and validate this rating using a validate button such as that on a remote control or touch screen. In a fourth step 308, the rating 206 is saved locally on the terminal 108. In a fifth step 310, the rating is sent to the profiling server 126 asynchronously. A delay can be added before the transmission of the profiling server 126 in order to facilitate the management of the load of the server. When the delay is set to zero, optionally, the profiling server 126 can activate the recommendation engine 132 and immediately returns program recommendations 204 generated from the new rating. Fields 222 that can be rated are the metadata 104 available for each program 200 such as title, categories, people, keywords, etc. The same rating process also applies to purchases and reminder requests acquisition.
Referring now to FIG. 4 , a submethod 400 is described for acquisition of implicit data 134 on a terminal 108. In a first step 402, a time counter is initialized and the system is waiting a user action. In a second step 404, the user changes a channel. In a third step 406, an evaluation of the manner in which channels are changed (the "channel zapping") is performed. This evaluation determines the time spent on the previous channel. In a fourth step 408, the duration between zapping is evaluated. In a fifth step 410, if the duration between zapping is greater than the limit, zapping information is accepted and is saved locally 120. In a sixth step 412, the method collects a predefined (configurable) number of channel changes/zappings on the terminal 108. In a seventh step 414, the method sends this information to the profiling server 126 asynchronously. To use implicit data 134, the recommendation engine 132 does not only need to know zapping information but also how long a user has watched a program 200. This information can be built from the zapping information and from the program schedule on the server side 106. However, this additional information can also be built up in the terminal 108.
Referring now to FIG. 5, this last option has the advantage of reducing the load of the server 106. The initial steps 502, 504, 506 of this submethod 500 are the same as that of FIG. 4 and this submethod works in parallel with the main method shown in FIG. 4. After the channel zapping evaluation 506, an evaluation step 508 is added which evaluates the programs 200 watched. This evaluation step 508 determines how long the current program 200 of the previous channel has been watched by the user. In a time check step 510, if the program 200 is terminated, the time the program was watched is evaluated to determine whether it exceeds the predetermined limit (which is configurable). If so, in a saving step 512, the pro gram- watched information is stored locally on the terminal 108. In a collection step 514, the method returns to the first step 502 until the number of program 200 watched reaches a maximum. In a subsequent step 516, after having collected a predefined (configurable) number of watched program information on the terminal 108, the information is sent to the profiling server 126 asynchronously.
Profiling System
Referring now to FIG. 6, a block diagram of the preferred embodiment of the profiling server 126 is described. The profiling server 126 includes a core platform system 602 that synchronizes all the subsystems (132,604,606) of the profiling server 126. First, a program agent system 604 receives program metadata 104 from the content management system 122, parses the program metadata 104, converts the program metadata into an internal format as described earlier, and stores the new program metadata in the program metadata database 128. Only the program agent system 604 has to be adapted when a different content management system 122 is connected to the profiling server 126. In a matter similar to the program agent system 604, a user agent system 606 is the gateway between the user terminal 120 and the users profile database 130. The user agent system 606 receives explicit and implicit data 136 and 134 respectively from the user terminal 120. It identifies, validates and then stores the data in the user profile database 130. If the terminal 120 requests immediate program recommendations built on the newly received data, the user agent system 606 sends the request to the core platform system 602 that activates the recommendation engine 132. The recommendation engine 132 returns the program recommendation list to the core platform system 602 that sends the recommendations to the terminal 120 through the user agent system 606. The core platform system 606 controls and manages program and user agent sys- terns 604 and 606, respectively, as well as the recommendation engine 132. The profiling system 126 has been designed as a flexible architecture.
Recommendations Engine
Referring now to FIG. 7, a block diagram of the recommendation engine 132 is shown. The engine 132 has two working modes. In a first working mode, called a low priority batch mode, the recommendation engine 132 builds new program recommendations for each user when the core platform system 602 informs it that the new program metadata 104 has been added to the program metadata database 128. Depending on the size of the user's profile database 130, the update of each user can take a long time. A second mode with a high priority allows the profiling system 600 to respond faster to a request of a user. In this mode, the profiling server 126 brings instant gratification of the user by giving him program recommendations related to the new rating he has sent to the profiling server 126. By evaluating one user at a time, the recommendation engine 132 can easily be adapted to multi-processors and multi-servers architecture with hash coding techniques on users.
In a first substep 702, the recommendation engine 132 selects the user it wishes to treat. In a second substep 704, once the user is selected, the recommendation engine 132 reads the user profile stored in the users profile database 130. Then the recommendation engine 132 activates different filtering engines 706, 708 and 710 with that profile. The recommendation engine 132 supports multiple algorithms and can aggregate the result of the different filtering engines 706, 708 and 710 to a single list of program recommendations. In a third substep 720, the user profile in the user profile database 130 is updated. In order to accomplish this, the weighting coefficients 712, 714 and 716 are added to each respective program recom-
5 mendation of each filtering engine 706, 708 and 710. Coefficients 712, 714 and 716 differ depending on the filtering engine 706, 708 or 710 to which they apply and also depending on the program content category because a filtering engine can be better adapted to one content category than another content category. For example, the collaborative filtering engine 708 gives l o better results with the movie content category than with the sport content category.
The coefficients 712, 714 and 716 can be tuned manually. They can also evolve dynamically by using a feedback adaptive algorithm well adapted to heuristic algorithms. The recommendation engine 132 adapts the
15 coefficients 712, 714, and 716 by using for all users either an evaluation of the difference between the recommendation grade and the grade the user has given to that program or an evaluation of the difference between the recommendation grade and the duration the program 200 has been watched by the user. By default, the recommendation engine 132 uses two
20 complementary filtering algorithms: content filtering and collaborative filtering. The content filtering engine 706 generates recommendations separately for each user while the collaborative filtering engine 708 finds correlation between the user tastes. The collaborative filtering requires bootstrap to start to generate recommendations while the content filtering
25 does not. The content of the filtering engine 706 can generate program recommendations as soon as at least one rating has been made by the user 116. Of course, if only a few ratings are given, the customization of the programming recommendations is low.
One solution consists of providing a default profile when the user profile is first created. This default profile can be built on the basic data mentioned under the heading "Program Metadata and User Profiles", available on the user 116 and on aggregated data such as the best or the most rated programs by other users. Another more interesting solution is to leave the choice to the user 116 to choose, as a default profile, the profile of a famous person he likes. Collaborative filtering has proven useful for movie, book, music or documentaries. Content filtering has powerful availability with news, sport, people, and all strongly categorized items. In the TV context it also fits for periodic programs 102. The collaborative filtering engine 708 requires more intensive CPU resources than the optimized content filtering engine 706, the collaborative filtering engine 708 can only be used for a subset of all the programs 102 (e.g. movies, documentaries, music). These two algorithms respectively have proved to be well adapted to item recommendation and are complementary. Nevertheless, the recommendation engine 132 can easily integrate another filtering engine such as a more general social filtering engine 710. Each filtering engine 706, 708, 710 has access to the program metadata database 128 with the explicit and implicit data 136 and 134.
FIG. 8 describes the internal architecture of the content filtering engine 706, custom developed according to the needs of the present invention. The engine 706 is optimized for structured and categorized metadata. When the content filtering engine 706 is started, program metadata 104 with a right validity period are selected in a selection step 810 and indexed in an indexing step 812 for each program field such as "title", "people", "content category", and "keyword" used by the engine. From the user profile already loaded 704, the engine 706 separates information on user tastes 802, user purchases 804, user reminder requests 806 and use monitoring information 808. There is no technical limitation to the number of subjects for possible characterization or categorization -other user information can be used by the engine 706. Each information category 702, 704, 706 and 708 goes through a tuned matching engine for tastes 814 for purchases 816 for reminder requests 818 and for monitoring 820. Each matching engine 814, 816, 818 and 820 uses the same algorithm based on static matching rules and non-linear distance estimation between program metadata 104 and user profile fields (defined in user profiles section) but with different rules and distance estimation coefficients for each matching engine. Rules and distance estimation coefficients are based on heuristics built on the knowledge acquired through development, study, and experimentation. Use of matching rules allows the purveyor to find a balance between search (Indexes) and knowledge (Rules), the two main approaches of Al. Details on rule-based algorithm can be found in Charles Forgy, "The Rete Algorithm: A Fast Algorithm for the Many Pattern / Many Object
Pattern Matching Problem", 1979, PhD thesis, Carnegie-Mellon University, the content of which is incorporated herein by reference. Due to the indexing techniques (read access in 0(1)) used on program metadata 104, the content filtering engine 706 is very fast and can support a large number of users 116. The bottleneck is on database access and not on the engine 706. Structured program metadata 104 is key to guaranteeing the satisfaction of program recommendations 204 and to guaranteeing a fast content filtering engine 706. Programs suggested by the matching engines 814, 816, 818 and 820 are then weighted using a weight coefficient 822, 824, 826 and 828 respectively and aggregated in a list of program recommendations. A first level 830 aggregates program recommendations built from the user behavior (purchase, remind, monitoring) and a second level 832 aggregates these recommendations with the recommendations built in the taste matching engine 814. The matching engines (814, 816, 818 and 820) take into account at what time the program 200 has been watched, reminded and/or purchased. For example, some users 116 watch movies in the evening and news in the morning while others watch news in the evening. The recommendation engine 132 tries to follow this time pattern when it generates the program recommendations. The content filtering engine 706 generates as output a program recommendation list 906 with a grading 920 on the programs of the list 918.
User Terminal
Now referring to FIG. 9, the data flow of the terminal 120 is shown. The terminal 120 is a device that displays programs 102 and program metadata 104 to a user 116, collects and sends explicit and implicit data 136 and 134, respectively, on users to the profiling server 126. A user 116 interacts with the profiling server 126 through the terminal 120 that displays its personal recommendations 204.
Now referring to FIG. 10, a real case of the process of interaction with the user 116 is shown. The terminal 120 displays a program description panel 902 with information on one program on top of another. Metadata 104 is displayed, including the program title 908, the content category 910 and a list of people 912. The rating panel 904 applied on the selected item 914 ("Peter Barton" in this example) and the user 116 can change the grade of the explicit rating 916. Program recommendations available for the current user 116 are displayed in the recommendation panel 906. Each program recommendation is represented by its title 918 and its grade 920, in this case, one to five stars. Different processes of interaction can also be used. For example, the program recommendations 906 can be displayed in a portal, on menus or be received by e-mail.
Multiple variations and modifications are possible in the embodiments of the invention described here. Although certain illustrative embodiments of the invention have been shown and described here, a wide range of modifications, changes, and substitutions is contemplated in the foregoing disclosure. In some instances, some features of the present invention may be employed without a corresponding use of the other features. Accordingly, it is appropriate that the foregoing description be construed broadly and understood as being given by way of illustration and example only, the spirit and scope of the invention being limited only by the appended claims.

Claims

What is claimed is:
1. A system for generating program recommendations for a plurality of users based on program metadata and user profiles, the system comprising a central profiling server unit, the unit comprising:
(a) means for importing program metadata from a program metadata source; (b) means for storing the program metadata into a program metadata database; (c) means for collecting explicit and/or implicit information on program metadata from user interaction therewith; (d) means for storing the explicit and/or implicit information into a user profile database; (e) means for building program recommendations for users based on program metadata and user profiles, through use of a plurality of filtering engines for evaluating user profiles with a schedule of available programs; (f) means for gathering and weighting the program recommendations in order to generate a list of program recommendations per user; and (g) means for transmitting a list of program recommendations for users to user terminals for display.
2. The system of claim 1 , further comprising means for storing said list of program recommendations in a user profile database.
3. The system of claim 1, wherein the means for importing program metadata from a content management system and the means for storing the program metadata into a program metadata database are comprised in a program agent system.
4. The system of claim 1 , wherein the means for collecting explicit and/or implicit information on program metadata and users, the means for storing the explicit and/or implicit information into a user profile database, and the means for transmitting a list of program recommendations for users to user terminals are comprised in a user agent system.
5. The system of claim 1 , wherein the means for building program recommendations, the means for gathering and weighting the built program recommendations, and the means for storing said list of program recommendations in a user profile database are comprised in a recommendation engine.
6. The system of claim 1 , wherein the program metadata source is a content management system.
7. The system of claim 1, further comprising a terminal device having:
(a) means for receiving program metadata and user program recommendations; (b) means for displaying the program metadata and user program recommendations; and (c) means for collecting and sending explicit and/or implicit information on program metadata and users to the central profiling server.
8. The system of claim 7, further comprising means for storing the program metadata and user program recommendations for later access.
9. A computerized method encoded on a computerized medium, the method providing program recommendations to a user based on program metadata and user profile and comprising the steps of :
(a) accessing a server-side program metadata database; (b) presenting the program metadata on a user terminal for user selection and rating; (c) collecting explicit and/or implicit information on program metadata and the user; (d) creating at least one user profile based on collected user explicit and/or implicit information; (e) comparing the program metadata with the user profile for building program recommendations using (i) a recommendation engine supporting a plurality of filtering engines at the same time, generating a program recommendation list associated with each filtering engine and the user; (ii) a gathering and weighting engine, applied to the filtering engines output, for generating a list of program recommendations per user; (f) transmitting the list of program recommendations to the user terminal; and (g) presenting the list of program recommendations to the user.
10. The method of claim 9, further comprising the step of storing on the server side the list of program recommendations.
1. The method of claim 9, further comprising the step of :
(a) receiving on terminal-side program metadata and user program recommendations; (b) displaying on terminal-side the program metadata and user program recommendations; and (c) collecting and sending from terminal explicit and/or implicit information on program metadata and users to the central profiling server.
12. The method of claim 9, wherein filtering engines include a content filtering engine using indexing techniques on program metadata and matching engines based on static matching rules and non-linear distance estimation between program metadata and the user profile.
PCT/IB2000/001131 1999-08-20 2000-08-17 Method and apparatus for creating recommendations from users profile built interactively WO2001015449A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU63105/00A AU6310500A (en) 1999-08-20 2000-08-17 Method and apparatus for creating recommendations from users profile built interactively

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US14969899P 1999-08-20 1999-08-20
US60/149,698 1999-08-20
US60234200A 2000-06-24 2000-06-24
US09/602,342 2000-06-24

Publications (1)

Publication Number Publication Date
WO2001015449A1 true WO2001015449A1 (en) 2001-03-01

Family

ID=26846958

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IB2000/001131 WO2001015449A1 (en) 1999-08-20 2000-08-17 Method and apparatus for creating recommendations from users profile built interactively

Country Status (2)

Country Link
AU (1) AU6310500A (en)
WO (1) WO2001015449A1 (en)

Cited By (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002025938A3 (en) * 2000-09-20 2002-06-06 Koninkl Philips Electronics Nv Method and apparatus for generating recommendation scores using implicit and explicit viewing preference
WO2002080532A1 (en) * 2001-03-29 2002-10-10 Koninklijke Philips Electronics N.V. Methods and apparatus for generating recommendation scores
WO2002080545A2 (en) * 2001-03-29 2002-10-10 Koninklijke Philips Electronics N.V. Personal tv receiver (ptr) with program recommendation forwarding function
US20020162107A1 (en) * 2001-03-28 2002-10-31 Koninklijke Philips Electronics N.V. Adaptive sampling technique for selecting negative examples for artificial intelligence applications
WO2002102079A1 (en) 2001-06-08 2002-12-19 Grotuit Media, Inc. Audio and video program recording, editing and playback systems using metadata
WO2002103941A2 (en) * 2001-06-15 2002-12-27 Intel Corporation Method and apparatus to distribute content using a multi-stage broadcast system
WO2002103940A2 (en) * 2001-06-15 2002-12-27 Intel Corporation Method and apparatus to send feedback from clients to a server in a content distribution broadcast system
WO2003009583A2 (en) * 2001-07-19 2003-01-30 Koninklijke Philips Electronics N.V. Method and apparatus for providing a user interface
WO2003019944A1 (en) * 2001-08-31 2003-03-06 Nokia Corporation Improvements in and relating to content selection
WO2003030528A2 (en) * 2001-09-28 2003-04-10 Koninklijke Philips Electronics N.V. Personalized recommender database using profiles of others
WO2003030027A2 (en) * 2001-09-28 2003-04-10 Koninklijke Philips Electronics N.V. Personalized recommender profile modification using profiles of others
EP1280343A3 (en) * 2001-07-24 2003-05-21 GRUNDIG Aktiengesellschaft Method and device for operating an electronic navigation system on a display screen
WO2003051051A1 (en) 2001-12-13 2003-06-19 Koninklijke Philips Electronics N.V. Recommending media content on a media system
WO2003056824A1 (en) * 2001-12-27 2003-07-10 Koninklijke Philips Electronics N.V. Hierarchical decision fusion of recommender scores
WO2003061279A1 (en) * 2001-12-31 2003-07-24 Koninklijke Philips Electronics N.V. Method of populating an explicit profile
WO2003107669A1 (en) * 2002-06-18 2003-12-24 Koninklijke Philips Electronics N.V. Method and apparatus for an adaptive stereotypical profile for recommending items representing a user's interests
EP1387575A1 (en) * 2001-05-10 2004-02-04 Sony Corporation Broadcast program processing apparatus, computer system, broadcast program evaluation system, and computer program
WO2004025510A2 (en) * 2002-09-16 2004-03-25 Koninklijke Philips Electronics N.V. System and method for adapting an interest profile on a media system
WO2004047447A1 (en) * 2002-11-15 2004-06-03 Koninklijke Philips Electronics N.V. Prediction of ratings for shows not yet shown
WO2004054264A1 (en) * 2002-12-10 2004-06-24 Koninklijke Philips Electronics N.V. Graded access to profile spaces
EP1280351A3 (en) * 2001-07-17 2004-07-28 Fujitsu Limited Communication between television audiences
JP2004527991A (en) * 2001-06-06 2004-09-09 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Expert model recommendation method and system
WO2003043332A3 (en) * 2001-11-13 2004-10-21 Koninkl Philips Electronics Nv Method and apparatus for recommending items of interest to a user based on recommendations of one or more third parties
EP1484693A1 (en) * 2003-06-04 2004-12-08 Sony NetServices GmbH Content recommendation device with an arrangement engine
EP1484692A1 (en) 2003-06-04 2004-12-08 Sony NetServices GmbH Content recommendation device with user feedback
EP1538838A1 (en) * 2003-12-02 2005-06-08 Sony Corporation Information processor, information processing method and computer program
US20050193002A1 (en) * 2004-02-26 2005-09-01 Yahoo! Inc. Method and system for generating recommendations
EP1608173A1 (en) 2004-06-14 2005-12-21 Sony Corporation Program information processing system, program information management server, program information operation terminal, and computer program
US7167895B1 (en) 2000-03-22 2007-01-23 Intel Corporation Signaling method and apparatus to provide content on demand in a broadcast system
US7212988B1 (en) * 2000-07-26 2007-05-01 Feldten Guy W Test screening of videos
EP1779233A2 (en) * 2004-08-10 2007-05-02 Aol Llc Passive monitoring of user interaction with a browser application
EP1783632A1 (en) * 2005-11-08 2007-05-09 Sony NetServices GmbH Content recommendation method with user feedback
WO2007063466A1 (en) * 2005-11-30 2007-06-07 Koninklijke Philips Electronics N.V. Method and apparatus for generating a recommendation for at least one content item
US7231653B2 (en) 2001-09-24 2007-06-12 Intel Corporation Method for delivering transport stream data
US7269775B2 (en) 2001-06-29 2007-09-11 Intel Corporation Correcting for data losses with feedback and response
EP1841219A2 (en) 2006-03-31 2007-10-03 Fujitsu Ltd. Electronic apparatus, method and system for collecting broadcast program information, and storage medium
US7284064B1 (en) 2000-03-21 2007-10-16 Intel Corporation Method and apparatus to determine broadcast content and scheduling in a broadcast system
US7380262B2 (en) 2001-06-12 2008-05-27 Thomson Licensing Method and apparatus for generating a list of suggested scheduled television programs
CN100465958C (en) * 2004-04-28 2009-03-04 弗劳恩霍夫应用研究促进协会 Method and device for the reproduction of information
US7533399B2 (en) * 2004-12-02 2009-05-12 Panasonic Corporation Programming guide content collection and recommendation system for viewing on a portable device
EP2118736A1 (en) * 2007-01-29 2009-11-18 Home Box Office Inc. Method and system for providing "whats's next" data
US7640560B2 (en) 1996-10-03 2009-12-29 Gotuit Media Corporation Apparatus and methods for broadcast monitoring
KR100953394B1 (en) * 2001-11-13 2010-04-20 코닌클리케 필립스 일렉트로닉스 엔.브이. Method and apparatus for evaluating the closeness of items in a recommender of such items
US7706277B2 (en) 2005-11-18 2010-04-27 Intel Corporation Selective flow control
WO2010076780A1 (en) * 2009-01-01 2010-07-08 Orca Interactive Ltd. Adaptive blending of recommendation engines
US20100293036A1 (en) * 2009-05-15 2010-11-18 France Telecom Device and a method for updating a user profile
EP2262234A1 (en) * 2009-06-02 2010-12-15 Humax Co., Ltd. Broadcasting receiver and method for providing information in the same
EP2266013A1 (en) * 2008-04-16 2010-12-29 TV Works, Llc Remote access to personal video profile
US7900229B2 (en) * 2002-10-15 2011-03-01 Opentv, Inc. Convergence of interactive television and wireless technologies
US7937725B1 (en) 2000-07-27 2011-05-03 Koninklijke Philips Electronics N.V. Three-way media recommendation method and system
WO2012003580A1 (en) * 2010-07-08 2012-01-12 Christopher Bryson Consumer, retailer and supplier computing systems and methods
EP2458754A1 (en) * 2010-11-26 2012-05-30 Nagravision S.A. Identification and profiling of groups of TV viewers
CN102695078A (en) * 2012-05-31 2012-09-26 四川长虹电器股份有限公司 TV program interaction system
JP2012204894A (en) * 2011-03-24 2012-10-22 Toshiba Corp Information recommendation device
RU2475995C2 (en) * 2005-11-30 2013-02-20 Конинклейке Филипс Электроникс Н.В. Method and system to generate recommendation for at least one additional element of content
EP2605206A1 (en) * 2011-12-16 2013-06-19 France Télécom Method and system to recommend applications from an application market place to an electronic device
CN103210654A (en) * 2011-01-20 2013-07-17 Lg电子株式会社 Digital receiver and method of providing real-time rating thereof
WO2013126589A1 (en) 2012-02-21 2013-08-29 Ooyala, Inc. Automatically recommending content
US8561095B2 (en) * 2001-11-13 2013-10-15 Koninklijke Philips N.V. Affective television monitoring and control in response to physiological data
EP2697727A1 (en) * 2011-04-12 2014-02-19 Captimo, Inc. Method and system for gesture based searching
US20160080814A1 (en) * 2002-12-17 2016-03-17 At&T Intellectual Property Ii, L.P. System and Method for Providing Program Recommendations Through Multimedia Searching Based on Established Viewer Preferences
EP1374573B1 (en) * 2001-03-29 2016-05-11 Koninklijke Philips N.V. Tv program profiling technique and interface
US9420021B2 (en) 2004-12-13 2016-08-16 Nokia Technologies Oy Media device and method of enhancing use of media device
US10070122B2 (en) 2011-07-26 2018-09-04 Ooyala, Inc. Goal-based video delivery system
GB2574581A (en) * 2018-05-25 2019-12-18 Thinkanalytics Ltd Content recommendation system
US20210042646A1 (en) * 2006-01-10 2021-02-11 Manyworlds, Inc. Auto-Learning Recommender Method and System
GB2590195A (en) * 2018-05-25 2021-06-23 Thinkanalytics Ltd Content Recommendation System

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5758257A (en) * 1994-11-29 1998-05-26 Herz; Frederick System and method for scheduling broadcast of and access to video programs and other data using customer profiles
US5798785A (en) * 1992-12-09 1998-08-25 Discovery Communications, Inc. Terminal for suggesting programs offered on a television program delivery system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5798785A (en) * 1992-12-09 1998-08-25 Discovery Communications, Inc. Terminal for suggesting programs offered on a television program delivery system
US5758257A (en) * 1994-11-29 1998-05-26 Herz; Frederick System and method for scheduling broadcast of and access to video programs and other data using customer profiles

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
NYGREN K ET AL: "An Agent System For Media On Demand Services", PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON THE PRACTICAL APPLICATION OF INTELLIGENT AGENTS AND MULTI-AGENT TECHNOLOGY, 22 April 1996 (1996-04-22), pages 437 - 453, XP002086093 *
WITTIG H ET AL: "INTELLIGENT MEDIA AGENTS IN INTERACTIVE TELEVISION SYSTEMS", PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON MULTIMEDIA COMPUTING AND SYSTEMS,US,LOS ALAMITOS, CA, 15 May 1995 (1995-05-15), pages 182 - 189, XP000603484 *

Cited By (148)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7640560B2 (en) 1996-10-03 2009-12-29 Gotuit Media Corporation Apparatus and methods for broadcast monitoring
US7284064B1 (en) 2000-03-21 2007-10-16 Intel Corporation Method and apparatus to determine broadcast content and scheduling in a broadcast system
US8839298B2 (en) 2000-03-21 2014-09-16 Intel Corporation Method and apparatus to determine broadcast content and scheduling in a broadcast system
US7167895B1 (en) 2000-03-22 2007-01-23 Intel Corporation Signaling method and apparatus to provide content on demand in a broadcast system
US7212988B1 (en) * 2000-07-26 2007-05-01 Feldten Guy W Test screening of videos
US7937725B1 (en) 2000-07-27 2011-05-03 Koninklijke Philips Electronics N.V. Three-way media recommendation method and system
US8843965B1 (en) 2000-09-20 2014-09-23 Kaushal Kurapati Method and apparatus for generating recommendation scores using implicit and explicit viewing preferences
WO2002025938A3 (en) * 2000-09-20 2002-06-06 Koninkl Philips Electronics Nv Method and apparatus for generating recommendation scores using implicit and explicit viewing preference
US7231652B2 (en) * 2001-03-28 2007-06-12 Koninklijke Philips N.V. Adaptive sampling technique for selecting negative examples for artificial intelligence applications
US20020162107A1 (en) * 2001-03-28 2002-10-31 Koninklijke Philips Electronics N.V. Adaptive sampling technique for selecting negative examples for artificial intelligence applications
JP2004524764A (en) * 2001-03-29 2004-08-12 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Method and apparatus for generating recommended scores
EP1374573B1 (en) * 2001-03-29 2016-05-11 Koninklijke Philips N.V. Tv program profiling technique and interface
WO2002080545A2 (en) * 2001-03-29 2002-10-10 Koninklijke Philips Electronics N.V. Personal tv receiver (ptr) with program recommendation forwarding function
WO2002080532A1 (en) * 2001-03-29 2002-10-10 Koninklijke Philips Electronics N.V. Methods and apparatus for generating recommendation scores
WO2002080545A3 (en) * 2001-03-29 2003-09-25 Koninkl Philips Electronics Nv Personal tv receiver (ptr) with program recommendation forwarding function
US7913271B2 (en) 2001-05-10 2011-03-22 Sony Corporation Broadcast program processing apparatus, computer system, broadcast program evaluation system, and computer program
EP1387575A4 (en) * 2001-05-10 2006-04-26 Sony Corp Broadcast program processing apparatus, computer system, broadcast program evaluation system, and computer program
EP1387575A1 (en) * 2001-05-10 2004-02-04 Sony Corporation Broadcast program processing apparatus, computer system, broadcast program evaluation system, and computer program
JP2004527991A (en) * 2001-06-06 2004-09-09 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Expert model recommendation method and system
EP1421792A4 (en) * 2001-06-08 2006-04-12 Grotuit Media Inc Audio and video program recording, editing and playback systems using metadata
EP1421792A1 (en) * 2001-06-08 2004-05-26 Grotuit Media Inc. Audio and video program recording, editing and playback systems using metadata
WO2002102079A1 (en) 2001-06-08 2002-12-19 Grotuit Media, Inc. Audio and video program recording, editing and playback systems using metadata
US7380262B2 (en) 2001-06-12 2008-05-27 Thomson Licensing Method and apparatus for generating a list of suggested scheduled television programs
KR100890101B1 (en) * 2001-06-12 2009-03-24 톰슨 라이센싱 A method and apparatus for generating a list of suggested scheduled television programs
WO2002103940A2 (en) * 2001-06-15 2002-12-27 Intel Corporation Method and apparatus to send feedback from clients to a server in a content distribution broadcast system
WO2002103940A3 (en) * 2001-06-15 2003-12-18 Intel Corp Method and apparatus to send feedback from clients to a server in a content distribution broadcast system
WO2002103941A3 (en) * 2001-06-15 2003-10-09 Intel Corp Method and apparatus to distribute content using a multi-stage broadcast system
WO2002103941A2 (en) * 2001-06-15 2002-12-27 Intel Corporation Method and apparatus to distribute content using a multi-stage broadcast system
US7363569B2 (en) 2001-06-29 2008-04-22 Intel Corporation Correcting for data losses with feedback and response
US7269775B2 (en) 2001-06-29 2007-09-11 Intel Corporation Correcting for data losses with feedback and response
EP1280351A3 (en) * 2001-07-17 2004-07-28 Fujitsu Limited Communication between television audiences
WO2003009583A3 (en) * 2001-07-19 2003-06-05 Koninkl Philips Electronics Nv Method and apparatus for providing a user interface
US8850486B2 (en) 2001-07-19 2014-09-30 Koninklijke Philips N.V. Method and apparatus for providing a user interface
WO2003009583A2 (en) * 2001-07-19 2003-01-30 Koninklijke Philips Electronics N.V. Method and apparatus for providing a user interface
CN100397893C (en) * 2001-07-19 2008-06-25 皇家菲利浦电子有限公司 Method and apparatus for providing user interface
EP1280343A3 (en) * 2001-07-24 2003-05-21 GRUNDIG Aktiengesellschaft Method and device for operating an electronic navigation system on a display screen
WO2003019944A1 (en) * 2001-08-31 2003-03-06 Nokia Corporation Improvements in and relating to content selection
CN100375527C8 (en) * 2001-08-31 2016-12-28 诺基亚有限公司 Improvement in content choice and the improvement relevant to content choice
CN100375527C (en) * 2001-08-31 2008-03-12 诺基亚有限公司 Content selection modification
US7231653B2 (en) 2001-09-24 2007-06-12 Intel Corporation Method for delivering transport stream data
WO2003030528A3 (en) * 2001-09-28 2003-10-02 Koninkl Philips Electronics Nv Personalized recommender database using profiles of others
WO2003030528A2 (en) * 2001-09-28 2003-04-10 Koninklijke Philips Electronics N.V. Personalized recommender database using profiles of others
WO2003030027A3 (en) * 2001-09-28 2003-10-09 Koninkl Philips Electronics Nv Personalized recommender profile modification using profiles of others
WO2003030027A2 (en) * 2001-09-28 2003-04-10 Koninklijke Philips Electronics N.V. Personalized recommender profile modification using profiles of others
US8561095B2 (en) * 2001-11-13 2013-10-15 Koninklijke Philips N.V. Affective television monitoring and control in response to physiological data
KR100953394B1 (en) * 2001-11-13 2010-04-20 코닌클리케 필립스 일렉트로닉스 엔.브이. Method and apparatus for evaluating the closeness of items in a recommender of such items
KR100967830B1 (en) 2001-11-13 2010-07-05 코닌클리케 필립스 일렉트로닉스 엔.브이. Method and apparatus for recommending items of interest to a user based on recommendations for one or more third parties
JP2005509963A (en) * 2001-11-13 2005-04-14 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Method and apparatus for recommending items of interest to a user based on recommendations for one or more third parties
CN100426860C (en) * 2001-11-13 2008-10-15 皇家飞利浦电子股份有限公司 Method and apparatus for recommending items of interest to a user based on recommendations for one or more third parties
US7571452B2 (en) 2001-11-13 2009-08-04 Koninklijke Philips Electronics N.V. Method and apparatus for recommending items of interest to a user based on recommendations for one or more third parties
WO2003043332A3 (en) * 2001-11-13 2004-10-21 Koninkl Philips Electronics Nv Method and apparatus for recommending items of interest to a user based on recommendations of one or more third parties
WO2003051051A1 (en) 2001-12-13 2003-06-19 Koninklijke Philips Electronics N.V. Recommending media content on a media system
CN1299505C (en) * 2001-12-13 2007-02-07 皇家飞利浦电子股份有限公司 Recommending media content on a media system
WO2003056824A1 (en) * 2001-12-27 2003-07-10 Koninklijke Philips Electronics N.V. Hierarchical decision fusion of recommender scores
CN100342726C (en) * 2001-12-31 2007-10-10 皇家飞利浦电子股份有限公司 Method of populating an explicit profile cross-reference to related applications
WO2003061279A1 (en) * 2001-12-31 2003-07-24 Koninklijke Philips Electronics N.V. Method of populating an explicit profile
JP2005530255A (en) * 2002-06-18 2005-10-06 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Method and apparatus for applying adaptive stereotype profiles to recommend items of interest to users
WO2003107669A1 (en) * 2002-06-18 2003-12-24 Koninklijke Philips Electronics N.V. Method and apparatus for an adaptive stereotypical profile for recommending items representing a user's interests
WO2004025510A3 (en) * 2002-09-16 2004-07-29 Koninkl Philips Electronics Nv System and method for adapting an interest profile on a media system
WO2004025510A2 (en) * 2002-09-16 2004-03-25 Koninklijke Philips Electronics N.V. System and method for adapting an interest profile on a media system
US7900229B2 (en) * 2002-10-15 2011-03-01 Opentv, Inc. Convergence of interactive television and wireless technologies
WO2004047447A1 (en) * 2002-11-15 2004-06-03 Koninklijke Philips Electronics N.V. Prediction of ratings for shows not yet shown
CN100431349C (en) * 2002-11-15 2008-11-05 皇家飞利浦电子股份有限公司 Prediction of ratings for shows not yet shown
WO2004054264A1 (en) * 2002-12-10 2004-06-24 Koninklijke Philips Electronics N.V. Graded access to profile spaces
US20160080814A1 (en) * 2002-12-17 2016-03-17 At&T Intellectual Property Ii, L.P. System and Method for Providing Program Recommendations Through Multimedia Searching Based on Established Viewer Preferences
US9641895B2 (en) * 2002-12-17 2017-05-02 At&T Intellectual Property Ii, L.P. System and method for providing program recommendations through multimedia searching based on established viewer preferences
US7716220B2 (en) 2003-06-04 2010-05-11 Realnetworks, Inc. Content recommendation device with an arrangement engine
JP4723481B2 (en) * 2003-06-04 2011-07-13 リアルネットワークス ゲゼルシャフト ミット ベシュレンクテル ハフツング Content recommendation device having an array engine
US7337458B2 (en) 2003-06-04 2008-02-26 Stefan Michelitsch Content recommendation device with user feedback
EP1484693A1 (en) * 2003-06-04 2004-12-08 Sony NetServices GmbH Content recommendation device with an arrangement engine
EP1484692A1 (en) 2003-06-04 2004-12-08 Sony NetServices GmbH Content recommendation device with user feedback
WO2004109543A1 (en) * 2003-06-04 2004-12-16 Sony Netservices Gmbh Content recommendation device with an arrangement engine
WO2004109544A1 (en) * 2003-06-04 2004-12-16 Sony Netservices Gmbh Content recommendation device with user feedback
JP2006526826A (en) * 2003-06-04 2006-11-24 ソニー ネットサービシーズ ゲゼルシャフト ミット ベシュレンクテル ハフツング Content recommendation device having an array engine
JP2006526827A (en) * 2003-06-04 2006-11-24 ソニー ネットサービシーズ ゲゼルシャフト ミット ベシュレンクテル ハフツング Content recommendation device with user feedback
EP1538838A1 (en) * 2003-12-02 2005-06-08 Sony Corporation Information processor, information processing method and computer program
US9066149B2 (en) 2003-12-02 2015-06-23 Sony Corporation Information processor, information processing method and computer program
US8613023B2 (en) 2003-12-02 2013-12-17 Sony Corporation Information processor, information processing method and computer program
US9788070B2 (en) 2003-12-02 2017-10-10 Saturn Licensing Llc Information processor, information processing method and computer program
CN100377150C (en) * 2003-12-02 2008-03-26 索尼株式会社 Information processor, information processing method and computer program
US11875363B2 (en) 2004-02-26 2024-01-16 Yahoo Assets Llc Method and system for generating recommendations
US20050193002A1 (en) * 2004-02-26 2005-09-01 Yahoo! Inc. Method and system for generating recommendations
US10339538B2 (en) * 2004-02-26 2019-07-02 Oath Inc. Method and system for generating recommendations
CN100465958C (en) * 2004-04-28 2009-03-04 弗劳恩霍夫应用研究促进协会 Method and device for the reproduction of information
US7610301B2 (en) 2004-06-14 2009-10-27 Sony Corporation Program information processing system, program information management server, program information operation terminal, and computer program
EP1608173A1 (en) 2004-06-14 2005-12-21 Sony Corporation Program information processing system, program information management server, program information operation terminal, and computer program
EP2249565A3 (en) * 2004-06-14 2013-04-10 Sony Corporation Program information processing system, program information management server, program information operation terminal, and computer program
EP1779233A4 (en) * 2004-08-10 2008-10-15 Aol Llc Passive monitoring of user interaction with a browser application
EP1779233A2 (en) * 2004-08-10 2007-05-02 Aol Llc Passive monitoring of user interaction with a browser application
US7533399B2 (en) * 2004-12-02 2009-05-12 Panasonic Corporation Programming guide content collection and recommendation system for viewing on a portable device
US9420021B2 (en) 2004-12-13 2016-08-16 Nokia Technologies Oy Media device and method of enhancing use of media device
US8589367B2 (en) 2005-11-08 2013-11-19 Intel Corporation Method of providing content items
CN102750318B (en) * 2005-11-08 2016-06-15 英特尔公司 The method that content item is provided
CN102750318A (en) * 2005-11-08 2012-10-24 真实网络公司 Method of providing content items
US7756880B2 (en) 2005-11-08 2010-07-13 Realnetworks Gmbh Method of providing content items
EP1783632A1 (en) * 2005-11-08 2007-05-09 Sony NetServices GmbH Content recommendation method with user feedback
US7706277B2 (en) 2005-11-18 2010-04-27 Intel Corporation Selective flow control
US10237604B2 (en) 2005-11-30 2019-03-19 S.I.Sv.El Societa' Italiana Per Lo Sviluppo Dell'elettronica S.P.A. Method and apparatus for generating a recommendation for at least one content item
RU2475995C2 (en) * 2005-11-30 2013-02-20 Конинклейке Филипс Электроникс Н.В. Method and system to generate recommendation for at least one additional element of content
WO2007063466A1 (en) * 2005-11-30 2007-06-07 Koninklijke Philips Electronics N.V. Method and apparatus for generating a recommendation for at least one content item
US20210042646A1 (en) * 2006-01-10 2021-02-11 Manyworlds, Inc. Auto-Learning Recommender Method and System
EP1841219A3 (en) * 2006-03-31 2009-04-29 Fujitsu Ltd. Electronic apparatus, method and system for collecting broadcast program information, and storage medium
EP1841219A2 (en) 2006-03-31 2007-10-03 Fujitsu Ltd. Electronic apparatus, method and system for collecting broadcast program information, and storage medium
US9477666B2 (en) 2007-01-29 2016-10-25 Home Box Office, Inc. Method and system for providing “what's next” data
EP2118736A4 (en) * 2007-01-29 2012-03-28 Home Box Office Inc Method and system for providing "whats's next" data
EP2118736A1 (en) * 2007-01-29 2009-11-18 Home Box Office Inc. Method and system for providing "whats's next" data
US9800839B2 (en) 2008-04-16 2017-10-24 Comcast Cable Communications Management, Llc Remote access to personal video profile
EP2266013A4 (en) * 2008-04-16 2014-04-30 Tv Works Llc Remote access to personal video profile
EP2266013A1 (en) * 2008-04-16 2010-12-29 TV Works, Llc Remote access to personal video profile
EP3416026A1 (en) * 2008-04-16 2018-12-19 Comcast Cable Communications Management, LLC Remote access to personal video profile
WO2010076780A1 (en) * 2009-01-01 2010-07-08 Orca Interactive Ltd. Adaptive blending of recommendation engines
US20120036523A1 (en) * 2009-01-01 2012-02-09 Orca Interactive Ltd. Adaptive Blending of Recommendation Engines
US20100293036A1 (en) * 2009-05-15 2010-11-18 France Telecom Device and a method for updating a user profile
EP2262234A1 (en) * 2009-06-02 2010-12-15 Humax Co., Ltd. Broadcasting receiver and method for providing information in the same
US9449107B2 (en) 2009-12-18 2016-09-20 Captimo, Inc. Method and system for gesture based searching
WO2012003580A1 (en) * 2010-07-08 2012-01-12 Christopher Bryson Consumer, retailer and supplier computing systems and methods
EP2458754A1 (en) * 2010-11-26 2012-05-30 Nagravision S.A. Identification and profiling of groups of TV viewers
EP2666301A2 (en) * 2011-01-20 2013-11-27 LG Electronics Inc. Digital receiver and method of providing real-time rating thereof
US9300996B2 (en) 2011-01-20 2016-03-29 Lg Electronics Inc. Digital receiver and method of providing real-time rating thereof
CN105245921B (en) * 2011-01-20 2018-09-14 Lg电子株式会社 Digital receiver and its method that real-time audience ratings is provided
CN103210654A (en) * 2011-01-20 2013-07-17 Lg电子株式会社 Digital receiver and method of providing real-time rating thereof
EP2666301A4 (en) * 2011-01-20 2014-08-06 Lg Electronics Inc Digital receiver and method of providing real-time rating thereof
CN105245921A (en) * 2011-01-20 2016-01-13 Lg电子株式会社 Digital receiver and method of providing real-time rating thereof
JP2012204894A (en) * 2011-03-24 2012-10-22 Toshiba Corp Information recommendation device
CN103748580A (en) * 2011-04-12 2014-04-23 卡普蒂莫股份有限公司 Method and system for gesture based searching
EP2697727A4 (en) * 2011-04-12 2014-10-01 Captimo Inc Method and system for gesture based searching
EP2697727A1 (en) * 2011-04-12 2014-02-19 Captimo, Inc. Method and system for gesture based searching
US10070122B2 (en) 2011-07-26 2018-09-04 Ooyala, Inc. Goal-based video delivery system
EP2605206A1 (en) * 2011-12-16 2013-06-19 France Télécom Method and system to recommend applications from an application market place to an electronic device
US9619830B2 (en) 2011-12-16 2017-04-11 France Telecom Method and system to recommend a starter list of applications from an application marketplace to a new electronic device
CN108040294A (en) * 2012-02-21 2018-05-15 欧亚拉股份有限公司 Automatic recommendation
KR101624246B1 (en) * 2012-02-21 2016-05-25 우얄라, 인크. Automatically recommending content
JP2015513736A (en) * 2012-02-21 2015-05-14 ウーヤラ インコーポレイテッド Automatic content recommendation
KR20160064234A (en) * 2012-02-21 2016-06-07 우얄라, 인크. Automatically recommending content
EP2817970A4 (en) * 2012-02-21 2015-04-29 Ooyala Inc Automatically recommending content
KR101941757B1 (en) * 2012-02-21 2019-01-23 우얄라, 인크. Automatically recommending content
EP2817970A1 (en) * 2012-02-21 2014-12-31 Ooyala, Inc. Automatically recommending content
CN104247441A (en) * 2012-02-21 2014-12-24 欧亚拉股份有限公司 Automatically recommending content
CN104247441B (en) * 2012-02-21 2018-01-09 欧亚拉股份有限公司 Automatic content recommendation
CN108040294B (en) * 2012-02-21 2020-10-23 欧亚拉股份有限公司 Method, system, and computer readable medium for recommending videos
WO2013126589A1 (en) 2012-02-21 2013-08-29 Ooyala, Inc. Automatically recommending content
CN102695078A (en) * 2012-05-31 2012-09-26 四川长虹电器股份有限公司 TV program interaction system
GB2574581A (en) * 2018-05-25 2019-12-18 Thinkanalytics Ltd Content recommendation system
GB2590195A (en) * 2018-05-25 2021-06-23 Thinkanalytics Ltd Content Recommendation System
US11343573B2 (en) 2018-05-25 2022-05-24 Thinkanalytics Ltd Content recommendation system and method
GB2590195B (en) * 2018-05-25 2022-08-10 Thinkanalytics Ltd Content Recommendation System
US11812107B2 (en) 2018-05-25 2023-11-07 Thinkanalytics Ltd Content recommendation system and method
GB2574581B (en) * 2018-05-25 2021-02-03 Thinkanalytics Ltd Content recommendation system

Also Published As

Publication number Publication date
AU6310500A (en) 2001-03-19

Similar Documents

Publication Publication Date Title
WO2001015449A1 (en) Method and apparatus for creating recommendations from users profile built interactively
JP5032477B2 (en) System and method for recommending items of interest to users
US8489515B2 (en) Social network based recommendation method and system
US8250605B2 (en) Systems and methods for presentation of preferred program selections
CN1659882B (en) Method and system for implementing content augmentation of personal profiles
CA2762974C (en) Recommendation engine apparatus and methods
JP2006509399A (en) Recommend video content based on user profiles of users with similar viewing habits
US20130167168A1 (en) Systems and methods for providing custom movie lists
US20030131355A1 (en) Program guide system
EP1891588A1 (en) Method and apparatus for estimating total interest of a group of users directing to a content
US20060150216A1 (en) System and method for scheduling broadcast of and access to video programs and other data using customer profiles
KR20010080633A (en) Smart agent based on habit, statistical inference and psycho-demographic profiling
EP3676720A1 (en) System and method for content discovery
KR20120003362A (en) Recommendation system on personalized favorite programs/channels for internet protocol tv users by using collaborative filtering algorithm
WO2004100033A2 (en) Apparatus and method for performing profile based collaborative filtering
CN1366771A (en) Electronic program guide viewing history generator method and system
KR20040063150A (en) Method and apparatus for recommending items of interest based on preferences of a selected third party
WO2011018772A1 (en) Systems and methods for selecting content for a subscriber of a content service provider
US20060174275A1 (en) Generation of television recommendations via non-categorical information
US20070022440A1 (en) Program recommendation via dynamic category creation
KR101779975B1 (en) System for providing additional service of VOD content using SNS message and method for providing additional service using the same
WO2003090466A2 (en) Improved programme selection
US20120116879A1 (en) Automatic information selection based on involvement classification
KR20010102248A (en) System and method for tailoring television and/or electronic program guide features, such as advertising
WO2002052856A2 (en) Program guide system

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP