IP Library Granted Patent US 9,390,141
Granted Patent B2
US 9,390,141 · App. 14/040,782 · Granted Jul 12, 2016

Systems and methods for determining application installation likelihood based on probabilistic combination of subordinate methods

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,390,141
App. No.
14/040,782
Granted
Jul 12, 2016
Kind
B2
Abstract

A method for providing a scored list of applications for use in recommending applications to a user includes receiving at a cloud computing service a request to provide a composite scored list of applications for a user, where the cloud computing service provides a set of available applications to each user and receives input data for determining the composite scored list of applications. The cloud computing service initializes a plurality of independent scorers, which each take as input a portion of the input data and outputs a scored list of applications, and normalizes the scored list of applications outputted by each independent scorer. The cloud computing service constructs the composite scored list of applications, where the composite scored list of applications is a function of the normalized scored list of applications and a weighting value assigned to each independent scorer, and outputs the composite scored list of applications.

Claims (81)

1. A method for providing recommendations for applications to a user, the method comprising:

receiving at a cloud computing service a request to provide a composite scored list of applications for a user, wherein the cloud computing service provides a predetermined set of available applications to each user of the cloud computing service;

receiving input data for determining the composite scored list of applications;

initializing a plurality of independent scorers, wherein each independent scorer takes as input a portion of the input data and outputs a scored list of applications in the predetermined set of available applications;

normalizing the scored list of applications outputted by each independent scorer;

constructing the composite scored list of applications, wherein the composite scored list of applications is a function of the normalized scored list of applications outputted by each independent scorer and a weighting value assigned to each independent scorer, and wherein a composite score for a first application in the predetermined set of available applications is calculated as:

( IS 1 *W 1 +IS 2 *W 2 + . . . +IS N *W N )/( W 1 +W 2 + . . . +W N )

where N is a number of independent scorers, IS n is a normalized score of the first application from the n-th independent scorer, and W n is the weighting value assigned to the n-th independent scorer; and

outputting the composite scored list of applications.

2. The method of claim 1 , wherein the composite scored list of applications is sorted by the score of each application.

3. The method of claim 1 , wherein each application in the composite scored list of applications is identified by an application ID.

4. The method of claim 1 , wherein the weighting values assigned to each independent scorer are normalized such that a summation of the weighting values equals one.

5. The method of claim 1 , the method further comprising adjusting the weighting value assigned to each independent scorer based on a feedback loop from the users of the cloud computing service, wherein the adjusting is based on a rank of each application in the composite scored list of applications.

6. The method of claim 5 , wherein the cloud computing service recommends applications to users and the feedback loop is a function of the applications that the users select from the recommended applications, and the ranks of the applications that the users select are stored as result scores, each result score representing a relative success of the recommended application.

7. The method of claim 1 , wherein the input data comprises at least one of file metadata for each file stored on the cloud computing service, application metadata for each application in the predetermined set of available applications, and information about each user of the cloud computing service.

8. The method of claim 1 , wherein a first independent scorer in the plurality of independent scorers outputs a first scored list of applications based on application installation characteristics of each user of the cloud computing service,

the user has not installed a first application in the predetermined set of applications,

a plurality of other users have applications installed that are similar to applications that are installed by the user, and

the application installation characteristics for the user are indicative of a frequency that the first application is installed by the plurality of other users.

9. The method of claim 1 , wherein a first independent scorer in the plurality of independent scorers outputs a first scored list of applications based on application usage characteristics of each user of the cloud computing service.

10. The method of claim 1 , wherein a first independent scorer in the plurality of independent scorers outputs a first scored list of applications based on the file types of files stored on the cloud computing service and accessible to the user.

11. The method of claim 1 , wherein a first independent scorer in the plurality of independent scorers outputs a first scored list of applications based on the importance of files accessible to the user.

12. An apparatus for providing recommendations for applications to a user, the apparatus comprising:

a server configured to:

communicate with the plurality of client computers;

receive from a first client computer in the plurality of client computers a request to provide a composite scored list of applications for a user, wherein the server provides a predetermined set of available applications to each user of the server;

receive input data for determining the composite scored list of applications;

initialize a plurality of independent scorers, wherein each independent scorer takes as input a portion of the input data and outputs a scored list of applications in the predetermined set of available applications;

normalize the scored list of applications outputted by each independent scorer;

construct the composite scored list of applications, wherein the composite scored list of applications is a function of the normalized scored list of applications outputted by each independent scorer and a weighting value assigned to each independent scorer, and wherein a composite score for a first application in the predetermined set of available applications is calculated as:

( IS 1 *W 1 +IS 2 *W 2 + . . . +IS N *W N )/( W 1 +W 2 + . . . +W N )

where N is a number of independent scorers, IS n is a normalized score of the first application from the n-th independent scorer, and W n is the weighting value assigned to the n-th independent scorer; and

output the composite scored list of applications.

13. The apparatus of claim 12 , wherein the composite scored list of applications is sorted by the score of each application.

14. The apparatus of claim 12 , wherein each application in the composite scored list of applications is identified by an application ID.

15. The apparatus of claim 12 , wherein the server is further configured to normalize the weighting values assigned to each independent scorer such that a summation of the weighting values equals one.

16. The apparatus of claim 12 , the wherein the server is further configured to:

provide each user with a set of recommended applications;

assign a result score when each user selects an application from the set of recommended applications; and

adjust the weighting value assigned to each independent scorer based on the average of the result scores from each user.

