WO2013029233A1 - Method and apparatus for providing recommendations based on context-aware group modeling - Google Patents

Method and apparatus for providing recommendations based on context-aware group modeling Download PDF

Info

Publication number
WO2013029233A1
WO2013029233A1 PCT/CN2011/079096 CN2011079096W WO2013029233A1 WO 2013029233 A1 WO2013029233 A1 WO 2013029233A1 CN 2011079096 W CN2011079096 W CN 2011079096W WO 2013029233 A1 WO2013029233 A1 WO 2013029233A1
Authority
WO
WIPO (PCT)
Prior art keywords
users
user
groups
behavior information
recommendation
Prior art date
Application number
PCT/CN2011/079096
Other languages
French (fr)
Inventor
Hengshu Zhu
Huanhuan Cao
Jilei Tian
Original Assignee
Nokia Corporation
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 Nokia Corporation filed Critical Nokia Corporation
Priority to PCT/CN2011/079096 priority Critical patent/WO2013029233A1/en
Priority to CN201180074376.1A priority patent/CN103890812A/en
Publication of WO2013029233A1 publication Critical patent/WO2013029233A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising

Definitions

  • Service providers and device manufacturers are continually challenged to deliver value and convenience to consumers by, for example, providing compelling network services.
  • One area of development has been the use of recommendation systems to provide users with suggestions or recommendations for content based on the users' preferences.
  • recommendations systems to provide users with suggestions or recommendations for content based on the users' preferences.
  • issues such as data sparseness and algorithm efficiency still remain challenges that need to be overcome.
  • Concepts such as crowd wisdom based methods that leverage data from similar users to that of the target user have been developed as a way to overcome these challenges.
  • Such methods are often time consuming when extending their applicability to recommendation systems that consider rich contextual features as the number of contextual dimensions increases. Accordingly, service providers and device manufacturers face significant technical challenges in providing recommendation systems to users for rich contextual environments.
  • a method comprises determining one or more similarity values based, at least in part, on a similarity of user behavior information associated with a user to reference behavior information associated with one or more groups of users.
  • the method also comprises processing and/or facilitating a processing of the one or more similarity values to select from among one or more recommendation models associated with the one or more groups of users.
  • the method further comprises processing and/or facilitating a processing of the selected one or more recommendation models to generate one or more user recommend tions.
  • an apparatus comprises at least one processor, and at least one memory including computer program code for one or more computer programs, the at least one memory and the computer program code configured to, with the at least one processor, cause, at least in part, the apparatus to determine one or more similarity values based, at least in part, on a similarity of user behavior information associated with a user to reference behavior information associated with one or more groups of users.
  • the apparatus is also caused to process and/or facilitate a processing of the one or more similarity values to select from among one or more recommendation models associated with the one or more groups of users.
  • the apparatus is further caused to process and/or facilitate a processing of the selected one or more recommendation models to generate one or more user recommendations.
  • a computer-readable storage medium carries one or more sequences of one or more instructions which, when executed by one or more processors, cause, at least in part, an apparatus to determine one or more similarity values based, at least in part, on a similarity of user behavior information associated with a user to reference behavior information associated with one or more groups of users.
  • the apparatus is also caused to process and/or facilitate a processing of the one or more similarity values to select from among one or more recommendation models associated with the one or more groups of users.
  • the apparatus is further caused to process and/or facilitate a processing of the selected one or more recommendation models to generate one or more user recommendations.
  • an apparatus comprises means for determining one or more similarity values based, at least in part, on a similarity of user behavior information associated with a user to reference behavior information associated with one or more groups of users.
  • the apparatus also comprises means for processing and/or facilitating a processing of the one or more similarity values to select from among one or more recommendation models associated with the one or more groups of users.
  • the apparatus further comprises means for processing and/or facilitating a processing of the selected one or more recommendation models to generate one or more user recommendations.
  • a method comprising facilitating a processing of and/or processing (1) data and/or (2) information and/or (3) at least one signal, the (1) data and/or (2) information and/or (3) at least one signal based, at least in part, on (or derived at least in part from) any one or any combination of methods (or processes) disclosed in this application as relevant to any embodiment of the invention.
  • a method comprising facilitating access to at least one interface configured to allow access to at least one service, the at least one service configured to perform any one or any combination of network or service provider methods (or processes) disclosed in this application.
  • a method comprising facilitating creating and/or facilitating modifying (1) at least one device user interface element and/or (2) at least one device user interface functionality, the (1) at least one device user interface element and/or (2) at least one device user interface functionality based, at least in part, on data and/or information resulting from one or any combination of methods or processes disclosed in this application as relevant to any embodiment of the invention, and/or at least one signal resulting from one or any combination of methods (or processes) disclosed in this application as relevant to any embodiment of the invention.
  • a method comprising creating and/or modifying (1) at least one device user interface element and/or (2) at least one device user interface functionality, the (1) at least one device user interface element and/or (2) at least one device user interface functionality based at least in part on data and/or information resulting from one or any combination of methods (or processes) disclosed in this application as relevant to any embodiment of the invention, and/or at least one signal resulting from one or any combination of methods (or processes) disclosed in this application as relevant to any embodiment of the invention.
  • the methods can be accomplished on the service provider side or on the mobile device side or in any shared way between service provider and mobile device with actions being performed on both sides.
  • An apparatus comprising means for performing the method of any of originally filed claims 1-13, 27-39, and 45-48.
  • FIG. 1 is a diagram of a system capable of providing recommendations based on context-aware groups of users, according to one embodiment
  • FIG. 2 is a diagram of the components of a recommendation platform that provides recommendations based on context-aware groups of users, according to one embodiment
  • FIG. 3 is a flowchart of a process for providing recommendations based on context- aware groups of users, according to one embodiment
  • FIG. 4 is a flowchart of a process for determining one or more similarity values for providing recommendations based on context-aware groups of users, according to one embodiment
  • FIG. 5 is a flowchart of a process for selecting one or more recommendation models for providing recommendations based on context-aware groups of users, according to one embodiment
  • FIG. 6 is a flowchart of a process for generating one or more recommendations for providing recommendations based on context-aware groups of users, according to one embodiment
  • FIG. 7 is a flowchart of a process for associating a user with at least one context- aware group of users for providing recommendations based on context-aware groups of users, according to one embodiment
  • FIG. 8 is a flowchart of a process for training a recommendation model for a group of users for providing recommendations based on context-aware groups of users, according to one embodiment
  • FIGs. 9A and 9B are diagrams of user interfaces utilized in the processes of FIGs. 3-8, according to various embodiments.
  • FIG. 10 is a diagram of hardware that can be used to implement an embodiment of the invention.
  • FIG. 1 1 is a diagram of a chip set that can be used to implement an embodiment of the invention.
  • FIG. 12 is a diagram of a mobile terminal (e.g., handset) that can be used to implement an embodiment of the invention.
  • a mobile terminal e.g., handset
  • FIG. 1 is a diagram of a system capable of providing recommendations based on context-aware groups of users, according to one embodiment.
  • Context-aware recommendation systems can provide recommendations regarding software applications, services, music, books, and other media, to name a few, according to the varying context and preferences of the user.
  • crowd-wisdom-based, context-aware recommendation systems have been proposed.
  • these systems are very time consuming and unreliable due to the large number of users covered by the recommendation systems and the data sparseness of the users compared to the context-rich features of the recommended content.
  • some crowd-based recommendation systems rely on a number K of existing users to generate recommendations for new users that have similar context information.
  • determining a number K of similar users to a new user is time consuming when considering that there can be millions of users to select from to compare to a new user.
  • a system 100 of FIG. 1 introduces the capability to provide users recommendations based on a similarity of the users' behavior information compared to reference behavior information of one or more groups of users and corresponding recommendation models.
  • the context-aware groups of users constitute users grouped together based on similar behavior information.
  • the system 100 also introduces the capability to determine recommendations based on more than one recommendation model associated with more than one context-aware group of users.
  • the system 100 provides normalized recommendations based on the recommendation models associated with the context-aware groups of users normalized by the corresponding similarity values generated from the user behavior information compared to the reference behavior information of the context-aware groups of users.
  • the tuned recommendations that are biased towards specific one or more groups of users can offer more variation of recommendations for each user.
  • various embodiments of the approach described herein can be used to assist users when first purchasing or other obtaining a new phone. For example, when a user buys a new phone from a vendor or store, there likely is a lack of information that can be used to generate recommendations for the user. Nonetheless, when receiving a new device, users often want or need recommendations for what applications, ringtones, themes, media, etc. to install on their devices.
  • the system 200 can use the various embodiments described herein to determine an appropriate recommendation to best personalize the device for the user. Accordingly, the system 100 enables an improved user experience (e.g., to make the user happier) when purchasing the phone and recommended applications, etc.
  • the system 100 reduces the amount of time the user has to spend online search for such applications, thereby reducing connectivity costs for the user and network traffic and load on the application server,
  • the system 100 also introduces the capability to associate new users with one or more of the context- ware groups of users.
  • the system 100 mines the contextual interaction information and users preferences of new users to determine behavior information.
  • the behavior information is then used to segment the new users into context-aware groups of users.
  • New users can be classified into one or more supervised, context-aware groups of users and/or clustered into one or more unsupervised, or semi-supervised context-aware groups of users.
  • the classified, context-aware groups of users constitute pre-defined classes, such as student, tourist, professional, etc. that correspond to pre-defined behavior features.
  • New users are classified into the supervised, context-aware groups of users when their behavior information satisfies certain thresholds for the pre-defined behavior features.
  • the clustered, context-aware groups of users constitute groups of users with similar behavior information determined according to clustering methods such that the groups can be defined on a purely mathematical basis.
  • the system 100 Upon associating new users with one or more of the context-aware groups of users, the system 100 introduces the capability to train and/or retrain the recommendation models associated with the groups that the new users are now associated with to account for the possibility of new, or changed, contextual interaction information associated with the new users to increase the breadth of information accounted for in the recommendation models.
  • the system 100 may train the recommendation models based on a schedule, such as after a period N of time (e.g., every week, every month, every year, etc.).
  • the system 100 can train the recommendation models based on the amount of new contextual interaction information new users have when newly associated with a context-aware group of users.
  • the system 100 comprises user equipment (UE) lOla-lOln (collectively referred to as UE 101) having connectivity to a recommendation platform 103 via a communication network 105.
  • the UE 101 also have connectivity to a service platform 107 and content providers 1 13a-1 13n (collectively referred to as content providers 113) via the communication network 105.
  • the UE 101 include recommendation modules 1 l l a-1 l ln (collectively referred to as recommendation modules 1 1 1) that interact with the recommendation platform 103 for collecting and/or mining user contextual interaction information and user preferences for determining a user's behavior infonnation.
  • the recommendation modules 111 can also interface with one or more applications running on the UE 101 for displaying one or more recommendations generated by the recommendation platform 103.
  • the recommendation modules 11 1 are illustrated and/or described as modules of the UE 101, in one embodiment, the recommendation modules 1 1 1 may constitute one or more applications running on the UE 101 that may interface with the recommendation platform 103 for collecting and/or mining the user contextual interaction infonnation and the user preferences.
  • the recommendation platform 103 may interface with the UE 101 directly without recommendation modules 1 1 1 or may be a module and/or application running on the UE 101.
  • the UE 101 also include sensors 1 17a-l 17n (collectively referred to sensors 1 17) that collect contextual interaction information associated with the UE 101, the users of the UE 101, the suiTounding environment, or a combination thereof.
  • the sensors 1 17 may include, for example, location sensors, speed sensors, brightness sensors, audio sensors, moisture sensors, acceleration sensors, etc.
  • the UE 101 also include data storages 1 19a-119n (collectively referred to as data storages 1 19) for storing information, such as contextual interaction information, for transmission to the recommendation platfonn 103.
  • the recommendation platform 103 provides recommendations based on context-aware groups of user. Although illustrated as a separate, distinct feature of the system 100, in one embodiment, the recommendation platform 103 may exist within the UE 101 if, for example, the UE 101 do not include the recommendation modules 1 1 1. In one embodiment, the recommendation platform 103 may exist as a service 109a on the service platfonn 107. In communication with, or part of, the recommendation platform 103 is a platfonn storage 115 for storing information regarding the context-aware groups of users, such as the reference behavior infonnation and the recommendation models associated with the context- aware groups of users, and user behavior infonnation. The platform storage 115 can store any other models and/or rules used to provide recommendations based on context-aware groups of users.
  • the recommendation platfonn 103 and the UE 101 have connectivity to the service platform 107 that includes one or more services 109a-109n (collectively referred to as services 109) via the communication network 105.
  • the services 109 can include weather services, location services, mapping services, navigation services, media services, etc.
  • the services 109 can provide additional or supplementary information regarding, for example, environmental conditions (e.g., weather), activities (e.g., participating in online gaming), preferences (e.g., music preferences), locations (e.g., location preferences), etc. This additional infonuation can be used to further define user behavior information for providing recommendations based on context-aware groups of users.
  • the service platform 107 can provide a service 109a that can provide navigation information so that the recommendation platform 103 can correlate user behavior information with navigational information.
  • the recommendation platform 103 can generate information with respect to user behavior patterns when the user is navigating along a route.
  • the recommendation platform 103 and the UE 101 have connectivity to content providers 113 via the communication network 105.
  • the content providers can provide content regarding weather, location, maps, navigation routes, media, etc. to provide additional or supplemental information that can be used to further define user behavior information for providing recommendations based on context-aware groups of users.
  • a content provider 113a can provide past weather information so that the recommendation platform 103 can correlate user behavior information with past weather information so that the recommendation platform 103 can generate behavior patterns with respect to the user when the weather is clear, cloudy, raining, snowing, etc.
  • the communication network 105 of system 100 includes one or more networks such as a data network, a wireless network, a telephony network, or any combination thereof.
  • the data network may be any local area network (LAN), metropolitan area network (MAN), wide area network (WAN), a public data network (e.g., the Internet), short range wireless network, or any other suitable packet-switched network, such as a commercially owned, proprietary packet-switched network, e.g., a proprietary cable or fiber-optic network, and the like, or any combination thereof.
  • the wireless network may be, for example, a cellular network and may employ various technologies including enhanced data rates for global evolution (EDGE), general packet radio service (GPRS), global system for mobile communications (GSM), Internet protocol multimedia subsystem (IMS), universal mobile telecommunications system (UMTS), etc., as well as any other suitable wireless medium, e.g., worldwide interoperability for microwave access (WiMAX), Long Term Evolution (LTE) networks, code division multiple access (CDMA), wideband code division multiple access (WCDMA), wireless fidelity (WiFi), wireless LAN (WLAN), Bluetooth®, Internet Protocol (IP) data casting, satellite, mobile ad-hoc network (MANET), and the like, or any combination thereof.
  • EDGE enhanced data rates for global evolution
  • GPRS general packet radio service
  • GSM global system for mobile communications
  • IMS Internet protocol multimedia subsystem
  • UMTS universal mobile telecommunications system
  • WiMAX worldwide interoperability for microwave access
  • LTE Long Term Evolution
  • CDMA code division multiple
  • the UE 101 is any type of mobile terminal, fixed terminal, or portable terminal including a mobile handset, station, unit, device, multimedia computer, multimedia tablet, Internet node, communicator, desktop computer, laptop computer, notebook computer, netbook computer, tablet computer, personal communication system (PCS) device, personal navigation device, personal digital assistants (PDAs), audio/video player, digital camera/camcorder, positioning device, television receiver, radio broadcast receiver, electronic book device, game device, or any combination thereof, including the accessories and peripherals of these devices, or any combination thereof. It is also contemplated that the UE 101 can support any type of interface to the user (such as "wearable" circuitry, etc.).
  • a protocol includes a set of rules defining how the network nodes within the communication network 105 interact with each other based on information sent over the communication links.
  • the protocols are effective at different layers of operation within each node, from generating and receiving physical signals of various types, to selecting a link for transferring those signals, to the format of information indicated by those signals, to identifying which software application executing on a computer system sends or receives the information.
  • the conceptually different layers of protocols for exchanging information over a network are described in the Open Systems Interconnection (OSI) Reference Model.
  • Each packet typically comprises (1) header information associated with a particular protocol, and (2) payload information that follows the header information and contains information that may be processed independently of that particular protocol.
  • the packet includes (3) trailer information following the payload and indicating the end of the payload information.
  • the header includes information such as the source of the packet, its destination, the length of the payload, and other properties used by the protocol.
  • the data in the payload for the particular protocol includes a header and payload for a different protocol associated with a different, higher layer of the OSI Reference Model.
  • the header for a particular protocol typically indicates a type for the next protocol contained in its payload.
  • the higher layer protocol is said to be encapsulated in the lower layer protocol.
  • the headers included in a packet traversing multiple heterogeneous networks, such as the internet typically include a physical (layer 1) header, a data-link (layer 2) header, an internetwork (layer 3) header and a transport (layer 4) header, and various application (layer 5, layer 6 and layer 7) headers as defined by the OSI Reference Model,
  • FIG. 2 is a diagram of the components of the recommendation platform 103, according to one embodiment.
  • the recommendation platfonn 103 includes one or more components for providing recommendations based on context-aware groups of users. It is contemplated that the functions of these components may be combined in one or more components or performed by other components of equivalent functionality.
  • the recommendation platfonn 103 includes a behavior module 201, a similarity module 203, a group module 205, a training module 207, a recommendation module 209, and a communication module 21 1.
  • the behavior module 201 collects the information used by the recommendation platform 103 to determine the behavior information of a user.
  • the behavior module 201 communicates through the communication module 21 1 with a UE 101a, a recommendation module 1 1 1a of the UE 101a, or a combination therefore to determine the contextual interaction information and preference information of a user of the UE 101a.
  • the behavior module 201 communicates with the services 109 of the service platform 107, the content providers 1 13, or a combination thereof, to determine additional or supplemental information used in determining behavior information of the user of the UE 101a.
  • the behavior module 201 mines the information for behavior information that is used by the recommendation platform 103 to generate one or more recommendations.
  • the behavior module 201 communicates with a recommendation module 1 1 la of a UE 101a to gather context records of the user of the UE 101a.
  • the context records may be formatted, for example, according to a time stamp, contextual interaction information associated with the time stamp, a software application associated with the contextual interaction information and/or time stamp, and a category of the software application. Examples of such context records include:
  • the user was using a web browser (e.g., Firefox) while at work (e.g., business place; no holiday; low speed) with their UE 101a on a silent profile mode.
  • the second time stamp e.g., a time between 18:00 and 19:00
  • the user was playing the game Angry Birds at some unknown location while traveling in some form of transportation (e.g., high speed).
  • the behavior module 201 can mine the user's behavior patterns. Such mining methods can include, for example, a priori, FP-growth, or other association rules algorithms.
  • the mined behavior patterns e.g., behavior information
  • the mined behavior patterns can constitute:
  • the behavior module 201 gathers the contextual interaction information and the preference information of a user to determine behavior information when a user first uses the recommendation platform 103 to generate one or more recommendations. In one embodiment, the behavior module 201 gathers new contextual interaction information and new preference information of the user to determine updates to the user's behavior information after a period of time since the previous behavior information was determined. For example, every week, month or year the behavior module 201 determines updates to the contextual interaction information and preference information to update the behavior information. This allows the recommendation platform 103 to routinely re-evaluate the behavior information of the users to better recommend content for the user.
  • the behavior module 201 also determines the reference behavior information associated with the context-aware groups of users based on the collective behavior information of users associated with the context-aware groups. Over time, as more users interface with the recommendation platform 103, the number of users associated with the context-ware groups of users increases. Additionally, as the sparseness of the data used to segment the users decreases, the recommendation platform 103 can define new context-aware groups of users to segment the users into. Upon creating new context-aware groups of users and re-training recommendation models of existing context-aware groups (discussed below), the behavior module 201 determines the reference behavior information associated with the context-aware groups of users to use in generating or training one or more recommendation models associated with the respective one or more context-aware groups of users.
  • the similarity module 203 determines the similarities between the behavior information of the user and reference behavior information associated with the context-aware groups of user.
  • the similarity module 203 can user one or more algorithms to compare the user behavior infoiTnaiion to the reference behavior information to generate corresponding similarity values.
  • Such specific methods can include, for example, decision tree classification or distance- based methods (e.g., KL-divergence) or any other know comparison algorithm.
  • Each similarity value can correspond to, for example, a probability that a user belongs to a context-aware group of users based on the comparison of the reference behavior information associated with the specific context-aware group of users to the behavior information of the user.
  • similarity values are calculated for each context-aware group of users compared to the user's behavior information.
  • a user can belong to all of the context-aware groups of user by an amount corresponding to the calculated similarity value for each of the con text- aware groups of users.
  • the group module 205 controls the number of context-aware groups of users within the recommendation platform 103. As more new users become associated with the recommendation platform 103, such that the breadth and/or resolution of the behavior information associated with the users increases, the group module 205 increases the number of groups by dividing existing context-aware groups of users into smaller, more defined context- aware groups of users.
  • a context-aware group of users may have 99 users that share the same behavior information except for one behavioral trait, such that 49 users within the group have Trait Aj and the remaining 50 users have Trait A 2 . If a new user becomes associated with the group and the new user has the Trait Ai, the group module 205 can divide the current context-aware group of users into two different context-aware groups of users such that there are 50 users in each group, Similarly, when a new user becomes associated with the recommendation platform 103 and the new user includes new behavior information that covers some other type of behavior and/or content, the group module 205 can create a new context-aware group of users to handle the additional behavior and/or content.
  • the group module 205 also determines to associate new users, or existing users whose behavior information has changed, with the one or more context-aware groups of users. Such an association can be based on a classification of the user into the context-aware group of users or a clustering of the user into the context-aware group of users.
  • a classification of a user into a context-aware group of users depends on, for example, a user's behavior information matching pre-defined behavior or contextual interaction information of a supervised, context-aware group of users. For example, some form of supervision, such as from the service provider that provides the service of the recommendation platform, classifies a context-aware group of users as being, for example, doctors, Thus, when behavior or contextual interaction information of a user matches the classification parameters of the context-aware group of doctors, the group module 205 associates the new with the specific group. Thus, the group module 205 may account for many different types of classifications, such as student, teacher, doctor, attorney, teenager, grandparent, etc.
  • Users may belong to any number of the supervised, classification-based, context-aware groups of users.
  • Algorithms that can be used to classify the users into the supervised context-aware groups of users may include, for example, using k nearest neighbor or decision tree methods.
  • the clustering of users into unsupervised, or semi-supervised, context-aware groups of users depends, at least in part, on, for example, the similarity value of the user's behavior information compared to the respective reference behavior information of the context-aware groups of users.
  • the clustering of users into unsupervised context-aware groups of users is based, at least in part, on a mathematical analysis of the user's behavior information compared to the reference behavior information of the context-aware groups of users.
  • Such methods of clustering users into the unsupervised, context-aware groups of users include topic modeling, matrix decomposition, and k-means clustering.
  • the group module 205 also associates the stored one or more recommendation models in the platform storage 115 with the corresponding context-aware groups of users.
  • the group module 205 also determines when to update the recommendation models associated with the context-aware groups of user.
  • the group module 205 determines to update the recommendation models based on, for example, a period of time (e.g., every week, month, year, etc.), a number of new users within the context-aware group of users associated with the recommendation model, the breadth and/or resolution of the behavior information associated with the users that are segmented in the context-aware group of users, or a combination thereof.
  • the group module 205 can determine to update the recommendation model because, for example, the sparseness of the data to generate the recommendation model may have decreased allowing for a more complete recommendation model.
  • the training module 207 trains the recommendation models associated with the context-aware groups of users based on the behavior information associated with the context- aware groups of users. In one embodiment, the training module 207 trains the recommendation models based on the reference behavior information determined for the groups of users as a collective, In one embodiment, the training module 207 trains the recommendation models based on the behavior information of a portion or all of the users' behavior information that is associated with the respective one or more context-aware groups of users. The training module 207 trains the recommendation models for the context-aware groups of users when the group module 205 determines that the recommendation models should be trained, as discussed above. Thus, for example, the training module 207 can train the recommendation models based on a period of time N (e.g., a week, a month, a year, etc.) elapsing since the last time the recommendation models were trained.
  • N e.g., a period of time N (e.g., a week, a month, a year, etc.) elapsing since
  • the recommendation module 209 takes information from the behavior module 201, the similarity module 203 and the group module 205 to determine one or more recommendations for one or more users using the recommendation platform 103. In one embodiment, the recommendation module 209 provides recommendations from the recommendations models without normalization. In one embodiment, the recommendation module 209 provides recommendations from the recommendation models normalized according to the respective similarity values associated with the context-aware groups of users for a particular user. By way of example, the recommendation module 209 uses one or more similarity values determined by the similarity module 203 and one or more recommendation models associated with one or more context-aware groups of users to determine one or more recommendations.
  • the recommendation module 209 can generate a recommendation based on a combination of the recommendations from the one or more recommendation models normalized based on the one or more similarity values corresponding to the one or more context-aware groups of users.
  • the recommendation module 209 can tune the results of the one or more recommendation models to bias the combination of several recommendations into one recommendation towards a specific one or more groups.
  • the tuning can be based on behavior information, contextual interaction information, and/or user preferences.
  • Group A's recommendation model may recommend Content X at a recommendation value of 0.15
  • Group B's recommendation model may recommend Content Y at a recommendation value of 0.10
  • Group C's recommendation model may recommend Content Z at a recommendation value of 0.05
  • the user may have similarity values corresponding to Group A of 0.10, Group B of 0.20 and Group C 0.50.
  • the combination of the recommendations results in Content Z being the recommended content with a recommendation value of 0.025 (e.g., 0.05 x 0.50) as opposed to Content X that has a recommendation value of only 0.015 (e.g., 0.15 * 0.10). Accordingly, based on the similarity of the user's behavior information compared to the behavior information associated with the respective context-aware groups of users, the users can receive more personalized and accurate recommendations.
  • the recommendation platform 103 can reuse the various recommendation models of the various context-aware groups of users for all of the users without having to determine personalized recommendation models for each user.
  • the ability to reuse the recommendation models increases the efficiency of the recommendation platform 103 because the recommendation platform 103 does not have to perform the complex and time consuming procedure of developing recommendation models for each individual user.
  • the communication module 21 1 interfaces with the various elements of the system 100 to exchange the information required by the recommendation platform 103 to determine the recommendations for users.
  • the recommendation platform 103 interfaces with the platform storage 1 15 and the communication network 105 through the communication module 211 to obtain the contextual interaction information from the UE 101, the service platform 107, and/or the content providers 113.
  • FIG. 3 is a flowchart of an overview of a process 300 for providing recommendations based on context-aware groups of users, according to one embodiment.
  • the recommendation platform 103 performs the process 300 and is implemented in, for instance, a chip set including a processor and a memory as shown in FIG. 1 1.
  • the recommendation platform 103 determines one or more similarity values of a user based on behavior information obtained from the UE 101, in addition to or supplemented by any information from the service platform 107 and/or the content providers 1 13, compared to reference behavior information of one or more context- aware groups of users.
  • the recommendation platform 103 determines one or more recommendation models associated with one or more context-aware groups of users to use to generate one or more recommendation based on the similarity values of the user.
  • the recommendation platform 103 may select a recommendation model from all of the context-aware groups of users that are associated with a similarity value of a user determined from the user's behavior information, which may comprise a similarity value for all of the context-aware groups of users. In one embodiment, the recommendation platform 103 may select recommendation models from the context-aware groups of users that are associated with the similarity values that have the highest values. In other words, the recommendation platform 103 can use all of the recommendation models associated with all of the context-aware groups of users, or can user a subset of the recommendation models associated with a subset of the context-aware groups of users based on the similarity values corresponding to the context-aware group of users for a particular user.
  • the recommendation platform 103 can use only recommendation models associated with context-aware groups of users that more closely match the behavior information associated with the user.
  • the recommendation platform 103 determines one or more recommendations based on the selected recommendation models and provides the recommendations to the user.
  • FIG. 4 is a flowchart of a process 400 for determining one or more similarity values for providing recommendations based on context-aware groups of users, according to one embodiment.
  • the recommendation platform 103 performs the process 300 and is implemented in, for instance, a chip set including a processor and a memory as shown in FIG. 1 1.
  • the recommendation platform 103 collects the contextual interaction information from the UE 101, and any additional or supplemental contextual interaction information and/or user preferences from the service platform 107 and/or the content providers 113.
  • the contextual interaction information can comprise the context records discussed above, such as in what context particular applications were used by the user on the UE 101a of the user.
  • the recommendation platform 103 mines the contextual interaction information and user preference information to generate behavior information.
  • the behavior information corresponds to, for example, behavioral patterns within the contextual interaction information.
  • Such behavior information can include at what time and by what mode of transportation does a user commute to work in the morning.
  • Such behavior information can be mined by analyzing the context records over a particular point in tie every day during the week.
  • the recommendation platform 103 can use any appropriate mining algorithm to extract the behavior information from the particular context records of user contextual interaction infonnation and/or user preferences.
  • Specific methods of mining the behavior infonnation include, for example, a priori, frequent pattern growth and other association rules or algorithms.
  • the recommendation platform 103 compares the user behavior information generated in step 403 to reference behavior information of one or more context- aware groups of users.
  • the recommendation platform 103 generates one or more similarity values corresponding to the one or more context-aware groups of users based on the comparison in step 405 with defined similarity metrics.
  • the similarity values represent, for example, how close the behavior infonnation of a particular user matches the reference behavior information for a particular context-aware group of users.
  • the similarity values represent a probability that a user belongs to a particular context-aware group of users.
  • the recommendation platfonn 103 can adjust recommendation models to fit all users.
  • the similarity metrics can constitute any known, conventional similarity metric techniques.
  • FIG. 5 is a flowchart of a process 500 for selecting one or more recommendation models for providing recommendations based on context-aware groups of users, according to one embodiment.
  • the recommendation platform 103 performs the process 300 and is implemented in, for instance, a chip set including a processor and a memory as shown in FIG. 1 1.
  • the recommendation platform 103 determines whether a threshold similarity value has been set.
  • the threshold similarity value controls whether a recommendation model associated with a context-aware group of users is selected to generate recommendations. For instance, if a similarity value corresponding to a context-aware group of users is not above the threshold similarity value, the recommendation platform 103 determines that the particular user's behavior information is not close enough to the reference behavior information of the context-aware group of users.
  • the context-aware group of users, and the one or more recommendation models associated with the context-ware group of users does not need to be accounted for in generating recommendations for the user, Where the number of context-aware groups of users is large, as well as the difference between the reference behavior information associated with the context-aware groups of users, a threshold similarity value allows the recommendation platform 103 to disregard potentially many irrelevant recommendation models for a particular user. This further increases the efficiency of generating recommendation for a large number of users.
  • the threshold similarity value can be set by the service provider that is providing the recommendation service associated with the recommendation platform 103. In one embodiment, the threshold similarity value can be set by the individual users who use the recommendation platform 103. In one embodiment, multiple threshold similarity values can be set by both the service provider and the individual users, such that one similarity value is controlling as long as the value does not conflict with the other threshold similarity value. For example, a user's threshold similarity value can be controlling as long as it is not as restrictive as a service provider's threshold similarity value. In one embodiment, the similarity values are used to generate the threshold similarity value.
  • the recommendation platform 103 can automatically set the threshold similarity value to 0,80 to exclude using recommendation models that do not closely match the user's behavior information.
  • step 501 the recommendation platform 103 determines that a threshold similarity value is set
  • the process 500 proceeds to step 503. If, at step 501, the recommendation platform 103 determines that a threshold similarity value has not been set, the process 500 proceeds to step 509. [0075] At step 503, the recommendation platform 103 compares the similarity values to the threshold similarity value to determine the subset of similarity values that are used for the remainder of the process 500 and the other processes used by the recommendation platform 103.
  • the recommendation platform 103 associates the user with the context- aware groups of users corresponding to the subset of similarity values.
  • the subset of similarity values determines, in a sense, which context-aware groups of users the particular user belongs to based on a similarity between the particular user's behavior information and the reference behavior information associated with the context-aware groups of users.
  • the recommendation platform 103 selects the subset of one or more recommendation models associated with the corresponding subset of the context- ware groups of users.
  • the recommendation platform 103 generates the one or more recommendations based on the subset of recommendation models based on the threshold similarity value weeding out similarity values and context-aware groups of users that are not similar enough in behavior information as compared to the particular user. This process allows the recommendation platfonn 103 to tailor recommendations for a particular user without having to generate specific recommendation models for all of the various users.
  • the recommendation platfonn 103 selects all of the recommendation models associated with all of the context-aware groups of users. Thus, if no threshold similarity value was set, the recommendation platfonn 103 determines the one or more recommendations based on all of the recommendation models corresponding to all of the context-aware groups of users. After step 509 the process 500 ends.
  • FIG. 6 is a flowchart of a process 600 for generating one or more recommendations for providing recommendations based on context-aware groups of users, according to one embodiment.
  • the recommendation platform 103 performs the process 300 and is implemented in, for instance, a chip set including a processor and a memory as shown in FIG. 1 1.
  • step 601 having already selected the one or more recommendation models to use according to process 500 described above, the recommendation platform 103 determines one or more recommendations associated with a particular recommendation query associated with the user.
  • the recommendations can be generated by the one or more recommendation models according to known, conventional recommendation model techniques.
  • the process 600 can end and simply provide the particular user with the various recommendations determined based on the one or more recommendation models. For example, Recommendation Model A could recommend Content A, B and C, Recommendation Model B could recommend Content A, B and D, and Recommendation Model C could recommend Content A, B and C, in the respective orders.
  • the recommendation platform 103 after step 601 could provide a recommendation for Content A, B, C, and D, in that respective order, based on all of the recommendation models.
  • the recommendation platform 103 can recommend the top N content, such as Content A, B and C based on this content being the most recommended (e.g., both Models A and C recommending A, B and C).
  • the process 600 can proceed to step 603 to normalize the recommendations according to the similarity values.
  • the recommendation platform 103 selects the one or more similarity values associated with the one or more selected recommendation models. For example, the recommendation platform 103 selects the one or more similarity values that were used to detemiine to use the one or more recommendation models in step 601, as discussed with respect to process 500 above. If no threshold similarity value was set, the recommendation platform 103 selects all of the similarity values at step 603. [0082] At step 605, the recommendation platform 103 normalizes the one or more recommendations determined at step 601 based on the one or more similarity values associated with the one or more recommendation models used to generate the one or more recommendations.
  • Recommendation Models A and C could have similarity values of 0.10 and 0.05 and Recommendation Model B could have a similarity value of 0.95.
  • the recommendations generated by the recommendation models are normalized according to the respective similarity values associated with the recommendation models, the same content of Content A, B, C and D are recommended according to Content A, B, D and C considering that the similarity value associated with Recommendation Model B is much higher than Recommendation Models A and C.
  • the provided recommendation is generated based on combining the recommendations based on several recommendation models associated with the groups of users normalized according to the similarity values associated with the groups of users. According to this approach, the user can receive personalized recommendations based on rich context-aware datasets without reducing the efficiency of the recommendation system by requiring personalized recommendations models for each individual user.
  • the recommendation platform 103 generates and provides the one or more recommendations based on the above normalization. After step 607, the process 600 ends.
  • FIG. 7 is a flowchart of a process 700 for associating a user with at least one group of users for providing recommendations based on context-aware groups of users, according to one embodiment.
  • the recommendation platform 103 performs the process 300 and is implemented in, for instance, a chip set including a processor and a memory as shown in FIG. 1 1.
  • the recommendation platform 103 determines whether any of the context- aware groups of users are supervised, context-aware groups of users.
  • supervised, context- aware groups of users consist of groups of users that are defined based on classifications, such as taxi driver, doctor, student, teenager, etc..
  • the groups are considered "supervised” because some supervision has occurred to define, at least in part, the behavior information associated with the user to become associated with the context-aware groups of users.
  • Such supervision can be controlled, for example, by the service provider that controls the recommendation platform 103. If, at step 701, the recommendation platform 103 determines that there are supervised groups of users, the process 700 proceeds to step 703.
  • the process 700 proceeds to step 707.
  • the recommendation platform 103 processes the behavior information associated with a particular user to determine whether at least some records on the behavior information match records of pre-defined behavior information associated with the one or more supervised, context-aware groups of users. After processing the behavior information, the recommendation platform 103 associates the particular user with the one or more supervised, context-aware groups of users that the particular user's behavior information matched.
  • a user's behavior information reveals that the user drives to work to a hospital in the mornings and drives home from work from the hospital in the evenings indicating, for example, that the user is a doctor.
  • contact information and appointment information in the user's calendar and address book even further indicate that the user is a doctor. Accordingly, the user is associated with a supervised, context-aware groups of users classified as doctors. As discussed above, the recommendation platform 103 can use various algorithms to determine classification of the users, such as k nearest neighbor or decision tree methods.
  • the recommendation platform 103 processes the user behavior information to determine which unsupervised, or semi-supervised context-aware groups of users the user is associated with. In one embodiment, the comparison is performed based on the one or more similarity values calculated for each of the context-aware groups of users.
  • the methods for clustering a user into an unsupervised, or semi-supervised context-aware group of users may include decision tree or distance-based methods such as KL-divergence for determining the similarity values that are used to associate a user with one or more context- aware groups of users. Other methods include, for example, topic models, matrix decompositions, and k-means clustering.
  • the recommendation platform 103 associates the user with the unsupervised groups of users with matching behavior information. After step 709, the process 700 ends.
  • FIG. 8 is a flowchart of a process 800 for training a recommendation model for a group of users for providing recommendations based on context-aware groups of users, according to one embodiment.
  • the recommendation platform 103 performs the process 300 and is implemented in, for instance, a chip set including a processor and a memory as shown in FIG. 11.
  • the recommendation platform 103 selects one of the context-aware groups of users to update.
  • the selected one of the context-aware groups of users can be randomly selected or selected based on a set update pattern, such as consecutively based on the order in which the groups were created.
  • the recommendation platform 103 determines whether a threshold period of time has elapsed since the last time the recommendation model for the selected context-aware group of users was updated. If the threshold period has not elapsed, the process 800 proceeds to step 805, Otherwise, the process 800 proceeds to step 809.
  • the recommendation platform 103 determines if there has been a set change in the number of users associated with the selected context-aware group of users.
  • the set change can be a percentage or a number of users that have become associated or dissociated with the selected context-aware group of users. If the set change in the number of users associated with the selected context-aware group of users is not satisfied, the process 800 proceeds to step 807. Otherwise, the process 800 proceeds to step 809. [0092] At step 807, the recommendation platform 103 determines whether a threshold for the behavior of information of one or more new users has been satisfied.
  • one or more new users associated with the selected context-aware group of users may include a large amount of behavior information, contextual interaction information and/or user preference information that may substantially change the reference behavior information associated with the selected context-aware group of users.
  • the recommendation model based on the behavior information associated with the selected context-aware group of users can be modified to account for the change in the behavior information. If the threshold for behavior information of one or more new users has been satisfied, the process 800 proceeds to step 809. Otherwise, the process 800 proceeds back to step 801 and another context-aware group of users is selected to update.
  • the recommendation platform 103 determines the reference behavior infomiation of the selected context-aware group of users based on the behavior information associated with the users associated with the selected context-aware group of users. Alternatively, the recommendation platform 103 can determine the one or more recommendation models based individually on the collective behavior information associated with a portion or all of the users and not based on the reference behavior information.
  • the recommendation platform 103 trains the recommendation model associated with the selected context-aware group of users based on the behavior information determined at step 809.
  • the recommendation platform 103 trains the one or more recommendation models associated with the selected context-aware group of users according to known training algorithms.
  • step 81 1 the process 800 ends.
  • FIGs. 9A and 9B are diagrams of user interfaces utilized in the processes of FIGs. 3-8, according to various embodiments.
  • FIG. 9A illustrates a user interface 901a that is displayed on, for example, a screen of the UE 101a when using the recommendation platform 103 to recommend, for example, music.
  • the user interface 901a illustrates that the user associated with the UE 101a has been grouped with the context-aware groups of users illustrated by indicator 903.
  • Indicator 903 includes the context-aware groups of users labeled Alternative, Rock & Roll, Pop, Teenager, Young Adult, Train Commuter and Bus Commuter.
  • the context-aware groups of users associated with indicator 903 are all labeled by human comprehendible names
  • the context-aware groups of users can be labeled by any type of label, including random strings of letters and numbers that may not be displayed to a user when the processing is performed by the recommendation platform 103 on the backend, invisible to the user.
  • Such groups can be formed based on any type of matching behavior information, However, in one embodiment, where a user may see the names of the context-aware groups of users, the groups may be appropriately labeled so that the user can understand the subject of the groups.
  • Groups Alternative, Rock & Roll and Pop are based on the user's behavior information matching the reference behavior information of users associated with these context-aware groups of users based, for example, on the users liking the same type of music.
  • Groups Teenager and Young Adult are based on the user's behavior information matching the reference behavior information of users associated with these context-aware groups of users based, for example, on the users having contextual interaction information suggesting the same age group.
  • Train Commuter and Bus Commuter are based on the user's behavior information matching the reference behavior information of users associated with these context-aware groups of users based, for example, on behavior pattems indicating a mode of transportation used to commute to work.
  • Indicator 905 illustrates the similarity values associated with each one of the context- aware groups of users for this particular user.
  • the similarity values associated with Pop and Teenager are high (e.g., 0.95 and 0.90, respectively) indicating a high likelihood that the recommendation models associated with these context-aware groups of users will apply well to the preferences of the particular user based on the comparison of behavior information.
  • the similarity value associated with Bus Commuter is not as high (e.g., 0.35) indicating a lower likelihood that the recommendation model associated with this context- aware group of users will apply well to the preferences of the particular user based on the comparison of the behavior information.
  • the similarity values represented by indicator 905 are what are used to normalize the recommendations generated by the recommendation models associated with the context-aware groups of users represented by indicator 903.
  • FIG. 9B illustrates a user interface 901b that is displayed on, for example, a screen of the UE 101a when using the recommendation platform 103 to recommend, for example, music.
  • the user interface 901b displays recommendations made by the recommendation platform 103 based on the recommendation models associated with the context-aware groups of users represented by the indicator 903 normalized based on the similarity values associated with the context- aware groups of users represented by indicator 905.
  • indicator 907 illustrates the particular artists that have been recommended
  • indicator 909 illustrates the confidence scores given to each recommendation.
  • the confidence scores can be represented by, for example, bars, as illustrated in FIG. 9b, or by any other means, such as stars, letters, numbers, etc. or a combination thereof.
  • the confidence scores are a graphical representation of the confidence scores generated by the recommendation platform 103 based on the confidence scores of each recommendation model associated with the context-aware groups of users the particular user belongs to normalized by the similarity values for the particular user associated with each context-aware group of users.
  • the particular user receives highly personalized recommendations while increasing the efficiency of the recommendation process by using group-based recommendations.
  • the processes described herein for providing recommendations based on context- aware groups of users may be advantageously implemented via software, hardware, firmware or a combination of software and/or firmware and/or hardware.
  • the processes described herein may be advantageously implemented via processor(s), Digital Signal Processing (DSP) chip, an Application Specific Integrated Circuit (ASIC), Field Programmable Gate Arrays (FPGAs), etc.
  • DSP Digital Signal Processing
  • ASIC Application Specific Integrated Circuit
  • FPGAs Field Programmable Gate Arrays
  • FIG. 10 illustrates a computer system 1000 upon which an embodiment of the invention may be implemented.
  • computer system 1000 is depicted with respect to a particular device or equipment, it is contemplated that other devices or equipment (e.g., network elements, servers, etc.) within FIG. 10 can deploy the illustrated hardware and components of system 1000.
  • Computer system 1000 is programmed (e.g., via computer program code or instructions) to provide recommendations based on context-aware groups of users as described herein and includes a communication mechanism such as a bus 1010 for passing information between other internal and external components of the computer system 1000.
  • Information is represented as a physical expression of a measurable phenomenon, typically electric voltages, but including, in other embodiments, such phenomena as magnetic, electromagnetic, pressure, chemical, biological, molecular, atomic, sub-atomic and quantum interactions.
  • a measurable phenomenon typically electric voltages, but including, in other embodiments, such phenomena as magnetic, electromagnetic, pressure, chemical, biological, molecular, atomic, sub-atomic and quantum interactions.
  • north and south magnetic fields, or a zero and non-zero electric voltage represent two states (0, 1) of a binary digit (bit).
  • Other phenomena can represent digits of a higher base.
  • a superposition of multiple simultaneous quantum states before measurement represents a quantum bit (qubit).
  • a sequence of one or more digits constitutes digital data that is used to represent a number or code for a character.
  • information called analog data is represented by a near continuum of measurable values within a particular range.
  • Computer system 1000 or a portion thereof, constitutes a means for performing one or more steps of providing recommendations based on context-aware groups of users.
  • a bus 1010 includes one or more parallel conductors of information so that information is transferred quickly among devices coupled to the bus 1010.
  • One or more processors 1002 for processing information are coupled with the bus 1010.
  • a processor (or multiple processors) 1002 performs a set of operations on information as specified by computer program code related to providing recommendations based on context- aware groups of users.
  • the computer program code is a set of instructions or statements providing instructions for the operation of the processor and/or the computer system to perform specified functions.
  • the code for example, may be written in a computer programming language that is compiled into a native instruction set of the processor. The code may also be written directly using the native instruction set (e.g., machine language).
  • the set of operations include bringing information in from the bus 1010 and placing information on the bus 1010.
  • the set of operations also typically include comparing two or more units of information, shifting positions of units of information, and combining two or more units of information, such as by addition or multiplication or logical operations like OR, exclusive OR (XOR), and AND.
  • Each operation of the set of operations that can be performed by the processor is represented to the processor by information called instructions, such as an operation code of one or more digits.
  • a sequence of operations to be executed by the processor 1002, such as a sequence of operation codes, constitute processor instructions, also called computer system instructions or, simply, computer instructions.
  • Processors may be implemented as mechanical, electrical, magnetic, optical, chemical or quantum components, among others, alone or in combination.
  • Computer system 1000 also includes a memory 1004 coupled to bus 1010.
  • the memory 1004 such as a random access memory (RAM) or any other dynamic storage device, stores information including processor instructions for providing recommendations based on context-aware groups of users. Dynamic memory allows information stored therein to be changed by the computer system 1000. RAM allows a unit of information stored at a location called a memory address to be stored and retrieved independently of information at neighboring addresses.
  • the memory 1004 is also used by the processor 1002 to store temporary values during execution of processor instructions.
  • the computer system 1000 also includes a read only memory (ROM) 1006 or any other static storage device coupled to the bus 1010 for storing static information, including instructions, that is not changed by the computer system 1000, Some memory is composed of volatile storage that loses the information stored thereon when power is lost. Also coupled to bus 1010 is a non-volatile (persistent) storage device 1008, such as a magnetic disk, optical disk or flash card, for storing information, including instructions, that persists even when the computer system 1000 is turned off or otherwise loses power,
  • Information including instructions for providing recommendations based on context- aware groups of users, is provided to the bus 1010 for use by the processor from an external input device 012, such as a keyboard containing alphanumeric keys operated by a human user, a microphone, an Infrared (IR) remote control, a joystick, a game pad, a stylus pen, a touch screen, or a sensor.
  • IR Infrared
  • a sensor detects conditions in its vicinity and transforms those detections into physical expression compatible with the measurable phenomenon used to represent information in computer system 1000.
  • a display device 1014 such as a cathode ray tube (CRT), a liquid crystal display (LCD), a light emitting diode (LED) display, an organic LED (OLED) display, a plasma screen, or a printer for presenting text or images
  • a pointing device 1016 such as a mouse, a trackball, cursor direction keys, or a motion sensor, for controlling a position of a small cursor image presented on the display 1014 and issuing commands associated with graphical elements presented on the display 1014.
  • a pointing device 1016 such as a mouse, a trackball, cursor direction keys, or a motion sensor, for controlling a position of a small cursor image presented on the display 1014 and issuing commands associated with graphical elements presented on the display 1014.
  • one or more of external input device 1012, display device 1014 and pointing device 1016 is omitted.
  • special purpose hardware such as an application specific integrated circuit (ASIC) 1020
  • ASIC application specific integrated circuit
  • the special purpose hardware is configured to perform operations not performed by processor 1002 quickly enough for special potposes.
  • ASICs include graphics accelerator cards for generating images for display 1014, cryptographic boards for encrypting and decrypting messages sent over a network, speech recognition, and interfaces to special external devices, such as robotic arms and medical scanning equipment that repeatedly perform some complex sequence of operations that are more efficiently implemented in hardware.
  • Computer system 1000 also includes one or more instances of a communications interface 1070 coupled to bus 1010.
  • Communication interface 1070 provides a one-way or two-way communication coupling to a variety of external devices that operate with their own processors, such as printers, scanners and external disks. In general the coupling is with a network link 1078 that is connected to a local network 1080 to which a variety of external devices with their own processors are connected.
  • communication interface 1070 may be a parallel port or a serial port or a universal serial bus (USB) port on a personal computer.
  • communications interface 1070 is an integrated services digital network (ISDN) card or a digital subscriber line (DSL) card or a telephone modem that provides an information communication connection to a corresponding type of telephone line.
  • ISDN integrated services digital network
  • DSL digital subscriber line
  • a communication interface 1070 is a cable modem that converts signals on bus 1010 into signals for a communication connection over a coaxial cable or into optical signals for a communication connection over a fiber optic cable.
  • communications interface 1070 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN, such as Ethernet.
  • LAN local area network
  • Wireless links may also be implemented.
  • the communications interface 1070 sends or receives or both sends and receives electrical, acoustic or electromagnetic signals, including infrared and optical signals, that carry information streams, such as digital data.
  • the communications interface 1070 includes a radio band electromagnetic transmitter and receiver called a radio transceiver.
  • the communications interface 1070 enables connection to the communication network 105 for providing recommendations based on context-aware groups of users to the UE 101.
  • Non-transitory media such as non-volatile media, include, for example, optical or magnetic disks, such as storage device 1008.
  • Volatile media include, for example, dynamic memory 1004.
  • Transmission media include, for example, twisted pair cables, coaxial cables, copper wire, fiber optic cables, and earner waves that travel through space without wires or cables, such as acoustic waves and electromagnetic waves, including radio, optical and infrared waves.
  • Signals include man-made transient variations in amplitude, frequency, phase, polarization or other physical properties transmitted through the transmission media.
  • Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, any other magnetic medium, a CD-ROM, CDRW, DVD, any other optical medium, punch cards, paper tape, optical mark sheets, any other physical medium with patterns of holes or other optically recognizable indicia, a RAM, a PROM, an EPROM, a FLASH-EPROM, an EEPROM, a flash memory, any other memory chip or cartridge, a carrier wave, or any other medium from which a computer can read.
  • the term computer-readable storage medium is used herein to refer to any computer-readable medium except transmission media.
  • Network link 1078 typically provides information communication using transmission media through one or more networks to other devices that use or process the information.
  • network link 1078 may provide a connection through local network 1080 to a host computer 1082 or to equipment 1084 operated by an Internet Service Provider (ISP).
  • ISP equipment 1084 in turn provides data communication services through the public, world-wide packet-switching communication network of networks now commonly referred to as the Internet 1090.
  • a computer called a server host 1092 connected to the Internet hosts a process that provides a service in response to information received over the Internet.
  • server host 1092 hosts a process that provides information representing video data for presentation at display 1014. It is contemplated that the components of system 1000 can be deployed in various configurations within other computer systems, e.g., host 1082 and server 1092.
  • At least some embodiments of the invention are related to the use of computer system 1000 for implementing some or all of the techniques described herein. According to one embodiment of the invention, those techniques are performed by computer system 1000 in response to processor 1002 executing one or more sequences of one or more processor instructions contained in memory 1004. Such instructions, also called computer instructions, software and program code, may be read into memory 1004 from another computer-readable medium such as storage device 1008 or network link 1078. Execution of the sequences of instructions contained in memory 1004 causes processor 1002 to perform one or more of the method steps described herein. In alternative embodiments, hardware, such as ASIC 1020, may be used in place of or in combination with software to implement the invention. Thus, embodiments of the invention are not limited to any specific combination of hardware and software, unless otherwise explicitly stated herein.
  • Computer system 1000 can send and receive information, including program code, through the networks 1080, 1090 among others, through network link 1078 and communications interface 1070.
  • a server host 1092 transmits program code for a particular application, requested by a message sent from computer 1000, through Internet 1090, ISP equipment 1084, local network 1080 and communications interface 1070.
  • the received code may be executed by processor 1002 as it is received, or may be stored in memory 1004 or in storage device 1008 or any other non- volatile storage for later execution, or both. In this manner, computer system 1000 may obtain application program code in the form of signals on a carrier wave.
  • Various forms of computer readable media may be involved in carrying one or more sequence of instructions or data or both to processor 1002 for execution.
  • instructions and data may initially be carried on a magnetic disk of a remote computer such as host 1082.
  • the remote computer loads the instructions and data into its dynamic memory and sends the instructions and data over a telephone line using a modem.
  • a modem local to the computer system 1000 receives the instructions and data on a telephone line and uses an infrared transmitter to convert the instructions and data to a signal on an infra-red carrier wave serving as the network link 1078.
  • An infrared detector serving as communications interface 1070 receives the instructions and data carried in the infrared signal and places information representing the instructions and data onto bus 1010.
  • FIG. 1 1 illustrates a chip set or chip 1 100 upon which an embodiment of the invention may be implemented.
  • Chip set 1 100 is programmed to provide recommendations based on context-aware groups of users as described herein and includes, for instance, the processor and memory components described with respect to FIG. 10 incorporated in one or more physical packages (e.g., chips).
  • a physical package includes an arrangement of one or more materials, components, and/or wires on a structural assembly (e.g., a baseboard) to provide one or more characteristics such as physical strength, conservation of size, and/or limitation of electrical interaction.
  • a structural assembly e.g., a baseboard
  • the chip set 1 100 can be implemented in a single chip. It is further contemplated that in certain embodiments the chip set or chip 1 100 can be implemented as a single "system on a chip.” It is further contemplated that in certain embodiments a separate ASIC would not be used, for example, and that all relevant functions as disclosed herein would be performed by a processor or processors.
  • Chip set or chip 1100 constitutes a means for performing one or more steps of providing user interface navigation information associated with the availability of functions.
  • Chip set or chip 1 100, or a portion thereof constitutes a means for perfonning one or more steps of providing recommendations based on context-aware groups of users.
  • the chip set or chip 1 100 includes a communication mechanism such as a bus 1101 for passing information among the components of the chip set 1 100.
  • a processor 1 103 has connectivity to the bus 1101 to execute instructions and process information stored in, for example, a memory 1105.
  • the processor 1103 may include one or more processing cores with each core configured to perform independently.
  • a multi-core processor enables multiprocessing within a single physical package. Examples of a multi-core processor include two, four, eight, or greater numbers of processing cores.
  • the processor 1 103 may include one or more microprocessors configured in tandem via the bus 1 101 to enable independent execution of instructions, pipelining, and multithreading.
  • the processor 1103 may also be accompanied with one or more specialized components to perform certain processing functions and tasks such as one or more digital signal processors (DSP) 1107, or one or more application-specific integrated circuits (ASIC) 1109.
  • DSP digital signal processors
  • ASIC application-specific integrated circuits
  • a DSP 1 107 typically is configured to process real-world signals (e.g., sound) in real time independently of the processor 1103.
  • an ASIC 1109 can be configured to performed specialized functions not easily performed by a more general purpose processor.
  • Other specialized components to aid in performing the inventive functions described herein may include one or more field programmable gate arrays (FPGA), one or more controllers, or one or more other special- purpose computer chips.
  • FPGA field programmable gate arrays
  • the chip set or chip 1100 includes merely one or more processors and some software and/or firmware supporting and/or relating to and/or for the one or more processors.
  • the processor 1 103 and accompanying components have connectivity to the memory 1 105 via the bus 1101.
  • the memory 1105 includes both dynamic memory (e.g., RAM, magnetic disk, writable optical disk, etc.) and static memory (e.g., ROM, CD-ROM, etc.) for storing executable instructions that when executed perform the inventive steps described herein to provide recommendations based on context-aware groups of users.
  • the memory 1 105 also stores the data associated with or generated by the execution of the inventive steps.
  • FIG. 12 is a diagram of exemplary components of a mobile terminal (e.g., handset) for communications, which is capable of operating in the system of FIG. 1, according to one embodiment.
  • mobile terminal 1201, or a portion thereof constitutes a means for performing one or more steps of providing recommendations based on context-aware groups of users.
  • a radio receiver is often defined in terms of front-end and back-end characteristics. The front-end of the receiver encompasses all of the Radio Frequency (RF) circuitry whereas the back-end encompasses all of the base-band processing circuitry.
  • RF Radio Frequency
  • circuitry refers to both: (1) hardware-only implementations (such as implementations in only analog and/or digital circuitry), and (2) to combinations of circuitry and software (and/or firmware) (such as, if applicable to the particular context, to a combination of pracessor(s), including digital signal processor(s), software, and memory(ies) that work together to cause an apparatus, such as a mobile phone or server, to perform various functions).
  • circuitry applies to all uses of this term in this application, including in any claims.
  • circuitry would also cover an implementation of merely a processor (or multiple processors) and its (or their) accompanying software/or firmware.
  • circuitry would also cover if applicable to the particular context, for example, a baseband integrated circuit or applications processor integrated circuit in a mobile phone or a similar integrated circuit in a cellular network device or other network devices.
  • Pertinent internal components of the telephone include a Main Control Unit (MCU) 1203, a Digital Signal Processor (DSP) 1205, and a receiver/transmitter unit including a microphone gain control unit and a speaker gain control unit.
  • a main display unit 1207 provides a display to the user in support of various applications and mobile terminal functions that perfonn or support the steps of providing recommendations based on context-aware groups of users.
  • the display 1207 includes display circuitry configured to display at least a portion of a user interface of the mobile terminal (e.g., mobile telephone). Additionally, the display 1207 and display circuitry are configured to facilitate user control of at least some functions of the mobile terminal.
  • An audio function circuitry 1209 includes a microphone 121 1 and microphone amplifier that amplifies the speech signal output from the microphone 1211. The amplified speech signal output from the microphone 1211 is fed to a coder/decoder (CODEC) 1213.
  • CDEC coder/decoder
  • a radio section 1215 amplifies power and converts frequency in order to communicate with a base station, which is included in a mobile communication system, via antenna 1217.
  • the power amplifier (PA) 1219 and the transmitter/modulation circuitry are operationally responsive to the MCU 1203, with an output from the PA 1219 coupled to the dup lexer 1221 or circulator or antenna switch, as known in the art.
  • the PA 1219 also couples to a battery interface and power control unit 1220.
  • a user of mobile terminal 1201 speaks into the microphone 121 1 and his or her voice along with any detected background noise is converted into an analog voltage.
  • the analog voltage is then converted into a digital signal through the Analog to Digital Converter (ADC) 1223.
  • ADC Analog to Digital Converter
  • the control unit 1203 routes the digital signal into the DSP 1205 for processing therein, such as speech encoding, channel encoding, encrypting, and interleaving.
  • the processed voice signals are encoded, by units not separately shown, using a cellular transmission protocol such as enhanced data rates for global evolution (EDGE), general packet radio service (GPRS), global system for mobile communications (GSM), Internet protocol multimedia subsystem (IMS), universal mobile telecommunications system (UMTS), etc., as well as any other suitable wireless medium, e.g., microwave access (WiMAX), Long Term Evolution (LTE) networks, code division multiple access (CDMA), wideband code division multiple access (WCDMA), wireless fidelity (WiFi), satellite, and the like, or any combination thereof.
  • EDGE enhanced data rates for global evolution
  • GPRS general packet radio service
  • GSM global system for mobile communications
  • IMS Internet protocol multimedia subsystem
  • UMTS universal mobile telecommunications system
  • any other suitable wireless medium e.g., microwave access (WiMAX), Long Term Evolution (LTE) networks, code division multiple access (CDMA), wideband code division multiple access (WCDMA), wireless fidelity (WiFi), satellite,
  • the encoded signals are then routed to an equalizer 1225 for compensation of any frequency-dependent impairments that occur during transmission though the air such as phase and amplitude distortion.
  • the modulator 1227 After equalizing the bit stream, the modulator 1227 combines the signal with a RF signal generated in the RF interface 1229. The modulator 1227 generates a sine wave by way of frequency or phase modulation.
  • an up-converter 1231 In order to prepare the signal for transmission, an up-converter 1231 combines the sine wave output from the modulator 1227 with another sine wave generated by a synthesizer 1233 to achieve the desired frequency of transmission. The signal is then sent through a PA 1219 to increase the signal to an appropriate power level.
  • the PA 1219 acts as a variable gain amplifier whose gain is controlled by the DSP 1205 from information received from a network base station.
  • the signal is then filtered within the duplexer 1221 and optionally sent to an antenna coupler 1235 to match impedances to provide maximum power transfer. Finally, the signal is transmitted via antenna 1217 to a local base station.
  • An automatic gain control (AGC) can be supplied to control the gain of the final stages of the receiver.
  • the signals may be forwarded from there to a remote telephone which may be another cellular telephone, any other mobile phone or a land-line connected to a Public Switched Telephone Network (PSTN), or other telephony networks.
  • PSTN Public Switched Telephone Network
  • Voice signals transmitted to the mobile terminal 1201 are received via antenna 1217 and immediately amplified by a low noise amplifier (LNA) 1237.
  • LNA low noise amplifier
  • a down-converter 1239 lowers the carrier frequency while the demodulator 1241 strips away the RF leaving only a digital bit stream.
  • the signal then goes through the equalizer 1225 and is processed by the DSP 1205.
  • a Digital to Analog Converter (DAC) 1243 converts the signal and the resulting output is transmitted to the user through the speaker 1245, all under control of a Main Control Unit (MCU) 1203 which can be implemented as a Central Processing Unit (CPU).
  • MCU Main Control Unit
  • CPU Central Processing Unit
  • the MCU 1203 receives various signals including input signals from the keyboard 1247.
  • the keyboard 1247 and/or the MCU 1203 in combination with other user input components comprise a user interface circuitry for managing user input.
  • the MCU 1203 runs a user interface software to facilitate user control of at least some functions of the mobile terminal 1201 to provide recommendations based on context-aware groups of users.
  • the MCU 1203 also delivers a display command and a switch command to the display 1207 and to the speech output switching controller, respectively.
  • the MCU 1203 exchanges information with the DSP 1205 and can access an optionally incorporated SIM card 1249 and a memory 1251.
  • the MCU 1203 executes various control functions required of the terminal.
  • the DSP 1205 may, depending upon the implementation, perform any of a variety of conventional digital processing functions on the voice signals. Additionally, DSP 1205 determines the background noise level of the local environment from the signals detected by microphone 1211 and sets the gain of microphone 121 1 to a level selected to compensate for the natural tendency of the user of the mobile terminal 1201.
  • the CODEC 1213 includes the ADC 1223 and DAC 1243.
  • the memory 1251 stores various data including call incoming tone data and is capable of storing other data including music data received via, e.g., the global Internet.
  • the software module could reside in RAM memory, flash memory, registers, or any other form of writable storage medium known in the art.
  • the memory device 1251 may be, but not limited to, a single memory, CD, DVD, ROM, RAM, EEPROM, optical storage, magnetic disk storage, flash memory storage, or any other non-volatile storage medium capable of storing digital data.
  • An optionally incorporated SIM card 1249 carries, for instance, important information, such as the cellular phone number, the carrier supplying service, subscription details, and security information.
  • the SIM card 1249 serves primarily to identify the mobile terminal 1201 on a radio network.
  • the card 1249 also contains a memory for storing a personal telephone number registry, text messages, and user specific mobile terminal settings.

