US20160295290A1 - Recommending video programs - Google Patents

Recommending video programs Download PDF

Info

Publication number
US20160295290A1
US20160295290A1 US15/185,834 US201615185834A US2016295290A1 US 20160295290 A1 US20160295290 A1 US 20160295290A1 US 201615185834 A US201615185834 A US 201615185834A US 2016295290 A1 US2016295290 A1 US 2016295290A1
Authority
US
United States
Prior art keywords
user
video
video program
video programs
programs
Prior art date
Legal status (The legal status 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 status listed.)
Abandoned
Application number
US15/185,834
Inventor
Michael Chu
Shumeet Baluja
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Priority to US15/185,834 priority Critical patent/US20160295290A1/en
Publication of US20160295290A1 publication Critical patent/US20160295290A1/en
Assigned to GOOGLE LLC reassignment GOOGLE LLC CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: GOOGLE INC.
Abandoned legal-status Critical Current

Links

Images

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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/73Querying
    • G06F16/735Filtering based on additional data, e.g. user or group profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/78Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/7867Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using information manually generated, e.g. tags, keywords, comments, title and artist information, manually generated time, location and usage information, user ratings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • G06F17/3053
    • G06F17/3082
    • G06F17/30828
    • G06F17/30867
    • 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/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2408Monitoring of the upstream path of the transmission network, e.g. client requests
    • 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/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/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2665Gathering content from different sources, e.g. Internet and satellite
    • 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/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
    • H04N21/44224Monitoring of user activity on external systems, e.g. Internet browsing
    • 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/47End-user applications
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/61Network physical structure; Signal processing
    • H04N21/6106Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
    • H04N21/6125Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/61Network physical structure; Signal processing
    • H04N21/6156Network physical structure; Signal processing specially adapted to the upstream path of the transmission network
    • H04N21/6175Network physical structure; Signal processing specially adapted to the upstream path of the transmission network involving transmission via Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6581Reference data, e.g. a movie identifier for ordering a movie or a product identifier in a home shopping application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6582Data stored in the client, e.g. viewing habits, hardware capabilities, credit card number
    • 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/81Monomedia components thereof
    • H04N21/812Monomedia components thereof involving advertisement data
    • 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/163Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing by receiver means only
    • 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

  • the present invention is related to a system for recommending video programs to a user.
  • a current approach to recommending a video program to a user requires that the user have a digital video recorder and a subscription service.
  • the subscription service monitors the television programming the user watches as well as what the user records. This information is combined with information identifying what other users watch and the subscription service then displays or records additional programming to the user's digital video recorder that the service determines might be of interest to the user.
  • the pool of information from which to make recommendations is however limited to the number of users of that particular television broadcast system.
  • the user trains the subscription service by rating the television programming the user watches or records. This rating information is factored into the determination of which programs the subscription service recommends to the user. This however requires waiting the time it takes the system to be trained to get recommendations that are of any value.
  • the recommendations made by the subscription service are based only on what other users with similar viewing habits watch and the subscription service only has information about what a user watches through the television broadcast system.
  • the subscription service cannot take into account video programming the user watches through other means such as playing a DVD or downloading from the internet.
  • the subscription service also does not have any way of obtaining information that a user searched online for information about a new series that has not aired yet.
  • a recommendation system uses data about video programs of interest to a user and data from interactions with web services systems such as search engines and online video content providers to determine associated programs that may be of interest to a user. Because of the vast number of users of search engines and online video content providers, associations between video programs can be identified that cannot be detected in other ways. These associations can then be used to provide recommendations to users of video programs.
  • the recommendation system accesses access logs of one or more web services systems such as internet search engines or access logs of one or more online video content providers. From the access logs information is obtained about interactions with the search engine or online video content provider that relates to video programs or information related to video programs. An interaction is an exchange between the user and the system. Interactions include a search query and downloading video content. The interactions can then be aggregated to identify which combinations of interactions relating to video programs or combinations of interactions relating to a video program and an attribute of a video program occur during the same session. The co-occurrence of such interactions is used to determine that one video program would be of interest to a user given another video program assumed to be of interest to the user.
  • web services systems such as internet search engines or access logs of one or more online video content providers. From the access logs information is obtained about interactions with the search engine or online video content provider that relates to video programs or information related to video programs.
  • An interaction is an exchange between the user and the system. Interactions include a search query and downloading video content. The interactions
  • Data about the programs of interest to the user may be obtained any number of ways including being sent to the recommendation system by a client or retrieved from a user profile stored as part of the recommendation system.
  • Programs of interest include programs the user watches via a TV broadcast system as well as any programs watched from other sources, including any source of pre-recorded media (e.g., video stored on optical disc), or programs that have been downloaded from online video content providers.
  • the recommendation system receives an identifier of a video program of interest to the user.
  • the recommendation system queries a database of recommendations to determine a second video program that is related to the video program of interest to the user.
  • the recommendation system also determines when the returned related video programs will be available to view at the user's location.
  • the recommendation sends a package to the user that comprises the identity of the recommended video program as well as the information of when that video program can be viewed and on which channel.
  • FIG. 1 is a diagram of system architecture according to one embodiment.
  • FIG. 2 is a data flow chart showing the method of populating the related video program database according to one embodiment.
  • FIG. 3 is a data flow chart showing the method of recommending video programs to a user according to one embodiment.
  • FIG. 4 is a sample display of recommendations presented to the user at the client.
  • FIG. 1 is a diagram of system architecture according to one embodiment.
  • the recommendation system 100 includes a front end server 125 , a recommendation server 130 , a log processing engine 135 , a search engine 165 , an online video content provider 170 , an attributes database 155 , a television schedule database 140 , access logs 145 , related video program database 147 , and a user profile database 160 .
  • a front end server 125 includes a front end server 125 , a recommendation server 130 , a log processing engine 135 , a search engine 165 , an online video content provider 170 , an attributes database 155 , a television schedule database 140 , access logs 145 , related video program database 147 , and a user profile database 160 .
  • a user profile database 160 For simplicity, only one recommendation server 130 , one log processing engine 135 , one search engine 165 and one online video content provider 170 are shown but in practice, many recommendation servers 130 , log processing engines 135 , and search
  • the recommendation system 100 communicates with a client 110 via the network 105 , which is typically the Internet, but may also be any network, including but not limited to a LAN, a MAN, a WAN, a mobile, wired or wireless network, a private network, or a virtual private network, and any combination thereof.
  • the client 110 is any type of device that is adapted to access the recommendation system 100 over the network 105 . Examples of clients include but are not limited to personal computing devices, mobile phones, remote controls, and devices that receive video programs such as cable or satellite set top boxes, which have been adapted to provide the structures and functions described herein.
  • a client 110 is configured to transmit identifiers of video programs to the recommendation system 100 and receive information identifying and/or describing recommended video programs from the recommendation system 100 .
  • a client 110 may be configured to control a television or other audio/video output device on which the user can watch video programs, including recommended programs. For simplicity only one client 110 is shown. In practice there will be numerous clients 110 communicating with the recommendation system 100 .
  • the recommendation server 130 is implemented as server program executing on one or more server-class computers comprising a CPU, memory, network interface, peripheral interfaces, and other well known components.
  • the computers themselves preferably run an open-source operating system such as LINUX, have generally high performance CPUs, with 1G or more of memory, and 100G or more of disk storage.
  • LINUX open-source operating system
  • other types of computers can be used, and it is expected that as more powerful computers are developed in the future, they can be configured in accordance with the teachings here.
  • the functionality implemented by any of the elements can be provided from computer program products that are stored in tangible computer readable storage mediums (e.g., RAM, hard disk, or optical/magnetic media), or by equivalent implementations in hardware and/or firmware.
  • the recommendation server 130 can be implemented in dedicated hardware, using custom designed circuitry to implement the logic of the operations described herein.
  • the attributes database 155 stores the title and other attributes of video programs. From the attributes database 155 , attributes of a given video program can be determined, and conversely video programs with given attributes can also be identified.
  • the attributes database may be a source external to the recommendation system 100 , such as the Internet Movie Database at “www.imdb.com,” or the like. Attributes of a video program are any metadata used to describe the video program, and include the data such as various people associated with the program (e.g. actors, actresses, presenters, producers, directors, musicians, etc.), plot summary and keywords, locations (e.g., where the program takes place), genre (e.g.
  • the television schedule database 140 stores the television program schedule on television broadcast systems in different geographic areas.
  • Television broadcast systems include those that broadcast over-the-air signals, cable, and satellite services, including both analog and digital broadcast systems.
  • Television schedule information is widely available from commercial sources.
  • the access logs 145 contain information about user interactions with the search engine 165 or online video content provider 170 (generally a “web service”).
  • Search engines 165 include for example GoogleTM, and the like; online video content providers 170 include video hosting websites such as YouTubeTM, and video rental/download websites such as NetflixTM.
  • Each log entry includes an IP address of the client device interacting with the web service, timestamp information, the user's ID if the web service offers accounts for users, the type of interaction and other metadata. The type of interaction is what the user did at the web service.
  • search engines the most common interaction is a search query and the terms searched would be included in the metadata of the interaction stored in the access logs 145 .
  • Online video content providers generally include search interfaces that allow users to search for video content within the provider's system.
  • a search query is therefore also a type of interaction with an online video content provider.
  • Additional types of interactions with online video content providers include playing streaming video programs, downloading video programs, and requesting video programs to be delivered to the user on physical media.
  • Renting a video program on a DVD via an online content provider is one embodiment of requesting a video program for delivery to the user on physical media.
  • the identity of the video program being streamed or downloaded is among the metadata stored for streaming or downloading video programs or requesting video programs for delivery on physical media.
  • the related video program database 147 stores video program information including information that identifies video programs that are determined to be related to each other by the operation of the log processing engine 135 .
  • the operation of the log processing engine 135 is discussed in greater detail in reference to FIG. 2 .
  • the user profile database 160 stores user profiles which are used by the recommendation system 100 .
  • Each user profile includes information associated with the user, along with names of video programs that have been received from the client 110 as part of search queries, as well as names of video programs that have previously been recommended to the user. Additionally, the user profile may include attributes of video programs that are of interest to the user and that the user has entered into the profile. The user may, but need not, provide information such as favorite movies, actors, genres, and so forth.
  • the user accesses the user's profile via the client 110 . Users are identified by a user identifier. The user identifier identifies the user's location and is matched to the user's television broadcast system so that the correct channel and time may be found for the recommended video programs in the television schedule database 140 . An IP address or zip code may be used to identify the user's location.
  • the user profile can include information from the user's other profiles at third party services, e.g. such as other search engines, content providers or the like.
  • Information from the user's profile for such other services includes on which video programs and attributes of video programs the user has searched. Additionally the information from the user's profile includes which video programs the user has downloaded, streamed or requested for delivery on physical media.
  • the attributes database 155 , television schedule database 140 , access logs 145 , related video program database 147 and user profile database 160 may be stored using any type of data storage system, operating on server class computer systems.
  • the log processing engine 135 processes access logs 145 of one or more internet search engines and online video content providers to populate the related video program database 147 with information about video programs that are related to each other, and could be recommended to a user.
  • search engines and online video content providers to populate the related video program database 147 with information about video programs that are related to each other, and could be recommended to a user.
  • Of interest here are searches by users for the names of video programs, or attributes of video programs and names and attributes of video programs streamed or downloaded by the user or provided to the user on a physical medium.
  • a single session may be determined by a user logging into and out of a search engine 165 or online video content provider 170 .
  • search NetflixTM a user logs into the user's account, and either manually logs out, or is deemed to have logged out after some period of non-activity.
  • sessions are determined heuristically, based on the IP addresses and timestamps associated with each search request.
  • a session can be fixed in length (e.g., all interactions from an IP address within a 15 minute interval from a first interactions), or variable (all interactions from an IP address, so long as each interaction is within X minutes (e.g., 3 minutes) of the previous interaction).
  • the log processing engine 135 is programmed to assign identify interactions performed by a single user, and then assign the various interactions into one or more sessions.
  • the log processing engine 135 requests 205 interactions and their associated metadata from the access logs 145 .
  • the access logs 145 return 210 interactions and the metadata.
  • the log processing engine 135 organizes 215 the interactions to group together the interactions into sessions, using the various approaches discussed above.
  • the metadata associated with interactions are applied to a database of attributes of video programs.
  • the log processing engine 135 determines which of the search queries refer to titles of video programs or attributes of video programs by querying 220 the search terms in each search in the attributes database 155 . This identifies the matching terms as related to video programs, and the remaining terms as unrelated for this purpose.
  • each returned query would be identified by its type, such as title, producer, location, and so forth.
  • titles of video programs are determined from the associated metadata. Attributes of the video program streamed or downloaded may also be identifiable from metadata associated with the interaction.
  • the log processing engine 135 constructs 230 a co-occurrence table of the titles of video programs, and preferably, though optionally, as well between program titles and program attributes, and between one or more of the program attributes other than titles. If the co-occurring searches during a given search session relate to video programs A, B, C, and D, then the pairs are AB, AC, AD, BC, BD and CD. The frequency count for each co-occurring pair of video program related searches is then updated; the update can be a unitary increment, or some partial weighted value, based on the information such as TF-IDF for the search terms, or other factors. This process is repeated across of the search sessions identified in the access logs 145 .
  • the identified co-occurrences are then used to determine relative recommendation strengths for the video programs identified in the co-occurrence table with a given first video program.
  • the following information is determined:
  • Movie M been rented by 80 times with movie N
  • Movie M been recorded to a DVR system 15 times with movie P.
  • the engine determines which of the co-occurring video programs (and/or attributes) are determined to be related, based on the statistical significance of the co-occurrence frequency information. Significance can be determined based various tests such as correlation, information gain, or the like.
  • any method known in the art to measure relationships between random variables may be used by the log processing engine 135 . Examples include correlation and information gain analyses.
  • the recommendation strength for a given video is a function of a weighted combination of the co-occurrence information.
  • the different types of interactions can carry different weights. Two video programs being downloaded together is more indicative that one person may enjoy both programs than merely searching on both movies, and thus co-occurring downloads are given a higher weight than co-occurring searches.
  • the co-occurrence frequencies can be normalized with respect to total population metrics, or expressed in relative terms or percentages, such as 65% of the time that Movie M is downloaded, Movie N is downloaded with it.
  • the attributes of co-occurring video programs are analyzed to determine whether the video programs have any attributes in common.
  • the attributes of the video programs which co-occur would be determined by querying the attributes database 155 . The more attributes the two video programs have in common, the higher this contribution to the recommendation strength would be.
  • the log processing engine 135 requests 240 video programs that have those attributes in the attributes database 155 .
  • attributes that are persons e.g., actor, producer, director
  • the engine returns 245 a list of video programs in which that person is listed.
  • the attributes database 155 For attributes that are descriptive of a video program (e.g., genre, location, year), the attributes database 155 returns 245 programs that have matching attributes.
  • the attributes database 155 can return a limited number of video programs that match the attribute, or can return all matching programs. In either case, the attributes database 155 ranks the returned video programs.
  • the ranking can be determined by any known ranking or sorting method such as alphabetical, age of video program, frequency information of the video programs terms, their popularity (e.g., number of searches for same), user rating, or extrinsic information (e.g., Neilsen rating share), etc.
  • the log processing engine 135 For interactions that are the titles of video programs, the log processing engine 135 looks up the corresponding attributes in the attributes database 155 , including the associated people (e.g., actors, director, writer, producer), genre, year, locale, ratings, and so forth. Then, for each of the returned attributes the log processing engine 135 uses each of these as a secondary query, and looks up 260 additional (secondary) video programs that have these attributes. These secondary related programs are then processed as co-occurring programs with the video programs that were identified from the original queries, and co-occurrence frequency information is updated accordingly. Since the secondary related programs have a more remote connection to the original video programs from the search query the update value can be down weighted. Thus, the log processing engine 135 associates not only the original video programs that were search queries with significant co-occurrence, but also other video programs with the same attributes.
  • people e.g., actors, director, writer, producer
  • genre e.g., year, locale, ratings, and so forth.
  • the log processing engine 135 uses
  • the above process of constructing the co-occurrence information is repeated periodically, for example on a weekly basis, or as new video programs are added to the video program database.
  • the log processing engine 135 retrieves interactions from access logs 145 and after sorting 215 the interactions, determines that the following interactions took place within the same session by an individual user: downloaded “Diamonds are Forever,” and searched on “heart attack,” “diabetes,” “turkey gravy,” “Antarctica” and “Meryl Streep.” In order to determine which of these interactions involve titles of video programs or attributes of video programs, or are interactions unrelated to video programs, the log processing engine 135 looks up 220 the search terms from the search queries and title of the downloaded material in the attributes database 155 .
  • the attributes database 155 returns “Diamonds are Forever” as a title of a video program and “Antarctica” and “Meryl Streep” as attributes of video programs. Using a co-occurrence table, the log processing engine 135 determines 235 co-occurrence frequency. Assuming the co-occurrences of “Diamonds are Forever” and “Antarctica” as well as “Diamonds are Forever” and “Meryl Streep” are statistically significant, those two pairs of interactions are determined to be related.
  • the log processing engine 135 requests 240 video program titles for the search queries that are video program attributes in the attributes database 155 .
  • the log processing engine requests 240 video programs that have those attributes in the attributes database 155 .
  • the attributes database returns 245 video programs in which Meryl Streep is listed as an actor, such as “The Hours,” in addition to television shows on which Meryl Streep has been interviewed such as the Aug. 17, 2000 episode of Charlie Rose.
  • the attributes database 155 returns 245 video programs that are set in Antarctica such as the television show “The Last Place on Earth” and the documentary “March of the Penguins.”
  • the returned video programs are stored 270 in the related video program database 147 as related to “Diamonds are Forever.”
  • Attributes of “Diamonds are Forever” are requested 250 by the log processing engine 135 .
  • the attributes returned 255 by the attributes database 155 include “Sean Connery,” an actor in “Diamonds are Forever” and “Amsterdam,” a location where part of “Diamonds are Forever” takes place.
  • the log processing engine 135 looks up 260 additional video program titles for which “Sean Connery” and “Amsterdam” are attributes.
  • the titles returned 265 by the attributes database 155 for “Sean Connery” include for example, “Robin and Marian” and “A Bridge Too Far.”
  • the titles returned 265 for “Amsterdam” include the documentary, “Amsterdam Nights” and the second episode of the fifth season of “Alias,” which takes place, in part, in Amsterdam.
  • These secondary programs are also stored 270 as related to the “Meryl Streep” and “Antarctica” programs in the related video program database 147 .
  • the type of interaction from the access logs 145 that co-occurred and led to the determination that a given video program is related to another video program are also stored in the related video program database 147 . This information is useful for personalization of recommendations.
  • FIG. 3 is a data flow chart showing a method of recommending video programs to a user according to one embodiment.
  • the client 110 sends 305 , on behalf of a user, an identifier of a video program to the recommendation server 130 via the front end server 125 .
  • the identifier can be of a video program that the user is currently being presented to the user, the user has just recorded, or has otherwise expressed an interest in.
  • the video identifier can be manually input, or more preferably, determined by the client 110 automatically based on the available data pertaining to what the user is watching, has recently watched, has recently recorded, or has tuned to.
  • the identifier of the video program serves as an indication of a video program that is of interest to the user.
  • an indication of a video program of interest to a user is an audio fingerprint of a video program that the user is currently being presented to the user, the user has just recorded, or has otherwise expressed an interest in.
  • the client 110 sends 325 the user identifier to the recommendation server 130 .
  • the recommendation server 130 receives the identifier, and stores 310 the identifier of the video program received from the client 110 in the user's profile in the user profile database 160 .
  • the recommendation server 130 requests 315 video programs related to the video program identifier received from the client 110 in the related video program database 147 .
  • Related video programs are returned 320 by the related video program database 147 .
  • the associated video programs are ranked and if the number of associated video programs exceeds a threshold number, in one embodiment, the related video program database 147 only returns the threshold number.
  • the recommendation server 130 For each related video program, the recommendation server 130 looks up 330 the broadcast date, channel and time for the related video program at the user's location and for the user's broadcast system in the television schedule database 140 . As indicated above, the user's location can be inferred from the user's IP address, or obtained from stored profile information provided by the user. The television schedule database 140 returns 335 the broadcast date, channel and time to the recommendation server 130 . The recommendation server discards any related video program that will not be available to view at the user's location on the user's broadcast system within a pre-determined amount of time. For example, video programs available to view within half an hour to three hours of when the recommendation will be made allows the viewer to see recommendations for the near future. Preferably, the recommendation server 130 provides a set of 3-5 recommended video programs that will be available for viewing and or recording.
  • the recommendation server 130 packages 345 the recommendations of the related video programs, and its broadcast date, channel and time.
  • the recommendation server returns 350 the packaged information to the client 110 via front end server 125 .
  • the recommendations can be packaged in an XML file, an HTML page, or in any other encoding or formatted presentation format.
  • the client 110 then displays the recommendations to the user.
  • FIG. 4 illustrates a sample page containing recommendations for the user.
  • the recommendation server 130 provides the content of the video program to the client 110 in addition to or in place of recommendation for a video program.
  • the video program can be streamed to the client 110 by the recommendation server 130 acting as streaming video server.
  • the video program is sent to the client 110 in a format that allows the video program to be downloaded and stored at the client 110 for viewing at a later time.
  • the recommendation server 130 after receiving related video programs 320 from the related video program database 147 , the recommendation server 130 requests from the user profile database 160 a list of the video programs and attributes upon which the user has previously searched and video programs the user has previously downloaded or streamed. The recommendation server 130 ranks the returned related video programs giving additional weight to video programs which have attributes upon which the user has searched or attributes in common with video programs upon which the user has searched, downloaded or streamed.
  • the recommendation server 130 receives a request for a recommendation from the client 110 but does not receive the identifier of a video program.
  • the recommendation server 130 looks up video programs stored in the user's user profile and determines video programs related to those stored video programs to recommend to the user, and filtering those programs according to broadcast availability.
  • the log processing engine 135 and recommendation server 130 operate asynchronously. Because access logs of search engines and online video content providers and similar web services are constantly changing, co-occurrence frequencies between search queries related to video programs changes as well. Therefore the log processing engine updates the lists of associated video programs at predetermined intervals. For example, the lists could be updated daily or weekly.
  • Certain aspects of the present invention include process steps and instructions described herein in the form of a method. It should be noted that the process steps and instructions of the present invention could be embodied in software, firmware or hardware, and when embodied in software, could be downloaded to reside on and be operated from different platforms used by real time network operating systems.
  • the present invention also relates to an apparatus for performing the operations herein.
  • This apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored on a computer readable medium that can be accessed by the computer.
  • a computer program may be stored in a tangible computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, application specific integrated circuits (ASICs), or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus.
  • the computers referred to in the specification may include a single processor or may be architectures employing multiple processor designs for increased computing capability.
  • the present invention is well suited to a wide variety of computer network systems over numerous topologies.
  • the configuration and management of large networks comprise storage devices and computers that are communicatively coupled to dissimilar computers and storage devices over a network, such as the Internet, public networks, private networks, or other networks enabling communication between computing systems.
  • a network such as the Internet, public networks, private networks, or other networks enabling communication between computing systems.

Abstract

A system and method for recommending video programs to a user comprising determining a first video program that is of interest to a user and then determining a second video program to recommend to the user, the second video program being determined from a recommendation database assembled by analyzing access logs from one or more search engines or online video content providers.

Description

    BACKGROUND OF THE INVENTION
  • 1. Field of the Invention
  • The present invention is related to a system for recommending video programs to a user.
  • 2. Description of the Background Art
  • A current approach to recommending a video program to a user requires that the user have a digital video recorder and a subscription service. In such an approach, the subscription service monitors the television programming the user watches as well as what the user records. This information is combined with information identifying what other users watch and the subscription service then displays or records additional programming to the user's digital video recorder that the service determines might be of interest to the user. The pool of information from which to make recommendations is however limited to the number of users of that particular television broadcast system.
  • In another current approach, the user trains the subscription service by rating the television programming the user watches or records. This rating information is factored into the determination of which programs the subscription service recommends to the user. This however requires waiting the time it takes the system to be trained to get recommendations that are of any value.
  • Additionally, the recommendations made by the subscription service are based only on what other users with similar viewing habits watch and the subscription service only has information about what a user watches through the television broadcast system. The subscription service cannot take into account video programming the user watches through other means such as playing a DVD or downloading from the internet. The subscription service also does not have any way of obtaining information that a user searched online for information about a new series that has not aired yet.
  • SUMMARY OF THE INVENTION
  • A recommendation system uses data about video programs of interest to a user and data from interactions with web services systems such as search engines and online video content providers to determine associated programs that may be of interest to a user. Because of the vast number of users of search engines and online video content providers, associations between video programs can be identified that cannot be detected in other ways. These associations can then be used to provide recommendations to users of video programs.
  • To construct a database of recommendations, the recommendation system accesses access logs of one or more web services systems such as internet search engines or access logs of one or more online video content providers. From the access logs information is obtained about interactions with the search engine or online video content provider that relates to video programs or information related to video programs. An interaction is an exchange between the user and the system. Interactions include a search query and downloading video content. The interactions can then be aggregated to identify which combinations of interactions relating to video programs or combinations of interactions relating to a video program and an attribute of a video program occur during the same session. The co-occurrence of such interactions is used to determine that one video program would be of interest to a user given another video program assumed to be of interest to the user. Data about the programs of interest to the user may be obtained any number of ways including being sent to the recommendation system by a client or retrieved from a user profile stored as part of the recommendation system. Programs of interest include programs the user watches via a TV broadcast system as well as any programs watched from other sources, including any source of pre-recorded media (e.g., video stored on optical disc), or programs that have been downloaded from online video content providers.
  • In order to make a recommendation of a video program, the recommendation system receives an identifier of a video program of interest to the user. The recommendation system queries a database of recommendations to determine a second video program that is related to the video program of interest to the user. The recommendation system also determines when the returned related video programs will be available to view at the user's location. For returned related video programs that are available for viewing within a predetermined amount of time into the future, the recommendation sends a package to the user that comprises the identity of the recommended video program as well as the information of when that video program can be viewed and on which channel.
  • The features and advantages described in this summary and the following detailed description are not all-inclusive. Many additional features and advantages will be apparent to one of ordinary skill in the art in view of the drawings, specification, and claims hereof.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a diagram of system architecture according to one embodiment.
  • FIG. 2 is a data flow chart showing the method of populating the related video program database according to one embodiment.
  • FIG. 3 is a data flow chart showing the method of recommending video programs to a user according to one embodiment.
  • FIG. 4 is a sample display of recommendations presented to the user at the client.
  • The figures depict various embodiments of the present invention for purposes of illustration only. One skilled in the art will readily recognize from the following discussion that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles of the invention described herein.
  • DETAILED DESCRIPTION OF THE DRAWINGS System Architecture Overview
  • FIG. 1 is a diagram of system architecture according to one embodiment. The recommendation system 100 includes a front end server 125, a recommendation server 130, a log processing engine 135, a search engine 165, an online video content provider 170, an attributes database 155, a television schedule database 140, access logs 145, related video program database 147, and a user profile database 160. For simplicity, only one recommendation server 130, one log processing engine 135, one search engine 165 and one online video content provider 170 are shown but in practice, many recommendation servers 130, log processing engines 135, and search engines 165 will be in operation.
  • The recommendation system 100 communicates with a client 110 via the network 105, which is typically the Internet, but may also be any network, including but not limited to a LAN, a MAN, a WAN, a mobile, wired or wireless network, a private network, or a virtual private network, and any combination thereof. The client 110 is any type of device that is adapted to access the recommendation system 100 over the network 105. Examples of clients include but are not limited to personal computing devices, mobile phones, remote controls, and devices that receive video programs such as cable or satellite set top boxes, which have been adapted to provide the structures and functions described herein. Most basically, a client 110 is configured to transmit identifiers of video programs to the recommendation system 100 and receive information identifying and/or describing recommended video programs from the recommendation system 100. Optionally, a client 110 may be configured to control a television or other audio/video output device on which the user can watch video programs, including recommended programs. For simplicity only one client 110 is shown. In practice there will be numerous clients 110 communicating with the recommendation system 100.
  • The recommendation server 130 is implemented as server program executing on one or more server-class computers comprising a CPU, memory, network interface, peripheral interfaces, and other well known components. The computers themselves preferably run an open-source operating system such as LINUX, have generally high performance CPUs, with 1G or more of memory, and 100G or more of disk storage. Of course, other types of computers can be used, and it is expected that as more powerful computers are developed in the future, they can be configured in accordance with the teachings here. The functionality implemented by any of the elements can be provided from computer program products that are stored in tangible computer readable storage mediums (e.g., RAM, hard disk, or optical/magnetic media), or by equivalent implementations in hardware and/or firmware. Alternatively, the recommendation server 130 can be implemented in dedicated hardware, using custom designed circuitry to implement the logic of the operations described herein.
  • The attributes database 155 stores the title and other attributes of video programs. From the attributes database 155, attributes of a given video program can be determined, and conversely video programs with given attributes can also be identified. The attributes database may be a source external to the recommendation system 100, such as the Internet Movie Database at “www.imdb.com,” or the like. Attributes of a video program are any metadata used to describe the video program, and include the data such as various people associated with the program (e.g. actors, actresses, presenters, producers, directors, musicians, etc.), plot summary and keywords, locations (e.g., where the program takes place), genre (e.g. sporting event, drama, comedy, reality, game show, soap opera, and documentary), date information (production, air date, etc.), ratings (e.g. TV-14, G, NR), and quality ratings (e.g. “4 stars”), reviews, production information, and so forth. One example of a standardized system of organizing attributes for broadcast programming is the “TV Anytime” Standard, European Telecommunications Standards Institute, ETSI TS 102 822.
  • The television schedule database 140 stores the television program schedule on television broadcast systems in different geographic areas. Television broadcast systems include those that broadcast over-the-air signals, cable, and satellite services, including both analog and digital broadcast systems. Television schedule information is widely available from commercial sources.
  • The access logs 145 contain information about user interactions with the search engine 165 or online video content provider 170 (generally a “web service”). Search engines 165 include for example Google™, and the like; online video content providers 170 include video hosting websites such as YouTube™, and video rental/download websites such as Netflix™. Each log entry includes an IP address of the client device interacting with the web service, timestamp information, the user's ID if the web service offers accounts for users, the type of interaction and other metadata. The type of interaction is what the user did at the web service. In the case of search engines, the most common interaction is a search query and the terms searched would be included in the metadata of the interaction stored in the access logs 145. Online video content providers generally include search interfaces that allow users to search for video content within the provider's system. A search query is therefore also a type of interaction with an online video content provider. Additional types of interactions with online video content providers include playing streaming video programs, downloading video programs, and requesting video programs to be delivered to the user on physical media. Renting a video program on a DVD via an online content provider is one embodiment of requesting a video program for delivery to the user on physical media. The identity of the video program being streamed or downloaded is among the metadata stored for streaming or downloading video programs or requesting video programs for delivery on physical media.
  • The related video program database 147 stores video program information including information that identifies video programs that are determined to be related to each other by the operation of the log processing engine 135. The operation of the log processing engine 135 is discussed in greater detail in reference to FIG. 2.
  • The user profile database 160 stores user profiles which are used by the recommendation system 100. Each user profile includes information associated with the user, along with names of video programs that have been received from the client 110 as part of search queries, as well as names of video programs that have previously been recommended to the user. Additionally, the user profile may include attributes of video programs that are of interest to the user and that the user has entered into the profile. The user may, but need not, provide information such as favorite movies, actors, genres, and so forth. The user accesses the user's profile via the client 110. Users are identified by a user identifier. The user identifier identifies the user's location and is matched to the user's television broadcast system so that the correct channel and time may be found for the recommended video programs in the television schedule database 140. An IP address or zip code may be used to identify the user's location.
  • For additional personalization of recommendations, the user profile can include information from the user's other profiles at third party services, e.g. such as other search engines, content providers or the like. Information from the user's profile for such other services includes on which video programs and attributes of video programs the user has searched. Additionally the information from the user's profile includes which video programs the user has downloaded, streamed or requested for delivery on physical media.
  • The attributes database 155, television schedule database 140, access logs 145, related video program database 147 and user profile database 160, may be stored using any type of data storage system, operating on server class computer systems.
  • Generation of Related Video Program Database
  • The log processing engine 135 processes access logs 145 of one or more internet search engines and online video content providers to populate the related video program database 147 with information about video programs that are related to each other, and could be recommended to a user. Of interest here are searches by users for the names of video programs, or attributes of video programs and names and attributes of video programs streamed or downloaded by the user or provided to the user on a physical medium.
  • The fact that multiple interactions are being performed by the same user can be determined from the metadata stored with the searches in the access logs 145. A single session may be determined by a user logging into and out of a search engine 165 or online video content provider 170. For example to search Netflix™, a user logs into the user's account, and either manually logs out, or is deemed to have logged out after some period of non-activity. Alternatively, sessions are determined heuristically, based on the IP addresses and timestamps associated with each search request. By way of example, a session can be fixed in length (e.g., all interactions from an IP address within a 15 minute interval from a first interactions), or variable (all interactions from an IP address, so long as each interaction is within X minutes (e.g., 3 minutes) of the previous interaction). The log processing engine 135 is programmed to assign identify interactions performed by a single user, and then assign the various interactions into one or more sessions.
  • Referring to FIG. 2, the log processing engine 135 requests 205 interactions and their associated metadata from the access logs 145. The access logs 145 return 210 interactions and the metadata. The log processing engine 135 organizes 215 the interactions to group together the interactions into sessions, using the various approaches discussed above. To determine which interactions are related to video programs, the metadata associated with interactions are applied to a database of attributes of video programs. For interactions which are search queries, the log processing engine 135 determines which of the search queries refer to titles of video programs or attributes of video programs by querying 220 the search terms in each search in the attributes database 155. This identifies the matching terms as related to video programs, and the remaining terms as unrelated for this purpose. In addition, each returned query would be identified by its type, such as title, producer, location, and so forth. For interactions which are downloading or streaming of video programs or requesting videos for delivery to the user on a physical medium, the titles of video programs are determined from the associated metadata. Attributes of the video program streamed or downloaded may also be identifiable from metadata associated with the interaction.
  • The log processing engine 135 constructs 230 a co-occurrence table of the titles of video programs, and preferably, though optionally, as well between program titles and program attributes, and between one or more of the program attributes other than titles. If the co-occurring searches during a given search session relate to video programs A, B, C, and D, then the pairs are AB, AC, AD, BC, BD and CD. The frequency count for each co-occurring pair of video program related searches is then updated; the update can be a unitary increment, or some partial weighted value, based on the information such as TF-IDF for the search terms, or other factors. This process is repeated across of the search sessions identified in the access logs 145.
  • The identified co-occurrences are then used to determine relative recommendation strengths for the video programs identified in the co-occurrence table with a given first video program. The more similarities there are between a video program and the first video program, the higher the recommendation strength for that video program. For example, to determine relative recommendation strengths for movies N and P which co-occur with movie M in the co-occurrence table, assume the following information is determined:
  • Movie M been downloaded 50 times with movie N,
  • Movie M been downloaded 10 times with movie P,
  • Movie M been searched 11 times with movie Q,
  • Movie M been searched 19 times with movie N,
  • Movie M been rented by 80 times with movie N, and
  • Movie M been recorded to a DVR system 15 times with movie P.
  • Once the session information has been processed, the engine determines which of the co-occurring video programs (and/or attributes) are determined to be related, based on the statistical significance of the co-occurrence frequency information. Significance can be determined based various tests such as correlation, information gain, or the like.
  • Any method known in the art to measure relationships between random variables may be used by the log processing engine 135. Examples include correlation and information gain analyses.
  • The recommendation strength for a given video is a function of a weighted combination of the co-occurrence information. The different types of interactions can carry different weights. Two video programs being downloaded together is more indicative that one person may enjoy both programs than merely searching on both movies, and thus co-occurring downloads are given a higher weight than co-occurring searches. In addition, the co-occurrence frequencies can be normalized with respect to total population metrics, or expressed in relative terms or percentages, such as 65% of the time that Movie M is downloaded, Movie N is downloaded with it.
  • Additionally or alternatively, the attributes of co-occurring video programs are analyzed to determine whether the video programs have any attributes in common. The attributes of the video programs which co-occur would be determined by querying the attributes database 155. The more attributes the two video programs have in common, the higher this contribution to the recommendation strength would be.
  • For interactions that are search queries on video program attributes, the log processing engine 135 requests 240 video programs that have those attributes in the attributes database 155. For attributes that are persons (e.g., actor, producer, director), the engine returns 245 a list of video programs in which that person is listed.
  • For attributes that are descriptive of a video program (e.g., genre, location, year), the attributes database 155 returns 245 programs that have matching attributes.
  • The attributes database 155 can return a limited number of video programs that match the attribute, or can return all matching programs. In either case, the attributes database 155 ranks the returned video programs. The ranking can be determined by any known ranking or sorting method such as alphabetical, age of video program, frequency information of the video programs terms, their popularity (e.g., number of searches for same), user rating, or extrinsic information (e.g., Neilsen rating share), etc.
  • For interactions that are the titles of video programs, the log processing engine 135 looks up the corresponding attributes in the attributes database 155, including the associated people (e.g., actors, director, writer, producer), genre, year, locale, ratings, and so forth. Then, for each of the returned attributes the log processing engine 135 uses each of these as a secondary query, and looks up 260 additional (secondary) video programs that have these attributes. These secondary related programs are then processed as co-occurring programs with the video programs that were identified from the original queries, and co-occurrence frequency information is updated accordingly. Since the secondary related programs have a more remote connection to the original video programs from the search query the update value can be down weighted. Thus, the log processing engine 135 associates not only the original video programs that were search queries with significant co-occurrence, but also other video programs with the same attributes.
  • The above process of constructing the co-occurrence information is repeated periodically, for example on a weekly basis, or as new video programs are added to the video program database.
  • Example of Determining Related Video Programs from Access Logs
  • Using the process as outlined above and referring again to FIG. 2, the log processing engine 135 retrieves interactions from access logs 145 and after sorting 215 the interactions, determines that the following interactions took place within the same session by an individual user: downloaded “Diamonds are Forever,” and searched on “heart attack,” “diabetes,” “turkey gravy,” “Antarctica” and “Meryl Streep.” In order to determine which of these interactions involve titles of video programs or attributes of video programs, or are interactions unrelated to video programs, the log processing engine 135 looks up 220 the search terms from the search queries and title of the downloaded material in the attributes database 155. The attributes database 155 returns “Diamonds are Forever” as a title of a video program and “Antarctica” and “Meryl Streep” as attributes of video programs. Using a co-occurrence table, the log processing engine 135 determines 235 co-occurrence frequency. Assuming the co-occurrences of “Diamonds are Forever” and “Antarctica” as well as “Diamonds are Forever” and “Meryl Streep” are statistically significant, those two pairs of interactions are determined to be related.
  • In order to determine related video programs to enter in to the related video program database 147, the log processing engine 135 requests 240 video program titles for the search queries that are video program attributes in the attributes database 155. For the video program attributes, “Meryl Streep” and “Antarctica,” the log processing engine requests 240 video programs that have those attributes in the attributes database 155. For “Meryl Streep,” the attributes database returns 245 video programs in which Meryl Streep is listed as an actor, such as “The Hours,” in addition to television shows on which Meryl Streep has been interviewed such as the Aug. 17, 2000 episode of Charlie Rose. For “Antarctica,” the attributes database 155 returns 245 video programs that are set in Antarctica such as the television show “The Last Place on Earth” and the documentary “March of the Penguins.” The returned video programs are stored 270 in the related video program database 147 as related to “Diamonds are Forever.”
  • Attributes of “Diamonds are Forever” are requested 250 by the log processing engine 135. The attributes returned 255 by the attributes database 155 include “Sean Connery,” an actor in “Diamonds are Forever” and “Amsterdam,” a location where part of “Diamonds are Forever” takes place. Using “Sean Connery” and “Amsterdam” as secondary queries, the log processing engine 135 looks up 260 additional video program titles for which “Sean Connery” and “Amsterdam” are attributes. The titles returned 265 by the attributes database 155 for “Sean Connery” include for example, “Robin and Marian” and “A Bridge Too Far.” The titles returned 265 for “Amsterdam” include the documentary, “Amsterdam Nights” and the second episode of the fifth season of “Alias,” which takes place, in part, in Amsterdam. These secondary programs are also stored 270 as related to the “Meryl Streep” and “Antarctica” programs in the related video program database 147.
  • Based on the example search session, other programs that would be stored as related to “Diamonds are Forever” would include a James Bond movie that takes place in Antarctica if such one existed and television programs starring actors that appear both in “Diamonds are Forever” and in Meryl Streep movies.
  • Optionally, in addition to storing programs as related, the type of interaction from the access logs 145 that co-occurred and led to the determination that a given video program is related to another video program are also stored in the related video program database 147. This information is useful for personalization of recommendations.
  • Overview for Recommending Video Programs
  • FIG. 3 is a data flow chart showing a method of recommending video programs to a user according to one embodiment. The client 110 sends 305, on behalf of a user, an identifier of a video program to the recommendation server 130 via the front end server 125. The identifier can be of a video program that the user is currently being presented to the user, the user has just recorded, or has otherwise expressed an interest in. The video identifier can be manually input, or more preferably, determined by the client 110 automatically based on the available data pertaining to what the user is watching, has recently watched, has recently recorded, or has tuned to. The identifier of the video program serves as an indication of a video program that is of interest to the user. Alternatively, an indication of a video program of interest to a user is an audio fingerprint of a video program that the user is currently being presented to the user, the user has just recorded, or has otherwise expressed an interest in.
  • Additionally, the client 110 sends 325 the user identifier to the recommendation server 130. The recommendation server 130 receives the identifier, and stores 310 the identifier of the video program received from the client 110 in the user's profile in the user profile database 160.
  • The recommendation server 130 requests 315 video programs related to the video program identifier received from the client 110 in the related video program database 147. Related video programs are returned 320 by the related video program database 147. The associated video programs are ranked and if the number of associated video programs exceeds a threshold number, in one embodiment, the related video program database 147 only returns the threshold number.
  • For each related video program, the recommendation server 130 looks up 330 the broadcast date, channel and time for the related video program at the user's location and for the user's broadcast system in the television schedule database 140. As indicated above, the user's location can be inferred from the user's IP address, or obtained from stored profile information provided by the user. The television schedule database 140 returns 335 the broadcast date, channel and time to the recommendation server 130. The recommendation server discards any related video program that will not be available to view at the user's location on the user's broadcast system within a pre-determined amount of time. For example, video programs available to view within half an hour to three hours of when the recommendation will be made allows the viewer to see recommendations for the near future. Preferably, the recommendation server 130 provides a set of 3-5 recommended video programs that will be available for viewing and or recording.
  • The recommendation server 130 packages 345 the recommendations of the related video programs, and its broadcast date, channel and time. The recommendation server returns 350 the packaged information to the client 110 via front end server 125. The recommendations can be packaged in an XML file, an HTML page, or in any other encoding or formatted presentation format. The client 110 then displays the recommendations to the user. FIG. 4 illustrates a sample page containing recommendations for the user.
  • Alternatively, the recommendation server 130 provides the content of the video program to the client 110 in addition to or in place of recommendation for a video program. The video program can be streamed to the client 110 by the recommendation server 130 acting as streaming video server. In another embodiment, the video program is sent to the client 110 in a format that allows the video program to be downloaded and stored at the client 110 for viewing at a later time.
  • In an alternative embodiment, after receiving related video programs 320 from the related video program database 147, the recommendation server 130 requests from the user profile database 160 a list of the video programs and attributes upon which the user has previously searched and video programs the user has previously downloaded or streamed. The recommendation server 130 ranks the returned related video programs giving additional weight to video programs which have attributes upon which the user has searched or attributes in common with video programs upon which the user has searched, downloaded or streamed.
  • Alternatively or additionally, the recommendation server 130 receives a request for a recommendation from the client 110 but does not receive the identifier of a video program. The recommendation server 130 looks up video programs stored in the user's user profile and determines video programs related to those stored video programs to recommend to the user, and filtering those programs according to broadcast availability.
  • The log processing engine 135 and recommendation server 130 operate asynchronously. Because access logs of search engines and online video content providers and similar web services are constantly changing, co-occurrence frequencies between search queries related to video programs changes as well. Therefore the log processing engine updates the lists of associated video programs at predetermined intervals. For example, the lists could be updated daily or weekly.
  • The present invention has been described in particular detail with respect to several possible embodiments. Those of skill in the art will appreciate that the invention may be practiced in other embodiments. First, the particular naming of the components, capitalization of terms, the attributes, data structures, or any other programming or structural aspect is not mandatory or significant, and the mechanisms that implement the invention or its features may have different names, formats, or protocols. Further, the system may be implemented via a combination of hardware and software, as described, or entirely in hardware elements. Also, the particular division of functionality between the various system components described herein is merely exemplary, and not mandatory; functions performed by a single system component may instead be performed by multiple components, and functions performed by multiple components may instead performed by a single component.
  • Some portions of above description present the features of the present invention in terms of methods and symbolic representations of operations on information. These descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. These operations, while described functionally or logically, are understood to be implemented by computer programs. Furthermore, it has also proven convenient at times, to refer to these arrangements of operations as modules or by functional names, without loss of generality.
  • Unless specifically stated otherwise as apparent from the above discussion, it is appreciated that throughout the description, discussions utilizing terms such as “determining” or “displaying” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system memories or registers or other such information storage, transmission or display devices.
  • Certain aspects of the present invention include process steps and instructions described herein in the form of a method. It should be noted that the process steps and instructions of the present invention could be embodied in software, firmware or hardware, and when embodied in software, could be downloaded to reside on and be operated from different platforms used by real time network operating systems.
  • The present invention also relates to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored on a computer readable medium that can be accessed by the computer. Such a computer program may be stored in a tangible computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, application specific integrated circuits (ASICs), or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus. Furthermore, the computers referred to in the specification may include a single processor or may be architectures employing multiple processor designs for increased computing capability.
  • The methods and operations presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems may also be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the required method steps. The required structure for a variety of these systems will be apparent to those of skill in the, along with equivalent variations. In addition, the present invention is not described with reference to any particular programming language. It is appreciated that a variety of programming languages may be used to implement the teachings of the present invention as described herein, and any references to specific languages are provided for invention of enablement and best mode of the present invention.
  • The present invention is well suited to a wide variety of computer network systems over numerous topologies. Within this field, the configuration and management of large networks comprise storage devices and computers that are communicatively coupled to dissimilar computers and storage devices over a network, such as the Internet, public networks, private networks, or other networks enabling communication between computing systems. Finally, it should be noted that the language used in the specification has been principally selected for readability and instructional purposes, and may not have been selected to delineate or circumscribe the inventive subject matter. Accordingly, the disclosure of the present invention is intended to be illustrative, but not limiting, of the scope of the invention, which is set forth in the following claims.

Claims (20)

1-48. (canceled)
49. A computer-implemented method for recommending video programs, the method comprising:
receiving, from a first user device, an indication of a first video program;
identifying a plurality of video programs related to the first video program, wherein each of the plurality of video programs corresponds to at least one of a plurality of types of user interactions related to the first video program, wherein the plurality of types of user interactions are received from a plurality of user devices other than the first user device;
determining, for each combination of the first video program and one of the plurality of video programs, frequency information that indicates an amount each combination occurs in connection with each type of user interaction;
ranking the plurality of video programs based on the frequency information;
determining a second video program related to the first video program from the plurality of video programs based on the ranking; and
causing a recommendation for the second video program to be presented.
50. The method of claim 49, wherein video program information including information identifying the plurality of video programs related to the first video program is stored in a video program database.
51. The method of claim 49, wherein each of the plurality of types of user interactions is associated with an assigned weight and wherein the plurality of video programs are ranked based on the assigned weight being applied to the type of user interactions and the determined frequency information.
52. The method of claim 49, further comprising:
accessing one or more access logs;
obtaining, for each of the plurality of video programs, user interaction information; and
determining the type of user interactions associated with each of the plurality of video programs based on the user interaction information.
53. The method of claim 49, wherein receiving the indication of the first video program further comprises:
accessing a user profile corresponding to the user; and
retrieving identifiers of one or more video programs including an identifier of the first video program that are stored in the user profile.
54. The method of claim 49, wherein receiving the indication of the first video program further comprises receiving information about the first video program currently being presented to the user.
55. The method of claim 49, wherein the recommendation is presented on a second user device different than the first user device.
56. The method of claim 49, wherein the second video program is selected from the plurality of video programs based on the ranking and based on broadcast time of a device associated with the user.
57. The method of claim 56, wherein the broadcast time is determined based location information of the device associated with the user.
58. A computer-implemented system for recommending video programs, the system comprising:
a hardware processor that is configured to:
receive, from a first user device, an indication of a first video program;
identify a plurality of video programs related to the first video program, wherein each of the plurality of video programs corresponds to at least one of a plurality of types of user interactions related to the first video program, wherein the plurality of types of user interactions are received from a plurality of user devices other than the first user device;
determine, for each combination of the first video program and one of the plurality of video programs, frequency information that indicates an amount each combination occurs in connection with each type of user interaction;
rank the plurality of video programs based on the frequency information;
determine a second video program related to the first video program from the plurality of video programs based on the ranking; and
cause a recommendation for the second video program to be presented.
59. The system of claim 58, further comprising a video program database that stores video program information including information identifying the plurality of video programs related to the first video program.
60. The system of claim 58, wherein each of the plurality of types of user interactions is associated with an assigned weight and wherein the hardware processor is further configured to rank the plurality of video programs based on the assigned weight being applied to the type of user interactions and the determined frequency information.
61. The system of claim 58, wherein the hardware processor is further configured to:
access one or more access logs;
obtain, for each of the plurality of video programs, user interaction information; and
determine the type of user interactions associated with each of the plurality of video programs based on the user interaction information.
62. The system of claim 58, wherein the hardware processor is further configured to:
access a user profile corresponding to the user; and
retrieve identifiers of one or more video programs including an identifier of the first video program that are stored in the user profile.
63. The system of claim 58, wherein the hardware processor is further configured to receive information about the first video program currently being presented to the user.
64. The system of claim 58, wherein the recommendation is presented on a second user device different than the first user device.
65. The system of claim 58, wherein the second video program is selected from the plurality of video programs based on the ranking and based on broadcast time of a device associated with the user.
66. The system of claim 65, wherein the broadcast time is determined based location information of the device associated with the user.
67. A non-transitory computer-readable medium containing computer executable instructions that, when executed by a processor, cause the processor to perform a method for recommending video programs, the method comprising:
receiving, from a first user device, an indication of a first video program;
identifying a plurality of video programs related to the first video program, wherein each of the plurality of video programs corresponds to at least one of a plurality of types of user interactions related to the first video program, wherein the plurality of types of user interactions are received from a plurality of user devices other than the first user device;
determining, for each combination of the first video program and one of the plurality of video programs, frequency information that indicates an amount each combination occurs in connection with each type of user interaction;
ranking the plurality of video programs based on the frequency information;
determining a second video program related to the first video program from the plurality of video programs based on the ranking; and
causing a recommendation for the second video program to be presented.
US15/185,834 2009-01-22 2016-06-17 Recommending video programs Abandoned US20160295290A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/185,834 US20160295290A1 (en) 2009-01-22 2016-06-17 Recommending video programs

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/358,120 US9396258B2 (en) 2009-01-22 2009-01-22 Recommending video programs
US15/185,834 US20160295290A1 (en) 2009-01-22 2016-06-17 Recommending video programs

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US12/358,120 Continuation US9396258B2 (en) 2009-01-22 2009-01-22 Recommending video programs

Publications (1)

Publication Number Publication Date
US20160295290A1 true US20160295290A1 (en) 2016-10-06

Family

ID=42337995

Family Applications (2)

Application Number Title Priority Date Filing Date
US12/358,120 Active 2030-09-30 US9396258B2 (en) 2009-01-22 2009-01-22 Recommending video programs
US15/185,834 Abandoned US20160295290A1 (en) 2009-01-22 2016-06-17 Recommending video programs

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US12/358,120 Active 2030-09-30 US9396258B2 (en) 2009-01-22 2009-01-22 Recommending video programs

Country Status (2)

Country Link
US (2) US9396258B2 (en)
WO (1) WO2010085552A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106851345A (en) * 2017-02-28 2017-06-13 广州华多网络科技有限公司 A kind of method of information pushing, system and server
CN109189988A (en) * 2018-09-18 2019-01-11 北京邮电大学 A kind of video recommendation method

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8156083B2 (en) * 2005-12-01 2012-04-10 Oracle International Corporation Database system that provides for history-enabled tables
US8387094B1 (en) * 2009-04-09 2013-02-26 Tp Lab, Inc. Method and system to automatically select data network videos as television shows based on a persona
US8707363B2 (en) * 2009-12-22 2014-04-22 Eloy Technology, Llc Synchronization guides for group video watching
KR101395506B1 (en) * 2010-08-24 2014-05-15 한국전자통신연구원 System and Method for Service Recommendation
EP2568429A4 (en) 2010-11-29 2013-11-27 Huawei Tech Co Ltd Method and system for pushing individual advertisement based on user interest learning
CN103270472A (en) * 2010-12-22 2013-08-28 汤姆逊许可公司 My channel recommendaton feature
US8856212B1 (en) 2011-02-08 2014-10-07 Google Inc. Web-based configurable pipeline for media processing
US8635220B2 (en) 2011-04-22 2014-01-21 Iris.Tv, Inc. Digital content curation and distribution system and method
US9075875B1 (en) 2011-05-13 2015-07-07 Google Inc. System and method for recommending television programs based on user search queries
US9015746B2 (en) 2011-06-17 2015-04-21 Microsoft Technology Licensing, Llc Interest-based video streams
WO2011150892A2 (en) * 2011-06-24 2011-12-08 华为终端有限公司 Method, device and system for searching for television program based on head-end server
US9147194B1 (en) 2011-09-23 2015-09-29 Google Inc. Aggregated performance information for video content items
EP2761882A4 (en) * 2011-09-30 2015-05-27 Tata Consultancy Services Ltd A method and system for television program recommendation
US8935725B1 (en) 2012-04-16 2015-01-13 Google Inc. Visually browsing videos
US9449089B2 (en) 2012-05-07 2016-09-20 Pixability, Inc. Methods and systems for identifying distribution opportunities
US9244923B2 (en) * 2012-08-03 2016-01-26 Fuji Xerox Co., Ltd. Hypervideo browsing using links generated based on user-specified content features
US20140075316A1 (en) * 2012-09-11 2014-03-13 Eric Li Method and apparatus for creating a customizable media program queue
US9172740B1 (en) 2013-01-15 2015-10-27 Google Inc. Adjustable buffer remote access
US9311692B1 (en) 2013-01-25 2016-04-12 Google Inc. Scalable buffer remote access
US9225979B1 (en) 2013-01-30 2015-12-29 Google Inc. Remote access encoding
US9417765B1 (en) * 2013-08-06 2016-08-16 Google Inc. Conditional display of hyperlinks in a video
US9602850B2 (en) * 2013-08-06 2017-03-21 Verizon Patent And Licensing Inc. Metadata validation
US9635401B2 (en) * 2013-10-31 2017-04-25 Yahoo! Inc. Recommendation of television content
US20150293928A1 (en) 2014-04-14 2015-10-15 David Mo Chen Systems and Methods for Generating Personalized Video Playlists
KR20150136316A (en) * 2014-05-27 2015-12-07 삼성전자주식회사 Electrical apparatus, method and system for providing information
JP6431288B2 (en) * 2014-05-30 2018-11-28 東芝映像ソリューション株式会社 System, method, and program
US20160088359A1 (en) * 2014-09-22 2016-03-24 Verizon Patent And Licensing Inc. Mobile notification of television programs
JP6273386B2 (en) * 2015-02-24 2018-01-31 ビセンゼ・ピーティーイー・リミテッド Method and system for identifying associated media content
CN105407157B (en) * 2015-11-23 2019-08-02 浙江宇视科技有限公司 Video information method for pushing and device
CN106980629A (en) * 2016-01-19 2017-07-25 华为技术有限公司 A kind of network resource recommended method and computer equipment
WO2017132142A1 (en) * 2016-01-25 2017-08-03 Google Inc. Media program moments guide
US11228817B2 (en) 2016-03-01 2022-01-18 Comcast Cable Communications, Llc Crowd-sourced program boundaries
CN105787087B (en) * 2016-03-14 2019-09-17 腾讯科技(深圳)有限公司 Costar the matching process and device worked together in video
CN105847985A (en) * 2016-03-30 2016-08-10 乐视控股(北京)有限公司 Video recommendation method and device
RU2636702C1 (en) 2016-07-07 2017-11-27 Общество С Ограниченной Ответственностью "Яндекс" Method and device for selecting network resource as source of content in recommendations system
US10575055B2 (en) * 2016-07-11 2020-02-25 Sony Corporation Using automatic content recognition (ACR) to weight search results for audio video display device (AVDD)
US20180124444A1 (en) * 2016-11-01 2018-05-03 Netflix, Inc. Systems and methods of predicting consumption of original media items accesible via an internet-based media system
USD882600S1 (en) 2017-01-13 2020-04-28 Yandex Europe Ag Display screen with graphical user interface
US11234060B2 (en) 2017-09-01 2022-01-25 Roku, Inc. Weave streaming content into a linear viewing experience
US11418858B2 (en) 2017-09-01 2022-08-16 Roku, Inc. Interactive content when the secondary content is server stitched
US20190080175A1 (en) * 2017-09-14 2019-03-14 Comcast Cable Communications, Llc Methods and systems to identify an object in content
US11425085B1 (en) * 2017-11-20 2022-08-23 Amazon Technologies, Inc. Service discovery and renaming
RU2720952C2 (en) 2018-09-14 2020-05-15 Общество С Ограниченной Ответственностью "Яндекс" Method and system for generating digital content recommendation
RU2714594C1 (en) 2018-09-14 2020-02-18 Общество С Ограниченной Ответственностью "Яндекс" Method and system for determining parameter relevance for content items
RU2720899C2 (en) 2018-09-14 2020-05-14 Общество С Ограниченной Ответственностью "Яндекс" Method and system for determining user-specific content proportions for recommendation
US10871935B2 (en) 2018-09-18 2020-12-22 Roku, Inc. Audio cancellation and content recognition of audio received over HDMI/ARC
JP7007249B2 (en) * 2018-09-28 2022-01-24 富士フイルム株式会社 Image processing device, image processing method and image processing program
RU2725659C2 (en) 2018-10-08 2020-07-03 Общество С Ограниченной Ответственностью "Яндекс" Method and system for evaluating data on user-element interactions
RU2731335C2 (en) 2018-10-09 2020-09-01 Общество С Ограниченной Ответственностью "Яндекс" Method and system for generating recommendations of digital content
US11921881B2 (en) * 2019-08-01 2024-03-05 EMC IP Holding Company LLC Anonymous ranking service
CN110516153B (en) * 2019-08-28 2023-05-30 腾讯科技(深圳)有限公司 Intelligent video pushing method and device, storage medium and electronic device
RU2757406C1 (en) 2019-09-09 2021-10-15 Общество С Ограниченной Ответственностью «Яндекс» Method and system for providing a level of service when advertising content element
CN112333509B (en) * 2020-10-30 2023-04-14 Vidaa美国公司 Media asset recommendation method, recommended media asset playing method and display equipment
CN112333520B (en) * 2020-10-30 2023-03-28 Vidaa美国公司 Program recommendation method, display device and server

Citations (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5583763A (en) * 1993-09-09 1996-12-10 Mni Interactive Method and apparatus for recommending selections based on preferences in a multi-user system
US20020010625A1 (en) * 1998-09-18 2002-01-24 Smith Brent R. Content personalization based on actions performed during a current browsing session
US20020042923A1 (en) * 1992-12-09 2002-04-11 Asmussen Michael L. Video and digital multimedia aggregator content suggestion engine
US20020065034A1 (en) * 1999-11-30 2002-05-30 Jack Zhang Methods and system for universal interactive services for broadcasting media
US20020107842A1 (en) * 2001-02-07 2002-08-08 International Business Machines Corporation Customer self service system for resource search and selection
US6684194B1 (en) * 1998-12-03 2004-01-27 Expanse Network, Inc. Subscriber identification system
US20050022239A1 (en) * 2001-12-13 2005-01-27 Meuleman Petrus Gerardus Recommending media content on a media system
US20050028207A1 (en) * 1999-03-29 2005-02-03 Finseth Craig A. Method and apparatus for sharing viewing preferences
US20060173838A1 (en) * 2005-01-31 2006-08-03 France Telecom Content navigation service
US20060271691A1 (en) * 2005-05-23 2006-11-30 Picateers, Inc. System and method for collaborative image selection
US20060282856A1 (en) * 2005-03-04 2006-12-14 Sharp Laboratories Of America, Inc. Collaborative recommendation system
US7165069B1 (en) * 1999-06-28 2007-01-16 Alexa Internet Analysis of search activities of users to identify related network sites
US20070078832A1 (en) * 2005-09-30 2007-04-05 Yahoo! Inc. Method and system for using smart tags and a recommendation engine using smart tags
US7222185B1 (en) * 2002-10-03 2007-05-22 Cisco Technology, Inc. Methods and apparatus for distributing content within a content delivery system
US20070199017A1 (en) * 2006-02-21 2007-08-23 Cozen Gary S Intelligent automated method and system for optimizing the value of the sale and/or purchase of certain advertising inventory
US20070204308A1 (en) * 2004-08-04 2007-08-30 Nicholas Frank C Method of Operating a Channel Recommendation System
US20070266021A1 (en) * 2006-03-06 2007-11-15 Murali Aravamudan Methods and systems for selecting and presenting content based on dynamically identifying microgenres associated with the content
US20070288978A1 (en) * 2006-06-08 2007-12-13 Ajp Enterprises, Llp Systems and methods of customized television programming over the internet
US20070288518A1 (en) * 2006-05-03 2007-12-13 Jeff Crigler System and method for collecting and distributing content
US20080104624A1 (en) * 2006-11-01 2008-05-01 Motorola, Inc. Method and system for selection and scheduling of content outliers
US20080140644A1 (en) * 2006-11-08 2008-06-12 Seeqpod, Inc. Matching and recommending relevant videos and media to individual search engine results
US20080168502A1 (en) * 2007-01-09 2008-07-10 At&T Knowledge Ventures, Lp System and method of providing program recommendations
US20080295132A1 (en) * 2003-11-13 2008-11-27 Keiji Icho Program Recommendation Apparatus, Method and Program Used In the Program Recommendation Apparatus
US20090030792A1 (en) * 2007-07-24 2009-01-29 Amit Khivesara Content recommendation service
US20090070297A1 (en) * 2007-07-18 2009-03-12 Ipvision, Inc. Apparatus and Method for Performing Analyses on Data Derived from a Web-Based Search Engine
US20090083631A1 (en) * 2007-09-20 2009-03-26 Disney Enterprises, Inc. Measuring user engagement during presentation of media content
US20090178082A1 (en) * 2006-09-15 2009-07-09 Huawei Technologies Co., Ltd. Method and server side and terminal for finding interactive electric service guide
US20090228918A1 (en) * 2008-03-05 2009-09-10 Changingworlds Ltd. Content recommender
US20090282013A1 (en) * 2008-05-06 2009-11-12 Yahoo!, Inc. Algorithmically generated topic pages
US20100017814A1 (en) * 2008-07-15 2010-01-21 United Video Properties, Inc. Methods and systems for delivering promotional content for presentation in an interactive media guidance application
US20110264682A1 (en) * 2007-10-24 2011-10-27 Nhn Corporation System for generating recommendation keyword of multimedia contents and method thereof
US20130060756A1 (en) * 2008-10-06 2013-03-07 Microsoft Corporation Domain expertise determination
US20130167168A1 (en) * 2006-07-31 2013-06-27 Rovi Guides, Inc. Systems and methods for providing custom movie lists
US20130191458A1 (en) * 2008-09-04 2013-07-25 Qualcomm Incorporated Integrated display and management of data objects based on social, temporal and spatial parameters
US8909655B1 (en) * 2007-10-11 2014-12-09 Google Inc. Time based ranking
US20150066889A1 (en) * 2008-05-12 2015-03-05 Enpulz, Llc. Web browser accessible search engine which adapts based on user interaction
US9602884B1 (en) * 2006-05-19 2017-03-21 Universal Innovation Counsel, Inc. Creating customized programming content

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6029195A (en) * 1994-11-29 2000-02-22 Herz; Frederick S. M. System for customized electronic identification of desirable objects
US6005565A (en) * 1997-03-25 1999-12-21 Sony Corporation Integrated search of electronic program guide, internet and other information resources
US7050992B1 (en) * 1998-03-03 2006-05-23 Amazon.Com, Inc. Identifying items relevant to a current query based on items accessed in connection with similar queries
US6266649B1 (en) * 1998-09-18 2001-07-24 Amazon.Com, Inc. Collaborative recommendations using item-to-item similarity mappings
US7007294B1 (en) * 2000-10-30 2006-02-28 Koninklijke Philips Electronics N.V. Method and apparatus for automatic generation of query search terms for a program recommender
US7581237B1 (en) * 2000-10-30 2009-08-25 Pace Plc Method and apparatus for generating television program recommendations based on prior queries
WO2003036948A1 (en) * 2001-10-22 2003-05-01 Predictive Media Corporation Method and system for selective initial television channel display
US8006268B2 (en) * 2002-05-21 2011-08-23 Microsoft Corporation Interest messaging entertainment system
US20040088730A1 (en) * 2002-11-01 2004-05-06 Srividya Gopalan System and method for maximizing license utilization and minimizing churn rate based on zero-reject policy for video distribution
US7152209B2 (en) * 2003-03-28 2006-12-19 Microsoft Corporation User interface for adaptive video fast forward
WO2005027512A1 (en) * 2003-09-11 2005-03-24 Matsushita Electric Industrial Co., Ltd. Content selection method and content selection device
US7562068B2 (en) * 2004-06-30 2009-07-14 Microsoft Corporation System and method for ranking search results based on tracked user preferences
JP2009509245A (en) * 2005-09-15 2009-03-05 ビーアイエイピー・インコーポレーテッド Stand-alone mini-application system and method for digital television
US20070157242A1 (en) * 2005-12-29 2007-07-05 United Video Properties, Inc. Systems and methods for managing content
CN101467449A (en) * 2006-04-06 2009-06-24 肯尼思·H·弗格森 Media content programming control method and apparatus
US8442973B2 (en) * 2006-05-02 2013-05-14 Surf Canyon, Inc. Real time implicit user modeling for personalized search
US20080005108A1 (en) * 2006-06-28 2008-01-03 Microsoft Corporation Message mining to enhance ranking of documents for retrieval
US7624416B1 (en) * 2006-07-21 2009-11-24 Aol Llc Identifying events of interest within video content
US20080077574A1 (en) * 2006-09-22 2008-03-27 John Nicholas Gross Topic Based Recommender System & Methods
US20080301737A1 (en) * 2007-05-31 2008-12-04 Sony Ericsson Mobile Communications Ab System and method for personalized television viewing triggered by a portable communication device
JP4406848B2 (en) * 2007-08-06 2010-02-03 ソニー株式会社 Information processing apparatus, information processing method, and program
US8560950B2 (en) * 2007-09-04 2013-10-15 Apple Inc. Advanced playlist creation
JP5205895B2 (en) * 2007-09-25 2013-06-05 富士通株式会社 Information recommendation device
US8146120B2 (en) * 2007-10-08 2012-03-27 Jaman.Com, Inc. Multi-criteria rating and searching system
US20090235298A1 (en) * 2008-03-13 2009-09-17 United Video Properties, Inc. Systems and methods for synchronizing time-shifted media content and related communications
US20090249400A1 (en) * 2008-03-27 2009-10-01 United Video Properties, Inc. Systems and methods for providing on-demand media content
AU2008362223A1 (en) * 2008-09-29 2010-04-01 Telefonaktiebolaget Lm Ericsson (Publ) Double weighted correlation scheme
KR20130009754A (en) * 2010-02-01 2013-01-23 점프탭, 인크. Integrated advertising system

Patent Citations (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020042923A1 (en) * 1992-12-09 2002-04-11 Asmussen Michael L. Video and digital multimedia aggregator content suggestion engine
US5583763A (en) * 1993-09-09 1996-12-10 Mni Interactive Method and apparatus for recommending selections based on preferences in a multi-user system
US20020010625A1 (en) * 1998-09-18 2002-01-24 Smith Brent R. Content personalization based on actions performed during a current browsing session
US6684194B1 (en) * 1998-12-03 2004-01-27 Expanse Network, Inc. Subscriber identification system
US20050028207A1 (en) * 1999-03-29 2005-02-03 Finseth Craig A. Method and apparatus for sharing viewing preferences
US7165069B1 (en) * 1999-06-28 2007-01-16 Alexa Internet Analysis of search activities of users to identify related network sites
US20020065034A1 (en) * 1999-11-30 2002-05-30 Jack Zhang Methods and system for universal interactive services for broadcasting media
US20020107842A1 (en) * 2001-02-07 2002-08-08 International Business Machines Corporation Customer self service system for resource search and selection
US20050022239A1 (en) * 2001-12-13 2005-01-27 Meuleman Petrus Gerardus Recommending media content on a media system
US7222185B1 (en) * 2002-10-03 2007-05-22 Cisco Technology, Inc. Methods and apparatus for distributing content within a content delivery system
US20080295132A1 (en) * 2003-11-13 2008-11-27 Keiji Icho Program Recommendation Apparatus, Method and Program Used In the Program Recommendation Apparatus
US20070204308A1 (en) * 2004-08-04 2007-08-30 Nicholas Frank C Method of Operating a Channel Recommendation System
US20060173838A1 (en) * 2005-01-31 2006-08-03 France Telecom Content navigation service
US20060282856A1 (en) * 2005-03-04 2006-12-14 Sharp Laboratories Of America, Inc. Collaborative recommendation system
US8949899B2 (en) * 2005-03-04 2015-02-03 Sharp Laboratories Of America, Inc. Collaborative recommendation system
US20060271691A1 (en) * 2005-05-23 2006-11-30 Picateers, Inc. System and method for collaborative image selection
US20070078832A1 (en) * 2005-09-30 2007-04-05 Yahoo! Inc. Method and system for using smart tags and a recommendation engine using smart tags
US20070199017A1 (en) * 2006-02-21 2007-08-23 Cozen Gary S Intelligent automated method and system for optimizing the value of the sale and/or purchase of certain advertising inventory
US20070266021A1 (en) * 2006-03-06 2007-11-15 Murali Aravamudan Methods and systems for selecting and presenting content based on dynamically identifying microgenres associated with the content
US20070288518A1 (en) * 2006-05-03 2007-12-13 Jeff Crigler System and method for collecting and distributing content
US9602884B1 (en) * 2006-05-19 2017-03-21 Universal Innovation Counsel, Inc. Creating customized programming content
US20070288978A1 (en) * 2006-06-08 2007-12-13 Ajp Enterprises, Llp Systems and methods of customized television programming over the internet
US20130167168A1 (en) * 2006-07-31 2013-06-27 Rovi Guides, Inc. Systems and methods for providing custom movie lists
US20090178082A1 (en) * 2006-09-15 2009-07-09 Huawei Technologies Co., Ltd. Method and server side and terminal for finding interactive electric service guide
US20080104624A1 (en) * 2006-11-01 2008-05-01 Motorola, Inc. Method and system for selection and scheduling of content outliers
US20080140644A1 (en) * 2006-11-08 2008-06-12 Seeqpod, Inc. Matching and recommending relevant videos and media to individual search engine results
US20080168502A1 (en) * 2007-01-09 2008-07-10 At&T Knowledge Ventures, Lp System and method of providing program recommendations
US20090070297A1 (en) * 2007-07-18 2009-03-12 Ipvision, Inc. Apparatus and Method for Performing Analyses on Data Derived from a Web-Based Search Engine
US20090030792A1 (en) * 2007-07-24 2009-01-29 Amit Khivesara Content recommendation service
US20090083631A1 (en) * 2007-09-20 2009-03-26 Disney Enterprises, Inc. Measuring user engagement during presentation of media content
US8909655B1 (en) * 2007-10-11 2014-12-09 Google Inc. Time based ranking
US20110264682A1 (en) * 2007-10-24 2011-10-27 Nhn Corporation System for generating recommendation keyword of multimedia contents and method thereof
US20090228918A1 (en) * 2008-03-05 2009-09-10 Changingworlds Ltd. Content recommender
US20090282013A1 (en) * 2008-05-06 2009-11-12 Yahoo!, Inc. Algorithmically generated topic pages
US20150066889A1 (en) * 2008-05-12 2015-03-05 Enpulz, Llc. Web browser accessible search engine which adapts based on user interaction
US20100017814A1 (en) * 2008-07-15 2010-01-21 United Video Properties, Inc. Methods and systems for delivering promotional content for presentation in an interactive media guidance application
US20130191458A1 (en) * 2008-09-04 2013-07-25 Qualcomm Incorporated Integrated display and management of data objects based on social, temporal and spatial parameters
US20130060756A1 (en) * 2008-10-06 2013-03-07 Microsoft Corporation Domain expertise determination

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106851345A (en) * 2017-02-28 2017-06-13 广州华多网络科技有限公司 A kind of method of information pushing, system and server
CN109189988A (en) * 2018-09-18 2019-01-11 北京邮电大学 A kind of video recommendation method

Also Published As

Publication number Publication date
WO2010085552A1 (en) 2010-07-29
US20100186041A1 (en) 2010-07-22
US9396258B2 (en) 2016-07-19

Similar Documents

Publication Publication Date Title
US9396258B2 (en) Recommending video programs
US10509815B2 (en) Presenting mobile content based on programming context
US10154310B2 (en) System and method for associating individual household members with television programs viewed
US11924507B2 (en) Adapting search query processing according to locally detected video content consumption
KR100893129B1 (en) System for extracting recommended keyword of multimedia contents and method thereof
US10587912B2 (en) Complimentary content based recording of media content
US8489515B2 (en) Social network based recommendation method and system
US9166714B2 (en) Method of and system for presenting enriched video viewing analytics
US9098551B1 (en) Method and system for ranking content by click count and other web popularity signals
US20130332521A1 (en) Systems and methods for compiling media information based on privacy and reliability metrics
US20120158527A1 (en) Systems, Methods and/or Computer Readable Storage Media Facilitating Aggregation and/or Personalized Sequencing of News Video Content
US20120324512A1 (en) Enhanced electronic program guide
US20140289273A1 (en) Method and system for enhancing metadata
KR101438764B1 (en) Method for Recommending Contents Based on User Watch History
KR101779975B1 (en) System for providing additional service of VOD content using SNS message and method for providing additional service using the same
CN106462618B (en) Dynamic current results for a second device
US9098577B1 (en) System and method for creating collaborative content tracks for media content

Legal Events

Date Code Title Description
AS Assignment

Owner name: GOOGLE LLC, CALIFORNIA

Free format text: CHANGE OF NAME;ASSIGNOR:GOOGLE INC.;REEL/FRAME:044695/0115

Effective date: 20170929

STPP Information on status: patent application and granting procedure in general

Free format text: FINAL REJECTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: RESPONSE AFTER FINAL ACTION FORWARDED TO EXAMINER

STCV Information on status: appeal procedure

Free format text: NOTICE OF APPEAL FILED

STPP Information on status: patent application and granting procedure in general

Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER

STPP Information on status: patent application and granting procedure in general

Free format text: FINAL REJECTION MAILED

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION