Generating Recommendations Based on Clustered Application States
A deep linking system includes a storage system and a recommendation engine. The storage system stores a plurality of application records. The storage system further stores a plurality of cluster records, each cluster record defining a respective cluster of a plurality of clusters, each cluster including a respective plurality of clustered state identifiers, whereby the state identifiers are clustered according to one or more features. The recommendation engine includes one or more processors configured to receive a recommendation request and to identify cluster records from the plurality of cluster records based on the recommendation request. The identified cluster records indicate one or more clusters to which the state identifier of the recommendation request is related. The one or more processors are further configured to select one or more state identifiers from the identified cluster records, generate recommendation results based on the selected state identifiers, and transmit the recommendation results to the remote device.
1 . A deep linking system comprising:
a storage system that stores:
a plurality of application records, each application record including i) a state identifier that indicates a state of a respective software application, and ii) application state information corresponding to the state of the software application; and
a plurality of cluster records, each cluster record defining a respective cluster of a plurality of clusters identified by the deep linking system, each cluster including a respective plurality of clustered state identifiers, each clustered state identifier identifying a state of a respective software application, wherein the plurality of clusters are clustered according to one or more features; and
a recommendation engine including a processing system, the processing system including one or more processors that execute computer-readable instructions, the computer-readable instructions, when executed by the processing system, causing the processing system to:
receive a recommendation request containing a received state identifier from a remote device;
identify one or more cluster records from the plurality of cluster records using the received state identifier of the recommendation request, the one or more identified cluster records respectively indicating one or more clusters to which the state of the software application defined in the recommendation request is related;
select one or more state identifiers from the identified cluster records, the selected state identifiers respectively corresponding to one or more application states to recommend in response to the recommendation request;
generate recommendation results based on the states indicated by the one or more selected state identifiers, the recommendation results including one or more result objects, each result object capable of being rendered into a user-selectable link; and
transmit the recommendation results to the remote device.
2 . The deep linking system of claim 1 , wherein a state identifier comprises at least one of a function identifier, a resource identifier, and/or an application access mechanism.
3 . The deep linking system of claim 2 , wherein the plurality of clusters records are determined based on usage data collected from a plurality of user devices, the usage data indicating states of software applications accessed by users of the user devices.
4 . The deep linking system of claim 3 , wherein at least a subset of the plurality of clusters are clustered according to a popularity feature, a geography feature, and one or more entity features.
5 . The deep linking system of claim 3 , wherein at least a subset of the plurality of clusters are clustered according to a popularity feature and a function feature.
6 . The deep linking system of claim 3 , wherein each cluster record indicates a set of feature types on which the cluster represented by the cluster record was clustered.
7 . The deep linking system of claim 6 , further comprising:
an analytics engine comprising:
a second processing system that executes computer-readable instructions, the computer-readable instructions, when executed by the second processing system, causes the second processing system to:
receive an instruction to generate clusters of application records, the instruction including a set of feature types;
cluster the application records into two or more different clusters based on the application state information and the set of feature types;
for each of the two or more different clusters, generate a new cluster record based on the cluster, the new cluster record including the state identifiers of the application records in the cluster; and
store the two or more new cluster records in the plurality of clusters.
8 . The deep linking system of claim 3 , wherein the usage data received from each of the user devices includes a search activity log, the search activity log indicating actions performed by a user in response to being presented with search results.
9 . The deep linking system of claim 1 , wherein the recommendation request further includes one or more context parameters and/or one or more request parameters, wherein each context parameter respectively indicates contextual information corresponding to the recommendation request and each request parameter respectively indicates condition for the recommendation results.
10 . The deep linking system of claim 9 , wherein selecting one or more state identifiers comprises selecting the one or more state identifiers that appear in the greatest number of identified cluster records.
11 . The deep linking system of claim 9 , wherein selecting one or more state identifiers comprises:
generating a feature vector based on the application state record corresponding to the received state identifier;
for each state identifier in the one or more identified clusters:
generate a feature vector based on the corresponding application state record of each state identifier;
calculate a distance value between the feature vector corresponding to each state identifier and the feature vector corresponding to the received state identifier;
selecting one or more state identifiers from the identified clusters to include in the recommendation results based on their calculated distance value.
12 . The deep linking system of claim 9 , wherein selecting state identifiers comprises selecting one or more state identifiers from the state identifiers indicated by the identified cluster records that comply with the one or more request parameters indicated by the recommendation request.
13 . A method comprising:
maintaining, by a processing system including one or more processors, a plurality of application records on a storage device, each application record including i) a state identifier that indicates a state of a respective software application, and ii) application state information corresponding to the state of the application;
maintaining, by the processing system, a plurality of cluster records on a storage device, each cluster record defining a respective cluster of a plurality of clusters, each cluster including a respective plurality of clustered state identifiers, each clustered state identifier identifying a state of a respective software application, wherein the plurality of clusters are clustered according to one or more features;
receiving, by the processing system, a recommendation request containing a function identifier from a remote device;
identifying, by the processing system, one or more cluster records from the plurality of cluster records using the state identifier of the recommendation request, wherein the identified one or more cluster records respectively indicate one or more clusters to which the state of the software application defined by the recommendation request belongs;
selecting, by the processing system, one or more state identifiers from the identified cluster records, the selected state identifiers respectively corresponding to one or more application states to recommend to the user;
generating, by the processing system, recommendation results based on the states indicated by the one or more selected state identifiers, the recommendation results including one or more result objects, each result object capable of being rendered into a user-selectable link; and
transmitting, by the processing system, the recommendation results to the remote device.
14 . The method of claim 13 , wherein a state identifier comprises at least one of a function identifier, a resource identifier, and/or an application access mechanism.
15 . The method of claim 14 , wherein the plurality of clusters are determined based on usage data collected from a plurality of user devices, the usage data indicating states of software applications accessed by users of the user devices.
16 . The method of claim 14 , wherein at least a subset of the plurality of clusters are clustered according to a popularity feature, a geography feature, and one or more entity features.
17 . The method of claim 14 , wherein at least a subset of the plurality of clusters are clustered according to a popularity feature and a function feature.
18 . The method of claim 14 , wherein each cluster record indicates a seat of feature types on which the cluster represented by the cluster record was clustered.
19 . The method of claim 18 , further comprising:
receiving, by a second processing system including one or more processors, an instruction to generate clusters, the instruction including a set of feature types;
clustering, by the second processing system, the application records into two or more different clusters based on the application state information and the set of feature types;
generating, by the second processing system, for each of the two or more different clusters, a new cluster record based on the cluster, the new cluster record including the state identifiers of the application records in the cluster; and
storing, by the second processing system, the two or more new cluster records with the plurality of clusters.
20 . The method of claim 14 , wherein the usage data received from each of the user devices includes a search activity log, the search activity log indicating actions performed by a user in response to being presented with search results.
21 . The method of claim 13 , wherein the recommendation request further contains one or more context parameters and/or one or more request parameters, wherein each context parameter respectively indicates contextual information corresponding to the recommendation request and each request parameter respectively indicates conditions that the recommendation results should satisfy.
22 . The method of claim 21 , wherein selecting state identifiers comprises selecting the one or more states that appear in the greatest number of clusters indicated by the one or more cluster records.
23 . The method of claim 21 , wherein selecting state identifiers comprises:
generating a feature vector based on the application state record corresponding to the received state identifier;
for each state identifier in the one or more identified clusters:
generate a feature vector based on the corresponding application state record of each state identifier;
calculate a distance value between the feature vector corresponding to each state identifier and the feature vector corresponding to received state identifier;
selecting one or more state identifiers from the identified clusters to include in the recommendation results based on their calculated distance value.
24 . The method of claim 21 , wherein selecting state identifiers comprises selecting one or more state identifiers from the state identifiers indicated by the identified cluster records that comply with the one or more request parameters indicated by the recommendation request.