Abstract

An approach is provided for providing recommendations based on context-aware groups of users. A recommendation platform determines one or more similarity values based, at least in part, on a similarity of user behavior information associated with a user to reference behavior information associated with one or more groups of users. The platform further processes and/or facilitates a processing of the one or more similarity values to select from among one or more recommendation models associated with the one or more groups of users. The platform also processes and/or facilitates a processing of the selected one or more recommendation models to generate one or more user recommendations.

Description

METHOD AND APPARATUS FOR
PROVIDING RECOMMENDATIONS BASED ON CONTEXT-AWARE GROUP
MODELING
BACKGROUND
[0001] Service providers and device manufacturers (e.g., wireless, cellular, etc.) are continually challenged to deliver value and convenience to consumers by, for example, providing compelling network services. One area of development has been the use of recommendation systems to provide users with suggestions or recommendations for content based on the users' preferences. Although the development of personalized context-aware recommendation systems is an important area, issues such as data sparseness and algorithm efficiency still remain challenges that need to be overcome. Concepts such as crowd wisdom based methods that leverage data from similar users to that of the target user have been developed as a way to overcome these challenges. Yet, such methods are often time consuming when extending their applicability to recommendation systems that consider rich contextual features as the number of contextual dimensions increases. Accordingly, service providers and device manufacturers face significant technical challenges in providing recommendation systems to users for rich contextual environments.
SOME EXAMPLE EMBODIMENTS
[0002] Therefore, there is a need for an approach for providing recommendations based on recommendation models associated with context-aware groups of user and similarity values for a user with respect to the context-aware groups of users.
[0003] According to one embodiment, a method comprises determining one or more similarity values based, at least in part, on a similarity of user behavior information associated with a user to reference behavior information associated with one or more groups of users. The method also comprises processing and/or facilitating a processing of the one or more similarity values to select from among one or more recommendation models associated with the one or more groups of users. The method further comprises processing and/or facilitating a processing of the selected one or more recommendation models to generate one or more user recommend tions.
[0004J According to another embodiment, an apparatus comprises at least one processor, and at least one memory including computer program code for one or more computer programs, the at least one memory and the computer program code configured to, with the at least one processor, cause, at least in part, the apparatus to determine one or more similarity values based, at least in part, on a similarity of user behavior information associated with a user to reference behavior information associated with one or more groups of users. The apparatus is also caused to process and/or facilitate a processing of the one or more similarity values to select from among one or more recommendation models associated with the one or more groups of users. The apparatus is further caused to process and/or facilitate a processing of the selected one or more recommendation models to generate one or more user recommendations.
[0005] According to another embodiment, a computer-readable storage medium carries one or more sequences of one or more instructions which, when executed by one or more processors, cause, at least in part, an apparatus to determine one or more similarity values based, at least in part, on a similarity of user behavior information associated with a user to reference behavior information associated with one or more groups of users. The apparatus is also caused to process and/or facilitate a processing of the one or more similarity values to select from among one or more recommendation models associated with the one or more groups of users. The apparatus is further caused to process and/or facilitate a processing of the selected one or more recommendation models to generate one or more user recommendations.
[0006] According to another embodiment, an apparatus comprises means for determining one or more similarity values based, at least in part, on a similarity of user behavior information associated with a user to reference behavior information associated with one or more groups of users. The apparatus also comprises means for processing and/or facilitating a processing of the one or more similarity values to select from among one or more recommendation models associated with the one or more groups of users. The apparatus further comprises means for processing and/or facilitating a processing of the selected one or more recommendation models to generate one or more user recommendations. [0007] In addition, for various example embodiments of the invention, the following is applicable: a method comprising facilitating a processing of and/or processing (1) data and/or (2) information and/or (3) at least one signal, the (1) data and/or (2) information and/or (3) at least one signal based, at least in part, on (or derived at least in part from) any one or any combination of methods (or processes) disclosed in this application as relevant to any embodiment of the invention.
[0008] For various example embodiments of the invention, the following is also applicable: a method comprising facilitating access to at least one interface configured to allow access to at least one service, the at least one service configured to perform any one or any combination of network or service provider methods (or processes) disclosed in this application.
[0009] For various example embodiments of the invention, the following is also applicable: a method comprising facilitating creating and/or facilitating modifying (1) at least one device user interface element and/or (2) at least one device user interface functionality, the (1) at least one device user interface element and/or (2) at least one device user interface functionality based, at least in part, on data and/or information resulting from one or any combination of methods or processes disclosed in this application as relevant to any embodiment of the invention, and/or at least one signal resulting from one or any combination of methods (or processes) disclosed in this application as relevant to any embodiment of the invention.
[0010] For various example embodiments of the invention, the following is also applicable: a method comprising creating and/or modifying (1) at least one device user interface element and/or (2) at least one device user interface functionality, the (1) at least one device user interface element and/or (2) at least one device user interface functionality based at least in part on data and/or information resulting from one or any combination of methods (or processes) disclosed in this application as relevant to any embodiment of the invention, and/or at least one signal resulting from one or any combination of methods (or processes) disclosed in this application as relevant to any embodiment of the invention.
[0011] in various example embodiments, the methods (or processes) can be accomplished on the service provider side or on the mobile device side or in any shared way between service provider and mobile device with actions being performed on both sides. [0012] For various example embodiments, the following is applicable: An apparatus comprising means for performing the method of any of originally filed claims 1-13, 27-39, and 45-48.
[0013] Still other aspects, features, and advantages of the invention are readily apparent from the following detailed description, simply by illustrating a number of particular embodiments and implementations, including the best mode contemplated for carrying out the invention. The invention is also capable of other and different embodiments, and its several details can be modified in various obvious respects, all without departing from the spirit and scope of the invention. Accordingly, the drawings and description are to be regarded as illustrative in nature, and not as restrictive.
BRIEF DESCRIPTION OF THE DRAWINGS
[0014] The embodiments of the invention are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings:
[0015] FIG. 1 is a diagram of a system capable of providing recommendations based on context-aware groups of users, according to one embodiment;
[0016] FIG. 2 is a diagram of the components of a recommendation platform that provides recommendations based on context-aware groups of users, according to one embodiment;
[0017] FIG. 3 is a flowchart of a process for providing recommendations based on context- aware groups of users, according to one embodiment;
[0018] FIG. 4 is a flowchart of a process for determining one or more similarity values for providing recommendations based on context-aware groups of users, according to one embodiment;
[0019] FIG. 5 is a flowchart of a process for selecting one or more recommendation models for providing recommendations based on context-aware groups of users, according to one embodiment; [0020] FIG. 6 is a flowchart of a process for generating one or more recommendations for providing recommendations based on context-aware groups of users, according to one embodiment;
[0021] FIG. 7 is a flowchart of a process for associating a user with at least one context- aware group of users for providing recommendations based on context-aware groups of users, according to one embodiment;
[0022] FIG. 8 is a flowchart of a process for training a recommendation model for a group of users for providing recommendations based on context-aware groups of users, according to one embodiment;
[0023] FIGs. 9A and 9B are diagrams of user interfaces utilized in the processes of FIGs. 3-8, according to various embodiments;
[0024] FIG. 10 is a diagram of hardware that can be used to implement an embodiment of the invention;
[0025] FIG. 1 1 is a diagram of a chip set that can be used to implement an embodiment of the invention; and
[0026] FIG. 12 is a diagram of a mobile terminal (e.g., handset) that can be used to implement an embodiment of the invention.
DESCRIPTION OF SOME EMBODIMENTS
[0027] Examples of a method, apparatus, and computer program for providing recommendations based on context-aware groups of users are disclosed. In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the embodiments of the invention. It is apparent, however, to one skilled in the art that the embodiments of the invention may be practiced without these specific details or with an equivalent arrangement. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the embodiments of the invention. [0028] FIG. 1 is a diagram of a system capable of providing recommendations based on context-aware groups of users, according to one embodiment. As discussed above, a robust, personalized context-aware recommendation system that can make recommendations to users according to their personalized preferences under varying contexts is one of the most promising services for service providers. Context-aware recommendation systems can provide recommendations regarding software applications, services, music, books, and other media, to name a few, according to the varying context and preferences of the user. However, challenges exist concerning the sparseness of data that can be analyzed to determine recommended content as well as the efficiency of algorithms used in generating the recommendations. These challenges are intensified as the breadth of available context information used to generate recommendations and the content available to recommend increases.
[0029] To alleviate these challenges, crowd-wisdom-based, context-aware recommendation systems have been proposed. However, these systems are very time consuming and unreliable due to the large number of users covered by the recommendation systems and the data sparseness of the users compared to the context-rich features of the recommended content. By way of example, some crowd-based recommendation systems rely on a number K of existing users to generate recommendations for new users that have similar context information. However, determining a number K of similar users to a new user is time consuming when considering that there can be millions of users to select from to compare to a new user. Further, when considering the rich context-aware datasets compared to the sparseness of existing users' context information, comparing a new user with an existing user to determine their similarity can be difficult. In other words, existing users may not have enough data, or even data at all, from which to compare to with a new user. Even more, recommendation models must be generated for each new user based on each new set of K existing users from which the recommendation system selected. Thus, recommendation models cannot be reused for new users.
[0030] To address these problems, a system 100 of FIG. 1 introduces the capability to provide users recommendations based on a similarity of the users' behavior information compared to reference behavior information of one or more groups of users and corresponding recommendation models. The context-aware groups of users constitute users grouped together based on similar behavior information. The system 100 also introduces the capability to determine recommendations based on more than one recommendation model associated with more than one context-aware group of users. The system 100 provides normalized recommendations based on the recommendation models associated with the context-aware groups of users normalized by the corresponding similarity values generated from the user behavior information compared to the reference behavior information of the context-aware groups of users. The tuned recommendations that are biased towards specific one or more groups of users can offer more variation of recommendations for each user.
[0031] By way of example, various embodiments of the approach described herein can be used to assist users when first purchasing or other obtaining a new phone. For example, when a user buys a new phone from a vendor or store, there likely is a lack of information that can be used to generate recommendations for the user. Nonetheless, when receiving a new device, users often want or need recommendations for what applications, ringtones, themes, media, etc. to install on their devices. In this case, the system 200 can use the various embodiments described herein to determine an appropriate recommendation to best personalize the device for the user. Accordingly, the system 100 enables an improved user experience (e.g., to make the user happier) when purchasing the phone and recommended applications, etc. In addition, the system 100 reduces the amount of time the user has to spend online search for such applications, thereby reducing connectivity costs for the user and network traffic and load on the application server,
10032] The system 100 also introduces the capability to associate new users with one or more of the context- ware groups of users. The system 100 mines the contextual interaction information and users preferences of new users to determine behavior information. The behavior information is then used to segment the new users into context-aware groups of users. New users can be classified into one or more supervised, context-aware groups of users and/or clustered into one or more unsupervised, or semi-supervised context-aware groups of users. The classified, context-aware groups of users constitute pre-defined classes, such as student, tourist, professional, etc. that correspond to pre-defined behavior features. New users are classified into the supervised, context-aware groups of users when their behavior information satisfies certain thresholds for the pre-defined behavior features. The clustered, context-aware groups of users constitute groups of users with similar behavior information determined according to clustering methods such that the groups can be defined on a purely mathematical basis.
[0033] Upon associating new users with one or more of the context-aware groups of users, the system 100 introduces the capability to train and/or retrain the recommendation models associated with the groups that the new users are now associated with to account for the possibility of new, or changed, contextual interaction information associated with the new users to increase the breadth of information accounted for in the recommendation models. The system 100 may train the recommendation models based on a schedule, such as after a period N of time (e.g., every week, every month, every year, etc.). Alternative, or in addition, the system 100 can train the recommendation models based on the amount of new contextual interaction information new users have when newly associated with a context-aware group of users.
[0034] As shown in FIG. 1, the system 100 comprises user equipment (UE) lOla-lOln (collectively referred to as UE 101) having connectivity to a recommendation platform 103 via a communication network 105. The UE 101 also have connectivity to a service platform 107 and content providers 1 13a-1 13n (collectively referred to as content providers 113) via the communication network 105.
[0035] The UE 101 include recommendation modules 1 l l a-1 l ln (collectively referred to as recommendation modules 1 1 1) that interact with the recommendation platform 103 for collecting and/or mining user contextual interaction information and user preferences for determining a user's behavior infonnation. The recommendation modules 111 can also interface with one or more applications running on the UE 101 for displaying one or more recommendations generated by the recommendation platform 103. Although the recommendation modules 11 1 are illustrated and/or described as modules of the UE 101, in one embodiment, the recommendation modules 1 1 1 may constitute one or more applications running on the UE 101 that may interface with the recommendation platform 103 for collecting and/or mining the user contextual interaction infonnation and the user preferences. Further, in one embodiment, the recommendation platform 103 may interface with the UE 101 directly without recommendation modules 1 1 1 or may be a module and/or application running on the UE 101. [0036] The UE 101 also include sensors 1 17a-l 17n (collectively referred to sensors 1 17) that collect contextual interaction information associated with the UE 101, the users of the UE 101, the suiTounding environment, or a combination thereof. The sensors 1 17 may include, for example, location sensors, speed sensors, brightness sensors, audio sensors, moisture sensors, acceleration sensors, etc. that can detennine contextual interaction information associated with the UE 101, the user of the UE 101, the suiTounding environment of the UE 101 and/or the suiTounding environment of the user of the UE 101, or a combination thereof. The UE 101 also include data storages 1 19a-119n (collectively referred to as data storages 1 19) for storing information, such as contextual interaction information, for transmission to the recommendation platfonn 103.
[0037] As described in detail below, the recommendation platform 103 provides recommendations based on context-aware groups of user. Although illustrated as a separate, distinct feature of the system 100, in one embodiment, the recommendation platform 103 may exist within the UE 101 if, for example, the UE 101 do not include the recommendation modules 1 1 1. In one embodiment, the recommendation platform 103 may exist as a service 109a on the service platfonn 107. In communication with, or part of, the recommendation platform 103 is a platfonn storage 115 for storing information regarding the context-aware groups of users, such as the reference behavior infonnation and the recommendation models associated with the context- aware groups of users, and user behavior infonnation. The platform storage 115 can store any other models and/or rules used to provide recommendations based on context-aware groups of users.
10038] As discussed above, the recommendation platfonn 103 and the UE 101 have connectivity to the service platform 107 that includes one or more services 109a-109n (collectively referred to as services 109) via the communication network 105. The services 109 can include weather services, location services, mapping services, navigation services, media services, etc. The services 109 can provide additional or supplementary information regarding, for example, environmental conditions (e.g., weather), activities (e.g., participating in online gaming), preferences (e.g., music preferences), locations (e.g., location preferences), etc. This additional infonuation can be used to further define user behavior information for providing recommendations based on context-aware groups of users. By way of example, the service platform 107 can provide a service 109a that can provide navigation information so that the recommendation platform 103 can correlate user behavior information with navigational information. Thus, the recommendation platform 103 can generate information with respect to user behavior patterns when the user is navigating along a route.
[0039] As discussed above, the recommendation platform 103 and the UE 101 have connectivity to content providers 113 via the communication network 105. The content providers can provide content regarding weather, location, maps, navigation routes, media, etc. to provide additional or supplemental information that can be used to further define user behavior information for providing recommendations based on context-aware groups of users. By way of example, a content provider 113a can provide past weather information so that the recommendation platform 103 can correlate user behavior information with past weather information so that the recommendation platform 103 can generate behavior patterns with respect to the user when the weather is clear, cloudy, raining, snowing, etc.
[0040] By way of example, the communication network 105 of system 100 includes one or more networks such as a data network, a wireless network, a telephony network, or any combination thereof. It is contemplated that the data network may be any local area network (LAN), metropolitan area network (MAN), wide area network (WAN), a public data network (e.g., the Internet), short range wireless network, or any other suitable packet-switched network, such as a commercially owned, proprietary packet-switched network, e.g., a proprietary cable or fiber-optic network, and the like, or any combination thereof. In addition, the wireless network may be, for example, a cellular network and may employ various technologies including enhanced data rates for global evolution (EDGE), general packet radio service (GPRS), global system for mobile communications (GSM), Internet protocol multimedia subsystem (IMS), universal mobile telecommunications system (UMTS), etc., as well as any other suitable wireless medium, e.g., worldwide interoperability for microwave access (WiMAX), Long Term Evolution (LTE) networks, code division multiple access (CDMA), wideband code division multiple access (WCDMA), wireless fidelity (WiFi), wireless LAN (WLAN), Bluetooth®, Internet Protocol (IP) data casting, satellite, mobile ad-hoc network (MANET), and the like, or any combination thereof. [0041] The UE 101 is any type of mobile terminal, fixed terminal, or portable terminal including a mobile handset, station, unit, device, multimedia computer, multimedia tablet, Internet node, communicator, desktop computer, laptop computer, notebook computer, netbook computer, tablet computer, personal communication system (PCS) device, personal navigation device, personal digital assistants (PDAs), audio/video player, digital camera/camcorder, positioning device, television receiver, radio broadcast receiver, electronic book device, game device, or any combination thereof, including the accessories and peripherals of these devices, or any combination thereof. It is also contemplated that the UE 101 can support any type of interface to the user (such as "wearable" circuitry, etc.).
[0042] By way of example, the UE 101, the recommendation platform 103, the service platform 107, and the content providers 113 communicate with each other and other components of the communication network 105 using well known, new or still developing protocols. In this context, a protocol includes a set of rules defining how the network nodes within the communication network 105 interact with each other based on information sent over the communication links. The protocols are effective at different layers of operation within each node, from generating and receiving physical signals of various types, to selecting a link for transferring those signals, to the format of information indicated by those signals, to identifying which software application executing on a computer system sends or receives the information. The conceptually different layers of protocols for exchanging information over a network are described in the Open Systems Interconnection (OSI) Reference Model.
[0043] Communications between the network nodes are typically effected by exchanging discrete packets of data. Each packet typically comprises (1) header information associated with a particular protocol, and (2) payload information that follows the header information and contains information that may be processed independently of that particular protocol. In some protocols, the packet includes (3) trailer information following the payload and indicating the end of the payload information. The header includes information such as the source of the packet, its destination, the length of the payload, and other properties used by the protocol. Often, the data in the payload for the particular protocol includes a header and payload for a different protocol associated with a different, higher layer of the OSI Reference Model. The header for a particular protocol typically indicates a type for the next protocol contained in its payload. The higher layer protocol is said to be encapsulated in the lower layer protocol. The headers included in a packet traversing multiple heterogeneous networks, such as the internet, typically include a physical (layer 1) header, a data-link (layer 2) header, an internetwork (layer 3) header and a transport (layer 4) header, and various application (layer 5, layer 6 and layer 7) headers as defined by the OSI Reference Model,
[0044] FIG. 2 is a diagram of the components of the recommendation platform 103, according to one embodiment. By way of example, the recommendation platfonn 103 includes one or more components for providing recommendations based on context-aware groups of users. It is contemplated that the functions of these components may be combined in one or more components or performed by other components of equivalent functionality. In this embodiment, the recommendation platfonn 103 includes a behavior module 201, a similarity module 203, a group module 205, a training module 207, a recommendation module 209, and a communication module 21 1.
[0045] The behavior module 201 collects the information used by the recommendation platform 103 to determine the behavior information of a user. In one embodiment, the behavior module 201 communicates through the communication module 21 1 with a UE 101a, a recommendation module 1 1 1a of the UE 101a, or a combination therefore to determine the contextual interaction information and preference information of a user of the UE 101a. In one embodiment, the behavior module 201 communicates with the services 109 of the service platform 107, the content providers 1 13, or a combination thereof, to determine additional or supplemental information used in determining behavior information of the user of the UE 101a. Upon determining the contextual interaction information and the preference information of the user of the UE 101a, the behavior module 201 mines the information for behavior information that is used by the recommendation platform 103 to generate one or more recommendations. (0046] By way of example, the behavior module 201 communicates with a recommendation module 1 1 la of a UE 101a to gather context records of the user of the UE 101a. The context records may be formatted, for example, according to a time stamp, contextual interaction information associated with the time stamp, a software application associated with the contextual interaction information and/or time stamp, and a category of the software application. Examples of such context records include:
[0047] <Time Stamp l> <{Holiday-No} {Time
Figure imgf000015_0001
:00} {Speed=Low}
{Location=Business Place} {Profile=Silent}> <Firefox> <Web Browser>
[0048] <Time Stamp 2> <{Holiday=No} {Time Period=18:00-19:00} {Speed=High}
{Location=Others} {Profile=Normal}> <Angry Birds> <Games>
[0049] Based on the above context records, at the first time stamp (e.g., a time between 10:00 and 1 1 :00), the user was using a web browser (e.g., Firefox) while at work (e.g., business place; no holiday; low speed) with their UE 101a on a silent profile mode. At the second time stamp (e.g., a time between 18:00 and 19:00), the user was playing the game Angry Birds at some unknown location while traveling in some form of transportation (e.g., high speed).
[0050] Based on these context records, the behavior module 201 can mine the user's behavior patterns. Such mining methods can include, for example, a priori, FP-growth, or other association rules algorithms. For example, the mined behavior patterns (e.g., behavior information) from the above context records can constitute:
[0051] {Holiday=No} {Speed=Low} {Profile=Silent} {Location=Business Place}
-> {application=web browser}
[0052] {Holiday=No} {Time Period = evening} {Speed=High}
-> {application=games}
[0053] These behavior patterns suggest that, for example, during the work day the user is likely to use the UE 101a to surf the Internet using a web browser and during the nightly commute home from work the user is likely to use their UE 101a to play games.
[0054] In one embodiment, the behavior module 201 gathers the contextual interaction information and the preference information of a user to determine behavior information when a user first uses the recommendation platform 103 to generate one or more recommendations. In one embodiment, the behavior module 201 gathers new contextual interaction information and new preference information of the user to determine updates to the user's behavior information after a period of time since the previous behavior information was determined. For example, every week, month or year the behavior module 201 determines updates to the contextual interaction information and preference information to update the behavior information. This allows the recommendation platform 103 to routinely re-evaluate the behavior information of the users to better recommend content for the user.
[0055] The behavior module 201 also determines the reference behavior information associated with the context-aware groups of users based on the collective behavior information of users associated with the context-aware groups. Over time, as more users interface with the recommendation platform 103, the number of users associated with the context-ware groups of users increases. Additionally, as the sparseness of the data used to segment the users decreases, the recommendation platform 103 can define new context-aware groups of users to segment the users into. Upon creating new context-aware groups of users and re-training recommendation models of existing context-aware groups (discussed below), the behavior module 201 determines the reference behavior information associated with the context-aware groups of users to use in generating or training one or more recommendation models associated with the respective one or more context-aware groups of users.
[0056] The similarity module 203 determines the similarities between the behavior information of the user and reference behavior information associated with the context-aware groups of user. The similarity module 203 can user one or more algorithms to compare the user behavior infoiTnaiion to the reference behavior information to generate corresponding similarity values. Such specific methods can include, for example, decision tree classification or distance- based methods (e.g., KL-divergence) or any other know comparison algorithm. Each similarity value can correspond to, for example, a probability that a user belongs to a context-aware group of users based on the comparison of the reference behavior information associated with the specific context-aware group of users to the behavior information of the user. In one embodiment, similarity values are calculated for each context-aware group of users compared to the user's behavior information. Thus, in a sense, a user can belong to all of the context-aware groups of user by an amount corresponding to the calculated similarity value for each of the con text- aware groups of users. [0057] The group module 205 controls the number of context-aware groups of users within the recommendation platform 103. As more new users become associated with the recommendation platform 103, such that the breadth and/or resolution of the behavior information associated with the users increases, the group module 205 increases the number of groups by dividing existing context-aware groups of users into smaller, more defined context- aware groups of users. By way of example, a context-aware group of users may have 99 users that share the same behavior information except for one behavioral trait, such that 49 users within the group have Trait Aj and the remaining 50 users have Trait A2. If a new user becomes associated with the group and the new user has the Trait Ai, the group module 205 can divide the current context-aware group of users into two different context-aware groups of users such that there are 50 users in each group, Similarly, when a new user becomes associated with the recommendation platform 103 and the new user includes new behavior information that covers some other type of behavior and/or content, the group module 205 can create a new context-aware group of users to handle the additional behavior and/or content.
[0058] The group module 205 also determines to associate new users, or existing users whose behavior information has changed, with the one or more context-aware groups of users. Such an association can be based on a classification of the user into the context-aware group of users or a clustering of the user into the context-aware group of users.
[0059] A classification of a user into a context-aware group of users depends on, for example, a user's behavior information matching pre-defined behavior or contextual interaction information of a supervised, context-aware group of users. For example, some form of supervision, such as from the service provider that provides the service of the recommendation platform, classifies a context-aware group of users as being, for example, doctors, Thus, when behavior or contextual interaction information of a user matches the classification parameters of the context-aware group of doctors, the group module 205 associates the new with the specific group. Thus, the group module 205 may account for many different types of classifications, such as student, teacher, doctor, attorney, teenager, grandparent, etc. Users may belong to any number of the supervised, classification-based, context-aware groups of users. Algorithms that can be used to classify the users into the supervised context-aware groups of users may include, for example, using k nearest neighbor or decision tree methods. [0060] The clustering of users into unsupervised, or semi-supervised, context-aware groups of users depends, at least in part, on, for example, the similarity value of the user's behavior information compared to the respective reference behavior information of the context-aware groups of users. Thus, for example, the clustering of users into unsupervised context-aware groups of users is based, at least in part, on a mathematical analysis of the user's behavior information compared to the reference behavior information of the context-aware groups of users. Such methods of clustering users into the unsupervised, context-aware groups of users include topic modeling, matrix decomposition, and k-means clustering.
[0061] The group module 205 also associates the stored one or more recommendation models in the platform storage 115 with the corresponding context-aware groups of users. The group module 205 also determines when to update the recommendation models associated with the context-aware groups of user. The group module 205 determines to update the recommendation models based on, for example, a period of time (e.g., every week, month, year, etc.), a number of new users within the context-aware group of users associated with the recommendation model, the breadth and/or resolution of the behavior information associated with the users that are segmented in the context-aware group of users, or a combination thereof. By way of example, if a context-aware group of users starts with 100 users that are associated with the group and the number of users expands to 200, the group module 205 can determine to update the recommendation model because, for example, the sparseness of the data to generate the recommendation model may have decreased allowing for a more complete recommendation model.
[0062] The training module 207 trains the recommendation models associated with the context-aware groups of users based on the behavior information associated with the context- aware groups of users. In one embodiment, the training module 207 trains the recommendation models based on the reference behavior information determined for the groups of users as a collective, In one embodiment, the training module 207 trains the recommendation models based on the behavior information of a portion or all of the users' behavior information that is associated with the respective one or more context-aware groups of users. The training module 207 trains the recommendation models for the context-aware groups of users when the group module 205 determines that the recommendation models should be trained, as discussed above. Thus, for example, the training module 207 can train the recommendation models based on a period of time N (e.g., a week, a month, a year, etc.) elapsing since the last time the recommendation models were trained.
[0063] The recommendation module 209 takes information from the behavior module 201, the similarity module 203 and the group module 205 to determine one or more recommendations for one or more users using the recommendation platform 103. In one embodiment, the recommendation module 209 provides recommendations from the recommendations models without normalization. In one embodiment, the recommendation module 209 provides recommendations from the recommendation models normalized according to the respective similarity values associated with the context-aware groups of users for a particular user. By way of example, the recommendation module 209 uses one or more similarity values determined by the similarity module 203 and one or more recommendation models associated with one or more context-aware groups of users to determine one or more recommendations. Based on the recommendations provided by the one or more recommendation models, the recommendation module 209 can generate a recommendation based on a combination of the recommendations from the one or more recommendation models normalized based on the one or more similarity values corresponding to the one or more context-aware groups of users. Thus, the recommendation module 209 can tune the results of the one or more recommendation models to bias the combination of several recommendations into one recommendation towards a specific one or more groups. The tuning can be based on behavior information, contextual interaction information, and/or user preferences.
[0064] For example with respect to one embodiment, Group A's recommendation model may recommend Content X at a recommendation value of 0.15, Group B's recommendation model may recommend Content Y at a recommendation value of 0.10 and Group C's recommendation model may recommend Content Z at a recommendation value of 0.05. Further, the user may have similarity values corresponding to Group A of 0.10, Group B of 0.20 and Group C 0.50. Thus, when focusing solely on the recommendation models of the various context-aware groups of users, individually, the combination of the recommendations would results in Content X being the preferred content to recommend to the user because Content X has a largest recommendation value of 0.15. However, after normalizing the recommendation values by the similarity values, the combination of the recommendations results in Content Z being the recommended content with a recommendation value of 0.025 (e.g., 0.05 x 0.50) as opposed to Content X that has a recommendation value of only 0.015 (e.g., 0.15 * 0.10). Accordingly, based on the similarity of the user's behavior information compared to the behavior information associated with the respective context-aware groups of users, the users can receive more personalized and accurate recommendations. Additionally, because the recommendation module 209 uses the various recommendation models from the context-aware groups of users paired with the similarity values that are personalized for each user, the recommendation platform 103 can reuse the various recommendation models of the various context-aware groups of users for all of the users without having to determine personalized recommendation models for each user. The ability to reuse the recommendation models increases the efficiency of the recommendation platform 103 because the recommendation platform 103 does not have to perform the complex and time consuming procedure of developing recommendation models for each individual user.
[0065] The communication module 21 1 interfaces with the various elements of the system 100 to exchange the information required by the recommendation platform 103 to determine the recommendations for users. By way of example, the recommendation platform 103 interfaces with the platform storage 1 15 and the communication network 105 through the communication module 211 to obtain the contextual interaction information from the UE 101, the service platform 107, and/or the content providers 113.
[0066] FIG. 3 is a flowchart of an overview of a process 300 for providing recommendations based on context-aware groups of users, according to one embodiment. In one embodiment, the recommendation platform 103 performs the process 300 and is implemented in, for instance, a chip set including a processor and a memory as shown in FIG. 1 1.
[0067] In step 301, the recommendation platform 103 determines one or more similarity values of a user based on behavior information obtained from the UE 101, in addition to or supplemented by any information from the service platform 107 and/or the content providers 1 13, compared to reference behavior information of one or more context- aware groups of users. In step 303, the recommendation platform 103 determines one or more recommendation models associated with one or more context-aware groups of users to use to generate one or more recommendation based on the similarity values of the user. In one embodiment, the recommendation platform 103 may select a recommendation model from all of the context-aware groups of users that are associated with a similarity value of a user determined from the user's behavior information, which may comprise a similarity value for all of the context-aware groups of users. In one embodiment, the recommendation platform 103 may select recommendation models from the context-aware groups of users that are associated with the similarity values that have the highest values. In other words, the recommendation platform 103 can use all of the recommendation models associated with all of the context-aware groups of users, or can user a subset of the recommendation models associated with a subset of the context-aware groups of users based on the similarity values corresponding to the context-aware group of users for a particular user. Thus, the recommendation platform 103 can use only recommendation models associated with context-aware groups of users that more closely match the behavior information associated with the user. In step 305, the recommendation platform 103 determines one or more recommendations based on the selected recommendation models and provides the recommendations to the user.
[0068] FIG. 4 is a flowchart of a process 400 for determining one or more similarity values for providing recommendations based on context-aware groups of users, according to one embodiment. In one embodiment, the recommendation platform 103 performs the process 300 and is implemented in, for instance, a chip set including a processor and a memory as shown in FIG. 1 1.
[0069] In step 401 , the recommendation platform 103 collects the contextual interaction information from the UE 101, and any additional or supplemental contextual interaction information and/or user preferences from the service platform 107 and/or the content providers 113. The contextual interaction information can comprise the context records discussed above, such as in what context particular applications were used by the user on the UE 101a of the user. In step 403, the recommendation platform 103 mines the contextual interaction information and user preference information to generate behavior information. The behavior information corresponds to, for example, behavioral patterns within the contextual interaction information. Such behavior information can include at what time and by what mode of transportation does a user commute to work in the morning. Such behavior information can be mined by analyzing the context records over a particular point in tie every day during the week. The recommendation platform 103 can use any appropriate mining algorithm to extract the behavior information from the particular context records of user contextual interaction infonnation and/or user preferences. Specific methods of mining the behavior infonnation include, for example, a priori, frequent pattern growth and other association rules or algorithms.
[0070] In step 405, the recommendation platform 103 compares the user behavior information generated in step 403 to reference behavior information of one or more context- aware groups of users. In step 407, the recommendation platform 103 generates one or more similarity values corresponding to the one or more context-aware groups of users based on the comparison in step 405 with defined similarity metrics. The similarity values represent, for example, how close the behavior infonnation of a particular user matches the reference behavior information for a particular context-aware group of users. In one embodiment, the similarity values represent a probability that a user belongs to a particular context-aware group of users. For example, based on a user's behavior information as compared to the reference behavior infonnation associated with a context-aware group of users, there is a probability of 0.5 that the user will agree with the recommendations generated from a recommendation model associated with the particular context-aware group of users. Thus, rather than generating a completely personalized recommendation model for a users, the recommendation platfonn 103 can adjust recommendation models to fit all users. The similarity metrics can constitute any known, conventional similarity metric techniques. After step 407, the process 400 ends.
[0071] FIG. 5 is a flowchart of a process 500 for selecting one or more recommendation models for providing recommendations based on context-aware groups of users, according to one embodiment. In one embodiment, the recommendation platform 103 performs the process 300 and is implemented in, for instance, a chip set including a processor and a memory as shown in FIG. 1 1.
[0072] In step 501, the recommendation platform 103 determines whether a threshold similarity value has been set. By way of example, the threshold similarity value controls whether a recommendation model associated with a context-aware group of users is selected to generate recommendations. For instance, if a similarity value corresponding to a context-aware group of users is not above the threshold similarity value, the recommendation platform 103 determines that the particular user's behavior information is not close enough to the reference behavior information of the context-aware group of users. Thus, the context-aware group of users, and the one or more recommendation models associated with the context-ware group of users, does not need to be accounted for in generating recommendations for the user, Where the number of context-aware groups of users is large, as well as the difference between the reference behavior information associated with the context-aware groups of users, a threshold similarity value allows the recommendation platform 103 to disregard potentially many irrelevant recommendation models for a particular user. This further increases the efficiency of generating recommendation for a large number of users.
[0073] In one embodiment, the threshold similarity value can be set by the service provider that is providing the recommendation service associated with the recommendation platform 103. In one embodiment, the threshold similarity value can be set by the individual users who use the recommendation platform 103. In one embodiment, multiple threshold similarity values can be set by both the service provider and the individual users, such that one similarity value is controlling as long as the value does not conflict with the other threshold similarity value. For example, a user's threshold similarity value can be controlling as long as it is not as restrictive as a service provider's threshold similarity value. In one embodiment, the similarity values are used to generate the threshold similarity value. For instance, in an example where five similarity values a generated, the specific similarity values being 0.01, 0.02, 0.05, 0.80 and 0.90, based on the discrepancy of the similarity values above and below 0.80, the recommendation platform 103 can automatically set the threshold similarity value to 0,80 to exclude using recommendation models that do not closely match the user's behavior information.
[0074] If, at step 501, the recommendation platform 103 determines that a threshold similarity value is set, the process 500 proceeds to step 503. If, at step 501, the recommendation platform 103 determines that a threshold similarity value has not been set, the process 500 proceeds to step 509. [0075] At step 503, the recommendation platform 103 compares the similarity values to the threshold similarity value to determine the subset of similarity values that are used for the remainder of the process 500 and the other processes used by the recommendation platform 103.
[0076] At step 505, the recommendation platform 103 associates the user with the context- aware groups of users corresponding to the subset of similarity values. In other words, the subset of similarity values determines, in a sense, which context-aware groups of users the particular user belongs to based on a similarity between the particular user's behavior information and the reference behavior information associated with the context-aware groups of users. [0077] At step 507, the recommendation platform 103 selects the subset of one or more recommendation models associated with the corresponding subset of the context- ware groups of users. Thus, the recommendation platform 103 generates the one or more recommendations based on the subset of recommendation models based on the threshold similarity value weeding out similarity values and context-aware groups of users that are not similar enough in behavior information as compared to the particular user. This process allows the recommendation platfonn 103 to tailor recommendations for a particular user without having to generate specific recommendation models for all of the various users.
[0078] At step 509, if a threshold similarity value had not been set, the recommendation platfonn 103 selects all of the recommendation models associated with all of the context-aware groups of users. Thus, if no threshold similarity value was set, the recommendation platfonn 103 determines the one or more recommendations based on all of the recommendation models corresponding to all of the context-aware groups of users. After step 509 the process 500 ends.
[0079J FIG. 6 is a flowchart of a process 600 for generating one or more recommendations for providing recommendations based on context-aware groups of users, according to one embodiment. In one embodiment, the recommendation platform 103 performs the process 300 and is implemented in, for instance, a chip set including a processor and a memory as shown in FIG. 1 1.
[0080] In step 601 , having already selected the one or more recommendation models to use according to process 500 described above, the recommendation platform 103 determines one or more recommendations associated with a particular recommendation query associated with the user. The recommendations can be generated by the one or more recommendation models according to known, conventional recommendation model techniques. After Step 601 , the process 600 can end and simply provide the particular user with the various recommendations determined based on the one or more recommendation models. For example, Recommendation Model A could recommend Content A, B and C, Recommendation Model B could recommend Content A, B and D, and Recommendation Model C could recommend Content A, B and C, in the respective orders. Thus, the recommendation platform 103 after step 601 could provide a recommendation for Content A, B, C, and D, in that respective order, based on all of the recommendation models. Alternatively, the recommendation platform 103 can recommend the top N content, such as Content A, B and C based on this content being the most recommended (e.g., both Models A and C recommending A, B and C). Alternatively, the process 600 can proceed to step 603 to normalize the recommendations according to the similarity values.
10081] At step 603, the recommendation platform 103 selects the one or more similarity values associated with the one or more selected recommendation models. For example, the recommendation platform 103 selects the one or more similarity values that were used to detemiine to use the one or more recommendation models in step 601, as discussed with respect to process 500 above. If no threshold similarity value was set, the recommendation platform 103 selects all of the similarity values at step 603. [0082] At step 605, the recommendation platform 103 normalizes the one or more recommendations determined at step 601 based on the one or more similarity values associated with the one or more recommendation models used to generate the one or more recommendations. By way of example, with respect to the example discussed above, Recommendation Models A and C could have similarity values of 0.10 and 0.05 and Recommendation Model B could have a similarity value of 0.95. Thus, after the recommendations generated by the recommendation models are normalized according to the respective similarity values associated with the recommendation models, the same content of Content A, B, C and D are recommended according to Content A, B, D and C considering that the similarity value associated with Recommendation Model B is much higher than Recommendation Models A and C. Such a relationship can be summarized by the equation ' New Scoref 1 "Γ f k" ) = lIjIlSimtU 1 i. Gjj ] I Score (I ,k, G |(j)] I ? where Sim(Uj, Gj) represents a similarity value for user U; with respect to group Gj, Score(I)t,Gj) represents the original recommendation score of Content Ik for the user U; by a recommendation model from group Gj, and New Score(I«.) represents the new score of Content ¾. Thus, the provided recommendation is generated based on combining the recommendations based on several recommendation models associated with the groups of users normalized according to the similarity values associated with the groups of users. According to this approach, the user can receive personalized recommendations based on rich context-aware datasets without reducing the efficiency of the recommendation system by requiring personalized recommendations models for each individual user.
[0083] At step 607, the recommendation platform 103 generates and provides the one or more recommendations based on the above normalization. After step 607, the process 600 ends.
[0084] FIG. 7 is a flowchart of a process 700 for associating a user with at least one group of users for providing recommendations based on context-aware groups of users, according to one embodiment. In one embodiment, the recommendation platform 103 performs the process 300 and is implemented in, for instance, a chip set including a processor and a memory as shown in FIG. 1 1.
[0085] In step 701 , the recommendation platform 103 determines whether any of the context- aware groups of users are supervised, context-aware groups of users. Such supervised, context- aware groups of users consist of groups of users that are defined based on classifications, such as taxi driver, doctor, student, teenager, etc.. The groups are considered "supervised" because some supervision has occurred to define, at least in part, the behavior information associated with the user to become associated with the context-aware groups of users. Such supervision can be controlled, for example, by the service provider that controls the recommendation platform 103. If, at step 701, the recommendation platform 103 determines that there are supervised groups of users, the process 700 proceeds to step 703. If the recommendation platform 103 determines that there are no supervised, context-aware groups of users, the process 700 proceeds to step 707. [0086] At step 703, the recommendation platform 103 processes the behavior information associated with a particular user to determine whether at least some records on the behavior information match records of pre-defined behavior information associated with the one or more supervised, context-aware groups of users. After processing the behavior information, the recommendation platform 103 associates the particular user with the one or more supervised, context-aware groups of users that the particular user's behavior information matched. By way of example, a user's behavior information reveals that the user drives to work to a hospital in the mornings and drives home from work from the hospital in the evenings indicating, for example, that the user is a doctor. Additionally, contact information and appointment information in the user's calendar and address book even further indicate that the user is a doctor. Accordingly, the user is associated with a supervised, context-aware groups of users classified as doctors. As discussed above, the recommendation platform 103 can use various algorithms to determine classification of the users, such as k nearest neighbor or decision tree methods.
[0087] At step 707, the recommendation platform 103 processes the user behavior information to determine which unsupervised, or semi-supervised context-aware groups of users the user is associated with. In one embodiment, the comparison is performed based on the one or more similarity values calculated for each of the context-aware groups of users. Thus, the methods for clustering a user into an unsupervised, or semi-supervised context-aware group of users, may include decision tree or distance-based methods such as KL-divergence for determining the similarity values that are used to associate a user with one or more context- aware groups of users. Other methods include, for example, topic models, matrix decompositions, and k-means clustering. At step 709, the recommendation platform 103 associates the user with the unsupervised groups of users with matching behavior information. After step 709, the process 700 ends.
[0088] FIG. 8 is a flowchart of a process 800 for training a recommendation model for a group of users for providing recommendations based on context-aware groups of users, according to one embodiment. In one embodiment, the recommendation platform 103 performs the process 300 and is implemented in, for instance, a chip set including a processor and a memory as shown in FIG. 11. [0089] In step 801 , the recommendation platform 103 selects one of the context-aware groups of users to update. The selected one of the context-aware groups of users can be randomly selected or selected based on a set update pattern, such as consecutively based on the order in which the groups were created.
[0090] At step 803, the recommendation platform 103 determines whether a threshold period of time has elapsed since the last time the recommendation model for the selected context-aware group of users was updated. If the threshold period has not elapsed, the process 800 proceeds to step 805, Otherwise, the process 800 proceeds to step 809.
[0091] At step 805, the recommendation platform 103 determines if there has been a set change in the number of users associated with the selected context-aware group of users. The set change can be a percentage or a number of users that have become associated or dissociated with the selected context-aware group of users. If the set change in the number of users associated with the selected context-aware group of users is not satisfied, the process 800 proceeds to step 807. Otherwise, the process 800 proceeds to step 809. [0092] At step 807, the recommendation platform 103 determines whether a threshold for the behavior of information of one or more new users has been satisfied. By way of example, one or more new users associated with the selected context-aware group of users may include a large amount of behavior information, contextual interaction information and/or user preference information that may substantially change the reference behavior information associated with the selected context-aware group of users. In which case, the recommendation model based on the behavior information associated with the selected context-aware group of users can be modified to account for the change in the behavior information. If the threshold for behavior information of one or more new users has been satisfied, the process 800 proceeds to step 809. Otherwise, the process 800 proceeds back to step 801 and another context-aware group of users is selected to update.
(0093] At step 809, the recommendation platform 103 determines the reference behavior infomiation of the selected context-aware group of users based on the behavior information associated with the users associated with the selected context-aware group of users. Alternatively, the recommendation platform 103 can determine the one or more recommendation models based individually on the collective behavior information associated with a portion or all of the users and not based on the reference behavior information.
[0094] At step 811, the recommendation platform 103 trains the recommendation model associated with the selected context-aware group of users based on the behavior information determined at step 809. The recommendation platform 103 trains the one or more recommendation models associated with the selected context-aware group of users according to known training algorithms. After step 81 1, the process 800 ends.
[0095] FIGs. 9A and 9B are diagrams of user interfaces utilized in the processes of FIGs. 3-8, according to various embodiments. FIG. 9A illustrates a user interface 901a that is displayed on, for example, a screen of the UE 101a when using the recommendation platform 103 to recommend, for example, music. The user interface 901a illustrates that the user associated with the UE 101a has been grouped with the context-aware groups of users illustrated by indicator 903. Indicator 903 includes the context-aware groups of users labeled Alternative, Rock & Roll, Pop, Teenager, Young Adult, Train Commuter and Bus Commuter. Although the context-aware groups of users associated with indicator 903 are all labeled by human comprehendible names, the context-aware groups of users can be labeled by any type of label, including random strings of letters and numbers that may not be displayed to a user when the processing is performed by the recommendation platform 103 on the backend, invisible to the user. Such groups can be formed based on any type of matching behavior information, However, in one embodiment, where a user may see the names of the context-aware groups of users, the groups may be appropriately labeled so that the user can understand the subject of the groups. Groups Alternative, Rock & Roll and Pop are based on the user's behavior information matching the reference behavior information of users associated with these context-aware groups of users based, for example, on the users liking the same type of music. Further, Groups Teenager and Young Adult are based on the user's behavior information matching the reference behavior information of users associated with these context-aware groups of users based, for example, on the users having contextual interaction information suggesting the same age group. Thus, it is important to note that, although the user has been associated with the context-aware group of users Teenager, this does not necessarily mean that the user is in fact a teenager. Rather, the user can merely enjoy listening to music that most teenagers enjoy listening to. Further, Train Commuter and Bus Commuter are based on the user's behavior information matching the reference behavior information of users associated with these context-aware groups of users based, for example, on behavior pattems indicating a mode of transportation used to commute to work.
[0096] Indicator 905 illustrates the similarity values associated with each one of the context- aware groups of users for this particular user. As seen by indicator 905, the similarity values associated with Pop and Teenager are high (e.g., 0.95 and 0.90, respectively) indicating a high likelihood that the recommendation models associated with these context-aware groups of users will apply well to the preferences of the particular user based on the comparison of behavior information. Further, the similarity value associated with Bus Commuter is not as high (e.g., 0.35) indicating a lower likelihood that the recommendation model associated with this context- aware group of users will apply well to the preferences of the particular user based on the comparison of the behavior information. The similarity values represented by indicator 905 are what are used to normalize the recommendations generated by the recommendation models associated with the context-aware groups of users represented by indicator 903.
[0097] FIG. 9B illustrates a user interface 901b that is displayed on, for example, a screen of the UE 101a when using the recommendation platform 103 to recommend, for example, music. The user interface 901b displays recommendations made by the recommendation platform 103 based on the recommendation models associated with the context-aware groups of users represented by the indicator 903 normalized based on the similarity values associated with the context- aware groups of users represented by indicator 905. As illustrated in FIG. 9B, indicator 907 illustrates the particular artists that have been recommended and indicator 909 illustrates the confidence scores given to each recommendation. The confidence scores can be represented by, for example, bars, as illustrated in FIG. 9b, or by any other means, such as stars, letters, numbers, etc. or a combination thereof. The confidence scores are a graphical representation of the confidence scores generated by the recommendation platform 103 based on the confidence scores of each recommendation model associated with the context-aware groups of users the particular user belongs to normalized by the similarity values for the particular user associated with each context-aware group of users. Thus, the particular user receives highly personalized recommendations while increasing the efficiency of the recommendation process by using group-based recommendations.
[0098] The processes described herein for providing recommendations based on context- aware groups of users may be advantageously implemented via software, hardware, firmware or a combination of software and/or firmware and/or hardware. For example, the processes described herein, may be advantageously implemented via processor(s), Digital Signal Processing (DSP) chip, an Application Specific Integrated Circuit (ASIC), Field Programmable Gate Arrays (FPGAs), etc. Such exemplary hardware for performing the described functions is detailed below.
[0099] FIG. 10 illustrates a computer system 1000 upon which an embodiment of the invention may be implemented. Although computer system 1000 is depicted with respect to a particular device or equipment, it is contemplated that other devices or equipment (e.g., network elements, servers, etc.) within FIG. 10 can deploy the illustrated hardware and components of system 1000. Computer system 1000 is programmed (e.g., via computer program code or instructions) to provide recommendations based on context-aware groups of users as described herein and includes a communication mechanism such as a bus 1010 for passing information between other internal and external components of the computer system 1000. Information (also called data) is represented as a physical expression of a measurable phenomenon, typically electric voltages, but including, in other embodiments, such phenomena as magnetic, electromagnetic, pressure, chemical, biological, molecular, atomic, sub-atomic and quantum interactions. For example, north and south magnetic fields, or a zero and non-zero electric voltage, represent two states (0, 1) of a binary digit (bit). Other phenomena can represent digits of a higher base. A superposition of multiple simultaneous quantum states before measurement represents a quantum bit (qubit). A sequence of one or more digits constitutes digital data that is used to represent a number or code for a character. In some embodiments, information called analog data is represented by a near continuum of measurable values within a particular range. Computer system 1000, or a portion thereof, constitutes a means for performing one or more steps of providing recommendations based on context-aware groups of users. [00100] A bus 1010 includes one or more parallel conductors of information so that information is transferred quickly among devices coupled to the bus 1010. One or more processors 1002 for processing information are coupled with the bus 1010.
[0100] A processor (or multiple processors) 1002 performs a set of operations on information as specified by computer program code related to providing recommendations based on context- aware groups of users. The computer program code is a set of instructions or statements providing instructions for the operation of the processor and/or the computer system to perform specified functions. The code, for example, may be written in a computer programming language that is compiled into a native instruction set of the processor. The code may also be written directly using the native instruction set (e.g., machine language). The set of operations include bringing information in from the bus 1010 and placing information on the bus 1010. The set of operations also typically include comparing two or more units of information, shifting positions of units of information, and combining two or more units of information, such as by addition or multiplication or logical operations like OR, exclusive OR (XOR), and AND. Each operation of the set of operations that can be performed by the processor is represented to the processor by information called instructions, such as an operation code of one or more digits. A sequence of operations to be executed by the processor 1002, such as a sequence of operation codes, constitute processor instructions, also called computer system instructions or, simply, computer instructions. Processors may be implemented as mechanical, electrical, magnetic, optical, chemical or quantum components, among others, alone or in combination.
[0101] Computer system 1000 also includes a memory 1004 coupled to bus 1010. The memory 1004, such as a random access memory (RAM) or any other dynamic storage device, stores information including processor instructions for providing recommendations based on context-aware groups of users. Dynamic memory allows information stored therein to be changed by the computer system 1000. RAM allows a unit of information stored at a location called a memory address to be stored and retrieved independently of information at neighboring addresses. The memory 1004 is also used by the processor 1002 to store temporary values during execution of processor instructions. The computer system 1000 also includes a read only memory (ROM) 1006 or any other static storage device coupled to the bus 1010 for storing static information, including instructions, that is not changed by the computer system 1000, Some memory is composed of volatile storage that loses the information stored thereon when power is lost. Also coupled to bus 1010 is a non-volatile (persistent) storage device 1008, such as a magnetic disk, optical disk or flash card, for storing information, including instructions, that persists even when the computer system 1000 is turned off or otherwise loses power,
[0102] Information, including instructions for providing recommendations based on context- aware groups of users, is provided to the bus 1010 for use by the processor from an external input device 012, such as a keyboard containing alphanumeric keys operated by a human user, a microphone, an Infrared (IR) remote control, a joystick, a game pad, a stylus pen, a touch screen, or a sensor. A sensor detects conditions in its vicinity and transforms those detections into physical expression compatible with the measurable phenomenon used to represent information in computer system 1000. Other external devices coupled to bus 1010, used primarily for interacting with humans, include a display device 1014, such as a cathode ray tube (CRT), a liquid crystal display (LCD), a light emitting diode (LED) display, an organic LED (OLED) display, a plasma screen, or a printer for presenting text or images, and a pointing device 1016, such as a mouse, a trackball, cursor direction keys, or a motion sensor, for controlling a position of a small cursor image presented on the display 1014 and issuing commands associated with graphical elements presented on the display 1014. In some embodiments, for example, in embodiments in which the computer system 1000 performs all functions automatically without human input, one or more of external input device 1012, display device 1014 and pointing device 1016 is omitted.
[0103] In the illustrated embodiment, special purpose hardware, such as an application specific integrated circuit (ASIC) 1020, is coupled to bus 1010. The special purpose hardware is configured to perform operations not performed by processor 1002 quickly enough for special puiposes. Examples of ASICs include graphics accelerator cards for generating images for display 1014, cryptographic boards for encrypting and decrypting messages sent over a network, speech recognition, and interfaces to special external devices, such as robotic arms and medical scanning equipment that repeatedly perform some complex sequence of operations that are more efficiently implemented in hardware. [0104] Computer system 1000 also includes one or more instances of a communications interface 1070 coupled to bus 1010. Communication interface 1070 provides a one-way or two-way communication coupling to a variety of external devices that operate with their own processors, such as printers, scanners and external disks. In general the coupling is with a network link 1078 that is connected to a local network 1080 to which a variety of external devices with their own processors are connected. For example, communication interface 1070 may be a parallel port or a serial port or a universal serial bus (USB) port on a personal computer. In some embodiments, communications interface 1070 is an integrated services digital network (ISDN) card or a digital subscriber line (DSL) card or a telephone modem that provides an information communication connection to a corresponding type of telephone line. In some embodiments, a communication interface 1070 is a cable modem that converts signals on bus 1010 into signals for a communication connection over a coaxial cable or into optical signals for a communication connection over a fiber optic cable. As another example, communications interface 1070 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN, such as Ethernet. Wireless links may also be implemented. For wireless links, the communications interface 1070 sends or receives or both sends and receives electrical, acoustic or electromagnetic signals, including infrared and optical signals, that carry information streams, such as digital data. For example, in wireless handheld devices, such as mobile telephones like cell phones, the communications interface 1070 includes a radio band electromagnetic transmitter and receiver called a radio transceiver. In certain embodiments, the communications interface 1070 enables connection to the communication network 105 for providing recommendations based on context-aware groups of users to the UE 101.
[0105] The term "computer-readable medium" as used herein refers to any medium that participates in providing infonnation to processor 1002, including instructions for execution. Such a medium may take many forms, including, but not limited to computer-readable storage medium (e.g., non-volatile media, volatile media), and transmission media. Non-transitory media, such as non-volatile media, include, for example, optical or magnetic disks, such as storage device 1008. Volatile media include, for example, dynamic memory 1004. Transmission media include, for example, twisted pair cables, coaxial cables, copper wire, fiber optic cables, and earner waves that travel through space without wires or cables, such as acoustic waves and electromagnetic waves, including radio, optical and infrared waves. Signals include man-made transient variations in amplitude, frequency, phase, polarization or other physical properties transmitted through the transmission media. Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, any other magnetic medium, a CD-ROM, CDRW, DVD, any other optical medium, punch cards, paper tape, optical mark sheets, any other physical medium with patterns of holes or other optically recognizable indicia, a RAM, a PROM, an EPROM, a FLASH-EPROM, an EEPROM, a flash memory, any other memory chip or cartridge, a carrier wave, or any other medium from which a computer can read. The term computer-readable storage medium is used herein to refer to any computer-readable medium except transmission media.
[0106] Logic encoded in one or more tangible media includes one or both of processor instructions on a computer-readable storage media and special purpose hardware, such as ASIC 1020. [0107] Network link 1078 typically provides information communication using transmission media through one or more networks to other devices that use or process the information. For example, network link 1078 may provide a connection through local network 1080 to a host computer 1082 or to equipment 1084 operated by an Internet Service Provider (ISP). ISP equipment 1084 in turn provides data communication services through the public, world-wide packet-switching communication network of networks now commonly referred to as the Internet 1090.
[0108] A computer called a server host 1092 connected to the Internet hosts a process that provides a service in response to information received over the Internet. For example, server host 1092 hosts a process that provides information representing video data for presentation at display 1014. It is contemplated that the components of system 1000 can be deployed in various configurations within other computer systems, e.g., host 1082 and server 1092.
[0109] At least some embodiments of the invention are related to the use of computer system 1000 for implementing some or all of the techniques described herein. According to one embodiment of the invention, those techniques are performed by computer system 1000 in response to processor 1002 executing one or more sequences of one or more processor instructions contained in memory 1004. Such instructions, also called computer instructions, software and program code, may be read into memory 1004 from another computer-readable medium such as storage device 1008 or network link 1078. Execution of the sequences of instructions contained in memory 1004 causes processor 1002 to perform one or more of the method steps described herein. In alternative embodiments, hardware, such as ASIC 1020, may be used in place of or in combination with software to implement the invention. Thus, embodiments of the invention are not limited to any specific combination of hardware and software, unless otherwise explicitly stated herein.
[0110] The signals transmitted over network link 1078 and other networks through communications interface 1070, carry information to and from computer system 1000. Computer system 1000 can send and receive information, including program code, through the networks 1080, 1090 among others, through network link 1078 and communications interface 1070. In an example using the Internet 1090, a server host 1092 transmits program code for a particular application, requested by a message sent from computer 1000, through Internet 1090, ISP equipment 1084, local network 1080 and communications interface 1070. The received code may be executed by processor 1002 as it is received, or may be stored in memory 1004 or in storage device 1008 or any other non- volatile storage for later execution, or both. In this manner, computer system 1000 may obtain application program code in the form of signals on a carrier wave.
[0111] Various forms of computer readable media may be involved in carrying one or more sequence of instructions or data or both to processor 1002 for execution. For example, instructions and data may initially be carried on a magnetic disk of a remote computer such as host 1082. The remote computer loads the instructions and data into its dynamic memory and sends the instructions and data over a telephone line using a modem. A modem local to the computer system 1000 receives the instructions and data on a telephone line and uses an infrared transmitter to convert the instructions and data to a signal on an infra-red carrier wave serving as the network link 1078. An infrared detector serving as communications interface 1070 receives the instructions and data carried in the infrared signal and places information representing the instructions and data onto bus 1010. Bus 1010 carries the information to memory 1004 from which processor 1002 retrieves and executes the instructions using some of the data sent with the instructions. The instructions and data received in memory 1004 may optionally be stored on storage device 1008, either before or after execution by the processor 1002. [0112] FIG. 1 1 illustrates a chip set or chip 1 100 upon which an embodiment of the invention may be implemented. Chip set 1 100 is programmed to provide recommendations based on context-aware groups of users as described herein and includes, for instance, the processor and memory components described with respect to FIG. 10 incorporated in one or more physical packages (e.g., chips). By way of example, a physical package includes an arrangement of one or more materials, components, and/or wires on a structural assembly (e.g., a baseboard) to provide one or more characteristics such as physical strength, conservation of size, and/or limitation of electrical interaction. It is contemplated that in certain embodiments the chip set 1 100 can be implemented in a single chip. It is further contemplated that in certain embodiments the chip set or chip 1 100 can be implemented as a single "system on a chip." It is further contemplated that in certain embodiments a separate ASIC would not be used, for example, and that all relevant functions as disclosed herein would be performed by a processor or processors. Chip set or chip 1100, or a portion thereof, constitutes a means for performing one or more steps of providing user interface navigation information associated with the availability of functions. Chip set or chip 1 100, or a portion thereof, constitutes a means for perfonning one or more steps of providing recommendations based on context-aware groups of users.
|0113] In one embodiment, the chip set or chip 1 100 includes a communication mechanism such as a bus 1101 for passing information among the components of the chip set 1 100. A processor 1 103 has connectivity to the bus 1101 to execute instructions and process information stored in, for example, a memory 1105. The processor 1103 may include one or more processing cores with each core configured to perform independently. A multi-core processor enables multiprocessing within a single physical package. Examples of a multi-core processor include two, four, eight, or greater numbers of processing cores. Alternatively or in addition, the processor 1 103 may include one or more microprocessors configured in tandem via the bus 1 101 to enable independent execution of instructions, pipelining, and multithreading. The processor 1103 may also be accompanied with one or more specialized components to perform certain processing functions and tasks such as one or more digital signal processors (DSP) 1107, or one or more application-specific integrated circuits (ASIC) 1109. A DSP 1 107 typically is configured to process real-world signals (e.g., sound) in real time independently of the processor 1103. Similarly, an ASIC 1109 can be configured to performed specialized functions not easily performed by a more general purpose processor. Other specialized components to aid in performing the inventive functions described herein may include one or more field programmable gate arrays (FPGA), one or more controllers, or one or more other special- purpose computer chips.
[0114] In one embodiment, the chip set or chip 1100 includes merely one or more processors and some software and/or firmware supporting and/or relating to and/or for the one or more processors.
[0115] The processor 1 103 and accompanying components have connectivity to the memory 1 105 via the bus 1101. The memory 1105 includes both dynamic memory (e.g., RAM, magnetic disk, writable optical disk, etc.) and static memory (e.g., ROM, CD-ROM, etc.) for storing executable instructions that when executed perform the inventive steps described herein to provide recommendations based on context-aware groups of users. The memory 1 105 also stores the data associated with or generated by the execution of the inventive steps.
[0116] FIG. 12 is a diagram of exemplary components of a mobile terminal (e.g., handset) for communications, which is capable of operating in the system of FIG. 1, according to one embodiment. In some embodiments, mobile terminal 1201, or a portion thereof, constitutes a means for performing one or more steps of providing recommendations based on context-aware groups of users. Generally, a radio receiver is often defined in terms of front-end and back-end characteristics. The front-end of the receiver encompasses all of the Radio Frequency (RF) circuitry whereas the back-end encompasses all of the base-band processing circuitry. As used in this application, the term "circuitry" refers to both: (1) hardware-only implementations (such as implementations in only analog and/or digital circuitry), and (2) to combinations of circuitry and software (and/or firmware) (such as, if applicable to the particular context, to a combination of pracessor(s), including digital signal processor(s), software, and memory(ies) that work together to cause an apparatus, such as a mobile phone or server, to perform various functions). This definition of "circuitry" applies to all uses of this term in this application, including in any claims. As a further example, as used in this application and if applicable to the particular context, the term "circuitry" would also cover an implementation of merely a processor (or multiple processors) and its (or their) accompanying software/or firmware. The term "circuitry" would also cover if applicable to the particular context, for example, a baseband integrated circuit or applications processor integrated circuit in a mobile phone or a similar integrated circuit in a cellular network device or other network devices.
[0117] Pertinent internal components of the telephone include a Main Control Unit (MCU) 1203, a Digital Signal Processor (DSP) 1205, and a receiver/transmitter unit including a microphone gain control unit and a speaker gain control unit. A main display unit 1207 provides a display to the user in support of various applications and mobile terminal functions that perfonn or support the steps of providing recommendations based on context-aware groups of users. The display 1207 includes display circuitry configured to display at least a portion of a user interface of the mobile terminal (e.g., mobile telephone). Additionally, the display 1207 and display circuitry are configured to facilitate user control of at least some functions of the mobile terminal. An audio function circuitry 1209 includes a microphone 121 1 and microphone amplifier that amplifies the speech signal output from the microphone 1211. The amplified speech signal output from the microphone 1211 is fed to a coder/decoder (CODEC) 1213.
[0118] A radio section 1215 amplifies power and converts frequency in order to communicate with a base station, which is included in a mobile communication system, via antenna 1217. The power amplifier (PA) 1219 and the transmitter/modulation circuitry are operationally responsive to the MCU 1203, with an output from the PA 1219 coupled to the dup lexer 1221 or circulator or antenna switch, as known in the art. The PA 1219 also couples to a battery interface and power control unit 1220.
[0119] In use, a user of mobile terminal 1201 speaks into the microphone 121 1 and his or her voice along with any detected background noise is converted into an analog voltage. The analog voltage is then converted into a digital signal through the Analog to Digital Converter (ADC) 1223. The control unit 1203 routes the digital signal into the DSP 1205 for processing therein, such as speech encoding, channel encoding, encrypting, and interleaving. In one embodiment, the processed voice signals are encoded, by units not separately shown, using a cellular transmission protocol such as enhanced data rates for global evolution (EDGE), general packet radio service (GPRS), global system for mobile communications (GSM), Internet protocol multimedia subsystem (IMS), universal mobile telecommunications system (UMTS), etc., as well as any other suitable wireless medium, e.g., microwave access (WiMAX), Long Term Evolution (LTE) networks, code division multiple access (CDMA), wideband code division multiple access (WCDMA), wireless fidelity (WiFi), satellite, and the like, or any combination thereof.
[0120] The encoded signals are then routed to an equalizer 1225 for compensation of any frequency-dependent impairments that occur during transmission though the air such as phase and amplitude distortion. After equalizing the bit stream, the modulator 1227 combines the signal with a RF signal generated in the RF interface 1229. The modulator 1227 generates a sine wave by way of frequency or phase modulation. In order to prepare the signal for transmission, an up-converter 1231 combines the sine wave output from the modulator 1227 with another sine wave generated by a synthesizer 1233 to achieve the desired frequency of transmission. The signal is then sent through a PA 1219 to increase the signal to an appropriate power level. In practical systems, the PA 1219 acts as a variable gain amplifier whose gain is controlled by the DSP 1205 from information received from a network base station. The signal is then filtered within the duplexer 1221 and optionally sent to an antenna coupler 1235 to match impedances to provide maximum power transfer. Finally, the signal is transmitted via antenna 1217 to a local base station. An automatic gain control (AGC) can be supplied to control the gain of the final stages of the receiver. The signals may be forwarded from there to a remote telephone which may be another cellular telephone, any other mobile phone or a land-line connected to a Public Switched Telephone Network (PSTN), or other telephony networks.
[0121] Voice signals transmitted to the mobile terminal 1201 are received via antenna 1217 and immediately amplified by a low noise amplifier (LNA) 1237. A down-converter 1239 lowers the carrier frequency while the demodulator 1241 strips away the RF leaving only a digital bit stream. The signal then goes through the equalizer 1225 and is processed by the DSP 1205. A Digital to Analog Converter (DAC) 1243 converts the signal and the resulting output is transmitted to the user through the speaker 1245, all under control of a Main Control Unit (MCU) 1203 which can be implemented as a Central Processing Unit (CPU).
[0122] The MCU 1203 receives various signals including input signals from the keyboard 1247. The keyboard 1247 and/or the MCU 1203 in combination with other user input components (e.g., the microphone 121 1) comprise a user interface circuitry for managing user input. The MCU 1203 runs a user interface software to facilitate user control of at least some functions of the mobile terminal 1201 to provide recommendations based on context-aware groups of users. The MCU 1203 also delivers a display command and a switch command to the display 1207 and to the speech output switching controller, respectively. Further, the MCU 1203 exchanges information with the DSP 1205 and can access an optionally incorporated SIM card 1249 and a memory 1251. In addition, the MCU 1203 executes various control functions required of the terminal. The DSP 1205 may, depending upon the implementation, perform any of a variety of conventional digital processing functions on the voice signals. Additionally, DSP 1205 determines the background noise level of the local environment from the signals detected by microphone 1211 and sets the gain of microphone 121 1 to a level selected to compensate for the natural tendency of the user of the mobile terminal 1201.
[0123] The CODEC 1213 includes the ADC 1223 and DAC 1243. The memory 1251 stores various data including call incoming tone data and is capable of storing other data including music data received via, e.g., the global Internet. The software module could reside in RAM memory, flash memory, registers, or any other form of writable storage medium known in the art. The memory device 1251 may be, but not limited to, a single memory, CD, DVD, ROM, RAM, EEPROM, optical storage, magnetic disk storage, flash memory storage, or any other non-volatile storage medium capable of storing digital data.
[0124] An optionally incorporated SIM card 1249 carries, for instance, important information, such as the cellular phone number, the carrier supplying service, subscription details, and security information. The SIM card 1249 serves primarily to identify the mobile terminal 1201 on a radio network. The card 1249 also contains a memory for storing a personal telephone number registry, text messages, and user specific mobile terminal settings. [0125] While the invention has been described in connection with a number of embodiments and implementations, the invention is not so limited but covers various obvious modifications and equivalent arrangements, which fall within the purview of the appended claims. Although features of the invention are expressed in certain combinations among the claims, it is contemplated that these features can be arranged in any combination and order.

