GB2583718A - Method, apparatus and computer program for updating a cluster probability model - Google Patents

Method, apparatus and computer program for updating a cluster probability model Download PDF

Info

Publication number
GB2583718A
GB2583718A GB1906137.3A GB201906137A GB2583718A GB 2583718 A GB2583718 A GB 2583718A GB 201906137 A GB201906137 A GB 201906137A GB 2583718 A GB2583718 A GB 2583718A
Authority
GB
United Kingdom
Prior art keywords
user
cluster
event
application
probability model
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
GB1906137.3A
Other versions
GB201906137D0 (en
Inventor
Ansorregui Lobete Daniel
Bernabei Andrea
Saá-Garriga Albert
Palavedu Saravanan Karthikeyan
Vandini Alessandro
Bin Xue Bin
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Priority to GB1906137.3A priority Critical patent/GB2583718A/en
Publication of GB201906137D0 publication Critical patent/GB201906137D0/en
Priority to PCT/KR2019/017112 priority patent/WO2020222386A1/en
Publication of GB2583718A publication Critical patent/GB2583718A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3013Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is an embedded system, i.e. a combination of hardware and software dedicated to perform a certain function in mobile devices, printers, automotive or aircraft systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3072Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3438Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/906Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Quality & Reliability (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Computational Mathematics (AREA)
  • Medical Informatics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

A computer-implemented method of updating a cluster probability model for predicting the next event to occur from among a plurality of events is disclosed. The method comprises detecting occurrence of a first event and a second event following the first event, and determining whether the first event and the second event belong to the same cluster or to different clusters. When it is determined that the first event and the second event belong to the same cluster, a corresponding one of the intra-cluster transition probabilities associated with said cluster is updated and transmitted to a server. When it is determined that the first event and the second event belong to different clusters, a corresponding inter-cluster transition probability associated with said clusters is updated and transmitted to the server. In some embodiments, the updated probabilities may be used to predict the most likely next event to occur, and a pre-emptive action may be taken before occurrence of the next event. The cluster probability model may be configured for predicting the next application that will be selected by the current user, among a plurality of applications installed on the user device such as a mobile phone.

Description

Method, Apparatus and Computer Program for Updating a Cluster Probability Model
Technical Field
The present invention relates to a method, apparatus and computer program for updating a cluster probability model. More particularly, the present invention relates to updating a cluster probability model for predicting the next event to occur from among a plurality of events.
io Background
Modern devices such as smartphones, tablet computers and wearable devices are becoming increasingly complex, and capable of performing a wide range of functions. As the number of functions performed by devices increase, effective management of device resources becomes more challenging since it is difficult to know in advance how any given user will choose to make use of their device. For example, a user device may have a large number of applications installed, any of which can be launched by the user at any given time. When a user switches from one application to another, a delay may be experienced whilst the device prepares to launch the new application, for example by loading the necessary textures and computer program code into memory.
The invention is made in this context.
Summary of the Invention
According to a first aspect of the present invention, there is provided a computer-°, -0 implemented method of updating a cluster probability model for predicting the next event to occur from among a plurality of events, the method comprising: detecting occurrence of a first event and a second event among the plurality of events, the second event following the first event; determining whether the first event and the second event belong to the same cluster or to different clusters in the cluster probability model; and in dependence on a determination that the first event and the second event belong to the same cluster, updating a corresponding one of the intra-duster transition probabilities associated with said duster and transmitting the updated intra-duster transition probability to a server; or in dependence on a determination that the first event and the second event belong to different dusters, updating a corresponding inter-cluster transition probability associated with said dusters and transmitting the updated inter-cluster transition probability to the server.
In some embodiments according to the first aspect, the cluster probability model defines a plurality of event-specific probabilities each corresponding to a different transition between the plurality of events, the method further comprising updating the one of the event-specific probabilities corresponding to a transition from the first event to the second event, without transmitting the updated event-specific probability to the server.
In some embodiments according to the first aspect, the cluster probability model is one of a plurality of stored cluster probability models each associated with one of a plurality of user groups, each user group being defined by one or more user characteristics, the method further comprising: obtaining values of the one or more user characteristics relating to a current user of a user device; assigning the current user to a first one of the plurality of user groups in dependence on the obtained values of the one or more user characteristics; and while the current user is interacting with the user device, using a first cluster probability model associated with the first user group to predict the next event to occur from among the plurality of events.
In some embodiments according to the first aspect, the one or more user characteristics comprise device usage information relating to a manner in which the device is used by the current user.
-0or In some embodiments according to the first aspect, the device usage information relates to one or more of: a location at which the user interacts with the user device; a time at which the user interacts with the user device; a number of applications installed on the user device; types of applications installed on the user device; and a battery usage profile associated with the user.
In some embodiments according to the first aspect, the one or more user characteristics comprise user profile information associated with the current user.
In some embodiments according to the first aspect, the one or more user characteristics comprise duster distribution information relating to a distribution of clusters within the cluster probability model. -3 -
In some embodiments according to the first aspect, assigning the current user to the first user group comprises: determining a similarity between the distribution of clusters within the cluster probability model and the cluster distribution information, for each of the plurality of user groups; identifying the first user group as the user group having the highest similarity between the distribution of clusters within the duster probability model and the cluster distribution information; and assigning the user to the identified first user group.
io In some embodiments according to the first aspect, the method further comprises: comparing each of the determined similarities to a threshold; and in dependence on a determination that none of the determined similarities exceed the threshold, creating a new user group as the first user group and defining a base model for the first user group based on the cluster probability model.
In some embodiments according to the first aspect, the method further comprises: updating the values of the one or more user characteristics relating to the current user over time; reassigning the current user to a second one of the user groups in dependence on the updated one or more user characteristics; retrieving a second cluster probability model associated with the second user group; and while the current user is interacting with the user device, using the second cluster probability model to predict the next event to occur from among the plurality of events.
In some embodiments according to the first aspect, the method further comprises: -0or determining that a new user is interacting with the user device; obtaining said one or more user characteristics relating to the new user; assigning the new user to one of the plurality of user groups; and retrieving the cluster probability model associated with associated with the assigned user group for the new user.
In some embodiments according to the first aspect, transmitting the updated infra-cluster transition probability or the updated inter-duster transition probability to the server comprises transmitting a user group identifier indicative of the user group to which the user is assigned.
In some embodiments according to the first aspect, the obtained values of the one or more user characteristics relating to the current user of a user device are transmitted to -4 -a server, and wherein the step of assigning the current user to the first user group is performed at the server.
In some embodiments according to the first aspect, the method further comprises receiving the first cluster probability model associated with the first user group from the server.
In some embodiments according to the first aspect, each one of the plurality of clusters is defined by one or more descriptors, and the method comprising: obtaining first values of said one or more descriptors associated with the first event; and obtaining second values of said one or more descriptors associated with the second event, wherein the obtained first and second values of said one or more descriptors are used to determine whether the first event and the second event belong to the same cluster or to different clusters.
In some embodiments according to the first aspect, each event comprises a user interacting with a different one of a plurality of applications installed on a user device, the method further comprising: detecting user interaction with a first one of the plurality of applications; identifying one of the plurality of clusters containing an event associated with user interaction with the first application; and predicting a second application with which the user will interact next based on the intra-cluster and inter-cluster transition probabilities associated with the identified cluster.
In some embodiments according to the first aspect, the method further comprises loading application data relating to the predicted second application into memory, while the user is still interacting with the first application.
In some embodiments according to the first aspect, the one or more descriptors associated with each application comprise one or more of: an application type 3o descriptor relating to a type of the application; an application version descriptor relating to a version number of the application; an application age rating descriptor relating to an age rating of the application; an application review descriptor relating to a user review rating of the application on an application portal; an application price descriptor relating to a price of the application on the application portal; and a user interface descriptor relating to an appearance of a user interface in the application. -5 -
In some embodiments according to the first aspect, each event comprises a user interacting with a user device at a different one of a plurality of locations, and the method further comprises: detecting user interaction with the user device at a first one of the plurality of locations; identifying one of the plurality of clusters containing an event associated with user interaction with the user device at the first location; predicting a second location at which the user will next interact with the user device based on the intra-cluster and inter-cluster transition probabilities associated with the identified cluster; and accessing information relating to the predicted second location in advance, before the user interacts with the user device at the second location.
In some embodiments according to the first aspect, each event comprises a user executing one of a plurality of system toggles, the method further comprising: detecting user execution of a first one of the plurality of system toggles; identifying one of the plurality of clusters containing an event associated with the first system toggle; predicting a next system toggle to be executed by the user based on the intra-cluster and inter-cluster transition probabilities associated with the identified cluster; and automatically executing the predicted next system toggle, or prompting the user to execute the predicted next system toggle.
In some embodiments according to the first aspect, each event comprises a user navigating to one of a plurality of webpages, the method further comprising: detecting the user navigating to a first one of the plurality of webpages; identifying one of the plurality of clusters containing an event associated with the first webpage; predicting a next webpage based on the intra-cluster and inter-cluster transition probabilities or associated with the identified cluster; and preloading the predicted next webpage into memory, and/or prompting the user to navigate to the predicted next webpage.
In some embodiments according to the first aspect, each event comprises one of a plurality of smart home actions, the method fiirther comprising: detecting user execution of a first one of the plurality of smart home actions; identifying one of the plurality of clusters containing an event associated with the first smart home action; predicting a next smart home action to be executed by the user based on the infra-cluster and inter-cluster transition probabilities associated with the identified duster; and automatically executing the predicted next action, or prompting the user to execute the predicted next action. -6 -
According to a second aspect of the present invention, there is provided a non-transitory computer-readable storage medium storing computer program instructions which, when executed, cause performance of a method according to the first aspect.
According to a third aspect of the present invention, there is provided apparatus configured to update a cluster probability model for predicting the next event to occur from among a plurality of events, the apparatus comprising: one or more processors; and computer-readable memory storing computer program instructions, which, when executed by the one or more processors, cause the apparatus to: detect occurrence of a o first event and a second event among the plurality of events, the second event following the first event; determine whether the first event and the second event belong to the same cluster or to different clusters in the cluster probability model; and in dependence on a determination that the first event and the second event belong to the same cluster, update a corresponding one of the intra-cluster transition probabilities associated with said cluster and transmitting the updated intra-cluster transition probability to a server; or in dependence on a determination that the first event and the second event belong to different clusters, update a corresponding inter-cluster transition probability associated with said clusters and transmitting the updated inter-cluster transition probability to the server.
Brief Description of the Drawings
Embodiments of the present invention will now be described, by way of example only, with reference to the accompanying drawings, in which: Figure 1 illustrates a user interface screen for launching a plurality of applications in a or user device, according to an embodiment of the present invention; Figure 2 illustrates a system comprising a server in communication with a plurality of user devices, according to an embodiment of the present invention; Figure 3 illustrates a two-dimensional cluster probability model according to an embodiment of the present invention; Figure 4 illustrates a process of generating a community cluster probability model, according to an embodiment of the present invention; Figure 5 is a flowchart showing a method of updating a cluster probability model, according to an embodiment of the present invention; Figure 6 is a flowchart showing a method of assigning a user to one of a plurality of 35 communities, according to an embodiment of the present invention; -7 -Figure 7 is a flowchart showing a method of predicting a next event to occur among a plurality of events using a cluster probability model, according to an embodiment of the present invention; and Figure 8 schematically illustrates a system comprising a server and a user device, 5 according to an embodiment of the present invention.
Detailed Description
In the following detailed description, only certain exemplary embodiments of the present invention have been shown and described, simply by way of illustration. As those skilled in the art would realise, the described embodiments may be modified in various different ways, all without departing from the scope of the present invention. Accordingly, the drawings and description are to be regarded as illustrative in nature and not restrictive. Like reference numerals designate like elements throughout the specification.
Referring now to Fig. 1, a user interface screen for launching a plurality of applications in a user device is illustrated, according to an embodiment of the present invention. The skilled person will be familiar with such interfaces, and a detailed explanation will not be given here so as to avoid obscuring the present inventive concept. However, in brief, the user interface of the present embodiment comprises a plurality of icons each corresponding to a different application no, and is displayed on a touch screen of the user device 100, which in the present embodiment is a mobile phone handset, commonly referred to as a smartphone'. In response to a user selecting one of the displayed icons, for example by pressing the touch screen over the icon or speaking a voice command, the user device 100 launches the selected application no. It will be appreciated that the types of applications illustrated in Fig. 1 are merely provided by way of example to aid understanding of the present invention, and should not be construed as limiting.
Referring now to Fig. 2, a system comprising a server 200 in communication with a plurality of user devices loo is illustrated, according to an embodiment of the present invention. The server 200 and the plurality of user devices loo may communicate via any suitable communication channel 210, for example a mobile communication network, local area network, the Internet, or any other suitable wired or wireless connection. Each user device 100 can obtain a cluster probability model from the -8 -server 200 for use in predicting the next event to occur among a plurality of possible events.
In the present embodiment the cluster probability model is configured for predicting the next application no that will be selected by the current user, among a plurality of applications installed on the user device too. In other embodiments the cluster probability model may be configured for predicting other types of event, such as system toggles (e.g. turning on or off functions such as WiFi, GPS, Bluetooth and so on), an increase or decrease in battery usage, or a change in location. The user devices too can use the obtained cluster probability model to predict the next event that is most likely to occur and take suitable pre-emptive action. By taking suitable action in advance, for example by pre-loading textures for the predicted next application into memory or automatically executing the predicted system toggle, the delay experienced by the user can be reduced. Additionally, the accuracy of the cluster probability model stored at the server zoo can be increased by updating the model based on information received from the plurality of user devices too, as will be described in more detail later.
Referring now to Fig. 3, a two-dimensional cluster probability model 30o is illustrated according to an embodiment of the present invention. The cluster probability model 300 defines a plurality of event clusters 3o1, 302, 303, 304. Each cluster contains a subset of the plurality of events that share similar characteristics, as defined by one or more descriptors. In the present embodiment two descriptors are used, denoted by DES, and DES,,,, resulting in a two-dimensional cluster probability map 300. However, the present invention is not limited to two-dimensional cluster probability maps, and in or other embodiments any number n of descriptors may be used, resulting in an n-dimensional cluster probability map 300.
Values of the 77 descriptors associated with a particular event, which in the present embodiment relates to a user selecting a particular application, can be treated as coordinates of the application in n-dimensional space. Applications which share similar characteristics as defined by the n descriptors will be more closely spaced than applications which have quite different characteristics. When plotted in n-dimensional space, it may be observed that a plurality of applications naturally fall into a number of clusters, and the boundary of each cluster 301, 302, 303, 304 may be set accordingly so as to contain a group of applications that occupy the same general area within the n-dimensional space. -9 -
The plurality of clusters may be defined by various types of descriptors, depending on the embodiment and the type of events. Examples of descriptors that may be used in the present embodiment to describe each application include, but are not limited to: a number of times the application has been downloaded from an online application portal; a family of related applications to which the present application belongs; a release date on which the current version of the application was released; a recommended age associated with the application; a current review score associated with the application, for example based on user reviews; a price of the application; a user interface appearance of the application; and one or more keywords describing the application. It will be appreciated that these descriptors are provided merely by way of example, and in other embodiments an application cluster probability model may be defined in terms of other descriptors to those mentioned above. Furthermore, in embodiments in which another type of event is modelled, suitable descriptors may be chosen as appropriate.
As shown in Fig. 3, the cluster probability model 30o comprises a plurality of infra-cluster transition probabilities 311, 312, and a plurality of inter-cluster transition probabilities 313, 314, 315, 316, 317. Each intra-cluster transition probability relates to the probability that the next event to occur will be an event in the same cluster as the immediately preceding event. The cluster probability model 300 may define a different intra-cluster transition probability for each one of the plurality of clusters 301, 302, 303, 304. Each inter-cluster transition probability relates to the probability that the next event to occur will be an event in a different cluster to the immediately preceding event.
The cluster probability model 300 may define a different inter-cluster transition probability for each possible transition between different ones of the plurality of clusters 301, 302, 303, 304. For example, one inter-cluster transition probability 313 may relate to the probability that an event in a second cluster 302 will follow an event in a first cluster 301, whilst another inter-cluster transition probability 314 may relate to the probability of the opposite transition occurring, namely that an event in the first cluster 301 will follow an event in the second cluster 302.
In the example illustrated in Fig. 3, for clarity only two intra-cluster transition probabilities 311, 312, and five inter-cluster transition probabilities 313, 314, 315, 316, -10 - 317 are illustrated. However, as explained above, the cluster probability model 300 may comprise other intra-and inter-cluster transition probabilities in addition to the ones illustrated in Fig. 3. In general the cluster probability model 300 may be configured to store a separate intra-cluster transition probability for each cluster 301, 302, 303, 304, and may be configured to store a separate inter-cluster transition for all possible transitions between clusters 301, 302, 303, 304. Accordingly, the cluster probability model 30o can be used to predict the most likely event that will follow any other given event among the plurality of events.
A cluster probability model 300 such as the one shown in Fig. 3 may be generated and updated based on information received from a plurality of user devices 100, and as such may be referred to as a 'community cluster probability model'. The community cluster probability model is stored at the server zoo and can be provided to the user devices 100 as and when necessary. For example, the server zoo may transmit the community cluster probability model to one user device 100 when that user device 100 is first assigned to the community with which the community duster probability model is associated. The models that are stored locally at the user devices 100 may be referred to as 'user cluster probability models', and can be trained for a particular user over time to be capable of more accurately predicting the next transition that will occur, taking into account that particular user's past behaviour.
Referring now to Fig. 4, a process of generating a community cluster probability model is illustrated, according to an embodiment of the present invention. Training a model based on data collected from a large number of users is commonly referred to as federated learning. In embodiments of the present invention, a federated learning approach can be used to improve the accuracy of a community cluster probability model stored at the server zoo, by increasing the amount of data available for training the model. At the same time, the use of a cluster-based model helps to maintain user's privacy, since user devices may only share information about transition probabilities at the cluster level (i.e. intra-cluster or inter-cluster transition probabilities) without having to send information to the server that could identify the specific application(s) most often used by a particular user.
Furthermore, by using a cluster-based community model, the amount of data to be 35 transmitted to/from the server 200 by each user device 100 can be reduced, since the number of possible intra-and inter-cluster transitions can be much lower than the number of possible transitions between every application installed on the user device loo. Therefore the network overhead that arises due to many devices regularly transmitting updates to the server and received updated models can be reduced.
In some embodiments of the present invention, the server 200 may store a plurality of community cluster probability models 30o each associated with a different community of users. Here, a 'community' of users is defined as a group of users that share similar characteristics, as determined based on one or more user characteristics. Hence a community may also be referred to as a user group. By grouping users according to their characteristics in this way, different models can be maintained for groups of users that are more likely to exhibit similar behaviour to each other. Consequently, the model associated with a particular group of users may more accurately represent the actual probabilities of various events being the next event to occur, as opposed to predicting the probability of the next event based on a more generic model.
Nevertheless, in some embodiments of the invention the server zoo may only store a single generic model that is distributed to all user devices too.
The one or more user characteristics may comprise device usage information relating to a manner in which the device too is used by the current user. Examples of types of device usage information that may be used to assign a particular user to one of a plurality of communities include, but are not limited to: a location at which the user interacts with the user device 100; a time at which the user interacts with the user device 100; a number of applications installed on the user device loo; types of applications installed on the user device too; and a battery usage profile associated with the user.
As another example, in some embodiments the one or more user characteristics can comprise user profile information associated with the current user, and/or cluster distribution information relating to a distribution of clusters within the cluster probability model. For example, the user profile information may include information about the user's age, gender, nationality, and so on, and can allow the user to be grouped with other users that are statistically likely to exhibit a similar pattern of usage of the user device too. The cluster distribution information may be determined based on a cluster probability model that has been trained for a specific individual user, and so can allow that user to be grouped with other users that are known to exhibit a similar pattern of usage.
-12 -Referring now to Fig. 5, a flowchart showing a method of updating a duster probability model is illustrated, according to an embodiment of the present invention. The method illustrated in Fig. 5 may be implemented in the form of computer program instructions executed on one or more processors, and accordingly may be referred to as a computer-implemented method.
First, in step S5o1 the occurrence of a first event among a plurality of events is detected. In the present embodiment, the plurality of events involve a user selecting different ones of a plurality of applications, and the first event is detected when a user selects a corresponding first one of the applications. Then, in step S5o2 a second event is detected following the first event, which in the present embodiment comprises a user selecting a second application after using the first application. Next, values of descriptors associated with the first and second events are obtained respectively in /5 steps S5o3 and S5o4. For example, the values of descriptors may be stored within the user device wo and retrieved from local memory, or may be retrieved from the server 200. It will be appreciated that step S5o3 could be performed before the second event occurs, i.e. before step S502.
Next, in step S5o5 the user device loo determines whether the first application and the second application belong to the same cluster or to different clusters in the cluster probability model 300. In dependence on a determination in step S5o5 that the first application and the second application belong to the same cluster, the user device 100 proceeds to step S5o6 and updates a corresponding one of the intra-cluster transition probabilities associated with said cluster. On the other hand, in dependence on a determination in step S5o5 that the first application and the second application belong to different clusters, the user device wo proceeds to step S5o7 and updates a corresponding inter-cluster transition probability associated with the respective clusters to which the first and second appliations belong.
Then, in step S5o8 the user device loo also updates a corresponding event-specific transition probability. The event-specific transition probability is a probability value associated specifically with the transition from the first application to the second application. On the other hand, the intra-cluster and inter-cluster transition probabilities that are updated in steps S5o6 and S5o7 are more generic values -13 -indicative of the probability of any transition occurring within the same duster or to a different cluster, without being linked to a transition between a specific pair of events.
Next, in step S5o9 the user device too transmits the updated intra-cluster transition probability to the server 200 without transmitting the event-specific transition probability. Since the cluster model groups applications based on descriptors, applications within the same duster are likely to be used in similar ways, and so a generic intra-cluster or inter-duster transition probability can still provide an accurate prediction of the event that is most likely to occur next. Also, in some instances it is Jo possible that an event-specific transition probability may be updated in step S5o8 without necessarily changing the corresponding intra-or inter-cluster transition probability. There will be fewer intra-and inter-cluster transition probabilities than the number of event-specific transition probabilities, since there are more events than clusters, and so the use of a cluster model can reduce the amount of data that has to be transmitted between the user devices too and the server zoo. At the same time, by not transmitting the event-specific transition probabilities in step S5o9, the user's privacy is preserved since the information that is transmitted to the server cannot be used to identify the particular first and second applications that were selected by the user.
In steps S5o6, S5o7 and S5o8, any suitable method may be used to update the intracluster, inter-cluster and event-specific transition probabilities. In some embodiments a reinforcement learning approach is used, in which a reward value of '1' is assigned each time the next event was correctly predicted using the existing transition probabilities, and a reward value of '0' is assigned each time the prediction of the next event was incorrect. In such embodiments, the method may further comprise a step of predicting the second event based on the existing transition probabilities with knowledge of the first event (i.e. after step S5o1), followed by a step of comparing the prediction to the actual event that was detected in step S5oz. The prediction may be performed before or after the second event is detected in step 8502. The values of the transition probabilities may then be updated based on the assigned reward values, for example using Bellman's equation.
Although in the above-described example a reinforcement learning approach is used, in other embodiments a different approach may be used to update the intra-cluster, inter-cluster and event-specific transition probabilities. For example, in some embodiments a Markov-based method may be used to compute the real probabilities of each event occuring.
In some embodiments, when the community cluster probability model stored at the server 200 has been updated in step S506 or 5507, the server 200 may update the user cluster probability models that are stored locally at the user devices ma The user cluster probability models may be updated in various ways. For example, in one embodiment the server is configured to overwrite the event-specific transition probabilities between two particular clusters in the user cluster probability models with the respective inter-cluster transition probability from the community cluster probability model. A similar approach may be used to update event-specific transition probabilities within the same cluster, using the respective intra-cluster transition probability from the community cluster probability model.
In another embodiment, a user device 100 may receive an updated inter-cluster or intra-cluster transition probability from the server 200, and may update a respective one of the locally-stored event-specific transition probabilities by calculating a weighted average between the event-specific transition probability and the updated probability from the server 200. In this approach, the weighting that is used relates to the degree to which the user device loo 'trusts' the server. In some embodiments, the weighting may be adjusted so as to change the extent to which locally-stored probabilities will be influenced by updates to the community cluster probability model. As yet a further example, in some embodiments the locally-stored user cluster probability models may not be updated from the server 200, and the updated community cluster probability model may only be sent to new users when they first join the community. Thereafter, each new user device can use the community cluster probability model as a starting point for training their own user-specific model.
Referring now to Fig. 6, a flowchart showing a method of assigning a user to one of a plurality of communities is illustrated, according to an embodiment of the present invention. in embodiments in which a plurality of community cluster probability models are stored, as described above with reference to Fig. 4, a method such as the one shown in Fig. 6 may be used to determine which of the various community models should be used for the current user.
-15 -First, in step S6o1 the values of the one or more user characteristics relating to the current user are obtained. In the present embodiment the user characteristics comprise cluster distribution information for the current user. However, as described above with reference to Fig. 4, in other embodiments different forms of user characteristics may be obtained in step S601..
Then, in step S6o2 the obtained cluster distribution information is compared to a plurality of existing base models for the plurality of communities. Here, the term 'base model' is used to denote a generic cluster distribution model associated with one of the io communities. When a user is first assigned to a community, their user device roo can retrieve the base model associated with the assigned community from the server 200 and begin using the base model to start predicting the next events that will occur at the user device roo. Over time, the user device loo can train the model based on the user's observed behaviour, to generate a tailored cluster model that is specific to the current user. Whilst training the user-specific cluster model, which may be stored locally at the user device loo, the user device roo can continue to update corresponding intra-and inter-cluster transition probabilities and transmit the updated probabilities to the server 200 for use in further refining the base model for the current community, as described above with reference to step S5o9 in Fig. 5.
In the present embodiment, step S6o2 involves determining a similarity between the distribution of clusters within the base model and the cluster distribution information, for each of the plurality of communities. The use is then assigned to the community which has the highest similarity between the distribution of clusters within the base model and the cluster distribution information in step S6o3. In some embodiments, the determined similarity for each community may be compared to a threshold to determine whether the base model for that community is a sufficiently close match to the cluster distribution for the current user to be capable of providing a reaonsably accurate estimate of the next event that will occur. If it is determined in step 8602 that none of the determined similarities exceed the threshold, then in step S604 a new community is created and a base model for the new community is defined based on the cluster distribution information for the current user.
Then, in step S6o5 the user device loo proceeds to use the model associated with the 35 assigned community to make predictions about the next event that will occur, while the current user is interacting with the user device loch A method such as the one shown in Fig. 6 may be used whenever it is determined that a new user is interacting with the user device 100. In some embodiments, the user device loo may periodically check whether an existing user should still be assigned to the same community as before. As such, the values of the one or more user characteristics obtained in step S6o1 may be updated over time, and steps S6o2 to S6o5 repeated as necessary. If the current user is reassigned to a different community in step S6o3 or S6o4, then in step S6o5 the user device loo can start using a base model associated with the newly-assigned community to make predictions about the next event that will o occur. By reassigning a user to a different community in this way, the system can take into account changes in a user's behaviour patterns over time, and select a more appropriate model if necessary.
Depending on the embodiment, the assignment of a user to a particular community /5 may either be made at the server zoo, or at the user device 100. In the present embodiment the user device loo is configured to perform the method shown in Fig. 6 to assign a user to a particular community. Accordingly, in step S5o9 of Fig. 5 the user device loo may also transmit a user group identifier indicative of the currently-assigned community to the server 200, so that the server 200 can know which base model should be updated. This avoids having to transmit the user characteristic information that was obtained in step S6oi to the server, thereby protecting the user's privacy.
However, in other embodiments the user device ioo could transmit the user -0or characteristic information to the server 200, which can then use a method such as the one shown in Fig. 6 to assign the user to a community. The server zoo can then send the appropriate base model to the user device 100, without necessarily informing the user device 100 of the community to which the user has been assigned.
Referring now to Fig. 7, a flowchart showing a method of predicting a next event to occur among a plurality of events using a cluster probability model is illustrated, according to an embodiment of the present invention. A method such as the one shown in Fig. 7 may be used in step S6o5 of Fig. 5 to predict the next event that will occur after a first event has been detected. In the present embodiment, each user device loo is configured to store two versions of a cluster probability model. One version is the community cluster probability model associated with the community to which the user -17 -is currently assigned, as described above. The other version is a user cluster probability model which stores a plurality of event-specific transition probabilities. Each event-specific transition probability denotes the probability that a transition between two specific events will occur, for example, a transition from one application to another application. In the method of Fig. 7, the user device 100 can use the event-specific transition probabilities to identify the specific transition that is deemed most likely to occur next, as opposed to predicting a transition in more general terms at the cluster level.
io First, in step 8701 a first event occurs and is detected at the user device 100. In the present embodiment each event comprises a user interacting with a different one of a plurality of applications installed on the user device um), and step S7o1 involves detecting user interaction with a first one of the plurality of applications. Then, in step 8702 the values of one or more descriptors associated with the detected event are retrieved, and used to identify which one of the plurality of dusters contains the event in step 8703. Then, in step 8704 the intra-and inter-cluster transition probabilities associated with the identified cluster are used to predict the next event that will occur. In the present embodiment, predicting the next event comprises predicting the next application with which the user will interact.
Once the next event has been predicted, in step S7o5 the user device 100 takes a suitable pre-emptive action before the next event occurs. The type of action that is taken in step S7o5 can vary depending on the type of event that is expected. In general, the action performed in step 8705 may be an action designed to reduce or remove any -0or delay that would otherwise be experienced by the user when the event occurs, by preparing the user device 100 in advance. In the present embodiment, in which the events comprise user interaction with different applications, the action taken in step 8705 may comprise loading application data relating to the predicted next application into memory, while the user is still interacting with the first application.
As another example, in another embodiment each event may comprise a user interacting with the user device 100 at a different one of a plurality of locations. in such embodiments, step S7o1 may involve detecting user interaction with the user device 100 at a first one of the plurality of locations, and predicting the second event in step 8704 may involve predicting the next location at which the user will interact with the user device 100. In this embodiment, an example of a suitable pre-emptive action -18 -that maybe taken in step S7o5 can include retrieving and displaying information relating to the predicted next location in advance. For example, if the next location is a public transport hub such as a train station, in step S7o5 the user device loo may display information about train times and/or transport delays at the predicted next location in advance.
As a further example, in another embodiment each event may comprise a user executing one of a plurality of system toggles, e.g. by turning on or off functions such as WiFi, GPS, Bluetooth and so on. In such embodiments, an example of a suitable pre-emptive action that maybe taken in step S7o5 can include automatically executing the predicted system toggle, thereby saving the user time and effort by otherwise having to execute the system toggle manually.
As yet a further example, in another embodiment each event may comprise loading one of a plurality of web pages. In such embodiments, an example of a suitable pre-emptive action that maybe taken in step S7o5 can include preloading the predicted next webpage into memory, thereby avoiding a delay when the user chooses to navigate to the next webpage. In some embodiments, in step S705 the user device loo could prompt the user to navigate to the predicted next webpage, thereby avoiding the user having to search for a link to the webpage or type in the address manually.
As a still further example, in another embodiment each event may comprise one of a plurality of smart home actions, such as turning on a smart home appliance (e.g. television, oven, heating, and so on) or adjusting a setting of a smart home appliance -0or (e.g. turning volume up or down on a television or audio system). In such embodiments, an example of a suitable pre-emptive action that may be taken in step 8705 can include automatically executing the predicted next action, or issuing a reminder to the user to ask if they wish to execute the predicted next action.
Referring now to Fig. 8, a system comprising a server and a user device is schematically illustrated, according to an embodiment of the present invention. in the embodiment shown in Fig. 8, the user device loo and server 200 both comprise a processing unit 8o1, 8n configured to executed computer program instructions, and non-volatile computer-readable memory 802, 812 which can store computer program instructions executable by the respective processing unit 801, 811. The computer program instructions can cause the user device loo and server 200 to perform any of the methods described above, such as those illustrated in Figs. 5, 6 and 7. Additionally, the memory 812 of the server 811 is configured to store a database comprising a plurality of community cluster distribution models, such that the appropriate model can be retrieved and provided to a user device too according to the community to which the current user has been assigned. Furthermore, the user device 100 and the server 200 also comprise any suitable communication unit 803, 813 which is capable of communicating with the other one of the user device too and the server zoo.
Whilst certain embodiments of the invention have been described herein with reference o to the drawings, it will be understood that many variations and modifications will be possible without departing from the scope of the invention as defined in the accompanying claims.

Claims (24)

  1. Claims 1. A computer-implemented method of updating a cluster probability model for predicting the next event to occur from among a plurality of events, the method 5 comprising: detecting occurrence of a first event and a second event among the plurality of events, the second event following the first event; determining whether the first event and the second event belong to the same cluster or to different clusters in the cluster probability model; and in dependence on a determination that the first event and the second event belong to the same cluster, updating a corresponding one of the intra-cluster transition probabilities associated with said cluster and transmitting the updated intra-cluster transition probability to a server; or in dependence on a determination that the first event and the second event belong to different clusters, updating a corresponding inter-cluster transition probability associated with said clusters and transmitting the updated inter-duster transition probability to the server.
  2. 2. The method of claim 1, wherein the cluster probability model defines a plurality of event-specific probabilities each corresponding to a different transition between the plurality of events, the method further comprising: updating the one of the event-specific probabilities corresponding to a transition from the first event to the second event, without transmitting the updated event-specific probability to the server. -0or
  3. 3. The method of claim 1 or 2, wherein the cluster probability model is one of a plurality of stored cluster probability models each associated with one of a plurality of user groups, each user group being defined by one or more user characteristics, the method further comprising: obtaining values of the one or more user characteristics relating to a current user of a user device; assigning the current user to a first one of the plurality of user groups in dependence on the obtained values of the one or more user characteristics; and while the current user is interacting with the user device, using a first cluster probability model associated with the first user group to predict the next event to occur from among the plurality of events.
  4. -21 - 4. The method of claim 3, wherein the one or more user characteristics comprise device usage information relating to a manner in which the device is used by the current user.
  5. 5. The method of claim 4, wherein the device usage information relates to one or more of: a location at which the user interacts with the user device; a time at which the user interacts with the user device; a number of applications installed on the user device; types of applications installed on the user device; and a battery usage profile associated with the user.
  6. 6. The method of claim 3, 4 or 5, wherein the one or more user characteristics comprise user profile information associated with the current user.
  7. 7. The method of claim 3, wherein the one or more user characteristics comprise cluster distribution information relating to a distribution of clusters within the cluster probability model.
  8. 8. The method of claim 7, wherein assigning the current user to the first user group comprises: determining a similarity between the distribution of clusters within the cluster probability model and the cluster distribution information, for each of the plurality of user groups; identifying the first user group as the user group having the highest similarity between the distribution of clusters within the cluster probability model and the cluster distribution information; and assigning the user to the identified first user group.
  9. 9. The method of claim 8, further comprising: comparing each of the determined similarities to a threshold; and in dependence on a determination that none of the determined similarities exceed the threshold, creating a new user group as the first user group and defining a 35 base model for the first user group based on the cluster probability model.
  10. 10. The method of any one of claims 3 to 9, further comprising: updating the values of the one or more user characteristics relating to the current user over time; reassigning the current user to a second one of the user groups in dependence 5 on the updated one or more user characteristics; retrieving a second cluster probability model associated with the second user group; and while the current user is interacting with the user device, using the second cluster probability model to predict the next event to occur from among the plurality of /o events.
  11. 11. The method of any one of claims 3 to 10, further comprising: determining that a new user is interacting with the user device; obtaining said one or more user characteristics relating to the new user; assigning the new user to one of the plurality of user groups; and retrieving the cluster probability model associated with associated with the assigned user group for the new user.
  12. 12. The method of any one of claims 3 to 11, wherein transmitting the updated intra-cluster transition probability or the updated inter-cluster transition probability to the server comprises transmitting a user group identifier indicative of the user group to which the user is assigned.
  13. 13. The method of any one of claims 3 to 11, wherein the obtained values of the one -0or or more user characteristics relating to the current user of a user device are transmitted to a server, and wherein the step of assigning the current user to the first user group is performed at the server.
  14. 14. The method of claim 13, further comprising: receiving the first cluster probability model associated with the first user group from the server.
  15. 15. The method of any one of the preceding claims, wherein each one of the plurality of clusters is defined by one or more descriptors, the method comprising: obtaining first values of said one or more descriptors associated with the first event; and obtaining second values of said one or more descriptors associated with the second event, wherein the obtained first and second values of said one or more descriptors are used to determine whether the first event and the second event belong to the same cluster or to different clusters.
  16. 16. The method of any one of the preceding claims, wherein each event comprises a ro user interacting with a different one of a plurality of applications installed on a user device, the method further comprising: detecting user interaction with a first one of the plurality of applications; identifying one of the plurality of clusters containing an event associated with user interaction with the first application; and predicting a second application with which the user will interact next based on the intra-cluster and inter-cluster transition probabilities associated with the identified cluster.
  17. 17. The method of claim 16, further comprising: loading application data relating to the predicted second application into memory, while the user is still interacting with the first application.
  18. 18. The method of claim 16 or 17 when dependent on claim 15, wherein the one or more descriptors associated with each application comprise one or more of: an application type descriptor relating to a type of the application; an application version descriptor relating to a version number of the application; an application age rating descriptor relating to an age rating of the application; an application review descriptor relating to a user review rating of the application on an application portal; an application price descriptor relating to a price of the application on the application portal; and a user interface descriptor relating to an appearance of a user interface in the application.
  19. 19. The method of any one of claims 1 to 15, wherein each event comprises a user interacting with a user device at a different one of a plurality of locations, the method further comprising: detecting user interaction with the user device at a first one of the plurality of 5 locations; identifying one of the plurality of clusters containing an event associated with user interaction with the user device at the first location; predicting a second location at which the user will next interact with the user device based on the intra-cluster and inter-cluster transition probabilities associated /o with the identified cluster; and accessing information relating to the predicted second location in advance, before the user interacts with the user device at the second location.
  20. 20. The method of any one of claims 1 to 15, wherein each event comprises a user executing one of a plurality of system toggles, the method further comprising: detecting user execution of a first one of the plurality of system toggles; identifying one of the plurality of clusters containing an event associated with the first system toggle; predicting a next system toggle to be executed by the user based on the intra-cluster and inter-cluster transition probabilities associated with the identified cluster; and automatically executing the predicted next system toggle, or prompting the user to execute the predicted next system toggle.
  21. -0or 21. The method of any one of claims 1 to 15, wherein each event comprises a user navigating to one of a plurality of webpages, the method further comprising: detecting the user navigating to a first one of the plurality of webpages; identifying one of the plurality of clusters containing an event associated with the first webpage; predicting a next webpage based on the intra-cluster and inter-cluster transition probabilities associated with the identified cluster; and preloading the predicted next webpage into memory, and/or prompting the user to navigate to the predicted next webpage.
  22. 22. The method of any one of claims 1 to 15, wherein each event comprises one of a plurality of smart home actions, the method further comprising: detecting user execution of a first one of the plurality of smart home actions; identifying one of the plurality of clusters containing an event associated with the first smart home action; predicting a next smart home action to be executed by the user based on the intra-cluster and inter-cluster transition probabilities associated with the identified cluster; and automatically executing the predicted next action, or prompting the user to execute the predicted next action.o
  23. 23. A non-transitory computer-readable storage medium storing computer program instructions which, when executed, cause performance of a method according to any one of the preceding claims.
  24. 24. Apparatus configured to update a cluster probability model for predicting the next event to occur from among a plurality of events, the apparatus comprising: one or more processors; and computer-readable memory storing computer program instructions, which, when executed by the one or more processors, cause the apparatus to: detect occurrence of a first event and a second event among the plurality of events, the second event following the first event; determine whether the first event and the second event belong to the same cluster or to different clusters in the cluster probability model; and in dependence on a determination that the first event and the second event belong to the same cluster, update a corresponding one of the intra-cluster transition probabilities associated with said cluster and transmitting the updated intra-cluster transition probability to a server; or in dependence on a determination that the first event and the second event belong to different clusters, update a corresponding inter-cluster transition probability associated with said clusters and transmitting the updated inter-cluster transition probability to the server.
GB1906137.3A 2019-05-01 2019-05-01 Method, apparatus and computer program for updating a cluster probability model Withdrawn GB2583718A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
GB1906137.3A GB2583718A (en) 2019-05-01 2019-05-01 Method, apparatus and computer program for updating a cluster probability model
PCT/KR2019/017112 WO2020222386A1 (en) 2019-05-01 2019-12-05 Method and apparatus for updating a cluster probability model

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB1906137.3A GB2583718A (en) 2019-05-01 2019-05-01 Method, apparatus and computer program for updating a cluster probability model

Publications (2)

Publication Number Publication Date
GB201906137D0 GB201906137D0 (en) 2019-06-12
GB2583718A true GB2583718A (en) 2020-11-11

Family

ID=66809203

Family Applications (1)

Application Number Title Priority Date Filing Date
GB1906137.3A Withdrawn GB2583718A (en) 2019-05-01 2019-05-01 Method, apparatus and computer program for updating a cluster probability model

Country Status (2)

Country Link
GB (1) GB2583718A (en)
WO (1) WO2020222386A1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110378488B (en) * 2019-07-22 2024-04-26 深圳前海微众银行股份有限公司 Client-side change federal training method, device, training terminal and storage medium
CN112541621B (en) * 2020-12-02 2021-08-31 香港理工大学深圳研究院 Movement prediction method, intelligent terminal and storage medium
CN112508203B (en) * 2021-02-08 2021-06-15 同盾控股有限公司 Data clustering processing method, device, equipment and medium based on federal learning
CN113178191A (en) * 2021-04-25 2021-07-27 平安科技(深圳)有限公司 Federal learning-based speech characterization model training method, device, equipment and medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130325856A1 (en) * 2012-06-04 2013-12-05 Apple Inc. App recommendation using crowd-sourced localized app usage data
US20180309848A1 (en) * 2015-09-11 2018-10-25 EMC IP Holding Company LLC Method and system for predictive loading of software resources
AU2018101666A4 (en) * 2016-06-12 2018-12-13 Apple Inc. Proactive actions on mobile device using uniquely-identifiable and unlabeled locations

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7194466B2 (en) * 2003-05-01 2007-03-20 Microsoft Corporation Object clustering using inter-layer links
US9405838B2 (en) * 2013-12-27 2016-08-02 Quixey, Inc. Determining an active persona of a user device
EP3292518A4 (en) * 2015-05-05 2019-01-16 RetailMeNot, Inc. Scalable complex event processing with probabilistic machine learning models to predict subsequent geolocations
JP6652699B2 (en) * 2015-10-05 2020-02-26 富士通株式会社 Anomaly evaluation program, anomaly evaluation method, and information processing device
US10356200B2 (en) * 2016-12-28 2019-07-16 Google Llc Optimizing user interface data caching for future actions

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130325856A1 (en) * 2012-06-04 2013-12-05 Apple Inc. App recommendation using crowd-sourced localized app usage data
US20180309848A1 (en) * 2015-09-11 2018-10-25 EMC IP Holding Company LLC Method and system for predictive loading of software resources
AU2018101666A4 (en) * 2016-06-12 2018-12-13 Apple Inc. Proactive actions on mobile device using uniquely-identifiable and unlabeled locations

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Data Clustering - Algorithms and Applications - Ch. 3 Probabilistic Models for Clustering", 1 January 2014, CRC PRESS, ISBN: 978-1-4665-5822-9, article HONGBO DENG ET AL: "Data Clustering - Algorithms and Applications - Ch. 3 Probabilistic Models for Clustering", pages: 61 - 86, XP055641631 *

Also Published As

Publication number Publication date
WO2020222386A1 (en) 2020-11-05
GB201906137D0 (en) 2019-06-12

Similar Documents

Publication Publication Date Title
US11682380B2 (en) Systems and methods for crowdsourced actions and commands
US20230100423A1 (en) Crowdsourced on-boarding of digital assistant operations
GB2583718A (en) Method, apparatus and computer program for updating a cluster probability model
US9912778B2 (en) Method for dynamically displaying a personalized home screen on a user device
US10628474B2 (en) Probabalistic generation of diverse summaries
CN107735766B (en) System and method for proactively providing recommendations to a user of a computing device
WO2020106500A1 (en) Personalized user experience and search-based recommendations
US20130042229A1 (en) Method of updating list of software-as-a-service and system for the same
US10331480B2 (en) Contextual application organizer framework for user life events
US20190347621A1 (en) Predicting task durations
EP3106973A1 (en) Context-driven adaptive application launcher grid user interface based on random index predictor for mobile devices
WO2017116720A1 (en) Controlled deployment of application feature
US20170192644A1 (en) Accessing Additional Search Results Functionality Using Gestures
WO2016004585A1 (en) Method and system for personalized presentation of content
US10157210B2 (en) Searching and accessing software application functionality using application connections
CN111552549A (en) Multitask request dynamic configuration method and system for intelligent equipment
CN109783440A (en) Date storage method and data retrieval method, device, medium, electronic equipment
WO2019083604A1 (en) Sharing commands and command groups across digital assistant operations
KR20230035750A (en) Methodes, devices and systems for tailored interior design and providing quote information
JP2013029896A (en) Item recommendation apparatus, method and program
US10146879B2 (en) Generating software application search results using application connection keywords
CN112765479B (en) Information recommendation method and device, electronic equipment and readable storage medium
US20170169022A1 (en) Generating Software Application Search Results Using Application Connections
US12001418B2 (en) Onboarding a data source for access via a virtual assistant
US20230069640A1 (en) Onboarding a Data Source for Access Via a Virtual Assistant

Legal Events

Date Code Title Description
WAP Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)