WO2010022094A1 - Prioritizing items presented to a user according to user mood - Google Patents

Prioritizing items presented to a user according to user mood Download PDF

Info

Publication number
WO2010022094A1
WO2010022094A1 PCT/US2009/054216 US2009054216W WO2010022094A1 WO 2010022094 A1 WO2010022094 A1 WO 2010022094A1 US 2009054216 W US2009054216 W US 2009054216W WO 2010022094 A1 WO2010022094 A1 WO 2010022094A1
Authority
WO
WIPO (PCT)
Prior art keywords
terms
user
content
affective
mood
Prior art date
Application number
PCT/US2009/054216
Other languages
French (fr)
Inventor
Tuhin Roy
Fred Zirdung
Original Assignee
First On Mars, Inc.
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 First On Mars, Inc. filed Critical First On Mars, Inc.
Publication of WO2010022094A1 publication Critical patent/WO2010022094A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor

Definitions

  • a consumer may change preferences for what they wish to view during different viewing sessions.
  • the consumer typically needs to review each individual listing during each viewing session to make an assessment of interest based solely on the description of the show or movie.
  • FIG. 1 illustrates a block diagram of client devices coupled to one another and a host server capable of managing moods to prioritize and select items that are to be presented to a user.
  • FIG. 2 depicts a block diagram illustrating a host server capable of using user moods to prioritize and select items that are to be presented to a user.
  • FIG. 3 depicts a block diagram illustrating a mood-based content prioritization engine in the host server.
  • FIG. 4 depicts a flowchart of an example of a high-level affective terms management process.
  • FIG. 5 depicts a flowchart of an example of a lower-level affective terms management process.
  • FIG. 6 depicts a flowchart of an example of an affective terms user preference identification process.
  • FIG. 7 depicts a flowchart of an example of mood-associated content prioritization for display to a user.
  • FIG. 8 depicts a flowchart of an example of a process for using ranking factors to generate a displayed set of items for a user according to user mood and other factors.
  • FIG. 9 A illustrates an example user interface showing a selection cloud having terms including affective terms and/or genre-related terms from which users can select to specify user mood.
  • FIG. 9B illustrates an example user interface showing a selection cloud having content (e.g., TV shows) from which users can select as preferred.
  • content e.g., TV shows
  • FIG. 9C illustrates an example user interface showing a selection cloud having networks (e.g., TV channels or networks) from which users can select as preferred.
  • networks e.g., TV channels or networks
  • FIG. 9D illustrates an example user interface showing a displayed set of items selected for a user according to user mood.
  • FIG. 10A-D illustrate additional examples of user interfaces showing call-out boxes with shows, moods, and networks for a user to select for use by the system in selecting a displayed set of items.
  • FIG. 11 shows a diagrammatic representation of a machine in the example form of a computer system within which a set of instructions, for causing the machine to perform any one or more of the methodologies discussed herein, may be executed.
  • references in this specification to "one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the disclosure.
  • the appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment, nor are separate or alternative embodiments mutually exclusive of other embodiments.
  • various features are described which may be exhibited by some embodiments and not by others.
  • various requirements are described which may be requirements for some embodiments but not other embodiments.
  • Embodiments of the present disclosure include systems and methods for prioritizing items presented to a user according to user mood.
  • FIG. 1 illustrates a block diagram of client devices 102 A-N coupled to one another and a host server 100 capable of managing moods to prioritize and select items that are to be presented to a user.
  • the client devices 102 A-N can be any system and/or device, and/or any combination of devices/systems that is able to establish a connection with another device, a server and/or other systems.
  • the client devices 102A-N typically include display or other output functionalities to present data exchanged between the devices to a user.
  • the client devices and content providers can be, but are not limited to, a server desktop, a desktop computer, a computer cluster, a mobile computing device such as a notebook, a laptop computer, a handheld computer, a mobile phone, a smart phone, a PDA, a Blackberry device, a Treo, and/or an iPhone, etc.
  • the client devices 102 A-N are coupled to a network 106. In some embodiments, the client devices may be directly connected to one another.
  • the network 106 over which the client devices 102A-N may be a telephonic network, an open network, such as the Internet, or a private network, such as an intranet and/or the extranet.
  • the Internet can provide file transfer, remote log in, email, news, RSS, and other services through any known or convenient protocol, such as, but is not limited to the TCP/IP protocol, Open System Interconnections (OSI), FTP, UPnP, iSCSI, NSF, ISDN, PDH, RS-232, SDH, SONET, etc.
  • OSI Open System Interconnections
  • the network 106 can be any collection of distinct networks operating wholly or partially in conjunction to provide connectivity to the client devices, host server, and may appear as one or more networks to the serviced systems and devices.
  • communications to and from the client devices 102A-N can be achieved by, an open network, such as the Internet, or a private network, such as an intranet and/or the extranet.
  • communications can be achieved by a secure communications protocol, such as secure sockets layer (SSL), or transport layer security (TLS).
  • SSL secure sockets layer
  • TLS transport layer security
  • Internet refers to a network of networks that uses certain protocols, such as the TCP/IP protocol, and possibly other protocols such as the hypertext transfer protocol (HTTP) for hypertext markup language (HTML) documents that make up the World Wide Web (the web).
  • HTTP hypertext transfer protocol
  • HTML hypertext markup language
  • a web server which is one type of content server, is typically at least one computer system which operates as a server computer system and is configured to operate with the protocols of the World Wide Web and is coupled to the Internet.
  • the physical connections of the Internet and the protocols and communication procedures of the Internet and the web are well known to those of skill in the relevant art.
  • the network 106 broadly includes anything from a minimalist coupling of the components illustrated in the example of FIG. 1, to every component of the Internet and networks coupled to the Internet.
  • communications can be achieved via one or more wireless networks, such as, but is not limited to, one or more of a Local Area Network (LAN), Wireless Local Area Network (WLAN), a Personal area network (PAN), a Campus area network (CAN), a Metropolitan area network (MAN), a Wide area network (WAN), a Wireless wide area network (WWAN), Global System for Mobile Communications (GSM), Personal Communications Service (PCS), Digital Advanced Mobile Phone Service (D-Amps), Bluetooth, Wi-Fi, Fixed Wireless Data, 2G, 2.5G, 3G networks, enhanced data rates for GSM evolution (EDGE), General packet radio service (GPRS), enhanced GPRS, messaging protocols such as, TCP/IP, SMS, MMS, extensible messaging and presence protocol (XMPP), real time messaging protocol (RTMP), instant messaging and presence protocol (IMPP), instant messaging, USSD, IRC, or any other wireless data networks or messaging protocols.
  • LAN Local Area Network
  • WLAN Wireless Local Area Network
  • PAN Personal area network
  • CAN Campus area network
  • MAN Metropolitan area network
  • the client devices 102 A-N can be coupled to the network (e.g., Internet) via a dial up connection, a digital subscriber loop (DSL, ADSL), cable modem, and/or other types of connection.
  • the client devices 102A-N can communicate with remote servers (e.g., web server, host server, mail server, and instant messaging server) that provide access to user interfaces of the World Wide Web via a web browser, for example.
  • remote servers e.g., web server, host server, mail server, and instant messaging server
  • the user repository/user behavior repository 128 and content significance repository 130 can store software, descriptive data, images, system information, drivers, and/or any other data item utilized by parts of the host server 100 for operation.
  • the repositories 128 and 130 may also store user information and user content, such as, user profile information, user preferences, content information, network information, etc.
  • the repositories 128 and 130 may be managed by a database management system (DBMS), for example but not limited to, Oracle, DB2, Microsoft Access, Microsoft SQL Server, PostgreSQL, MySQL, FileMaker, etc.
  • DBMS database management system
  • the repositories 128 and 130 can be implemented via object-oriented technology and/or via text files, and can be managed by a distributed database management system, an object-oriented database management system (OODBMS) (e.g., ConceptBase, FastDB Main Memory Database Management System, JDOInstruments, ObjectDB, etc.), an object-relational database management system (ORDBMS) (e.g., Informix, OpenLink Virtuoso, VMDS, etc.), a file system, and/or any other convenient or known database management package.
  • OODBMS object-oriented database management system
  • ORDBMS object-relational database management system
  • An example set of data to be stored in the repositories 128 and 130 is further described with reference to FIG. 2.
  • the host server 100 is, in some embodiments, able to communicate with client devices 102A-N via the network 106. In addition, the host server 100 is able to retrieve data from the user repository/user behavior repository 128 and the content significance repository 130.
  • the host server 100 can be implemented on a known or convenient computer system, such as is illustrated in FIG. 11.
  • the host server 100 may or may not include a content server, though it is depicted as a distinct component in the example of FIG. 1 for illustrative clarity.
  • the host server 100 is described in more detail with reference to FIG. 2-3.
  • the content servers 108 are coupled to the network 106.
  • the content servers 108 can be implemented on a known or convenient computer system, such as is illustrated in FIG. 11.
  • the content servers 108 are intended to illustrate one content provider that has content (e.g., articles, images, movies, music, TV shows, etc.) associated with mood. There could be any number of content servers coupled to the network 106 that meet these criteria.
  • the content servers 108 make content available to appropriately configured clients coupled to the network 106.
  • the content may have any applicable known or convenient form (e.g., multimedia, text, executables, etc.), and may or may not be in appropriate form for delivery to a client through a browser (e.g., on web pages).
  • the content servers 108 are coupled to the network 106. Users of appropriately configured client computer systems can obtain content, through any applicable known or convenient interface, from the content servers 108.
  • the host server 100 facilitates content preferences and personalization based upon, for example, the moods of users of the client devices 102.
  • the host server 100 can prioritize, select, rank, and/or preferentially display content and/or broadcast networks that are provided to the client devices 102 from the content servers 108.
  • FIG. 2 depicts a block diagram illustrating a host server 200 capable of using user moods to prioritize and select items that are to be presented to a user.
  • the host server 200 can include a user behavior repository 228, and/or a content significance database 230.
  • the host server 200 may be communicatively coupled to the user behavior repository 228 and/or the content significance repository 230 as illustrated in FIG. 2.
  • the user behavior repository 228 and/or the content significance repository 230 are partially or wholly internal to the host server 200.
  • the host server 200 includes a network interface 202, a categorical ranking engine 204, display selection engine 206, a navigation panel 208, a mood-based content prioritization engine 250, a content/network preferences engine 260, and/or a content/network significance engine 270.
  • the mood-based content prioritization engine 250 is described with further reference to the example of FIG. 3.
  • the network controller 202 can be one or more networking devices that enable the host server 200 to mediate data in a network with an entity that is external to the host server, through any known and/or convenient communications protocol supported by the host and the external entity.
  • the network controller 202 can include one or more of a network adaptor card, a wireless network interface card, a router, an access point, a wireless router, a switch, a multilayer switch, a protocol converter, a gateway, a bridge, bridge router, a hub, a digital media receiver, and/or a repeater.
  • a firewall can, in some embodiments, be included to govern and/or manage permission to access/proxy data in a computer network, and track varying levels of trust between different machines and/or applications.
  • the firewall can be any number of modules having any combination of hardware and/or software components able to enforce a predetermined set of access rights between a particular set of machines and applications, machines and machines, and/or applications and applications, for example, to regulate the flow of traffic and resource sharing between these varying entities.
  • the firewall may additionally manage and/or have access to an access control list which details permissions including for example, the access and operation rights of an object by an individual, a machine, and/or an application, and the circumstances under which the permission rights stand.
  • firewalls can be, for example, but are not limited to, intrusion-prevention, intrusion detection, next-generation firewall, personal firewall, etc. without deviating from the novel art of this disclosure.
  • the functionalities of the network interface 202 and the firewall are partially or wholly combined and the functions of which can be implemented in any combination of software and/or hardware, in part or in whole.
  • One embodiment of the host server 200 includes a mood-based content prioritization engine 250.
  • the mood-based content prioritization engine 250 can be implemented, example, as software embodied in a computer-readable medium or computer-readable storage medium on a machine, in firmware, in hardware, in a combination thereof, or in any applicable known or convenient device or system.
  • This and other engines described in this specification are intended to include any machine, manufacture, or composition of matter capable of carrying out at least some of the functionality described implicitly, explicitly, or inherently in this specification, and/or carrying out equivalent functionality.
  • the mood-based content prioritization engine 250 can be any combination of hardware components and/or software agents able to prioritize or rank content for a user based on his/her specified user moods.
  • the user indicates moods by selecting or specifying terms representative of emotions, genre, and/or category that can be associated with content.
  • the terms can include affective terms and/or genre- related terms.
  • the mood-based content prioritization engine 250 can use the user-specified terms or user-selected terms to identify content (e.g., media content, movies, music, TV series, images, articles, etc.) that is associated with the user's mood preferences.
  • the mood-based content prioritization engine 250 can rank the content according to relevance to the specified mood.
  • mood-based content prioritization engine 250 further ranks networks or broadcasting networks for a user based on the specified user moods.
  • the networks can include, for example, TV or radio channels or other types of broadcasting networks through which content is broadcast.
  • a network with a higher ranking or priority can include more content (e.g., shows) correlated with the user- specified moods.
  • Networks and content be separated for ranking purposes.
  • networks and content can be ranked together according to relevance to user moods.
  • the mood-based content prioritization engine 250 can assign a ranking factor to content/network based on relevance with the user moods.
  • the ranking factor can increase for content or network as the number of correlation with user moods increases. For example, the ranking factor can increase by one point for each mood that is common to the user's profile and the content and/or network in question. The factor can then be normalized by dividing by the sum of the total number of moods specified by the user.
  • the mood-based content prioritization engine 250 is described with further detail in the example of FIG. 3.
  • the host server 200 includes the user behavior repository 228.
  • the user behavior repository 228 can be implemented, for example, as software embodied in a computer-readable medium or computer-readable storage medium on a machine, in firmware, in hardware, in a combination thereof, or in any applicable known or convenient device or system.
  • This and other repositories such as databases described in this specification are intended to include any organization of data, including tables, comma-separated values (CSV) files, traditional databases (e.g., MYSQL), or other applicable known or convenient organizational formats.
  • Some repositories/databases may require database interfaces, which are assumed to be incorporated in the database or the component coupled to the database in this and other figures, if applicable.
  • the user behavior repository 228 can store user-behavior data for aggregate number of users to determine content/network popularity or data for a single user to determine individual preferences.
  • the user -behavior data can include data about content that has been played, accessed, or viewed by a user and additional types about user preferences or content popularity.
  • the user behavior repository can include explicit preferences for content or network that are specified by the user.
  • the repository 228 can include content/network or identification of content/network that has been added to a favorites list or content/network that has been explicitly identified as not of interest.
  • any content/network that has been recommended by the user or to the user by another, etc. can be identified and/or indicated as such. User actions such as discards can also be tracked and stored.
  • the host server 200 also aggregates counts of mood, show, and network selections among multiple users (e.g., to determine popularity) and/or for a single user. View of shows and/or episodes can also be tracked and stored in the user behavior repository 228. In addition, the system also tracks invitations, associated target emails, initiating users, and/or recommendations.
  • Any of this behavioral data can be used to elevate content to a higher priority, or to reduce content to a lower priority, than other content of equivalent interest based upon mood association.
  • behavioral data can be used in a weighted combination with user mood for ranking/prioritizing content and/or networks in selecting a set of items that are displayed to a user.
  • multiple sets of rankings for the items that represent content and/or networks can be generated using different ranking algorithms, for example.
  • One embodiment of the host server 200 includes a content/network preferences engine 260.
  • the content/network preferences engine 260 can be implemented, example, as software embodied in a computer-readable medium or computer-readable storage medium on a machine, in firmware, in hardware, in a combination thereof, or in any applicable known or convenient device or system
  • the content/network preferences engine 260 can be any combination of hardware components and/or software agents able to provide data associated with explicit or implicit interest in content, examples of which were given above with reference to the user behavior database 218.
  • the content/network preferences engine 260 assigns a ranking factor to content/network based on identified matches with explicit preferences for content or network specified by the user. For example, the factor can be incremented for content or show that is broadcast by the same network. The factor can subsequently be normalized by the total number of shows available by that network.
  • the user's implicit preferences and user recommendations for content and/or network can also be used by the content/network preferences engine 260 in ranking or prioritizing content or networks.
  • Such implicit factors can be considered using the same ranking factor as for explicit preferences or using another ranking factor.
  • the content/network preferences engine 260 also manages networks available for access by a user.
  • the engine 260 can enable or disable various networks.
  • the engine 260 may further track network properties including but not limited to name, image of network, country of origin of the network, and/or countries of availability.
  • each network may be associated with a priority rating or a popularity rating.
  • a user can import a list of networks from a file (e.g., a CSV file).
  • One embodiment of the host server 200 further includes a content significance repository 230.
  • the content significance repository 230 can be implemented, for example, as software embodied in a computer-readable medium or computer-readable storage medium on a machine, in firmware, in hardware, in a combination thereof, or in any applicable known or convenient device or system.
  • the content significance repository 230 can include data relating to popularity, editorial significance, and network priority of content and/or networks.
  • the repository 230 can store other data that can be used to generate factors to elevate content to a higher priority, or to reduce content to a lower priority.
  • one embodiment of the host server 200 includes a content/network significance engine 270.
  • the content/network significance engine 270 can be implemented, example, as software embodied in a computer-readable medium or computer-readable storage medium on a machine, in firmware, in hardware, in a combination thereof, or in any applicable known or convenient device or system
  • the content/network significance engine 270 can be any combination of hardware components and/or software agents able to rank and/or prioritize content according to content significance, examples of which were given above with reference to the repository 230.
  • the engine 270 can assign a ranking factor for content significance to be used alone or in conjunction with the other ranking factors for use in ranking/prioritizing content/networks for a user.
  • the engine 270 can determine a ranking factor for content/network based on popularity among multiple users.
  • One embodiment of the host server 200 further includes a categorical ranking engine 204.
  • the categorical ranking engine 204 can be implemented, for example, as software embodied in a computer-readable medium or computer-readable storage medium on a machine, in firmware, in hardware, in a combination thereof, or in any applicable known or convenient device or system.
  • the categorical ranking engine 204 can be any combination of hardware components and/or software agents able to generate rankings for items that represent content and/or networks using ranking factors. A number of ranking algorithms that employ various ranking factors can be used to rank a set of items. In one embodiment, the ranking engine 204 is coupled to the moo-based content prioritization engine 250, the content/network preferences engine 260, and/or the content/network significance engine 270 and can use different algorithms that vary in weights assigned to various ranking factors to generate multiple rankings for the set of items.
  • Each of the multiple rankings can be provided as rankings for the items (e.g., content and/or network) for the set of items in multiple categories.
  • each category can use different ranking factors and/or assign different weights to each of the ranking factors.
  • a first ranking factor for user mood a second ranking factor for matches with explicit preferences
  • a third ranking factor for popularity a fourth factor for implicit preferences and/or user recommendations can each be used along or in conjunction with one another in generating a ranking for the set of items.
  • Multiple sets of categorical ranking for one set of items can be generated by selecting different ranking factors or assigning different weights for the ranking factors. For example, one category of ranking (e.g., "User Favorites”) could be biased towards the user's favorites and weighs the shows and networks explicit specified by the user more heavily. One category of ranking (e.g., "Mood Recommendations”) can be biased towards the user's mood, and assigns higher weights to the ranking factors associated with user mood. Additionally, a category of ranking could be biased towards friend-based recommendations (e.g., "Collaborative Filtering"), system assigned priority (e.g., "Prioritized Content”) or popularity among users (e.g., "Popular Content”).
  • friend-based recommendations e.g., "Collaborative Filtering”
  • system assigned priority e.g., "Prioritized Content”
  • popularity among users e.g., "Popular Content”
  • One embodiment of the host server 200 further includes a display selection engine 206.
  • the display selection engine 206 can be implemented, for example, as software embodied in a computer-readable medium or computer-readable storage medium on a machine, in firmware, in hardware, in a combination thereof, or in any applicable known or convenient device or system.
  • the display selection engine 206 can be any combination of hardware components and/or software agents able to select a set of items (e.g., items that represent content and/or networks) to be presented to a user based on one or more sets of categorical rankings.
  • the items to be displayed or otherwise presented to the user can be selected from any number of categories of rankings.
  • the items are selected from the categories according to categorical weightings assigned to each category.
  • the categorical weights determine the number of content/networks that are selected to be presented to the user from each categorical ranking.
  • the weights can be assigned by the system administrator or optionally configurable by a user.
  • the displayed set of items is selected until a predetermined number of items are selected from each category.
  • the number of items selected from each category can be determined based on the number of shows and the number of networks to be displayed in the display set multiplied by the assigned categorical weight.
  • any item that is a duplicate selected from different categorical rankings can be removed and replaced by selecting another item from the same category that produced the duplicate.
  • the remaining items that exceed the number used to populate the displayed set can optionally be used in a backup set of items to be displayed, which can be used to repopulate the displayed set, for example, when a user discards an item in the displayed set.
  • the selected items can be displayed in any order.
  • the display selection engine 206 can adjust the rankings of the items selected for the display set to determine presentation priority in a navigator panel, which is described below.
  • the duplicate items can be ranked higher in the display set since they were selected on multiple instances from different categorical rankings.
  • the rankings of the items in the display set can be adjusted using normalize-weighted sum of all ranking scores from the duplicate items.
  • the item rankings in the final display are used to sort the order in which the items are displayed.
  • the items in the backup set can also be sorted in the navigator panel according to the adjusted ranking scores.
  • the navigator panel data structure 208 can be implemented, for example, as software embodied in a computer-readable medium or computer-readable storage medium on a machine, in firmware, in hardware, in a combination thereof, or in any applicable known or convenient device or system.
  • the navigator panel data structure 208 includes items or objects that correspond to prioritized content and/or networks that are selectable by a user.
  • a convenient structure for the navigator panel is a web page or a portion of a web page with thumbnail, hypertext, or customized links to the content, or the content itself, presented thereon. However, any applicable known or convenient structure can be used.
  • the prioritized content and/or networks can be selected by the display selection engine 206. The order in which the content and/or networks are displayed can be determined according to the adjusted ranking determined by the display selection engine 206.
  • Links to the content, or the content itself, is then displayed in the navigator panel data structure 208.
  • the media content represented by the item or object can include a television series show and the object can include one or more links.
  • links to episodes of a television show may be displayed and selected by a user for accessing, viewing, or otherwise obtaining for information about the television show.
  • the item or object can represent a network or broadcast network such as a television channel.
  • links to content broadcast by the selected network can be displayed to the user and selected for accessing or viewing media content broadcast by the network, obtaining additional information about the network, or shows.
  • the components of the host server 200 are a functional unit that may be divided over multiple computers and/or processing units. Furthermore, the functions represented by the devices can be implemented individually or in any combination thereof, in hardware, software, or a combination of hardware and software. Different and additional hardware modules and/or software agents may be included in the host server 200 without deviating from the spirit of the disclosure.
  • FIG. 3 depicts a block diagram illustrating a mood-based content prioritization engine 350.
  • the mood-based content prioritization engine 350 includes a terms repository 302, a terms management engine 304, a terms preferences repository 306, a terms provisioning engine 308, a selection cloud data structure 310, a terms selection engine 312, a mood- associated content repository 314, and/or a ranking engine 320. Additional or less modules can be included in the engine 350.
  • repository 302 can be implemented, for example, as software embodied in a computer-readable medium or computer-readable storage medium on a machine, in firmware, in hardware, in a combination thereof, or in any applicable known or convenient device or system.
  • the terms repository 302 can be used to store terms that can be selected by users to indicate one or more user moods.
  • the terms can include, by way of example, not limitation, affective terms (e.g., humor, happy, scared, etc.) that correspond to human emotions that can be experienced by a user in accessing the content and/or genre-related terms (e.g., '90's, '70's, family/kid friendly, comics, etc.) that correspond to categories within which media content falls.
  • management engine 304 can be implemented, for example, as software embodied in a computer-readable medium or computer-readable storage medium on a machine, in firmware, in hardware, in a combination thereof, or in any applicable known or convenient device or system.
  • the terms management engine 304 adds, removes, or modifies term records in the terms repository 302.
  • the engine 304 can be used by a system administrator to modify the terms in the repository 302.
  • the engine 304 may modify, add, and/or remove terms based on user recommendations or by automatically crawling of metadata from media content.
  • preferences repository 306 can be implemented, for example, as software embodied in a computer-readable medium or computer-readable storage medium on a machine, in firmware, in hardware, in a combination thereof, or in any applicable known or convenient device or system.
  • the terms preferences repository 306 includes data identifying, or data that can be used to identify, terms for which a user has a preference, whether positive or negative.
  • provisioning engine 308 can be implemented, for example, as software embodied in a computer-readable medium or computer-readable storage medium on a machine, in firmware, in hardware, in a combination thereof, or in any applicable known or convenient device or system.
  • the terms provisioning engine 308 provides terms to users to enable users to select affective terms to indicate their mood and/or genre-related terms for users to select their preferences for media genre.
  • the terms provided to a user depend upon terms that are available in the terms database 302 and identifiable preferences for terms in, or derivable from, the terms preferences repository 306.
  • the selection cloud data structure 310 can be implemented, for example, as software embodied in a computer-readable medium or computer-readable storage medium on a machine, in firmware, in hardware, in a combination thereof, or in any applicable known or convenient device or system.
  • the selection cloud data structure 310 includes terms that are selectable by a user.
  • a convenient structure for the selection cloud is a web page or a portion of a web page with terms presented thereon. However, any applicable known or convenient structure can be used. Examples of selection clouds depicted on a web page are illustrated with further reference to the examples in the screenshots shown in FIG. 9-10.
  • selection engine 312 can be implemented, for example, as software embodied in a computer-readable medium or computer-readable storage medium on a machine, in firmware, in hardware, in a combination thereof, or in any applicable known or convenient device or system.
  • the terms selection engine 312 identifies terms that were selected from the selection cloud 310 by a user.
  • a convenient mechanism for selecting terms in the selection cloud 310 is a pointing device, such as a mouse, which can be used to point to an term and click on the term, thereby selecting it. It should be noted that occasionally the term "select" is used to refer to highlighting a text string. As used here, the term select is intended to mean that the term is selected in such a manner that the terms selection engine 312 is alerted to the selection. Any applicable known or convenient selection mechanism can be used. When an affective term is selected, the terms selection engine 312 can update the terms preferences database 306.
  • the mood-associated content repository 314 can be implemented, for example, as software embodied in a computer-readable medium or computer-readable storage medium on a machine, in firmware, in hardware, in a combination thereof, or in any applicable known or convenient device or system.
  • any repository described herein can have any convenient data structure, it should be noted that the mood-associated content repository 314 in particular may have relatively little structure because, in an implementation, the content can be found anywhere on the Internet.
  • the mood-associated content repository 314 can include content that has explicit mood associations (e.g., metadata that uses affective terms as tags).
  • the mood- associated content repository 314 can also include content that has no explicit mood associations, but the terms repository 302 associates a term with the content, thereby associating the content with a mood. Although content that has no mood associations may also be available, such content is ignored in this specification for illustrative simplicity.
  • the ranking engine 320 can be implemented, for example, as software embodied in a computer-readable medium or computer-readable storage medium on a machine, in firmware, in hardware, in a combination thereof, or in any applicable known or convenient device or system.
  • the ranking engine 320 takes relevant data from the terms repository 302, the terms preferences repository 306, the mood-associated content database 314, and algorithmically determines ranking (e.g., quantitative) and/or priority (e.g., qualitative) for content to be provided to a user.
  • the terms management engine 304 maintains the terms database 302.
  • the terms provisioning engine 308 uses the terms database 302 and the terms preferences database 306 to populate the selection cloud 310 with terms that are assumed to be most relevant to the user based upon rules about terms and the user's preferences (identified in the terms preferences database 306).
  • the active terms selection engine 312 provides the selections, or data associated with the selections, to the active terms preferences engine 306. It may be noted that a user need not actually select terms, and, at least with respect to the user in question, the terms preferences database 306 can be empty.
  • the ranking engine 320 takes relevant data from the terms database 302, the terms preferences database 306, the mood-associated content database 314, and algorithmically determines a priority for content to be provided to a user according to mood.
  • the ranking engine 320 generates a ranking factor for content and/or a network associated with the user mood as specified by the user's selected terms. This ranking factor can be used by the categorical ranking engine 206 in the example of FIG. 2 to generate different categories of rankings using different ranking factors (e.g., mood, user behavior, content significance, etc.) or various weighted combinations of the multiple ranking factors.
  • FIG. 4 depicts a flowchart of an example of a high-level affective terms management process.
  • the flowchart includes modules and decision points organized in a serial fashion. It should be noted that the modules and decision points need not flow in the order suggested by the figure; a first module that comes before a second module in the flowchart need not be first in actual implementation.
  • modules 412 it is possible to generate a translation list (module 412) prior to forming content associations with the record (module 410).
  • the modules and decision points could be reorganized for simultaneous or parallel execution. It should further be noted that some of the modules and decision points could be omitted, and others added, without deviating from the scope of the techniques described in this paper.
  • affective terms are terms that cause an emotion or feeling in humans that see or use them.
  • a list of affective terms was generated by a psychologist to capture a broad range of emotions that may be associated with, in this specific example, multimedia content such as television programs and movies.
  • an affective term is designated a high-level affective term.
  • High-level affective terms may be distinguishable from lower level affective terms because they can encompass a broader range of feelings than other affective terms.
  • a high-level affective term is an affective term that has been explicitly designated as high-level.
  • the term "high-level affective term” is not ambiguous or subjective because an affective term is either designated as high-level (in which case it is) or the affective term is not designated as high-level (in which case it is not). It may be noted that the designation of an affective term as high-level could be inherent in adding a record to the database (module 406) or setting the record as a root node in an affective terms tree (module 408).
  • the flowchart 400 continues to module 406 where a record associated with the affective term is added to an affective terms database.
  • the record can include, for example, a name field (e.g., the affective term), a parent pointer field, a translation list field, a content association field, and an enablement flag.
  • the name field is optional, but makes it easier for a human operator to search, sort, or otherwise make sense of the affective terms database (e.g., the name field could be used as a key), and may actually be used functionally in more general mood management.
  • the flowchart 400 continues to module 408 where the record is set as a root node in an affective terms tree.
  • the record may or may not include a parent pointer field, but since the record is associated with a high-level affective term, it is assumed for illustrative purposes that the record does not have a parent, and therefore if a parent pointer field is present, its value is null or an equivalent value indicative of the fact that the record is a root node. It is also plausible that high-level affective terms and lower- level affective terms could have records that do not have the same fields, making a parent pointer non-critical for a high-level affective term.
  • parent pointer field need not be a pointer in the computer programming sense of the word, and could simply be the name of another record that has an affective term that is higher level than the current record.
  • the phrase "affective terms tree” may or may not be a tree data structure in the computer programming sense, and could instead be a tree data structure in a more conceptual sense.
  • the flowchart 400 continues to module 410 where content associations are formed with the record.
  • Content association is useful to enable prioritization of content for a user based upon the mood(s) of a user. It is possible to implement the system such that content is explicitly associated with an affective term (and thereby obviate the need for a content association field in the record itself).
  • the implementation chosen for illustrative purposes in this specification assumes that records associated with affective terms are linked to content. That way, the content can be used in an unmodified format (i.e., without changing meta-data or providing additional data in association with the content).
  • the content association could be direct (e.g., by listing content that is associated with the affective term) or indirect (e.g., by listing providers of content that are associated with content of a certain character).
  • some content may naturally include data that is useful for deriving mood, such as an MPAA rating on movies, and associated description. This can be used in lieu of or in addition to the content association of a record in the affective terms database.
  • the flowchart 400 continues to module 412 where a translation list is generated for the affective term.
  • the translation list could include synonyms for the affective term associated with the record and/or translations of the affective term to other languages.
  • the field could actually be implemented as a linked list or array or multiple fields of linked lists or arrays.
  • the translation list field is optional.
  • the flowchart 400 continues to module 414 where the record is enabled.
  • a simple way to enable a record is with an enablement flag.
  • the enablement flag is simply a flag that can be on (enabled) or off (disabled).
  • the enablement flag When the enablement flag is set, the affective term can be used to facilitate prioritization of content for a user.
  • the enablement flag could also be a linked list or array of flags, each associated with a different context. For example, an affective term might be useful for one type of content (e.g., movies), but less useful for other types of content (e.g., music).
  • the enablement flag is optional, and similar functionality could be implemented outside of the affective terms database.
  • a user profile might implicitly enable or disable records based upon preferences or behavior, without explicitly modifying the record associated with the affective term in the affective terms database. If there is no enablement flag, the record is presumably enabled simply by virtue of being added to the affective terms database, making the module 414 inherent in the affective terms management process.
  • the flowchart 400 continues to decision point 416 where it is determined whether to add more high-level affective terms to the affective terms database. If it is determined to add more high-level affective terms to the affective terms database (416-Y), then the flowchart 400 returns to module 404 and continues as described above. If, on the other hand, it is determined no to add more high-level affective terms to the affective terms database (416-N), then the flowchart 400 ends and the affective terms database has an entry for every high-level affective term. This process could be on-going in the sense that the affective terms database could be used, and later an additional high- level affective terms added. Also, it could be the case that high-level affective terms are deleted or disabled, and lower-level affective terms promoted to high-level affective terms.
  • FIG. 5 depicts a flowchart of an example of a lower-level affective terms management process.
  • the flowchart 500 starts at module 502 where root nodes for affective terms trees are provided.
  • the root nodes may be generated in any convenient manner, one example of which is described with reference to FIG. 4.
  • the flowchart 500 continues to module 504 where an affective term is provided to add to an affective terms tree.
  • the affective term may be associated with a more subtle mood than is associated with the root node of the affective terms tree, but could also be a synonym or variation. In any case, it is the designation of the root node as higher in the affective terms tree that makes it a "high-level affective term” and the designation of child nodes as lower in the affective terms tree that makes them "lower-level affective terms.” It may be noted that the providing an affective term could be inherent in adding a record to the database (module 506) or setting the record as a child node in the affective terms tree (module 508).
  • the flowchart 500 continues to module 506 where a record associated with the affective term is added to an affective terms database.
  • the record can include, for example, a name field (e.g., the affective term), a parent pointer field, a translation list field, a content association field, and an enablement flag.
  • the name field is optional, but can make it easier for a human operator to search, sort, or otherwise make sense of the affective terms database.
  • the flowchart 500 continues to module 508 where the record is set as a child node in the affective terms tree.
  • the record may or may not include a parent pointer field, but since the record is associated with a lower-level affective term, it is assumed for illustrative purposes that the record has a parent, and therefore if a parent pointer field is present, its value points to the parent node or an equivalent value indicative of the fact that the record is a child node.
  • the parent pointer field need not be a pointer in the computer programming sense of the word, and could simply be the name of another record that has an affective term that is higher level than the current record.
  • the child node need not be a leaf node. For example, if a first record to be added has an affective term that is intended to be lower level than the affective term of the root node, but higher level than the affective term of a second record, then a parent pointer of the second record could be modified to point to the newly added first record.
  • the new record could also be intended as a root node, which would mean the root node's parent pointer would be modified to point to the new record, but this is assumed to be a special case of the process described with reference to FIG. 4.
  • the flowchart 500 continues to module 510 where content associations are formed with the record.
  • the content associations can be similar to the content associations formed with high-level affective terms, as described with reference to FIG. 4.
  • the flowchart 500 continues to module 512 where a translation list is generated for the affective term.
  • the translation list can be similar to the translation lists generated with high-level affective terms, as described with reference to FIG. 4.
  • the flowchart 500 continues to module 514 where the record is enabled.
  • the enablement can be similar to the enablement of high- level affective terms, as described with reference to FIG. 4.
  • the flowchart 500 continues to decision point 516 where it is determined whether to add more lower-level affective terms to the affective terms database. If it is determined to add more lower-level affective terms to the affective terms database (516-Y), then the flowchart 500 returns to module 504 and continues as described above. If, on the other hand, it is determined no to add more lower-level affective terms to the affective terms database (516-N), then the flowchart 500 ends and the affective terms database has an entry for every affective term. This process could be on-going in the sense that the affective terms database could be used, and later an additional lower-level affective term added. Also, it could be the case that lower-level affective terms are deleted or disabled, and higher-level affective terms demoted to lower-level affective terms.
  • FIG. 6 depicts a flowchart of an example of an affective terms user preference identification process.
  • the flowchart 600 starts at module 602 where a database of affective terms is provided.
  • the database of affective terms can be created using any convenient method, an example of which is provided with reference to FIG. 4 and FIG. 5.
  • the flowchart 600 continues to module 604 where a database of affective term preferences for a user is provided.
  • User preferences can be input in any convenient manner by the user, and the preferences may or may not initially be null prior to a selection of an affective term.
  • the flowchart 600 continues to module 606 where a weight is assigned to an affective term.
  • affective terms are assigned weights when they are input into the database of affective terms.
  • the weights can be adjusted from their default value based upon activity associated with the affective term, regardless of any explicit preference by the user. For example, if an affective term is popular, it may be given greater weight before consideration is even given to individual user preferences. Higher-level affective terms may also be given greater weight than lower-level affective terms, or perhaps lower-level terms increase in weight as weights are assigned to ensure that at least some lower-level terms are displayed for a user. In any case, any convenient technique for assigning weights generally (i.e., without individual user preferences considered) can be employed.
  • the flowchart 600 continues to decision point 608 where it is determined whether the user has an explicit preference with respect to the affective term. If it is determined that the user has an explicit preference (608- Y), then the affective term is removed from consideration at module 610 and the flowchart 600 continues to decision point 614. There is no reason to display the affective term to the user if the user has already explicitly indicated that the affective term captures a mood of the user, or if the affective term fails to capture the mood of the user; in either case no further input is needed from the user.
  • the weight of the affective term is adjusted based upon implicit preferences of the user at module 612 and the flowchart 600 continues to decision point 614.
  • implicit preferences can be unknown, in which case it is likely (though not necessarily the case) that the weight associated with the affective term would be unchanged.
  • implicit preferences are known (e.g., because the user likes content strongly associated with an affective term, because the user has explicitly selected a higher-level affective term, or for some other reason) the weight of the affective term can be increased for a positive implicit preference or decreased for a negative implicit preference.
  • the flowchart 600 continues to decision point 614 where it is determined whether there are more affective terms to consider. If it is determined that there are additional affective terms to consider (614-Y), then the flowchart 600 returns to module 606 and continues as described previously for a next affective term. If, on the other hand, it is determined that there are no more affective terms to consider (614-N), then presumably the database of affective terms has been considered adequately. It should be noted that an "adequate" consideration does not necessarily mean that every affective term was actually considered.
  • the affective terms database is consulted until a random, arbitrary, or predetermined number of appropriately weighted affective terms have been found, in which case, at decision point 614, it would be determined that there are no more affective terms to consider even though some affective terms were not, in fact, considered.
  • the flowchart 600 continues to module 616 where affective terms are prioritized.
  • the prioritization is based on an algorithmic analysis of the weights of the affective terms. It should be noted that weight alone may not determine priority. For example, it may be determined that the most heavily weighted affective terms are all high-level affective terms, but the rules require some high-level and some more subtle affective terms.
  • the flowchart 600 continues to module 618 where affective terms are displayed. A subset of the affective terms with the highest priority is displayed. The affective terms can be displayed in order of priority or in some other randomized or arbitrary manner. For example, higher priority affective terms could be displayed in larger font than lower priority affective terms.
  • the flowchart 600 continues to decision point 620 where it is determined whether an affective term selection is made. If it is determined that an affective term selection is made (620- Y), then the flowchart 600 continues to module 622 where the preference is recorded, whether positive or negative, and the flowchart 600 returns to module 604 and continues from there as described previously. If, on the other hand, it is determined that an affective term selection is not made (620-N), then the flowchart 600 ends. Presumably, all affective term selections have been received.
  • This process could be on-going in the sense that the user could come back later to make a selection, which may entail starting at module 618 to redisplay the previously prioritized affective terms, or starting somewhere else in the flowchart 600 if the affective term prioritization was not saved (or for any other case- or implementation-specific reason).
  • FIG. 7 depicts a flowchart of an example of mood-associated content prioritization for display to a user.
  • the flowchart 700 starts at module 702 where mood- associated content is prioritized using affective terms, affective terms preferences for a user, content significance, and user behavior.
  • affective terms affective terms preferences for a user
  • content significance e.g., a percentage of user behavior
  • user behavior e.g., a user's behavior
  • one or more of the factors may not be considered. For example, it might be the case that no user behavior has been recorded for a user. As another example, content significance might not be included in a particular implementation.
  • the flowchart 700 continues to module 704 where links to the mood-associated content are displayed in such a way that higher-prioritized content is more readily available. This may include making some content unavailable because it has a negative mood-association for the user, or because there is too much higher-priority content available for the user.
  • the display should be in a form that is convenient for the user.
  • the flowchart 700 continues to module 706 where user behavior is recorded with respect to the content. For example, if the user plays content, then that fact is recorded. If the user ranks or recommends content, or if the user indicates no interest in content, that can be recorded, as well. If the user acts like other users who have specific preferences, that can be used, as well.
  • the flowchart 700 returns to module 702, and continues as described previously. In this way, mood-associated content prioritization can improve over time as additional user behavior is learned.
  • incorporating a user's mood into a recommendation engine allows more fine-tuned categories and rankings. For example, consider the following table:
  • MH mood hits
  • FH score can be calculated, by way of example but not limitation, by counting one point for each show in a user's profile that is of the same network, then divide by the total number of shows available on that network. While this example refers to a "network" the concept can be generally applied to any content grouping (e.g., station, URL, etc.)
  • the FH factor is relevant to rankings in any category.
  • the MH and FH factors are all that are needed. For other categories, other ranking factors may be considered. For example, Mood Recommendations may be made using the MH and FH factors, plus popularity. Popularity can be based upon the number of times content is played by anyone on the system, or it can be more focused to specific types of users that are similar to a user in question.
  • shows and networks recommended by friends it may be desirable to include in the ranking how recently the recommendation is made.
  • shows and networks that are internally prioritized e.g., the system has a preference toward or against
  • the priority assigned to the show or network by the system can be included.
  • popular content as with mood recommendations, popularity should obviously be considered. In this case, popularity will be more heavily weighted than MH and FH, whereas with mood recommendations, MH and FH were more heavily weighted.
  • An example of an output of a ranking system is an ordered set of rank associations, where the rank is a floating-point value between 0 and 1 calculated using the formula:
  • FIG. 8 depicts a flowchart of an example of a process for using ranking factors to generate a displayed set of items for a user according to user mood and other factors.
  • the flowchart 800 starts at module 802 where a first ranking factor is determined for an item using one or more terms selected by a user.
  • the item which can include a web object that represents media content and/or network, can be prioritized among a set of items using the terms that are selected by the user to specify user mood.
  • the user can select the terms from a selection cloud such as that shown via a web interface depicted in the screenshot of FIG. 9A and/or drop down box of FIG. 1OC.
  • the terms can include affective terms and/or genre-related terms and are typically used by a user to indicate mood.
  • the selection cloud can be populated with a combination of high- level terms and subtle terms.
  • the flowchart 800 continues to module 804 where a second ranking factor for the item is determined based on identified matches with explicit preferences for content or network that is specified by the user.
  • the explicit preferences include a selection of preferred media content and/or preferred broadcast networks.
  • the user can explicitly indicate preferences for content or network through the web interface such as those illustrated in the examples of FlG. 9B/9C and drop down boxes of FIG. lOC-lOD.
  • a third ranking factor for the item is determined based on popularity among multiple users.
  • the item is ranked for prioritization among the set of items using the first, second, and third factors.
  • multiple rankings are generated for the set of items using different ranking algorithms that employ one or more of the first, second, and/or third ranking factors.
  • the different algorithms vary in the weights assigned to each of the ranking factors, which may be zero, indicating one or more of the factors that are not used in the ranking.
  • the multiple rankings for the set of items can be provided as rankings for the set of items in multiple categories (e.g., mood-based, popularity based, collaborative filter-based, etc.)
  • the displayed set of items are generated by selecting one or more items from the multiple categories and removing duplicate items.
  • each category of item rankings may be assigned a categorical weight.
  • the displayed set of items may be selected from the multiple categories using the categorical weights.
  • a backup set of items may be optionally generated, also using the categorical weights assigned to the various categories. The backup items may be used to re-populate the displayed set when items are discarded by the user.
  • FlG. 9A illustrates an example user interface 900 showing a selection cloud having terms including affective terms and/or genre-related terms from which users can select to specify user mood.
  • FIG. 9B illustrates an example user interface 910 showing a selection cloud having content (e.g., TV shows) from which users can select as preferred content.
  • FIG. 9C illustrates an example user interface showing a selection cloud 920 having networks (e.g., TV channels or networks) from which users can select as preferred.
  • networks e.g., TV channels or networks
  • the example user interface 900 is the front end user interface.
  • the interface 900 can include a tabbed panel including options for a user to specify preferences for "Mood", "Shows", and "Networks”.
  • the interface 900 depicts an example of the selection cloud for "Moods” when the tab 902 is selected.
  • the interface 910 depicts an example of the selection cloud for "Shows” when the tab 904 is selected.
  • the interface 920 depicts an example of the selection cloud for "Networks” when the tab 906 is selected.
  • the selection clouds shown in interfaces 900, 910, and 920 include lists of suggested terms for the user to select from and the preferences lists 912, 914, and 916 include the user's selections.
  • An item in the cloud can be added to the list and removed from the cloud when clicked on or otherwise selected by the user.
  • the preferences lists 912, 914, and 916 can order the selections in the order they were selected by the user.
  • the user can also remove the items in the lists 912, 914, and 916. For example, the user can hover over an item in a list and an option to remove that item can be displayed. Removed items from the lists 912, 914, and 916 may or may not be placed back into the selection cloud.
  • the affective terms in the selection cloud when the mood tab 902 is selected can initially be populated with mostly high-level moods and some subtle moods. If the user has previously selected terms, the selected terms can be used in identifying the terms to populate the selection clouds. If no terms have been previously selected, the terms used to populate the selection clouds can be selected according to other metrics including but not limited to, popularity among users, editorial significance, the user's implicit preferences, priority, and/or additional factors.
  • the terms depicted in each of the clouds associated with each tab illustrated in the examples of FIG. 9A-9C remain static between tab changes initiated by the user.
  • the user may explicitly change (“shuffle") the contents of each or any of the selection clouds to access a different set of terms. If the content of the clouds are shuffled, any selections present in the preference list can be used to prioritize relevant choices when selecting a new set of terms to be depicted in the clouds.
  • the guide page can be populated with content and/or networks according to other metrics including but not limited to, popularity among users, editorial significance, the user's implicit preferences, priority, and/or additional factors.
  • FIG. 9D illustrates an example user interface 930 showing a displayed set of items selected for a user according to user mood.
  • the selected items can be displayed in a grid of tiles displaying available content and/or network choices that are determined as being relevant to the user.
  • Each item e.g., a tile
  • a selection of a network tile can cause shows of that network to be displayed to the user.
  • a selection of a show tile for an episodic show may cause episodes of the show to be displayed.
  • a show with multiple seasons can be represented with one tile for each season.
  • new content including shows or networks that have become newly available since the user's last visit can be identified as such, for example, via a "NEW" graphic icon associated with the corresponding tile.
  • email notifications can be used to notify users of newly added content (e.g., new episodes of favorite shows, new shows that match the user's mood, etc.).
  • the tiles can be associated with additional functions.
  • the user can have the option of discarding tiles, adding tiles to the user's profile (e.g.., to select as favorite or preferred), to play the episode, or to access information about the show, episode, or network. Icons to these additional functions can be displayed, for example, when the user hovers the mouse over the tile.
  • a syndication overlay can be opened when the user selects and episode or show for viewing.
  • FIG. 10A-D illustrate additional examples of user interfaces showing call-out boxes with shows, moods, and networks for a user to select for use by the system in selecting a displayed set of items.
  • the user can select from to "add a show” 1002, "add a mood” 1004, and "add a network” 1006. Examples of detailed items listed in each of the drop down boxes for tabs 1002, 1004 and 1006, respectively, are illustrated in FIG. lOB-D.
  • the items prioritized by the system are displayed in a grid of tiles.
  • the grid of tiles can include a combination of the user's explicitly selected networks and/or content (e.g., shows or other types of media content), recommendations selected based on rankings computed according to the user's mood or other factors including but not limited to, content significance (e.g., editorial significance, network priority), popularity, recommendations by others, etc.
  • Tiles for contents can be displayed in the upper rows while the network tiles can be displayed in the lower rows and the configuration can be adjustable by a system administrator. The arrangement of tiles can be arranged alphabetically. In general, when a tile has been previously discarded by a user is not re-used to populate the displayed set.
  • the displayed results can be filtered to reflect the subset that is relevant to the selected item. For example, if the user has selected moods "action” and “romantic”, if the user then clicks on "action”, the displayed set can be filtered such that only the content or networks relevant to "action" content are displayed to the user.
  • FIG. 11 shows a diagrammatic representation of a machine in the example form of a computer system 1100 within which a set of instructions, for causing the machine to perform any one or more of the methodologies discussed herein, may be executed.
  • the computer system 1100 includes a processor, memory, non- volatile memory, and an interface device. Various common components (e.g., cache memory) are omitted for illustrative simplicity.
  • the computer system 1100 is intended to illustrate a hardware device on which any of the components depicted in the example of FIG. 1 (and any other components described in this specification) can be implemented.
  • the computer system 1100 can be of any applicable known or convenient type.
  • the components of the computer system 1100 can be coupled together via a bus or through some other known or convenient device.
  • the processor may be, for example, a conventional microprocessor such as an Intel Pentium microprocessor or Motorola power PC microprocessor.
  • Intel Pentium microprocessor or Motorola power PC microprocessor.
  • machine-readable (storage) medium or “computer-readable (storage) medium” include any type of device that is accessible by the processor.
  • the memory is coupled to the processor by, for example, a bus.
  • the memory can include, by way of example but not limitation, random access memory (RAM), such as dynamic RAM (DRAM) and static RAM (SRAM).
  • RAM random access memory
  • SRAM static RAM
  • the memory can be local, remote, or distributed.
  • the bus also couples the processor to the non-volatile memory and drive unit.
  • the non-volatile memory is often a magnetic floppy or hard disk, a magnetic-optical disk, an optical disk, a read-only memory (ROM), such as a CD-ROM, EPROM, or EEPROM, a magnetic or optical card, or another form of storage for large amounts of data. Some of this data is often written, by a direct memory access process, into memory during execution of software in the computer 1100.
  • the non- volatile storage can be local, remote, or distributed.
  • the non- volatile memory is optional because systems can be created with all applicable data available in memory.
  • a typical computer system will usually include at least a processor, memory, and a device (e.g., a bus) coupling the memory to the processor.
  • Software is typically stored in the non- volatile memory and/or the drive unit.
  • a software program is assumed to be stored at any known or convenient location (from non-volatile storage to hardware registers) when the software program is referred to as “implemented in a computer-readable medium.”
  • a processor is considered to be “configured to execute a program” when at least one value associated with the program is stored in a register readable by the processor.
  • the bus also couples the processor to the network interface device.
  • the interface can include one or more of a modem or network interface. It will be appreciated that a modem or network interface can be considered to be part of the computer system 1100.
  • the interface can include an analog modem, isdn modem, cable modem, token ring interface, satellite transmission interface (e.g. "direct PC"), or other interfaces for coupling a computer system to other computer systems.
  • the interface 208 can include one or more input and/or output devices.
  • the I/O devices can include, by way of example but not limitation, a keyboard, a mouse or other pointing device, disk drives, printers, a scanner, and other input and/or output devices, including a display device.
  • the display device can include, by way of example but not limitation, a cathode ray tube (CRT), liquid crystal display (LCD), or some other applicable known or convenient display device.
  • CTR cathode ray tube
  • LCD liquid crystal display
  • controllers of any devices not depicted in the example of FIG. 11 reside in the interface.
  • the computer system 1100 can be controlled by operating system software that includes a file management system, such as a disk operating system.
  • a file management system such as a disk operating system.
  • operating system software with associated file management system software is the family of operating systems known as Windows® from Microsoft Corporation of Redmond, Washington, and their associated file management systems.
  • Windows® from Microsoft Corporation of Redmond, Washington
  • Linux operating system and its associated file management system is the Linux operating system and its associated file management system.
  • the file management system is typically stored in the non-volatile memory and/or drive unit and causes the processor to execute the various acts required by the operating system to input and output data and to store data in the memory, including storing files on the non- volatile memory and/or drive unit.
  • the machine operates as a standalone device or may be connected (e.g., networked) to other machines.
  • the machine may operate in the capacity of a server or a client machine in a client-server network environment, or as a peer machine in a peer-to-peer (or distributed) network environment.
  • the machine may be a server computer, a client computer, a personal computer (PC), a tablet PC, a laptop computer, a set-top box (STB), a personal digital assistant (PDA), a cellular telephone, an iPhone, a Blackberry, a processor, a telephone, a web appliance, a network router, switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine.
  • PC personal computer
  • PDA personal digital assistant
  • machine-readable medium or machine-readable storage medium is shown in an exemplary embodiment to be a single medium, the term “machine-readable medium” and “machine-readable storage medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions.
  • the term “machine- readable medium” and “machine-readable storage medium” shall also be taken to include any medium that is capable of storing, encoding or carrying a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the presently disclosed technique and innovation.
  • routines executed to implement the embodiments of the disclosure may be implemented as part of an operating system or a specific application, component, program, object, module or sequence of instructions referred to as "computer programs.”
  • the computer programs typically comprise one or more instructions set at various times in various memory and storage devices in a computer, and that, when read and executed by one or more processing units or processors in a computer, cause the computer to perform operations to execute elements involving the various aspects of the disclosure.
  • machine-readable storage media machine-readable media, or computer-readable (storage) media
  • recordable type media such as volatile and non-volatile memory devices, floppy and other removable disks, hard disk drives, optical disks (e.g., Compact Disk Read-Only Memory (CD ROMS), Digital Versatile Disks, (DVDs), etc.), among others, and transmission type media such as digital and analog communication links.
  • CD ROMS Compact Disk Read-Only Memory
  • DVDs Digital Versatile Disks
  • transmission type media such as digital and analog communication links.

Abstract

Systems and methods for prioritizing items presented to user according to user mood are disclosed. One embodiment includes, determining a first ranking factor for an item using terms selected by the user. The item can be prioritized for the user, using the terms selected by the user to specify the user mood. One embodiment further includes, determining a second ranking factor for the item based on identified matches with explicit preferences for content or network that is specified by the user, determining a third ranking factor for the item based on popularity among multiple users, ranking the item for prioritization among the set of items using the first, second, and third factors, and generating multiple rankings for the set of items using different ranking algorithms that employ the first, second, and third ranking factors, and generating the displayed set of items by selecting items from the multiple categories.

Description

PRIORITIZING ITEMS PRESENTED TO A USER ACCORDING TO USER
MOOD
CROSS-REFERENCE TO RELATED APPLICATION
[0001] This application claims priority to U.S. Provisional Patent Application No. 61/089,776 entitled "SYSTEM AND METHOD FOR A RECOMMENDATION ENGINE", which was filed on August 18, 2008, which is hereby incorporated by reference in its entirety.
BACKGROUND
[0002] Navigation through available entertainment media or other types of content such as broadcasted content has become a daunting task in the age of media proliferation. Shows broadcast over television networks are generally broadcast at set hours during the day and may not be identified by a potentially interested consumer or audience. For a lack of a better mechanism through which a consumer can easily determine and identify shows in which he/she is interested, a consumer's most likely exposure to television media content may be limited to word-of-mouth reputation of a particular show or network through friends or colleagues.
[0003] In addition, the consumer's exposure to shows or movies, may only be limited to content that is showing when the consumer is tuned in to the channel or network. Thus, many consumers routinely watch shows or networks that they are already familiar with.
Moreover, a consumer may change preferences for what they wish to view during different viewing sessions. However, using a regular TV listing channel, the consumer typically needs to review each individual listing during each viewing session to make an assessment of interest based solely on the description of the show or movie. BRIEF DESCRIPTION OF THE DRAWINGS
[0004] FIG. 1 illustrates a block diagram of client devices coupled to one another and a host server capable of managing moods to prioritize and select items that are to be presented to a user.
[0005] FIG. 2 depicts a block diagram illustrating a host server capable of using user moods to prioritize and select items that are to be presented to a user.
[0006] FIG. 3 depicts a block diagram illustrating a mood-based content prioritization engine in the host server.
[0007] FIG. 4 depicts a flowchart of an example of a high-level affective terms management process.
[0008] FIG. 5 depicts a flowchart of an example of a lower-level affective terms management process.
[0009] FIG. 6 depicts a flowchart of an example of an affective terms user preference identification process.
[0010] FIG. 7 depicts a flowchart of an example of mood-associated content prioritization for display to a user.
[0011] FIG. 8 depicts a flowchart of an example of a process for using ranking factors to generate a displayed set of items for a user according to user mood and other factors.
[0012] FIG. 9 A illustrates an example user interface showing a selection cloud having terms including affective terms and/or genre-related terms from which users can select to specify user mood.
[0013] FIG. 9B illustrates an example user interface showing a selection cloud having content (e.g., TV shows) from which users can select as preferred.
[0014] FIG. 9C illustrates an example user interface showing a selection cloud having networks (e.g., TV channels or networks) from which users can select as preferred.
[0015] FIG. 9D illustrates an example user interface showing a displayed set of items selected for a user according to user mood.
[0016] FIG. 10A-D illustrate additional examples of user interfaces showing call-out boxes with shows, moods, and networks for a user to select for use by the system in selecting a displayed set of items.
[0017] FIG. 11 shows a diagrammatic representation of a machine in the example form of a computer system within which a set of instructions, for causing the machine to perform any one or more of the methodologies discussed herein, may be executed.
DETAILED DESCRIPTION
[0018] The following description and drawings are illustrative and are not to be construed as limiting. Numerous specific details are described to provide a thorough understanding of the disclosure. However, in certain instances, well-known or conventional details are not described in order to avoid obscuring the description. References to one or an embodiment in the present disclosure can be, but not necessarily are, references to the same embodiment; and, such references mean at least one of the embodiments.
[0019] Reference in this specification to "one embodiment" or "an embodiment" means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the disclosure. The appearances of the phrase "in one embodiment" in various places in the specification are not necessarily all referring to the same embodiment, nor are separate or alternative embodiments mutually exclusive of other embodiments. Moreover, various features are described which may be exhibited by some embodiments and not by others. Similarly, various requirements are described which may be requirements for some embodiments but not other embodiments.
[0020] The terms used in this specification generally have their ordinary meanings in the art, within the context of the disclosure, and in the specific context where each term is used. Certain terms that are used to describe the disclosure are discussed below, or elsewhere in the specification, to provide additional guidance to the practitioner regarding the description of the disclosure. For convenience, certain terms may be highlighted, for example using italics and/or quotation marks. The use of highlighting has no influence on the scope and meaning of a term; the scope and meaning of a term is the same, in the same context, whether or not it is highlighted. It will be appreciated that same thing can be said in more than one way.
[0021] Consequently, alternative language and synonyms may be used for any one or more of the terms discussed herein, nor is any special significance to be placed upon whether or not a term is elaborated or discussed herein. Synonyms for certain terms are provided. A recital of one or more synonyms does not exclude the use of other synonyms. The use of examples anywhere in this specification including examples of any terms discussed herein is illustrative only, and is not intended to further limit the scope and meaning of the disclosure or of any exemplified term. Likewise, the disclosure is not limited to various embodiments given in this specification.
[0022] Without intent to further limit the scope of the disclosure, examples of instruments, apparatus, methods and their related results according to the embodiments of the present disclosure are given below. Note that titles or subtitles may be used in the examples for convenience of a reader, which in no way should limit the scope of the disclosure. Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure pertains. In the case of conflict, the present document, including definitions will control.
[0023] Embodiments of the present disclosure include systems and methods for prioritizing items presented to a user according to user mood.
[0024] FIG. 1 illustrates a block diagram of client devices 102 A-N coupled to one another and a host server 100 capable of managing moods to prioritize and select items that are to be presented to a user.
[0025] The client devices 102 A-N can be any system and/or device, and/or any combination of devices/systems that is able to establish a connection with another device, a server and/or other systems. The client devices 102A-N typically include display or other output functionalities to present data exchanged between the devices to a user. For example, the client devices and content providers can be, but are not limited to, a server desktop, a desktop computer, a computer cluster, a mobile computing device such as a notebook, a laptop computer, a handheld computer, a mobile phone, a smart phone, a PDA, a Blackberry device, a Treo, and/or an iPhone, etc. In one embodiment, the client devices 102 A-N are coupled to a network 106. In some embodiments, the client devices may be directly connected to one another.
[0026] The network 106, over which the client devices 102A-N may be a telephonic network, an open network, such as the Internet, or a private network, such as an intranet and/or the extranet. For example, the Internet can provide file transfer, remote log in, email, news, RSS, and other services through any known or convenient protocol, such as, but is not limited to the TCP/IP protocol, Open System Interconnections (OSI), FTP, UPnP, iSCSI, NSF, ISDN, PDH, RS-232, SDH, SONET, etc. [0027] The network 106 can be any collection of distinct networks operating wholly or partially in conjunction to provide connectivity to the client devices, host server, and may appear as one or more networks to the serviced systems and devices. In one embodiment, communications to and from the client devices 102A-N can be achieved by, an open network, such as the Internet, or a private network, such as an intranet and/or the extranet. In one embodiment, communications can be achieved by a secure communications protocol, such as secure sockets layer (SSL), or transport layer security (TLS).
[0028] The term "Internet" as used herein refers to a network of networks that uses certain protocols, such as the TCP/IP protocol, and possibly other protocols such as the hypertext transfer protocol (HTTP) for hypertext markup language (HTML) documents that make up the World Wide Web (the web). Content is often provided by content servers, which are referred to as being "on" the Internet. A web server, which is one type of content server, is typically at least one computer system which operates as a server computer system and is configured to operate with the protocols of the World Wide Web and is coupled to the Internet. The physical connections of the Internet and the protocols and communication procedures of the Internet and the web are well known to those of skill in the relevant art. For illustrative purposes, it is assumed the network 106 broadly includes anything from a minimalist coupling of the components illustrated in the example of FIG. 1, to every component of the Internet and networks coupled to the Internet.
[0029] In addition, communications can be achieved via one or more wireless networks, such as, but is not limited to, one or more of a Local Area Network (LAN), Wireless Local Area Network (WLAN), a Personal area network (PAN), a Campus area network (CAN), a Metropolitan area network (MAN), a Wide area network (WAN), a Wireless wide area network (WWAN), Global System for Mobile Communications (GSM), Personal Communications Service (PCS), Digital Advanced Mobile Phone Service (D-Amps), Bluetooth, Wi-Fi, Fixed Wireless Data, 2G, 2.5G, 3G networks, enhanced data rates for GSM evolution (EDGE), General packet radio service (GPRS), enhanced GPRS, messaging protocols such as, TCP/IP, SMS, MMS, extensible messaging and presence protocol (XMPP), real time messaging protocol (RTMP), instant messaging and presence protocol (IMPP), instant messaging, USSD, IRC, or any other wireless data networks or messaging protocols.
[0030] The client devices 102 A-N can be coupled to the network (e.g., Internet) via a dial up connection, a digital subscriber loop (DSL, ADSL), cable modem, and/or other types of connection. Thus, the client devices 102A-N can communicate with remote servers (e.g., web server, host server, mail server, and instant messaging server) that provide access to user interfaces of the World Wide Web via a web browser, for example.
[0031] The user repository/user behavior repository 128 and content significance repository 130 can store software, descriptive data, images, system information, drivers, and/or any other data item utilized by parts of the host server 100 for operation. The repositories 128 and 130 may also store user information and user content, such as, user profile information, user preferences, content information, network information, etc. The repositories 128 and 130 may be managed by a database management system (DBMS), for example but not limited to, Oracle, DB2, Microsoft Access, Microsoft SQL Server, PostgreSQL, MySQL, FileMaker, etc.
[0032] The repositories 128 and 130 can be implemented via object-oriented technology and/or via text files, and can be managed by a distributed database management system, an object-oriented database management system (OODBMS) (e.g., ConceptBase, FastDB Main Memory Database Management System, JDOInstruments, ObjectDB, etc.), an object-relational database management system (ORDBMS) (e.g., Informix, OpenLink Virtuoso, VMDS, etc.), a file system, and/or any other convenient or known database management package. An example set of data to be stored in the repositories 128 and 130 is further described with reference to FIG. 2.
[0033] The host server 100 is, in some embodiments, able to communicate with client devices 102A-N via the network 106. In addition, the host server 100 is able to retrieve data from the user repository/user behavior repository 128 and the content significance repository 130.
[0034] The host server 100 can be implemented on a known or convenient computer system, such as is illustrated in FIG. 11. The host server 100 may or may not include a content server, though it is depicted as a distinct component in the example of FIG. 1 for illustrative clarity. The host server 100 is described in more detail with reference to FIG. 2-3.
[0035] The content servers 108 are coupled to the network 106. The content servers 108 can be implemented on a known or convenient computer system, such as is illustrated in FIG. 11. The content servers 108 are intended to illustrate one content provider that has content (e.g., articles, images, movies, music, TV shows, etc.) associated with mood. There could be any number of content servers coupled to the network 106 that meet these criteria. The content servers 108 make content available to appropriately configured clients coupled to the network 106. The content may have any applicable known or convenient form (e.g., multimedia, text, executables, etc.), and may or may not be in appropriate form for delivery to a client through a browser (e.g., on web pages). The content servers 108 are coupled to the network 106. Users of appropriately configured client computer systems can obtain content, through any applicable known or convenient interface, from the content servers 108.
[0036] In the example of FIG. 1, in operation, the host server 100 facilitates content preferences and personalization based upon, for example, the moods of users of the client devices 102. The host server 100 can prioritize, select, rank, and/or preferentially display content and/or broadcast networks that are provided to the client devices 102 from the content servers 108.
[0037] FIG. 2 depicts a block diagram illustrating a host server 200 capable of using user moods to prioritize and select items that are to be presented to a user. The host server 200 can include a user behavior repository 228, and/or a content significance database 230. The host server 200 may be communicatively coupled to the user behavior repository 228 and/or the content significance repository 230 as illustrated in FIG. 2. In some embodiments, the user behavior repository 228 and/or the content significance repository 230 are partially or wholly internal to the host server 200.
[0038] In the example of FIG. 2, the host server 200 includes a network interface 202, a categorical ranking engine 204, display selection engine 206, a navigation panel 208, a mood-based content prioritization engine 250, a content/network preferences engine 260, and/or a content/network significance engine 270. The mood-based content prioritization engine 250 is described with further reference to the example of FIG. 3.
[0039] In the example of FIG. 2, the network controller 202 can be one or more networking devices that enable the host server 200 to mediate data in a network with an entity that is external to the host server, through any known and/or convenient communications protocol supported by the host and the external entity. The network controller 202 can include one or more of a network adaptor card, a wireless network interface card, a router, an access point, a wireless router, a switch, a multilayer switch, a protocol converter, a gateway, a bridge, bridge router, a hub, a digital media receiver, and/or a repeater.
[0040] A firewall, can, in some embodiments, be included to govern and/or manage permission to access/proxy data in a computer network, and track varying levels of trust between different machines and/or applications. The firewall can be any number of modules having any combination of hardware and/or software components able to enforce a predetermined set of access rights between a particular set of machines and applications, machines and machines, and/or applications and applications, for example, to regulate the flow of traffic and resource sharing between these varying entities. The firewall may additionally manage and/or have access to an access control list which details permissions including for example, the access and operation rights of an object by an individual, a machine, and/or an application, and the circumstances under which the permission rights stand.
[0041] Other network security functions can be performed or included in the functions of the firewall, can be, for example, but are not limited to, intrusion-prevention, intrusion detection, next-generation firewall, personal firewall, etc. without deviating from the novel art of this disclosure. In some embodiments, the functionalities of the network interface 202 and the firewall are partially or wholly combined and the functions of which can be implemented in any combination of software and/or hardware, in part or in whole.
[0042] One embodiment of the host server 200 includes a mood-based content prioritization engine 250. The mood-based content prioritization engine 250 can be implemented, example, as software embodied in a computer-readable medium or computer-readable storage medium on a machine, in firmware, in hardware, in a combination thereof, or in any applicable known or convenient device or system. This and other engines described in this specification are intended to include any machine, manufacture, or composition of matter capable of carrying out at least some of the functionality described implicitly, explicitly, or inherently in this specification, and/or carrying out equivalent functionality.
[0043] The mood-based content prioritization engine 250 can be any combination of hardware components and/or software agents able to prioritize or rank content for a user based on his/her specified user moods. In one embodiment, the user indicates moods by selecting or specifying terms representative of emotions, genre, and/or category that can be associated with content. For example, the terms can include affective terms and/or genre- related terms. The mood-based content prioritization engine 250 can use the user-specified terms or user-selected terms to identify content (e.g., media content, movies, music, TV series, images, articles, etc.) that is associated with the user's mood preferences. In addition, the mood-based content prioritization engine 250 can rank the content according to relevance to the specified mood.
[0044] In one embodiment, mood-based content prioritization engine 250 further ranks networks or broadcasting networks for a user based on the specified user moods. The networks can include, for example, TV or radio channels or other types of broadcasting networks through which content is broadcast. For example, a network with a higher ranking or priority can include more content (e.g., shows) correlated with the user- specified moods. Networks and content be separated for ranking purposes. In addition, networks and content can be ranked together according to relevance to user moods.
[0045] To rank/prioritize content/networks based on mood associations, the mood-based content prioritization engine 250 can assign a ranking factor to content/network based on relevance with the user moods. The ranking factor can increase for content or network as the number of correlation with user moods increases. For example, the ranking factor can increase by one point for each mood that is common to the user's profile and the content and/or network in question. The factor can then be normalized by dividing by the sum of the total number of moods specified by the user. The mood-based content prioritization engine 250 is described with further detail in the example of FIG. 3.
[0046] One embodiment of the host server 200 includes the user behavior repository 228. In the example of FIG. 2, the user behavior repository 228 can be implemented, for example, as software embodied in a computer-readable medium or computer-readable storage medium on a machine, in firmware, in hardware, in a combination thereof, or in any applicable known or convenient device or system.
[0047] This and other repositories such as databases described in this specification are intended to include any organization of data, including tables, comma-separated values (CSV) files, traditional databases (e.g., MYSQL), or other applicable known or convenient organizational formats. Some repositories/databases may require database interfaces, which are assumed to be incorporated in the database or the component coupled to the database in this and other figures, if applicable.
[0048] The user behavior repository 228 can store user-behavior data for aggregate number of users to determine content/network popularity or data for a single user to determine individual preferences. The user -behavior data can include data about content that has been played, accessed, or viewed by a user and additional types about user preferences or content popularity. In addition, the user behavior repository can include explicit preferences for content or network that are specified by the user. In addition, the repository 228 can include content/network or identification of content/network that has been added to a favorites list or content/network that has been explicitly identified as not of interest. Moreover, any content/network that has been recommended by the user or to the user by another, etc. can be identified and/or indicated as such. User actions such as discards can also be tracked and stored.
[0049] In one embodiment, the host server 200 also aggregates counts of mood, show, and network selections among multiple users (e.g., to determine popularity) and/or for a single user. View of shows and/or episodes can also be tracked and stored in the user behavior repository 228. In addition, the system also tracks invitations, associated target emails, initiating users, and/or recommendations.
[0050] Any of this behavioral data can be used to elevate content to a higher priority, or to reduce content to a lower priority, than other content of equivalent interest based upon mood association. For example, behavioral data can be used in a weighted combination with user mood for ranking/prioritizing content and/or networks in selecting a set of items that are displayed to a user. In one embodiment, multiple sets of rankings for the items that represent content and/or networks can be generated using different ranking algorithms, for example.
[0051] One embodiment of the host server 200 includes a content/network preferences engine 260. The content/network preferences engine 260 can be implemented, example, as software embodied in a computer-readable medium or computer-readable storage medium on a machine, in firmware, in hardware, in a combination thereof, or in any applicable known or convenient device or system
[0052] The content/network preferences engine 260 can be any combination of hardware components and/or software agents able to provide data associated with explicit or implicit interest in content, examples of which were given above with reference to the user behavior database 218. In one embodiment, the content/network preferences engine 260 assigns a ranking factor to content/network based on identified matches with explicit preferences for content or network specified by the user. For example, the factor can be incremented for content or show that is broadcast by the same network. The factor can subsequently be normalized by the total number of shows available by that network.
[0053] Additionally, the user's implicit preferences and user recommendations for content and/or network can also be used by the content/network preferences engine 260 in ranking or prioritizing content or networks. Such implicit factors can be considered using the same ranking factor as for explicit preferences or using another ranking factor.
[0054] In one embodiment, the content/network preferences engine 260 also manages networks available for access by a user. For example, the engine 260 can enable or disable various networks. The engine 260 may further track network properties including but not limited to name, image of network, country of origin of the network, and/or countries of availability. In addition, each network may be associated with a priority rating or a popularity rating. In one embodiment, a user can import a list of networks from a file (e.g., a CSV file).
[0055] One embodiment of the host server 200 further includes a content significance repository 230. the content significance repository 230 can be implemented, for example, as software embodied in a computer-readable medium or computer-readable storage medium on a machine, in firmware, in hardware, in a combination thereof, or in any applicable known or convenient device or system.
[0056] The content significance repository 230 can include data relating to popularity, editorial significance, and network priority of content and/or networks. In addition, the repository 230 can store other data that can be used to generate factors to elevate content to a higher priority, or to reduce content to a lower priority.
[0057] For example, one embodiment of the host server 200 includes a content/network significance engine 270. The content/network significance engine 270 can be implemented, example, as software embodied in a computer-readable medium or computer-readable storage medium on a machine, in firmware, in hardware, in a combination thereof, or in any applicable known or convenient device or system
[0058] The content/network significance engine 270 can be any combination of hardware components and/or software agents able to rank and/or prioritize content according to content significance, examples of which were given above with reference to the repository 230. In one embodiment, the engine 270 can assign a ranking factor for content significance to be used alone or in conjunction with the other ranking factors for use in ranking/prioritizing content/networks for a user. For example, the engine 270 can determine a ranking factor for content/network based on popularity among multiple users.
[0059] One embodiment of the host server 200 further includes a categorical ranking engine 204. The categorical ranking engine 204 can be implemented, for example, as software embodied in a computer-readable medium or computer-readable storage medium on a machine, in firmware, in hardware, in a combination thereof, or in any applicable known or convenient device or system.
[0060] The categorical ranking engine 204 can be any combination of hardware components and/or software agents able to generate rankings for items that represent content and/or networks using ranking factors. A number of ranking algorithms that employ various ranking factors can be used to rank a set of items. In one embodiment, the ranking engine 204 is coupled to the moo-based content prioritization engine 250, the content/network preferences engine 260, and/or the content/network significance engine 270 and can use different algorithms that vary in weights assigned to various ranking factors to generate multiple rankings for the set of items.
[0061] Each of the multiple rankings can be provided as rankings for the items (e.g., content and/or network) for the set of items in multiple categories. For example, each category can use different ranking factors and/or assign different weights to each of the ranking factors. By way of example but not limitation, a first ranking factor for user mood, a second ranking factor for matches with explicit preferences, a third ranking factor for popularity, a fourth factor for implicit preferences and/or user recommendations can each be used along or in conjunction with one another in generating a ranking for the set of items.
[0062] Multiple sets of categorical ranking for one set of items can be generated by selecting different ranking factors or assigning different weights for the ranking factors. For example, one category of ranking (e.g., "User Favorites") could be biased towards the user's favorites and weighs the shows and networks explicit specified by the user more heavily. One category of ranking (e.g., "Mood Recommendations") can be biased towards the user's mood, and assigns higher weights to the ranking factors associated with user mood. Additionally, a category of ranking could be biased towards friend-based recommendations (e.g., "Collaborative Filtering"), system assigned priority (e.g., "Prioritized Content") or popularity among users (e.g., "Popular Content").
[0063] One embodiment of the host server 200 further includes a display selection engine 206. The display selection engine 206 can be implemented, for example, as software embodied in a computer-readable medium or computer-readable storage medium on a machine, in firmware, in hardware, in a combination thereof, or in any applicable known or convenient device or system.
[0064] In general, the display selection engine 206 can be any combination of hardware components and/or software agents able to select a set of items (e.g., items that represent content and/or networks) to be presented to a user based on one or more sets of categorical rankings. The items to be displayed or otherwise presented to the user can be selected from any number of categories of rankings. In one embodiment, the items are selected from the categories according to categorical weightings assigned to each category. The categorical weights determine the number of content/networks that are selected to be presented to the user from each categorical ranking. The weights can be assigned by the system administrator or optionally configurable by a user.
[0065] The displayed set of items is selected until a predetermined number of items are selected from each category. The number of items selected from each category can be determined based on the number of shows and the number of networks to be displayed in the display set multiplied by the assigned categorical weight. In one embodiment, any item that is a duplicate selected from different categorical rankings can be removed and replaced by selecting another item from the same category that produced the duplicate. The remaining items that exceed the number used to populate the displayed set can optionally be used in a backup set of items to be displayed, which can be used to repopulate the displayed set, for example, when a user discards an item in the displayed set.
[0066] The selected items can be displayed in any order. In addition, the display selection engine 206 can adjust the rankings of the items selected for the display set to determine presentation priority in a navigator panel, which is described below. For example, the duplicate items can be ranked higher in the display set since they were selected on multiple instances from different categorical rankings. The rankings of the items in the display set can be adjusted using normalize-weighted sum of all ranking scores from the duplicate items. In one embodiment, the item rankings in the final display are used to sort the order in which the items are displayed. The items in the backup set can also be sorted in the navigator panel according to the adjusted ranking scores.
[0067] In the example of FIG. 2, the navigator panel data structure 208 can be implemented, for example, as software embodied in a computer-readable medium or computer-readable storage medium on a machine, in firmware, in hardware, in a combination thereof, or in any applicable known or convenient device or system.
[0068] The navigator panel data structure 208 includes items or objects that correspond to prioritized content and/or networks that are selectable by a user. A convenient structure for the navigator panel is a web page or a portion of a web page with thumbnail, hypertext, or customized links to the content, or the content itself, presented thereon. However, any applicable known or convenient structure can be used. The prioritized content and/or networks can be selected by the display selection engine 206. The order in which the content and/or networks are displayed can be determined according to the adjusted ranking determined by the display selection engine 206.
[0069] Links to the content, or the content itself, is then displayed in the navigator panel data structure 208. The media content represented by the item or object can include a television series show and the object can include one or more links. For example, when the object is selected, links to episodes of a television show may be displayed and selected by a user for accessing, viewing, or otherwise obtaining for information about the television show. In addition, the item or object can represent a network or broadcast network such as a television channel. When the object is selected, links to content broadcast by the selected network can be displayed to the user and selected for accessing or viewing media content broadcast by the network, obtaining additional information about the network, or shows.
[0070] The components of the host server 200 are a functional unit that may be divided over multiple computers and/or processing units. Furthermore, the functions represented by the devices can be implemented individually or in any combination thereof, in hardware, software, or a combination of hardware and software. Different and additional hardware modules and/or software agents may be included in the host server 200 without deviating from the spirit of the disclosure.
[0071] FIG. 3 depicts a block diagram illustrating a mood-based content prioritization engine 350.
[0072] The mood-based content prioritization engine 350 includes a terms repository 302, a terms management engine 304, a terms preferences repository 306, a terms provisioning engine 308, a selection cloud data structure 310, a terms selection engine 312, a mood- associated content repository 314, and/or a ranking engine 320. Additional or less modules can be included in the engine 350.
[0073] In the example of FIG. 3, the terms repository 302 can be implemented, for example, as software embodied in a computer-readable medium or computer-readable storage medium on a machine, in firmware, in hardware, in a combination thereof, or in any applicable known or convenient device or system.
[0074] The terms repository 302 can be used to store terms that can be selected by users to indicate one or more user moods. The terms can include, by way of example, not limitation, affective terms (e.g., humor, happy, scared, etc.) that correspond to human emotions that can be experienced by a user in accessing the content and/or genre-related terms (e.g., '90's, '70's, family/kid friendly, comics, etc.) that correspond to categories within which media content falls.
[0075] In the example of FIG. 3, the terms management engine 304 can be implemented, for example, as software embodied in a computer-readable medium or computer-readable storage medium on a machine, in firmware, in hardware, in a combination thereof, or in any applicable known or convenient device or system.
[0076] The terms management engine 304 adds, removes, or modifies term records in the terms repository 302. For example, the engine 304 can be used by a system administrator to modify the terms in the repository 302. In addition, the engine 304 may modify, add, and/or remove terms based on user recommendations or by automatically crawling of metadata from media content.
[0077] In the example of FIG. 3, the terms preferences repository 306 can be implemented, for example, as software embodied in a computer-readable medium or computer-readable storage medium on a machine, in firmware, in hardware, in a combination thereof, or in any applicable known or convenient device or system. The terms preferences repository 306 includes data identifying, or data that can be used to identify, terms for which a user has a preference, whether positive or negative.
[0078] In the example of FIG. 3, the terms provisioning engine 308 can be implemented, for example, as software embodied in a computer-readable medium or computer-readable storage medium on a machine, in firmware, in hardware, in a combination thereof, or in any applicable known or convenient device or system.
[0079] The terms provisioning engine 308 provides terms to users to enable users to select affective terms to indicate their mood and/or genre-related terms for users to select their preferences for media genre. The terms provided to a user depend upon terms that are available in the terms database 302 and identifiable preferences for terms in, or derivable from, the terms preferences repository 306.
[0080] In the example of FIG. 3, the selection cloud data structure 310 can be implemented, for example, as software embodied in a computer-readable medium or computer-readable storage medium on a machine, in firmware, in hardware, in a combination thereof, or in any applicable known or convenient device or system.
[0081] The selection cloud data structure 310 includes terms that are selectable by a user. A convenient structure for the selection cloud is a web page or a portion of a web page with terms presented thereon. However, any applicable known or convenient structure can be used. Examples of selection clouds depicted on a web page are illustrated with further reference to the examples in the screenshots shown in FIG. 9-10.
[0082] In the example of FIG. 3, the terms selection engine 312 can be implemented, for example, as software embodied in a computer-readable medium or computer-readable storage medium on a machine, in firmware, in hardware, in a combination thereof, or in any applicable known or convenient device or system.
[0083] The terms selection engine 312 identifies terms that were selected from the selection cloud 310 by a user. A convenient mechanism for selecting terms in the selection cloud 310 is a pointing device, such as a mouse, which can be used to point to an term and click on the term, thereby selecting it. It should be noted that occasionally the term "select" is used to refer to highlighting a text string. As used here, the term select is intended to mean that the term is selected in such a manner that the terms selection engine 312 is alerted to the selection. Any applicable known or convenient selection mechanism can be used. When an affective term is selected, the terms selection engine 312 can update the terms preferences database 306.
[0084] In the example of FIG. 3, the mood-associated content repository 314 can be implemented, for example, as software embodied in a computer-readable medium or computer-readable storage medium on a machine, in firmware, in hardware, in a combination thereof, or in any applicable known or convenient device or system.
[0085] Although any repository described herein can have any convenient data structure, it should be noted that the mood-associated content repository 314 in particular may have relatively little structure because, in an implementation, the content can be found anywhere on the Internet. The mood-associated content repository 314 can include content that has explicit mood associations (e.g., metadata that uses affective terms as tags). The mood- associated content repository 314 can also include content that has no explicit mood associations, but the terms repository 302 associates a term with the content, thereby associating the content with a mood. Although content that has no mood associations may also be available, such content is ignored in this specification for illustrative simplicity.
[0086] In the example of FIG. 3, the ranking engine 320 can be implemented, for example, as software embodied in a computer-readable medium or computer-readable storage medium on a machine, in firmware, in hardware, in a combination thereof, or in any applicable known or convenient device or system. The ranking engine 320 takes relevant data from the terms repository 302, the terms preferences repository 306, the mood-associated content database 314, and algorithmically determines ranking (e.g., quantitative) and/or priority (e.g., qualitative) for content to be provided to a user.
[0087] In the example of FIG. 3, in operation, the terms management engine 304 maintains the terms database 302. The terms provisioning engine 308 uses the terms database 302 and the terms preferences database 306 to populate the selection cloud 310 with terms that are assumed to be most relevant to the user based upon rules about terms and the user's preferences (identified in the terms preferences database 306). The active terms selection engine 312 provides the selections, or data associated with the selections, to the active terms preferences engine 306. It may be noted that a user need not actually select terms, and, at least with respect to the user in question, the terms preferences database 306 can be empty.
[0088] In the example of FIG. 3, in operation, the ranking engine 320 takes relevant data from the terms database 302, the terms preferences database 306, the mood-associated content database 314, and algorithmically determines a priority for content to be provided to a user according to mood. In one embodiment, the ranking engine 320 generates a ranking factor for content and/or a network associated with the user mood as specified by the user's selected terms. This ranking factor can be used by the categorical ranking engine 206 in the example of FIG. 2 to generate different categories of rankings using different ranking factors (e.g., mood, user behavior, content significance, etc.) or various weighted combinations of the multiple ranking factors.
[0089] FIG. 4 depicts a flowchart of an example of a high-level affective terms management process.
[0090] In this and other flowcharts, the flowchart includes modules and decision points organized in a serial fashion. It should be noted that the modules and decision points need not flow in the order suggested by the figure; a first module that comes before a second module in the flowchart need not be first in actual implementation.
[0091] As a specific example with reference to the example of FIG. 4, it is possible to generate a translation list (module 412) prior to forming content associations with the record (module 410). Moreover, the modules and decision points could be reorganized for simultaneous or parallel execution. It should further be noted that some of the modules and decision points could be omitted, and others added, without deviating from the scope of the techniques described in this paper.
[0092] In the example of FIG. 4, the flowchart 400 starts at module 402 where a universal set of affective terms is provided. As used herein, affective terms are terms that cause an emotion or feeling in humans that see or use them. In a specific implementation, a list of affective terms was generated by a psychologist to capture a broad range of emotions that may be associated with, in this specific example, multimedia content such as television programs and movies.
[0093] In the example of FIG. 4, the flowchart 400 continues to module 404 where an affective term is designated a high-level affective term. High-level affective terms may be distinguishable from lower level affective terms because they can encompass a broader range of feelings than other affective terms. As used in this specification, a high-level affective term is an affective term that has been explicitly designated as high-level. Thus, the term "high-level affective term" is not ambiguous or subjective because an affective term is either designated as high-level (in which case it is) or the affective term is not designated as high-level (in which case it is not). It may be noted that the designation of an affective term as high-level could be inherent in adding a record to the database (module 406) or setting the record as a root node in an affective terms tree (module 408).
[0094] In the example of FIG. 4, the flowchart 400 continues to module 406 where a record associated with the affective term is added to an affective terms database. The record can include, for example, a name field (e.g., the affective term), a parent pointer field, a translation list field, a content association field, and an enablement flag. The name field is optional, but makes it easier for a human operator to search, sort, or otherwise make sense of the affective terms database (e.g., the name field could be used as a key), and may actually be used functionally in more general mood management.
[0095] In the example of FIG. 4, the flowchart 400 continues to module 408 where the record is set as a root node in an affective terms tree. The record may or may not include a parent pointer field, but since the record is associated with a high-level affective term, it is assumed for illustrative purposes that the record does not have a parent, and therefore if a parent pointer field is present, its value is null or an equivalent value indicative of the fact that the record is a root node. It is also plausible that high-level affective terms and lower- level affective terms could have records that do not have the same fields, making a parent pointer non-critical for a high-level affective term. It should be noted that the parent pointer field need not be a pointer in the computer programming sense of the word, and could simply be the name of another record that has an affective term that is higher level than the current record. For this reason, the phrase "affective terms tree" may or may not be a tree data structure in the computer programming sense, and could instead be a tree data structure in a more conceptual sense.
[0096] In the example of FIG. 4, the flowchart 400 continues to module 410 where content associations are formed with the record. Content association is useful to enable prioritization of content for a user based upon the mood(s) of a user. It is possible to implement the system such that content is explicitly associated with an affective term (and thereby obviate the need for a content association field in the record itself). However, the implementation chosen for illustrative purposes in this specification assumes that records associated with affective terms are linked to content. That way, the content can be used in an unmodified format (i.e., without changing meta-data or providing additional data in association with the content). It should be noted that the content association could be direct (e.g., by listing content that is associated with the affective term) or indirect (e.g., by listing providers of content that are associated with content of a certain character). Also, some content may naturally include data that is useful for deriving mood, such as an MPAA rating on movies, and associated description. This can be used in lieu of or in addition to the content association of a record in the affective terms database.
[0097] In the example of FIG. 4, the flowchart 400 continues to module 412 where a translation list is generated for the affective term. The translation list could include synonyms for the affective term associated with the record and/or translations of the affective term to other languages. In either case, the field could actually be implemented as a linked list or array or multiple fields of linked lists or arrays. As is the case with other examples of fields described with reference to the flowchart 400, the translation list field is optional.
[0098] In the example of FIG. 4, the flowchart 400 continues to module 414 where the record is enabled. A simple way to enable a record is with an enablement flag. In its simplest form, the enablement flag is simply a flag that can be on (enabled) or off (disabled). When the enablement flag is set, the affective term can be used to facilitate prioritization of content for a user. The enablement flag could also be a linked list or array of flags, each associated with a different context. For example, an affective term might be useful for one type of content (e.g., movies), but less useful for other types of content (e.g., music). The enablement flag is optional, and similar functionality could be implemented outside of the affective terms database. For example, a user profile might implicitly enable or disable records based upon preferences or behavior, without explicitly modifying the record associated with the affective term in the affective terms database. If there is no enablement flag, the record is presumably enabled simply by virtue of being added to the affective terms database, making the module 414 inherent in the affective terms management process.
[0099] In the example of FIG. 4, the flowchart 400 continues to decision point 416 where it is determined whether to add more high-level affective terms to the affective terms database. If it is determined to add more high-level affective terms to the affective terms database (416-Y), then the flowchart 400 returns to module 404 and continues as described above. If, on the other hand, it is determined no to add more high-level affective terms to the affective terms database (416-N), then the flowchart 400 ends and the affective terms database has an entry for every high-level affective term. This process could be on-going in the sense that the affective terms database could be used, and later an additional high- level affective terms added. Also, it could be the case that high-level affective terms are deleted or disabled, and lower-level affective terms promoted to high-level affective terms.
[0100] FIG. 5 depicts a flowchart of an example of a lower-level affective terms management process.
[0101] In the example of FIG. 5, the flowchart 500 starts at module 502 where root nodes for affective terms trees are provided. The root nodes may be generated in any convenient manner, one example of which is described with reference to FIG. 4.
[0102] In the example of FIG. 5, the flowchart 500 continues to module 504 where an affective term is provided to add to an affective terms tree. The affective term may be associated with a more subtle mood than is associated with the root node of the affective terms tree, but could also be a synonym or variation. In any case, it is the designation of the root node as higher in the affective terms tree that makes it a "high-level affective term" and the designation of child nodes as lower in the affective terms tree that makes them "lower-level affective terms." It may be noted that the providing an affective term could be inherent in adding a record to the database (module 506) or setting the record as a child node in the affective terms tree (module 508).
[0103] In the example of FIG. 5, the flowchart 500 continues to module 506 where a record associated with the affective term is added to an affective terms database. The record can include, for example, a name field (e.g., the affective term), a parent pointer field, a translation list field, a content association field, and an enablement flag. The name field is optional, but can make it easier for a human operator to search, sort, or otherwise make sense of the affective terms database.
[0104] In the example of FIG. 5, the flowchart 500 continues to module 508 where the record is set as a child node in the affective terms tree. The record may or may not include a parent pointer field, but since the record is associated with a lower-level affective term, it is assumed for illustrative purposes that the record has a parent, and therefore if a parent pointer field is present, its value points to the parent node or an equivalent value indicative of the fact that the record is a child node. It should be noted that the parent pointer field need not be a pointer in the computer programming sense of the word, and could simply be the name of another record that has an affective term that is higher level than the current record.
[0105] The child node need not be a leaf node. For example, if a first record to be added has an affective term that is intended to be lower level than the affective term of the root node, but higher level than the affective term of a second record, then a parent pointer of the second record could be modified to point to the newly added first record. The new record could also be intended as a root node, which would mean the root node's parent pointer would be modified to point to the new record, but this is assumed to be a special case of the process described with reference to FIG. 4.
[0106] In the example of FIG. 5, the flowchart 500 continues to module 510 where content associations are formed with the record. The content associations can be similar to the content associations formed with high-level affective terms, as described with reference to FIG. 4. In the example of FIG. 5, the flowchart 500 continues to module 512 where a translation list is generated for the affective term. The translation list can be similar to the translation lists generated with high-level affective terms, as described with reference to FIG. 4. In the example of FIG. 5, the flowchart 500 continues to module 514 where the record is enabled. The enablement can be similar to the enablement of high- level affective terms, as described with reference to FIG. 4.
[0107] In the example of FIG. 5, the flowchart 500 continues to decision point 516 where it is determined whether to add more lower-level affective terms to the affective terms database. If it is determined to add more lower-level affective terms to the affective terms database (516-Y), then the flowchart 500 returns to module 504 and continues as described above. If, on the other hand, it is determined no to add more lower-level affective terms to the affective terms database (516-N), then the flowchart 500 ends and the affective terms database has an entry for every affective term. This process could be on-going in the sense that the affective terms database could be used, and later an additional lower-level affective term added. Also, it could be the case that lower-level affective terms are deleted or disabled, and higher-level affective terms demoted to lower-level affective terms.
[0108] FIG. 6 depicts a flowchart of an example of an affective terms user preference identification process.
[0109] In the example of FIG. 6, the flowchart 600 starts at module 602 where a database of affective terms is provided. The database of affective terms can be created using any convenient method, an example of which is provided with reference to FIG. 4 and FIG. 5.
[0110] In the example of FIG. 6, the flowchart 600 continues to module 604 where a database of affective term preferences for a user is provided. User preferences can be input in any convenient manner by the user, and the preferences may or may not initially be null prior to a selection of an affective term.
[0111] In the example of FIG. 6, the flowchart 600 continues to module 606 where a weight is assigned to an affective term. Depending upon the implementation, it may be that affective terms are assigned weights when they are input into the database of affective terms. The weights can be adjusted from their default value based upon activity associated with the affective term, regardless of any explicit preference by the user. For example, if an affective term is popular, it may be given greater weight before consideration is even given to individual user preferences. Higher-level affective terms may also be given greater weight than lower-level affective terms, or perhaps lower-level terms increase in weight as weights are assigned to ensure that at least some lower-level terms are displayed for a user. In any case, any convenient technique for assigning weights generally (i.e., without individual user preferences considered) can be employed.
[0112] In the example of FIG. 6, the flowchart 600 continues to decision point 608 where it is determined whether the user has an explicit preference with respect to the affective term. If it is determined that the user has an explicit preference (608- Y), then the affective term is removed from consideration at module 610 and the flowchart 600 continues to decision point 614. There is no reason to display the affective term to the user if the user has already explicitly indicated that the affective term captures a mood of the user, or if the affective term fails to capture the mood of the user; in either case no further input is needed from the user. If, on the other hand, it is determined that the user has no explicit preference (608-N), then the weight of the affective term is adjusted based upon implicit preferences of the user at module 612 and the flowchart 600 continues to decision point 614. In some cases, implicit preferences can be unknown, in which case it is likely (though not necessarily the case) that the weight associated with the affective term would be unchanged. Where implicit preferences are known (e.g., because the user likes content strongly associated with an affective term, because the user has explicitly selected a higher-level affective term, or for some other reason) the weight of the affective term can be increased for a positive implicit preference or decreased for a negative implicit preference.
[0113] In the example of FIG. 6, the flowchart 600 continues to decision point 614 where it is determined whether there are more affective terms to consider. If it is determined that there are additional affective terms to consider (614-Y), then the flowchart 600 returns to module 606 and continues as described previously for a next affective term. If, on the other hand, it is determined that there are no more affective terms to consider (614-N), then presumably the database of affective terms has been considered adequately. It should be noted that an "adequate" consideration does not necessarily mean that every affective term was actually considered. For example, in an implementation, it can be the case that the affective terms database is consulted until a random, arbitrary, or predetermined number of appropriately weighted affective terms have been found, in which case, at decision point 614, it would be determined that there are no more affective terms to consider even though some affective terms were not, in fact, considered.
[0114] In the example of FIG. 6, the flowchart 600 continues to module 616 where affective terms are prioritized. The prioritization is based on an algorithmic analysis of the weights of the affective terms. It should be noted that weight alone may not determine priority. For example, it may be determined that the most heavily weighted affective terms are all high-level affective terms, but the rules require some high-level and some more subtle affective terms. [0115] In the example of FIG. 6, the flowchart 600 continues to module 618 where affective terms are displayed. A subset of the affective terms with the highest priority is displayed. The affective terms can be displayed in order of priority or in some other randomized or arbitrary manner. For example, higher priority affective terms could be displayed in larger font than lower priority affective terms.
[0116] In the example of FIG. 6, the flowchart 600 continues to decision point 620 where it is determined whether an affective term selection is made. If it is determined that an affective term selection is made (620- Y), then the flowchart 600 continues to module 622 where the preference is recorded, whether positive or negative, and the flowchart 600 returns to module 604 and continues from there as described previously. If, on the other hand, it is determined that an affective term selection is not made (620-N), then the flowchart 600 ends. Presumably, all affective term selections have been received. This process could be on-going in the sense that the user could come back later to make a selection, which may entail starting at module 618 to redisplay the previously prioritized affective terms, or starting somewhere else in the flowchart 600 if the affective term prioritization was not saved (or for any other case- or implementation-specific reason).
[0117] FIG. 7 depicts a flowchart of an example of mood-associated content prioritization for display to a user.
[0118] In the example of FIG. 7, the flowchart 700 starts at module 702 where mood- associated content is prioritized using affective terms, affective terms preferences for a user, content significance, and user behavior. Depending upon case- or implementation- specific issues, one or more of the factors may not be considered. For example, it might be the case that no user behavior has been recorded for a user. As another example, content significance might not be included in a particular implementation.
[0119] In the example of FIG. 7, the flowchart 700 continues to module 704 where links to the mood-associated content are displayed in such a way that higher-prioritized content is more readily available. This may include making some content unavailable because it has a negative mood-association for the user, or because there is too much higher-priority content available for the user. The display should be in a form that is convenient for the user.
[0120] In the example of FIG. 7, the flowchart 700 continues to module 706 where user behavior is recorded with respect to the content. For example, if the user plays content, then that fact is recorded. If the user ranks or recommends content, or if the user indicates no interest in content, that can be recorded, as well. If the user acts like other users who have specific preferences, that can be used, as well.
[0121] In the example of FIG. 7, the flowchart 700 returns to module 702, and continues as described previously. In this way, mood-associated content prioritization can improve over time as additional user behavior is learned.
[0122] Advantageously, incorporating a user's mood into a recommendation engine allows more fine-tuned categories and rankings. For example, consider the following table:
Figure imgf000028_0001
[0123] The higher a mood hits (MH) factor, the more relevance to a user. For example, an MH score can be calculated, by way of example but not limitation, by counting one point for each mood common to both a user's profile and a content item, and dividing by the total number of mood associations possible. For a given user, the MH factor is relevant to rankings of any category.
[0124] The higher a favorite hits (FH) factor, the more relevant a network is to a user. For example, an FH score can be calculated, by way of example but not limitation, by counting one point for each show in a user's profile that is of the same network, then divide by the total number of shows available on that network. While this example refers to a "network" the concept can be generally applied to any content grouping (e.g., station, URL, etc.) For a given user, the FH factor is relevant to rankings in any category.
[0125] For shows and networks explicitly listed in a user's profile, the MH and FH factors are all that are needed. For other categories, other ranking factors may be considered. For example, Mood Recommendations may be made using the MH and FH factors, plus popularity. Popularity can be based upon the number of times content is played by anyone on the system, or it can be more focused to specific types of users that are similar to a user in question.
[0126] For shows and networks recommended by friends, it may be desirable to include in the ranking how recently the recommendation is made. For shows and networks that are internally prioritized (e.g., the system has a preference toward or against), the priority assigned to the show or network by the system can be included. For popular content, as with mood recommendations, popularity should obviously be considered. In this case, popularity will be more heavily weighted than MH and FH, whereas with mood recommendations, MH and FH were more heavily weighted.
[0127] An example of an output of a ranking system is an ordered set of rank associations, where the rank is a floating-point value between 0 and 1 calculated using the formula:
Rank = ∑ w, • /, , i indexing the factors/ with weight w, where {wj + ... + wn) = 1
[0128] FIG. 8 depicts a flowchart of an example of a process for using ranking factors to generate a displayed set of items for a user according to user mood and other factors.
[0129] In the example of FIG. 8, the flowchart 800 starts at module 802 where a first ranking factor is determined for an item using one or more terms selected by a user. The item, which can include a web object that represents media content and/or network, can be prioritized among a set of items using the terms that are selected by the user to specify user mood. The user can select the terms from a selection cloud such as that shown via a web interface depicted in the screenshot of FIG. 9A and/or drop down box of FIG. 1OC. The terms can include affective terms and/or genre-related terms and are typically used by a user to indicate mood. The selection cloud can be populated with a combination of high- level terms and subtle terms.
[0130] The flowchart 800 continues to module 804 where a second ranking factor for the item is determined based on identified matches with explicit preferences for content or network that is specified by the user. In general, the explicit preferences include a selection of preferred media content and/or preferred broadcast networks. The user can explicitly indicate preferences for content or network through the web interface such as those illustrated in the examples of FlG. 9B/9C and drop down boxes of FIG. lOC-lOD.
[0131] In module 806, a third ranking factor for the item is determined based on popularity among multiple users. In module 808, the item is ranked for prioritization among the set of items using the first, second, and third factors.
[0132] In module 810, multiple rankings are generated for the set of items using different ranking algorithms that employ one or more of the first, second, and/or third ranking factors. In one embodiment, the different algorithms vary in the weights assigned to each of the ranking factors, which may be zero, indicating one or more of the factors that are not used in the ranking. The multiple rankings for the set of items can be provided as rankings for the set of items in multiple categories (e.g., mood-based, popularity based, collaborative filter-based, etc.)
[0133] In module 812, the displayed set of items are generated by selecting one or more items from the multiple categories and removing duplicate items. In selecting the displayed set of items each category of item rankings may be assigned a categorical weight. The displayed set of items may be selected from the multiple categories using the categorical weights. In addition, a backup set of items may be optionally generated, also using the categorical weights assigned to the various categories. The backup items may be used to re-populate the displayed set when items are discarded by the user.
[0134] FlG. 9A illustrates an example user interface 900 showing a selection cloud having terms including affective terms and/or genre-related terms from which users can select to specify user mood. FIG. 9B illustrates an example user interface 910 showing a selection cloud having content (e.g., TV shows) from which users can select as preferred content. FIG. 9C illustrates an example user interface showing a selection cloud 920 having networks (e.g., TV channels or networks) from which users can select as preferred.
[0135] In one embodiment, the example user interface 900 is the front end user interface. The interface 900 can include a tabbed panel including options for a user to specify preferences for "Mood", "Shows", and "Networks". The interface 900 depicts an example of the selection cloud for "Moods" when the tab 902 is selected. The interface 910 depicts an example of the selection cloud for "Shows" when the tab 904 is selected. The interface 920 depicts an example of the selection cloud for "Networks" when the tab 906 is selected. [0136] In general, the selection clouds shown in interfaces 900, 910, and 920 include lists of suggested terms for the user to select from and the preferences lists 912, 914, and 916 include the user's selections. An item in the cloud can be added to the list and removed from the cloud when clicked on or otherwise selected by the user. The preferences lists 912, 914, and 916 can order the selections in the order they were selected by the user. The user can also remove the items in the lists 912, 914, and 916. For example, the user can hover over an item in a list and an option to remove that item can be displayed. Removed items from the lists 912, 914, and 916 may or may not be placed back into the selection cloud.
[0137] The affective terms in the selection cloud when the mood tab 902 is selected, can initially be populated with mostly high-level moods and some subtle moods. If the user has previously selected terms, the selected terms can be used in identifying the terms to populate the selection clouds. If no terms have been previously selected, the terms used to populate the selection clouds can be selected according to other metrics including but not limited to, popularity among users, editorial significance, the user's implicit preferences, priority, and/or additional factors.
[0138] Note that in general, the terms depicted in each of the clouds associated with each tab illustrated in the examples of FIG. 9A-9C remain static between tab changes initiated by the user. However, in one embodiment, the user may explicitly change ("shuffle") the contents of each or any of the selection clouds to access a different set of terms. If the content of the clouds are shuffled, any selections present in the preference list can be used to prioritize relevant choices when selecting a new set of terms to be depicted in the clouds.
[0139] In addition, absent any selection of terms by the user in each of the three tabs, the guide page can be populated with content and/or networks according to other metrics including but not limited to, popularity among users, editorial significance, the user's implicit preferences, priority, and/or additional factors.
[0140] At any point after the terms have been selected from the selection clouds, the user can click the tab 950 to view the content and/or networks selected by the system. A set of items that is displayed to the user is shown in the example of FIG. 9D. FIG. 9D illustrates an example user interface 930 showing a displayed set of items selected for a user according to user mood.
[0141] The selected items can be displayed in a grid of tiles displaying available content and/or network choices that are determined as being relevant to the user. Each item (e.g., a tile) can be a network tile or a show tile. A selection of a network tile can cause shows of that network to be displayed to the user. A selection of a show tile for an episodic show may cause episodes of the show to be displayed. For example, a show with multiple seasons can be represented with one tile for each season. In one embodiment, new content including shows or networks that have become newly available since the user's last visit can be identified as such, for example, via a "NEW" graphic icon associated with the corresponding tile. In addition, email notifications can be used to notify users of newly added content (e.g., new episodes of favorite shows, new shows that match the user's mood, etc.).
[0142] The tiles can be associated with additional functions. For example, the user can have the option of discarding tiles, adding tiles to the user's profile (e.g.., to select as favorite or preferred), to play the episode, or to access information about the show, episode, or network. Icons to these additional functions can be displayed, for example, when the user hovers the mouse over the tile. In one embodiment, a syndication overlay can be opened when the user selects and episode or show for viewing.
[0143] FIG. 10A-D illustrate additional examples of user interfaces showing call-out boxes with shows, moods, and networks for a user to select for use by the system in selecting a displayed set of items.
[0144] For example, in the user interface 1000, the user can select from to "add a show" 1002, "add a mood" 1004, and "add a network" 1006. Examples of detailed items listed in each of the drop down boxes for tabs 1002, 1004 and 1006, respectively, are illustrated in FIG. lOB-D.
[0145] The items prioritized by the system are displayed in a grid of tiles. In one embodiment, the grid of tiles can include a combination of the user's explicitly selected networks and/or content (e.g., shows or other types of media content), recommendations selected based on rankings computed according to the user's mood or other factors including but not limited to, content significance (e.g., editorial significance, network priority), popularity, recommendations by others, etc. [0146] Tiles for contents can be displayed in the upper rows while the network tiles can be displayed in the lower rows and the configuration can be adjustable by a system administrator. The arrangement of tiles can be arranged alphabetically. In general, when a tile has been previously discarded by a user is not re-used to populate the displayed set.
[0147] Note that by clicking on items that have been selected from any of the "add a show" 1002, "add a mood" 1004, and "add a network" 1006 categories, the displayed results can be filtered to reflect the subset that is relevant to the selected item. For example, if the user has selected moods "action" and "romantic", if the user then clicks on "action", the displayed set can be filtered such that only the content or networks relevant to "action" content are displayed to the user.
[0148] FIG. 11 shows a diagrammatic representation of a machine in the example form of a computer system 1100 within which a set of instructions, for causing the machine to perform any one or more of the methodologies discussed herein, may be executed.
[0149] In the example of FIG. 11, the computer system 1100 includes a processor, memory, non- volatile memory, and an interface device. Various common components (e.g., cache memory) are omitted for illustrative simplicity. The computer system 1100 is intended to illustrate a hardware device on which any of the components depicted in the example of FIG. 1 (and any other components described in this specification) can be implemented. The computer system 1100 can be of any applicable known or convenient type. The components of the computer system 1100 can be coupled together via a bus or through some other known or convenient device.
[0150] The processor may be, for example, a conventional microprocessor such as an Intel Pentium microprocessor or Motorola power PC microprocessor. One of skill in the relevant art will recognize that the terms "machine-readable (storage) medium" or "computer-readable (storage) medium" include any type of device that is accessible by the processor.
[0151] The memory is coupled to the processor by, for example, a bus. The memory can include, by way of example but not limitation, random access memory (RAM), such as dynamic RAM (DRAM) and static RAM (SRAM). The memory can be local, remote, or distributed. [0152] The bus also couples the processor to the non-volatile memory and drive unit. The non-volatile memory is often a magnetic floppy or hard disk, a magnetic-optical disk, an optical disk, a read-only memory (ROM), such as a CD-ROM, EPROM, or EEPROM, a magnetic or optical card, or another form of storage for large amounts of data. Some of this data is often written, by a direct memory access process, into memory during execution of software in the computer 1100. The non- volatile storage can be local, remote, or distributed. The non- volatile memory is optional because systems can be created with all applicable data available in memory. A typical computer system will usually include at least a processor, memory, and a device (e.g., a bus) coupling the memory to the processor.
[0153] Software is typically stored in the non- volatile memory and/or the drive unit.
Indeed, for large programs, it may not even be possible to store the entire program in the memory. Nevertheless, it should be understood that for software to run, if necessary, it is moved to a computer readable location appropriate for processing, and for illustrative purposes, that location is referred to as the memory in this paper. Even when software is moved to the memory for execution, the processor will typically make use of hardware registers to store values associated with the software, and local cache that, ideally, serves to speed up execution. As used herein, a software program is assumed to be stored at any known or convenient location (from non-volatile storage to hardware registers) when the software program is referred to as "implemented in a computer-readable medium." A processor is considered to be "configured to execute a program" when at least one value associated with the program is stored in a register readable by the processor.
[0154] The bus also couples the processor to the network interface device. The interface can include one or more of a modem or network interface. It will be appreciated that a modem or network interface can be considered to be part of the computer system 1100. The interface can include an analog modem, isdn modem, cable modem, token ring interface, satellite transmission interface (e.g. "direct PC"), or other interfaces for coupling a computer system to other computer systems. The interface 208 can include one or more input and/or output devices. The I/O devices can include, by way of example but not limitation, a keyboard, a mouse or other pointing device, disk drives, printers, a scanner, and other input and/or output devices, including a display device. The display device can include, by way of example but not limitation, a cathode ray tube (CRT), liquid crystal display (LCD), or some other applicable known or convenient display device. For simplicity, it is assumed that controllers of any devices not depicted in the example of FIG. 11 reside in the interface.
[0155] In operation, the computer system 1100 can be controlled by operating system software that includes a file management system, such as a disk operating system. One example of operating system software with associated file management system software is the family of operating systems known as Windows® from Microsoft Corporation of Redmond, Washington, and their associated file management systems. Another example of operating system software with its associated file management system software is the Linux operating system and its associated file management system. The file management system is typically stored in the non-volatile memory and/or drive unit and causes the processor to execute the various acts required by the operating system to input and output data and to store data in the memory, including storing files on the non- volatile memory and/or drive unit.
[0156] Some portions of the detailed description may be presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic 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. An algorithm is here, and generally, conceived to be a self-consistent sequence of operations leading to a desired result. The operations are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
[0157] It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussion, it is appreciated that throughout the description, discussions utilizing terms such as "processing" or "computing" or "calculating" or "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's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
[0158] The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the methods of some embodiments. The required structure for a variety of these systems will appear from the description below. In addition, the techniques are not described with reference to any particular programming language, and various embodiments may thus be implemented using a variety of programming languages.
[0159] In alternative embodiments, the machine operates as a standalone device or may be connected (e.g., networked) to other machines. In a networked deployment, the machine may operate in the capacity of a server or a client machine in a client-server network environment, or as a peer machine in a peer-to-peer (or distributed) network environment.
[0160] The machine may be a server computer, a client computer, a personal computer (PC), a tablet PC, a laptop computer, a set-top box (STB), a personal digital assistant (PDA), a cellular telephone, an iPhone, a Blackberry, a processor, a telephone, a web appliance, a network router, switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine.
[0161] While the machine-readable medium or machine-readable storage medium is shown in an exemplary embodiment to be a single medium, the term "machine-readable medium" and "machine-readable storage medium" should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term "machine- readable medium" and "machine-readable storage medium" shall also be taken to include any medium that is capable of storing, encoding or carrying a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the presently disclosed technique and innovation.
[0162] In general, the routines executed to implement the embodiments of the disclosure, may be implemented as part of an operating system or a specific application, component, program, object, module or sequence of instructions referred to as "computer programs." The computer programs typically comprise one or more instructions set at various times in various memory and storage devices in a computer, and that, when read and executed by one or more processing units or processors in a computer, cause the computer to perform operations to execute elements involving the various aspects of the disclosure.
[0163] Moreover, while embodiments have been described in the context of fully functioning computers and computer systems, those skilled in the art will appreciate that the various embodiments are capable of being distributed as a program product in a variety of forms, and that the disclosure applies equally regardless of the particular type of machine or computer-readable media used to actually effect the distribution.
[0164] Further examples of machine-readable storage media, machine-readable media, or computer-readable (storage) media include but are not limited to recordable type media such as volatile and non-volatile memory devices, floppy and other removable disks, hard disk drives, optical disks (e.g., Compact Disk Read-Only Memory (CD ROMS), Digital Versatile Disks, (DVDs), etc.), among others, and transmission type media such as digital and analog communication links.
[0165] Unless the context clearly requires otherwise, throughout the description and the claims, the words "comprise," "comprising," and the like are to be construed in an inclusive sense, as opposed to an exclusive or exhaustive sense; that is to say, in the sense of "including, but not limited to." As used herein, the terms "connected," "coupled," or any variant thereof, means any connection or coupling, either direct or indirect, between two or more elements; the coupling of connection between the elements can be physical, logical, or a combination thereof. Additionally, the words "herein," "above," "below," and words of similar import, when used in this application, shall refer to this application as a whole and not to any particular portions of this application. Where the context permits, words in the above Detailed Description using the singular or plural number may also include the plural or singular number respectively. The word "or," in reference to a list of two or more items, covers all of the following interpretations of the word: any of the items in the list, all of the items in the list, and any combination of the items in the list.
[0166] The above detailed description of embodiments of the disclosure is not intended to be exhaustive or to limit the teachings to the precise form disclosed above. While specific embodiments of, and examples for, the disclosure are described above for illustrative purposes, various equivalent modifications are possible within the scope of the disclosure, as those skilled in the relevant art will recognize. For example, while processes or blocks are presented in a given order, alternative embodiments may perform routines having steps, or employ systems having blocks, in a different order, and some processes or blocks may be deleted, moved, added, subdivided, combined, and/or modified to provide alternative or subcombinations. Each of these processes or blocks may be implemented in a variety of different ways. Also, while processes or blocks are at times shown as being performed in series, these processes or blocks may instead be performed in parallel, or may be performed at different times. Further any specific numbers noted herein are only examples: alternative implementations may employ differing values or ranges.
[0167] The teachings of the disclosure provided herein can be applied to other systems, not necessarily the system described above. The elements and acts of the various embodiments described above can be combined to provide further embodiments.
[0168] Any patents and applications and other references noted above, including any that may be listed in accompanying filing papers, are incorporated herein by reference. Aspects of the disclosure can be modified, if necessary, to employ the systems, functions, and concepts of the various references described above to provide yet further embodiments of the disclosure.
[0169] These and other changes can be made to the disclosure in light of the above Detailed Description. While the above description describes certain embodiments of the disclosure, and describes the best mode contemplated, no matter how detailed the above appears in text, the teachings can be practiced in many ways. Details of the system may vary considerably in its implementation details, while still being encompassed by the subject matter disclosed herein. As noted above, particular terminology used when describing certain features or aspects of the disclosure should not be taken to imply that the terminology is being redefined herein to be restricted to any specific characteristics, features, or aspects of the disclosure with which that terminology is associated. In general, the terms used in the following claims should not be construed to limit the disclosure to the specific embodiments disclosed in the specification, unless the above Detailed Description section explicitly defines such terms. Accordingly, the actual scope of the disclosure encompasses not only the disclosed embodiments, but also all equivalent ways of practicing or implementing the disclosure under the claims. [0170] While certain aspects of the disclosure are presented below in certain claim forms, the inventors contemplate the various aspects of the disclosure in any number of claim forms. For example, while only one aspect of the disclosure is recited as a means-plus- function claim under 35 U. S. C. §112, TfI 3, other aspects may likewise be embodied as a means-plus-function claim, or in other forms, such as being embodied in a computer- readable medium. (Any claims intended to be treated under 35 U. S. C. § 112, TfI 3 will begin with the words "means for".) Accordingly, the applicant reserves the right to add additional claims after filing the application to pursue such additional claim forms for other aspects of the disclosure.

Claims

ClaimsWhat is claimed is:
1. A method for using ranking factors to prioritize a set of items presented to a user via a client device according to user mood, the method, comprising: determining a first ranking factor for an item using one or more terms selected by the user; wherein, the item is to be prioritized among the set of items for the user, using one or more terms selected by the user to specify the user mood; determining a second ranking factor for the item based on identified matches with explicit preferences for content or network that is specified by the user; ranking the item for prioritization among the set of items using the first and second factors.
2. The method of claim 1 , wherein, the one or more terms include affective terms and genre-related terms; wherein, the one or more terms are selected by the user to indicate the mood.
3. The method of claim 1 , further comprising, determining a third ranking factor for the item based on popularity among multiple users; using the third ranking factor with the first and second factors in ranking the item for prioritization among the set of items.
4. The method of claim 1, further comprising, generating multiple rankings for the set of items using different ranking algorithms that employ the first and second ranking factors.
5. The method for claim 4, wherein, the different algorithms varying in weights assigned to the first and second ranking factors, respectively.
6. The method of claim 4, wherein, the multiple rankings for the set of items are provided as rankings for the set of items in multiple categories.
7. The method of claim 6, further comprising, generating a displayed set of items by selecting items from one or more of the multiple categories and removing duplicate items.
8. The method of claim 7, further comprising, assigning categorical weights to each of the multiple categories; wherein, the displayed set of items is selected from the one or more of the multiple categories using the categorical weights.
9. The method of claim 1 , wherein, the item represents media content; wherein, the item represents a network through which media content is broadcast.
10. The method of claim 1, wherein, the explicit preferences include a selection of preferred media content and a selection of preferred network.
11. A machine-readable storage medium having stored thereon a set of instructions which when executed perform a method generating a displayed set of items to be presented to a user via a client device according to user mood, comprising: determining a first ranking factor for an item using one or more terms selected by the user; wherein, the item is to be prioritized among the set of items for the user, using one or more terms selected by the user to specify the user mood; determining a second ranking factor for the item based on identified matches with explicit preferences for content or network that is specified by the user; determining a third ranking factor for the item based on popularity among multiple users; ranking the item for prioritization among the set of items using the first, second, and third factors; generating multiple rankings for the set of items using different ranking algorithms that employ the first, second, and third ranking factors; wherein, the different algorithms vary in weights assigned to the first, second, and third ranking factors, respectively; generating the displayed set of items by selecting items from one or more of the multiple categories and removing duplicate items; wherein, each of the set of items is an object displayed on a user interface that corresponds to media content or a network through which media content is broadcast; wherein, the object is selectable by a user for removal from the displayed set of items or to access associated information.
12. The method of claim 1 1 , wherein, the media content is a television series show; wherein, the object corresponds to the media content and, when selected, displays links to multiple episodes of the television series show.
13. The method of claim 11 , wherein, the network is a television channel; wherein, the object corresponds to a broadcast network and, when selected, displays multiple links to media content broadcast by the broadcast network.
14. The method of claim 11 , wherein, the one or more terms include affective terms and genre-related terms; wherein, the one or more terms are selected by the user to indicate the mood.
15. A system, comprising: a network; a client coupled to the network; a content server, coupled to the network, including mood-associated content; a mood-based content prioritization engine, coupled to the network, including: a terms repository; a terms preferences repository; wherein, in operation: the mood-based content prioritization engine manages terms in the terms repository; the mood-based content prioritization engine collects terms preferences from the client and stores the affective terms preferences in the terms preferences repository; the mood-based content prioritization engine prioritizes mood-associated content from the content server using the terms repository and the terms preferences repository; the mood-based content prioritization engine provides at least some of the prioritized mood-associated content to the user.
16. The system of claim 15, wherein, the mood-based content prioritization engine further comprises a terms management engine coupled to the terms repository, wherein, in operation, the terms management engine adds, modifies, and deletes term entries in the terms repository; wherein, the terms entries stored in the terms repository include affective terms and genre-related terms.
17. The system of claim 15 , wherein, the mood-based content prioritization engine further comprises a terms provisioning engine coupled to the terms repository and the terms preferences repository, wherein, in operation, the terms provisioning engine displays terms from the terms repository in a selection cloud using preferences from the terms preferences repository to determine which terms to display.
18. The system of claim 15 , wherein, the mood-based content prioritization engine further comprises a terms selection engine coupled to the affective terms preferences repository, wherein, in operation, the terms selection engine takes user selections of terms and stores data associated with the selections in the terms preferences repository.
19. The system of claim 15, wherein, the mood-based content prioritization engine further comprises: a ranking engine coupled to the terms repository, the terms preferences repository, and the content server, wherein, in operation, the ranking engine uses the terms repository and the terms preferences repository to prioritize the mood-associated content of the content server and to provide links to the prioritized content to the client.
20. The system of claim 15, further comprising a content significance repository coupled to a content/network significance engine, wherein, in operation, the content/network significance engine uses the content significance repository to assign ranking factors based on associated significance in the content/network significance repository.
21. The system of claim 15, further comprising a user behavior repository coupled to a content/network preferences engine, wherein, in operation, the content/network preferences engine uses explicit and implicit user preferences in the user behavior repository to assign ranking factors.
22. The system of claim 21 , wherein, in operation, the content/network preferences engine records data associated with user behavior with respect to the mood-based content.
23. A method performed by a processing unit in a computing system for managing affective terms associated with a user mood, the method, comprising: providing an affective terms tree structure embedded in a machine readable storage medium of the computing system; adding a node associated with an affective term to the affective terms tree structure and storing the node in the machine readable storage medium; forming content associations between the node and mood-associated content and storing the content associations in the machine readable storage medium; prioritizing the mood-associated content using the affective term; providing the prioritized mood-associated content to the user via a user device when the user selects the corresponding affective term to specify the user mood.
24. The method of claim 23, further comprising: providing a universal set of affective terms; selecting the affective term from the universal set of affective terms.
25. The method of claim 23, wherein the affective terms tree structure is initially null, further comprising: designating the affective term as a high-level affective term; setting the node as the root node of the affective terms tree structure.
26. The method of claim 23, wherein the affective terms tree structure includes a root node associated with a high-level affective term, further comprising: designating the affective term as a lower-level affective term; setting the node as a child node of the affective terms tree structure.
27. The method of claim 23, further comprising adding a record associated with the affective term to an affective terms repository.
28. The method of claim 23, further comprising, generating a translation list for the affective term; wherein, the translation list includes synonyms of the affective term or translations of the affective term.
29. The method of claim 23, further comprising, enabling the node so that the affective term can be used to prioritize the mood-associated content.
30. The method of claim 23, further comprising: assigning a weight to the node; establishing that the user has not indicated an explicit preference with respect to the node; adjusting the weight based upon implicit preferences of the user; prioritizing the node, along with other nodes of the affective terms tree structure and other affective terms tree structures, using the adjusted weight of the node; displaying affective terms for the user using in accordance with the prioritization.
31. The method of claim 23, further comprising, displaying links to the prioritized mood-associated content in such a way that higher-prioritized content is more readily available.
32. The method of claim 23 , further comprising recording user behavior with respect to the mood- associated content, wherein prioritizing the mood-associated content using the affective term includes prioritizing the mood-associated content using the recorded user behavior.
PCT/US2009/054216 2008-08-18 2009-08-18 Prioritizing items presented to a user according to user mood WO2010022094A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US8977608P 2008-08-18 2008-08-18
US61/089,776 2008-08-18

Publications (1)

Publication Number Publication Date
WO2010022094A1 true WO2010022094A1 (en) 2010-02-25

Family

ID=41707436

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2009/054216 WO2010022094A1 (en) 2008-08-18 2009-08-18 Prioritizing items presented to a user according to user mood

Country Status (1)

Country Link
WO (1) WO2010022094A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016203178A1 (en) * 2015-06-18 2016-12-22 Spideo Method and system for recommending content to a user based on one or more parameters that can be activated by the user from a corresponding interface

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040031058A1 (en) * 2002-05-10 2004-02-12 Richard Reisman Method and apparatus for browsing using alternative linkbases
US20060064716A1 (en) * 2000-07-24 2006-03-23 Vivcom, Inc. Techniques for navigating multiple video streams
US20070053513A1 (en) * 1999-10-05 2007-03-08 Hoffberg Steven M Intelligent electronic appliance system and method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070053513A1 (en) * 1999-10-05 2007-03-08 Hoffberg Steven M Intelligent electronic appliance system and method
US20060064716A1 (en) * 2000-07-24 2006-03-23 Vivcom, Inc. Techniques for navigating multiple video streams
US20040031058A1 (en) * 2002-05-10 2004-02-12 Richard Reisman Method and apparatus for browsing using alternative linkbases

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016203178A1 (en) * 2015-06-18 2016-12-22 Spideo Method and system for recommending content to a user based on one or more parameters that can be activated by the user from a corresponding interface
FR3037757A1 (en) * 2015-06-18 2016-12-23 Spideo METHOD AND SYSTEM FOR RECOMMENDING A CONTENT USER FROM PARAMETER (S) ACTIVATED BY THE USER FROM A CORRESPONDING INTERFACE.

Similar Documents

Publication Publication Date Title
US11681736B2 (en) System and method for tagging a region within a frame of a distributed video file
US9910911B2 (en) Computer implemented methods and apparatus for implementing a topical-based highlights filter
US9876751B2 (en) System and method for analyzing messages in a network or across networks
US8996629B1 (en) Generating a stream of content for a channel
US7814513B2 (en) Video channel creation systems and methods
US9239883B2 (en) Searching system having a server which automatically generates search data sets for shared searching
US10210159B2 (en) Media object metadata association and ranking
US20160117063A1 (en) Systems and methods for managing hashtags
US20090077033A1 (en) System and method for customized search engine and search result optimization
US20110295612A1 (en) Method and apparatus for user modelization
US20150120722A1 (en) Method and system for providing multimedia content recommendations
US20090276709A1 (en) Method and apparatus for providing dynamic playlists and tag-tuning of multimedia objects
US20060004799A1 (en) Network content organization tool
US20100042660A1 (en) Systems and methods for presenting alternative versions of user-submitted content
US20110153425A1 (en) Knowledge based search engine
US9298830B2 (en) Method, system and apparatus for facilitating discovery of items sharing common attributes
US20080288439A1 (en) Combined personal and community lists
WO2010022094A1 (en) Prioritizing items presented to a user according to user mood
CN111680254B (en) Content recommendation method and device
US20170205964A1 (en) System and Method for Categorizing and Ranking Content for Presentation
US20130097524A1 (en) Method for creating a keyword-based user-personalized webpage

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09808740

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09808740

Country of ref document: EP

Kind code of ref document: A1