Claims

WHAT IS CLAIMED IS:
1. A method comprising facilitating a processing of and/or processing (1) data and/or (2) infomiation and/or (3) at least one signal, the (1) data and/or (2) information and/or (3) at least one signal based, at least in part, on the following:
a determination of one or more similarity values based, at least in part, on a similarity of user behavior information associated with a user to reference behavior information associated with one or more groups of users;
a processing of the one or more similarity values to select from among one or more
recommendation models associated with the one or more groups of users; and
a processing of the selected one or more recommendation models to generate one or more user recommendations.
2. A method of claim 1 , wherein the (1) data and/or (2) information and/or (3) at least one signal are further based, at least in part, on the following:
a determination from among the one or more similarity values of a selected one or more
similarity values that satisfy at least one threshold similarity value;
wherein the processing of the one or more similarity values is based on the selected one or more similarity values.
3. A method of claim 2, wherein the at least one threshold similarity value is set by the user, is based on the one or more similarity values, or a combination thereof.
4. A method according to any of claims 1-3, wherein the (1) data and/or (2) information and/or (3) at least one signal are further based, at least in part, on the following:
a processing of the selected one or more recommendation models and the one or more
similarity values to generate the one or more user recommendations.
5. A method of claim 4, wherein the one or more recommendations are determined based, at least in part, on the one or more recommendation models normalized based, at least in part, on the one or more similarity values.
6. A method according to any of claims 1-5, wherein the (1) data and/or (2) information and/or (3) at least one signal are further based, at least in part, on the following:
a determination to associate the user with at least one group of the one or more groups of users based, at least in part, on the behavior information associated with the user.
7. A method of claim 6, wherein the one or more groups are based on a classification system and the association is based, at least in part, on the user behavior information matching predefined behavior information.
8. A method of claim 6, wherein the one or more groups are based on a clustering system and the association is based, at least in part, on a topic model analysis, a matrix decomposition analysis, a k-means clustering analysis, or a combination thereof.
9. A method according to any of claims 1-8, wherein the (1) data and/or (2) infonnation and/or (3) at least one signal are further based, at least in part, on the following:
a training of the one or more recommendation models of the one or more groups of users based, at least in part, on the behavior information associated with the user.
10. A method of claim 9, wherein the training for the one or more groups occurs based, at least in part, on a number of new users associated with the one or more groups, behavior infonnation associated with the new users, a threshold time period, or a combination thereof.
1 1. A method according to any of claims 1-10, wherein the behavior information comprises user preferences, user contextual interaction information, or a combination thereof.
12. A method according to any of claims 1-11, wherein the (1) data and/or (2) information and/or (3) at least one signal are further based, at least in part, on the following:
a segmentation of other users based on respective behavior information of the other users to form the one or more groups of users; and
a generation of the reference behavior information associated with one or more groups of users based, at least in part, on the respective behavior information of the other users.
13. A method of claim 12, wherein the (1) data and/or (2) information and/or (3) at least one signal are further based, at least in part, on the following:
a training of the one or more recommendation models of the one or more groups of users based, at least in part, on the respective behavior information of the others users.
14. An apparatus comprising:
at least one processor; and
at least one memory including computer program code for one or more programs, the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus to perform at least the following,
determine one or more similarity values based, at least in part, on a similarity of user behavior information associated with a user to reference behavior information associated with one or more groups of users;
process and/or facilitate a processing of the one or more similarity values to select from among one or more recommendation models associated with the one or more groups of users; and
process and/or facilitate a processing of the selected one or more recommendation models to generate one or more user recommendations,
15. An apparatus of claim 14, wherein the apparatus is further caused to:
determine from among the one or more similarity values a selected one or more similarity values that satisfy at least one threshold similarity value; wherein the processing of the one or more similarity values is based on the selected one or more similarity values.
16. An apparatus of claim 15, wherein the at least one threshold similarity value is set by the user, is based on the one or more similarity values, or a combination thereof.
17. An apparatus according to any of claims 4-16, wherein the apparatus is further caused to:
process and/or facilitate a processing of the selected one or more recommendation models and the one or more similarity values to generate the one or more user recommendations.
18. An apparatus of claim 17, wherein the one or more recommendations are determined based, at least in part, on the one or more recommendation models normalized based, at least in part, on the one or more similarity values.
19. An apparatus according to any of claims 14-18, wherein the apparatus is further caused to:
determine to associate the user with at least one group of the one or more groups of users based, at least in part, on the behavior information associated with the user.
20. An apparatus of claim 1 , wherein the one or more groups are based on a classification system and the association is based, at least in part, on the user behavior information matching predefined behavior information.
21. An apparatus of claim 19, wherein the one or more groups are based on a clustering system and the association is based, at least in part, on a topic model analysis, a matrix decomposition analysis, a k-means clustering analysis, or a combination thereof.
22. An apparatus according to any of claims 14-21, wherein the apparatus is further caused to:
cause, at least in part, a training of the one or more recommendation models of the one or more groups of users based, at least in part, on the behavior information associated with the user.
23. An apparatus of claim 22, wherein the training for the one or more groups occurs based, at least in part, on a number of new users associated with the one or more groups, behavior information associated with the new users, a threshold time period, or a combination thereof.
24. An apparatus according to any of claims 14-23, wherein the behavior information comprises user preferences, user contextual interaction information, or a combination thereof.
25. An apparatus according to any of claims 14-24, wherein the apparatus is further caused to:
cause, at least in part, a segmentation of other users based on respective behavior information of the other users to form the one or more groups of users; and
cause, at least in part, a generation of the reference behavior information associated with one or more groups of users based, at least in part, on the respective behavior information of the other users.
26. An apparatus of claim 25, wherein the apparatus is further caused to:
cause, at least in part, a training of the one or more recommendation models of the one or more groups of users based, at least in part, on the respective behavior information of the others users.
27. A method comprising:
determining one or more similarity values based, at least in part, on a similarity of user
behavior information associated with a user to reference behavior information associated with one or more groups of users; processing and/or facilitating a processing of the one or more similarity values to select from among one or more recommendation models associated with the one or more groups of users; and
processing and/or facilitating a processing of the selected one or more recommendation
models to generate one or more user recommendations.
28. A method of claim 27, further comprising:
determining from among the one or more similarity values a selected one or more similarity values that satisfy at least one threshold similarity value;
wherein the processing of the one or more similarity values is based on the selected one or more similarity values.
29. A method of claim 28, wherein the at least one threshold similarity value is set by the user, is based on the one or more similarity values, or a combination thereof.
30. A method according to any of claims 27-29, further comprising:
processing and/or facilitating a processing of the selected one or more recommendation
models and the one or more similarity values to generate the one or more user
recommend ati ons .
31. A method of claim 30, wherein the one or more recommendations are determined based, at least in part, on the one or more recommendation models normalized based, at least in part, on the one or more similarity values.
32. A method according to any of claims 27-31, further comprising:
determining to associate the user with at least one group of the one or more groups of users based, at least in part, on the behavior information associated with the user.
33. A method of claim 32, wherein the one or more groups are based on a classification system and the association is based, at least in part, on the user behavior information matching predefined behavior infonnation.
34. A method of claim 32, wherein the one or more groups are based on a clustering system and the association is based, at least in part, on a topic model analysis, a matrix decomposition analysis, a k-means clustering analysis, or a combination thereof.
35. A method according to any of claims 27-34, further comprising:
causing, at least in part, a training of the one or more recommendation models of the one or more groups of users based, at least in part, on the behavior information associated with the user.
36. A method of claim 35, wherein the training for the one or more groups occurs based, at least in part, on a number of new users associated with the one or more groups, behavior infonnation associated with the new users, a threshold time period, or a combination thereof.
37. A method according to any of claims 27-36, wherein the behavior infonnation comprises user preferences, user contextual interaction information, or a combination thereof.
38. A method according to any of claims 27-37, further comprising:
causing, at least in part, a segmentation of other users based on respective behavior
information of the other users to form the one or more groups of users; and
causing, at least in part, a generation of the reference behavior information associated with one or more groups of users based, at least in part, on the respective behavior information of the other users.
39. A method of claim 38, further comprising: causing, at least in part, a training of the one or more recommendation models of the one or more groups of users based, at least in part, on the respective behavior information of the others users,
40. An apparatus according to any of claims 14-26, wherein the apparatus is a mobile phone further comprising:
user interface circuitry and user interface software configured to facilitate user control of at least some functions of the mobile phone through use of a display and configured to respond to user input; and
a display and display circuitry configured to display at least a portion of a user interface of the mobile phone, the display and display circuitry configured to facilitate user control of at least some functions of the mobile phone.
41. A computer-readable storage medium carrying one or more sequences of one or more instructions which, when executed by one or more processors, cause an apparatus to perform at least a method according to any of claims 27-39.
42. An apparatus comprising means for performing a method according to any of claims 27-39.
43. An apparatus of claim 42, wherein the apparatus is a mobile phone further comprising: user interface circuitry and user interface software configured to facilitate user control of at least some functions of the mobile phone through use of a display and configured to respond to user input; and
a display and display circuitry configured to display at least a portion of a user interface of the mobile phone, the display and display circuitry configured to facilitate user control of at least some functions of the mobile phone.
44. A computer program product including one or more sequences of one or more instructions which, when executed by one or more processors, cause an apparatus to at least perform the steps of the method according to any of claims 27-39.
45. A method comprising facilitating access to at least one interface configured to allow access to at least one service, the at least one service configured to perform the method according to any of claims 27-39.
46. A method comprising facilitating a processing of and/or processing (1) data and/or (2) information and/or (3) at least one signal, the (1) data and/or (2) information and/or (3) at least one signal based, at least in part, on the method according to any of claims 27-39,
47. A method comprising facilitating creating and/or facilitating modifying (1) at least one device user interface element and/or (2) at least one device user interface functionality, the (1) at least one device user interface element and/or (2) at least one device user interface functionality based, at least in part, on the method according to any of claims 27-39.
48. A method comprising creating and/or modifying (1) at least one device user interface element and/or (2) at least one device user interface functionality, the (1) at least one device user interface element and/or (2) at least one device user interface functionality based, at least in part, on the method according to any of claims 27-39.
PCT/CN2011/079096 2011-08-30 2011-08-30 Method and apparatus for providing recommendations based on context-aware group modeling WO2013029233A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/CN2011/079096 WO2013029233A1 (en) 2011-08-30 2011-08-30 Method and apparatus for providing recommendations based on context-aware group modeling
CN201180074376.1A CN103890812A (en) 2011-08-30 2011-08-30 Method and apparatus for providing recommendations based on context-aware group modeling

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2011/079096 WO2013029233A1 (en) 2011-08-30 2011-08-30 Method and apparatus for providing recommendations based on context-aware group modeling

