IP Library Granted Patent US 9,317,812
Granted Patent B2
US 9,317,812 · App. 13/689,969 · Granted Apr 19, 2016

Customized predictors for user actions in an online system

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,317,812
App. No.
13/689,969
Granted
Apr 19, 2016
Kind
B2
Abstract

Online systems generate predictors for predicting actions of users of the online system. The online system receives requests to generate predictor models for predicting whether a user is likely to take an action of a particular action type. The request specifies the type of action and criteria for identifying a successful instance of the action type and a failure instance of the action type. The online system collects data including successful and failure instances of the action type. The online system generates one or more predictors of different types using the generated data. The online system evaluates and compares the performance of the different predictors generated and selects a predictor based on the performance. The online system returns a handle to access the generated predictor to the requester of the predictor.

Claims (54)

1. A computer-implemented method comprising:

receiving, by an online system, a plurality of requests for generating predictors, each request specifying a type of action performed by users of the online system, a category of users, and criteria for identifying a successful instance of the type of action;

for each request associated with a type of action, generating, by the online system, a predictor for the type of action, the generating comprising:

generating a training data set from a plurality of successful instances and failure instances of the type of action performed by online system users selected in response to belonging to the specified category of users;

training one or more candidate predictors using the training data set, wherein each candidate predictor comprises a machine learned model;

evaluating performance of each candidate predictor by executing each predictor on a test data set generated from an additional plurality of successful instances and failure instances of the type of action performed by online system users selected in response to belonging to the specified category of users; and

selecting a predictor for the type of action by comparing the performance of the one or more candidate predictors; and

returning a handle corresponding to the generated predictor to a requester of the selected predictor;

periodically generating a new predictor by:

comparing performance of the new predictor against performance of a previously generated predictor; and

responsive to the performance of the new predictor exceeding the performance of the previously generated predictor, replacing the previously generated predictor with the new predictor; and

reducing a rate of periodically generating the new predictor for the action type responsive to an improvement in the performance of the new predictor compared to the performance of the previously generated predictor being below a threshold value.

2. The computer-implemented method of claim 1 , further comprising:

receiving a request for a predictor from a process running in the online system, the request specifying a handle and an instance of user information;

executing the predictor corresponding to the specified handle on the instance of user information; and

returning a result of the predictor to the requesting process.

3. The computer-implemented method of claim 1 , wherein a successful instance of a type of action corresponds to information stored in the online system indicating a user taking an action of the type responsive to the user being presented with a user interface that allows users to take actions of the type of action.

4. The computer-implemented method of claim 1 , wherein the request further specifies criteria for a failure instance, wherein a failure instance of a type of action corresponds to information stored in the online system indicating a user's failure to take an action of the type responsive to the user being presented with information that allows the user to take action of the type of action.

5. The computer-implemented method of claim 1 , wherein the request further specifies criteria for a failure instance, wherein a failure instance of a type of action corresponds to information stored in the online system indicating a user providing input indicating a dislike for information presented in a user interface associated with the type of action.

6. The computer-implemented method of claim 1 , wherein each type of action is targeted to an entity represented in the online system.

7. The computer-implemented method of claim 6 , wherein the entity corresponding to the type of action is one of a user of the online system, a social group, or an image.

8. The computer-implemented method of claim 1 , wherein at least one of the candidate predictors is a machine learning model based on at least one of a linear regression, a logistic regression, boosting tree, or weighted decision tree.

9. A computer-implemented method comprising:

storing, by an online system, an existing predictor for predicting whether a user of the online system performs a type of action, the existing predictor associated with criteria for determining a successful instance of the type of action;

periodically regenerating the existing predictor by:

identifying a data set comprising successful instances and failure instances of the type of action performed by users of the online system;

training one or more candidate predictors using the identified data set, wherein each candidate predictor comprises a machine learned model;

evaluating performance of each candidate predictor by executing each predictor on a test data set comprising a plurality of successful instances and a plurality of failure instances of the type of action performed by users of the online system;

selecting a candidate predictor from the one or more candidate predictors by comparing the performance of the one or more candidate predictors;

comparing performance of the selected candidate predictor with performance of the existing predictor; and

replacing the existing predictor by the selected candidate predictor responsive to performance of the selected candidate predictor exceeding the performance of the existing predictor; and

reducing a rate of periodically regenerating the existing predictor for the action type responsive to an improvement in the performance of the selected predictor compared to the performance of the existing predictor being below a threshold value.