17. The apparatus of claim 12 , wherein the input data comprises at least one of file metadata for each file stored on the server, application metadata for each application in the predetermined set of available applications, and information about each user of the server.

18. The apparatus of claim 12 , wherein a first independent scorer in the plurality of independent scorers outputs a first scored list of applications based on application installation characteristics of each user of the server,

the user has not installed a first application in the predetermined set of applications,

a plurality of other users have applications installed that are similar to applications that are installed by the user, and

the application installation characteristics for the user are indicative of a frequency that the first application is installed by the plurality of other users.

19. The apparatus of claim 12 , wherein a first independent scorer in the plurality of independent scorers outputs a first scored list of applications based on application usage characteristics of each user of the server.

20. The apparatus of claim 12 , wherein a first independent scorer in the plurality of independent scorers outputs a first scored list of applications based on the file types of files stored on the server and accessible to the user.

21. The apparatus of claim 12 , wherein a first independent scorer in the plurality of independent scorers outputs a first scored list of applications based on the importance of files to the user.

22. A non-transitory computer readable medium storing computer-executable instructions, which, when executed by a processor, cause the processor to carry out a method for providing a scored list of applications for use in recommending applications to a user, wherein the instructions comprise:

instructions to receive at a cloud computing service a request to provide a composite scored list of applications for a user, wherein the cloud computing service provides a predetermined set of available applications to each user of the cloud computing service;

instructions to receive input data for determining the composite scored list of applications;

instructions to initialize a plurality of independent scorers, wherein each independent scorer takes as input a portion of the input data and outputs a scored list of applications in the predetermined set of available applications;

instructions to normalize the scored list of applications outputted by each independent scorer by a sum of the scores of the applications in the scored list of applications;

instructions to construct the composite scored list of applications, wherein the composite scored list of applications is a function of the normalized scored list of applications outputted by each independent scorer and a weighting value assigned to each independent scorer, and wherein a composite score for a first application in the predetermined set of available applications is calculated as:

( IS 1 *W 1 +IS 2 *W 2 + . . . +IS N *W N )/( W 1 +W 2 + . . . +W N )

where N is a number of independent scorers, IS n is a normalized score of the first application from the n-th independent scorer, and W n is the weighting value assigned to the n-th independent scorer; and

instructions to output the composite scored list of applications.

23. The non-transitory computer readable medium of claim 22 , wherein the instructions further include instructions to sort the composite scored list of applications by the score of each application.

24. The non-transitory computer readable medium of claim 22 , wherein the instructions further include instructions to normalize the weighting values assigned to each independent scorer by the sum of the scorer such that a summation of the weighting values equals one.

25. The non-transitory computer readable medium of claim 22 , wherein the instructions further include instructions to adjust the weighting value assigned to each independent scorer based on a feedback loop from the users of the cloud computing service, wherein the feedback loop is based on a rank of each application in the composite scored list of applications.

26. The non-transitory computer readable medium of claim 25 , wherein the cloud computing service recommends applications to users and the feedback loop is a function of the applications that the users select from the recommended applications, and the ranks of the applications that the users select are stored as result scores, each result score representing a relative success of the recommended application.

27. The non-transitory computer readable medium of claim 22 , wherein the input data comprises at least one of file metadata for each file stored on the cloud computing service, application metadata for each application in the set of available applications, and information about each user of the cloud computing service.

28. The non-transitory computer readable medium of claim 22 , wherein a first independent scorer in the plurality of independent scorers outputs a first scored list of applications based on application installation characteristics of each user of the cloud computing service,

the user has not installed a first application in the predetermined set of applications,

a plurality of other users have applications installed that are similar to applications that are installed by the user, and

the application installation characteristics for the user are indicative of a frequency that the first application is installed by the plurality of other users.

29. The non-transitory computer readable medium of claim 22 , wherein a first independent scorer in the plurality of independent scorers outputs a first scored list of applications based on application usage characteristics of each user of the cloud computing service.

30. The non-transitory computer readable medium of claim 22 , wherein a first independent scorer in the plurality of independent scorers outputs a first scored list of applications based on the file types of files stored on the cloud computing service and accessible to the user.

31. The non-transitory computer readable medium of claim 22 , wherein a first independent scorer in the plurality of independent scorers outputs a first scored list of applications based on the importance of files to the user.

32. A system for providing recommendations for applications to a user, the system comprising:

a plurality of client computers; and

a server configured to:

communicate with the plurality of client computers;

receive from a first client computer in the plurality of client computers a request to provide a composite scored list of applications for a user, wherein the server provides a predetermined set of available applications to each user of the server;

receive input data for determining the composite scored list of applications;

initialize a plurality of independent scorers, wherein each independent scorer takes as input a portion of the input data and outputs a scored list of applications in for the predetermined set of available applications;

normalize the scored list of applications outputted by each independent scorer;

construct the composite scored list of applications, wherein the composite scored list of applications is a function of the normalized scored list of applications outputted by each independent scorer and a weighting value assigned to each independent scorer, and wherein a composite score for a first application in the predetermined set of available applications is calculated as:

( IS 1 *W 1 +IS 2 *W 2 + . . . +IS N *W N )/( W 1 +W 2 + . . . +W N )

where N is a number of independent scorers, IS n is a normalized score of the first application from the n-th independent scorer, and W n is the weighting value assigned to the n-th independent scorer; and

output the composite scored list of applications.

Assignments (2)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044566/0657 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 30, 2013
From: PROCOPIO, MICHAEL JEFFREY
To: GOOGLE INC.
Reel/Frame 031309/0914 →