Publications (1)

Publication Number Publication Date
WO2013029233A1 true WO2013029233A1 (en) 2013-03-07

Family

ID=47755192

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2011/079096 WO2013029233A1 (en) 2011-08-30 2011-08-30 Method and apparatus for providing recommendations based on context-aware group modeling

Country Status (2)

Country Link
CN (1) CN103890812A (en)
WO (1) WO2013029233A1 (en)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017146683A (en) * 2016-02-16 2017-08-24 ヤフー株式会社 Generation device, generation method, and generation program
WO2018182958A1 (en) * 2017-03-31 2018-10-04 Google Llc Managing user sessions based on contextual information
CN108704315A (en) * 2018-03-14 2018-10-26 北京奇虎科技有限公司 Game recommdation method, apparatus and computer readable storage medium
CN108958247A (en) * 2018-07-02 2018-12-07 深圳市益鑫智能科技有限公司 A kind of guided robot
CN109345416A (en) * 2018-09-12 2019-02-15 连尚(新昌)网络科技有限公司 It is a kind of for recording the method and apparatus of the adduction relationship between works
US10311249B2 (en) 2017-03-31 2019-06-04 Google Llc Selectively obscuring private information based on contextual information
US10417685B2 (en) 2013-06-14 2019-09-17 Oracle International Corporation Context dependent data management and display
CN110321489A (en) * 2019-07-11 2019-10-11 重庆邮电大学 A kind of smart travel recommended method and system based on improvement proposed algorithm
JP2020129409A (en) * 2016-02-16 2020-08-27 ヤフー株式会社 Generator, generation method, and generation program
US11556100B2 (en) 2017-06-30 2023-01-17 Huawei Technologies Co., Ltd. Control method, related device, and system

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105740331A (en) * 2016-01-22 2016-07-06 百度在线网络技术(北京)有限公司 Information push method and device
CN109032683B (en) * 2017-05-31 2021-03-26 腾讯科技(深圳)有限公司 Configuration data processing method and device
CN110351318B (en) * 2018-04-04 2022-04-29 腾讯科技(深圳)有限公司 Application recommendation method, terminal and computer storage medium
CN109165351B (en) * 2018-08-27 2021-11-26 成都信息工程大学 Service component search recommendation method based on semantics
CN111797879A (en) * 2019-04-09 2020-10-20 Oppo广东移动通信有限公司 Model training method and device, storage medium and electronic equipment
CN111857660B (en) * 2020-07-06 2021-10-08 南京航空航天大学 Context-aware API recommendation method and terminal based on query statement

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101271558A (en) * 2008-05-16 2008-09-24 华东师范大学 Multi-policy commercial product recommending system based on context information
CN101339563A (en) * 2008-08-15 2009-01-07 北京航空航天大学 Interest model update method facing to odd discovery recommendation
CN101751448A (en) * 2009-07-22 2010-06-23 中国科学院自动化研究所 Commendation method of personalized resource information based on scene information
US7984056B1 (en) * 2007-12-28 2011-07-19 Amazon Technologies, Inc. System for facilitating discovery and management of feeds

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7984056B1 (en) * 2007-12-28 2011-07-19 Amazon Technologies, Inc. System for facilitating discovery and management of feeds
CN101271558A (en) * 2008-05-16 2008-09-24 华东师范大学 Multi-policy commercial product recommending system based on context information
CN101339563A (en) * 2008-08-15 2009-01-07 北京航空航天大学 Interest model update method facing to odd discovery recommendation
CN101751448A (en) * 2009-07-22 2010-06-23 中国科学院自动化研究所 Commendation method of personalized resource information based on scene information

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10417685B2 (en) 2013-06-14 2019-09-17 Oracle International Corporation Context dependent data management and display
JP2017146683A (en) * 2016-02-16 2017-08-24 ヤフー株式会社 Generation device, generation method, and generation program
JP2020129409A (en) * 2016-02-16 2020-08-27 ヤフー株式会社 Generator, generation method, and generation program
WO2018182958A1 (en) * 2017-03-31 2018-10-04 Google Llc Managing user sessions based on contextual information
US10311249B2 (en) 2017-03-31 2019-06-04 Google Llc Selectively obscuring private information based on contextual information
US11556100B2 (en) 2017-06-30 2023-01-17 Huawei Technologies Co., Ltd. Control method, related device, and system
CN108704315A (en) * 2018-03-14 2018-10-26 北京奇虎科技有限公司 Game recommdation method, apparatus and computer readable storage medium
CN108958247A (en) * 2018-07-02 2018-12-07 深圳市益鑫智能科技有限公司 A kind of guided robot
CN109345416A (en) * 2018-09-12 2019-02-15 连尚(新昌)网络科技有限公司 It is a kind of for recording the method and apparatus of the adduction relationship between works
CN110321489A (en) * 2019-07-11 2019-10-11 重庆邮电大学 A kind of smart travel recommended method and system based on improvement proposed algorithm