10. The computer-implemented method of claim 9 , wherein a successful instance of a type of action corresponds to information stored in the online system indicating a user taking an action of the type responsive to the user being presented with a user interface that allows users to take actions of the type of action.

11. The computer-implemented method of claim 9 , wherein a failure instance of a type of action corresponds to information stored in the online system indicating a user failing to take an action of the type responsive to the user being presented with a user interface that allows users to take actions of the type of action.

12. The computer-implemented method of claim 9 , wherein at least one of the candidate predictors is a machine learning model based on at least one of a linear regression, a logistic regression, boosting tree, or weighted decision tree.

13. A computer program product having a non-transitory computer-readable storage medium storing computer-executable code, the code comprising:

a predictor factory module of an online system configured to:

store an existing predictor for predicting whether a user of the online system performs a type of action, the existing predictor associated with criteria for determining a successful instance of the type of action;

periodically regenerate the existing predictor by:

identifying a data set comprising successful instances and failure instances of the type of action performed by users of the online system;

training one or more candidate predictors using the identified data set, wherein each candidate predictor comprises a machine learned model;

evaluating performance of each candidate predictor by executing each predictor on a test data set comprising a plurality of successful instances and a plurality of failure instances of the type of action performed by users of the online system;

selecting a candidate predictor from the one or more candidate predictors by comparing the performance of the one or more candidate predictors;

comparing performance of the selected candidate predictor with performance of the existing predictor; and

replacing the existing predictor by the selected candidate predictor responsive to performance of the selected candidate predictor exceeding the performance of the existing predictor; and

reduce a rate of periodically regenerating the existing predictor for the action type responsive to an improvement in the performance of the selected predictor compared to the performance of the existing predictor being below a threshold value.

14. The computer program product of claim 13 , wherein a successful instance of a type of action corresponds to information stored in the online system indicating a user taking an action of the type responsive to the user being presented with a user interface that allows users to take actions of the type of action.

15. The computer program product of claim 13 , wherein a failure instance of a type of action corresponds to information stored in the online system indicating a user failing to take an action of the type responsive to the user being presented with a user interface that allows users to take actions of the type of action.

16. The method of claim 1 , wherein the online system users are users of a social networking system, wherein the type of action is based on initiating a connection to a target entity represented in the social networking system.

17. The method of claim 1 , wherein the online system users are users of a social networking system, wherein the type of action is based on commenting on a target entity posted in the social networking system.

18. The method of claim 9 , wherein the online system comprises a social networking system, wherein the type of action is based on at least one of initiating a connection to a target entity represented in the social networking system and commenting on a target entity posted in the social networking system.

19. The computer program product of claim 13 , wherein the online system comprises a social networking system, wherein the type of action is based on at least one of initiating a connection to a target entity represented in the social networking system and commenting on a target entity posted in the social networking system.

20. The method of claim 9 , wherein a failure instance of a type of action corresponds to information stored in the online system indicating a user providing input indicating a dislike for information presented in a user interface associated with the type of action.

21. The computer program product of claim 13 , wherein a failure instance of a type of action corresponds to information stored in the online system indicating a user providing input indicating a dislike for information presented in a user interface associated with the type of action.

Assignments (4)
CHANGE OF NAME Recorded Nov 18, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058897/0824 →
CORRECTIVE ASSIGNMENT TO CORRECT THE CORRECT FENWICK & WEST LLC TO FENWICK & WEST LLP PREVIOUSLY RECORDED ON REEL 030919 FRAME 0815. ASSIGNOR(S) HEREBY CONFIRMS THE CORRECTIVE ASSIGNMENT. Recorded Aug 27, 2013
From: KABILJO, IGOR; ILIC, ALEKSANDAR; HUA, MING; YAN, HONG
To: FACEBOOK, INC.
Reel/Frame 031096/0289 →
CORRECTIVE ASSIGNMENT TO CORRECT THE TO CORRECT INVENTOR NAME FROM ALEKSANDER ILIC TO ALEKSANAR ILIC PREVIOUSLY RECORDED ON REEL 030478 FRAME 0614. PREVIOUSLY RECORDED ON REEL 030478 FRAME 0614. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jul 29, 2013
From: KABILJO, IGOR; ILIC, ALEKSANDAR; HUA, MING; YAN, HONG
To: FACEBOOK, INC.
Reel/Frame 030919/0815 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 23, 2013
From: KABILJO, IGOR; ILIC, ALEKSANDER; HUA, MING; YAN, HONG
To: FACEBOOK, INC.
Reel/Frame 030478/0614 →