Also Published As

Publication number Publication date
CN103890812A (en) 2014-06-25

Similar Documents

Publication Publication Date Title
WO2013029233A1 (en) Method and apparatus for providing recommendations based on context-aware group modeling
US11210706B2 (en) Method and apparatus for determining context-aware similarity
US11568260B2 (en) Exponential modeling with deep learning features
CN107251060B (en) Pre-training and/or transfer learning for sequence taggers
US10277479B2 (en) Method and apparatus for determining user context
US9778060B2 (en) Method and apparatus for providing personalized routing based on user routing behaviors
US20150339371A1 (en) Method and apparatus for classifying significant places into place categories
US9105053B2 (en) Method and apparatus for determining a user age range
US9390091B2 (en) Method and apparatus for providing multimedia summaries for content information
US8204886B2 (en) Method and apparatus for preparation of indexing structures for determining similar points-of-interests
US20150254692A1 (en) Method and apparatus for social networking service strategy based on spread simulation
US20130007063A1 (en) Method and apparatus for real-time processing of data items
WO2012034288A1 (en) Method and apparatus for segmenting context information
US20170161639A1 (en) Method and apparatus for recommendation by applying efficient adaptive matrix factorization
US20140214818A1 (en) Method and apparatus for hybrid social search model
US20150142822A1 (en) Method and apparatus for providing crowd-sourced geocoding
CN103891392A (en) Method and apparatus for phonebook-based application sharing
US9679064B2 (en) Method and apparatus for providing user-corrected search results
WO2012089899A1 (en) Method and apparatus for providing recommendations based on preloaded models
US20200342409A1 (en) Method, apparatus, and system for providing a distance metric for skill or feature data of a talent platform
US20160162472A1 (en) Method and apparatus for providing alternative content
WO2012055104A1 (en) Method and apparatus for performing user segmentation based on user behavior information
US20150066650A1 (en) Method and Apparatus for Advertisements in Mobile Content Distribution Systems
US11423104B2 (en) Transfer model learning for relevance models
US20140019580A1 (en) Method and apparatus for providing derivative publications of a publication at one or more services

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: 11871644

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: 11871644

Country of ref document: EP

Kind code of ref document: A1