IP Library Granted Patent US 8,788,487
Granted Patent B2
US 8,788,487 · App. 13/690,225 · Granted Jul 22, 2014

Querying features based on user actions in online systems

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 8,788,487
App. No.
13/690,225
Granted
Jul 22, 2014
Kind
B2
Abstract

Online systems, for example, social networking systems store features describing relations between entities represented in the online system. The information describing the features is represented as a graph. The online system maintains a cumulative feature graph and an incremental feature graph. Feature values based on recent user actions are stored in the incremental graph and feature values based on previous actions are stored in the cumulative graph. Periodically, the information stored in the incremental feature graph is merged with the information stored in the cumulative feature graph. The incremental graph is marked as inactive during the merge and information based on new user actions is stored in an active incremental feature graph. If a request for feature information is received, the feature information obtained from the cumulative feature graph, inactive incremental feature graph and the active incremental feature graph are combined to determine the feature information.

Claims (53)

1. A computer-implemented method comprising:

maintaining, by an online system, a cumulative feature store storing feature values determined from user actions performed before a time point;

maintaining, by the online system, an incremental feature store storing feature values determined from user actions performed after the time point, the maintaining comprising updating feature values of the incremental feature store responsive to receiving information describing user actions;

receiving a request for a feature value, the request identifying a user and a feature;

receiving a first partial result from the cumulative feature store, the first partial result determined from user actions of the type performed by the user before the time point;

receiving a second partial result from the incremental feature store, the second partial result determined from user actions of the type performed by the user after the time point;

determining a weighted combination comprising the first partial result and the second partial result, wherein the first partial result is weighted by a decay factor; and

returning the weighted combination as the requested feature value.

2. The computer-implemented method of claim 1 , wherein the decay factor is a value less than one.

3. The computer-implemented method of claim 1 , wherein the decay factor is based on a type associated with the feature.

4. The computer-implemented method of claim 1 , wherein the incremental feature store is a first incremental feature store, further comprising:

maintaining, by the online system, a second incremental feature store;

marking the first incremental feature store as inactive at a subsequent time point and updating features of the second incremental feature store responsive to user actions received by the online system after the subsequent time point; and

responsive to receiving the request, receiving a third partial result from the second incremental feature store.

5. The computer-implemented method of claim 4 , wherein the weighted combination further comprises the third partial result.

6. The computer-implemented method of claim 5 , wherein the weighted combination weighs the third partial result by a second decay factor.

7. The computer-implemented method of claim 1 , wherein a feature is represented as an expression based on one or more of values describing user actions or other feature values.

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

marking the incremental feature store as inactive and stopping the updates to the feature values stored in the incremental feature store;

determining a weighted combination of feature values from the incremental feature store and corresponding feature values from the cumulative feature store, wherein the feature values from the cumulative feature store are weighted by a decay factor; and

updating the feature values of the cumulative feature store with the weighted combinations.

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

storing the incremental feature store in a data store that provides faster data access compared to a data store used for the cumulative feature store.

10. The computer-implemented method of claim 1 , wherein the incremental feature store is stored in random access memory.

11. The computer-implemented method of claim 1 , wherein each feature is associated with a user, a target entity, and a feature value based on user actions performed by the user associated with the target entity.

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

a feature manager module of an online system configured to:

maintain a cumulative feature store storing feature values determined from user actions performed before a time point;

maintain an incremental feature store storing feature values, the maintaining comprising updating feature values of the incremental feature store responsive to receiving information describing user actions performed after the time point;

a request processor module configured to:

receive a request for a feature value, the request identifying a user and a feature associated with user actions of a type;

receive a first partial result from the cumulative feature store, the first partial result determined from user actions of the type performed by the user before the time point;

receive a second partial result from the incremental feature store, the second partial result determined from user actions of the type performed by the user after the time point;

determine a weighted combination comprising the first partial result and the second partial result, wherein the first partial result is weighted by a decay factor; and

return the weighted combination as the requested feature value.

13. The computer program product of claim 12 , wherein the decay factor is a value less than one.

14. The computer program product of claim 12 , wherein the decay factor is based on a type associated with the feature.

15. The computer program product of claim 12 , wherein:

the feature manager is further configured to

maintain, by the online system, a second incremental feature store;

mark the first incremental feature store as inactive at a subsequent time point and updating features of the second incremental feature store responsive to user actions received by the online system after the subsequent time point; and

the request processor module is further configured to

responsive to receiving the request, receiving a third partial result from the second incremental feature store.

16. The computer program product of claim 14 , wherein the weighted combination further comprises the third partial result.

17. The computer program product of claim 15 , wherein the weighted combination weighs the third partial result by a second decay factor.

18. The computer program product of claim 12 , wherein a feature is represented as an expression based on one or more of values describing user actions or other feature values.

19. The computer program product of claim 12 , wherein the feature manager is further configured to:

mark the incremental feature store as inactive and stopping the updates to the feature values stored in the incremental feature store;

determine a weighted combination of feature values from the incremental feature store and corresponding feature values from the cumulative feature store, wherein the feature values from the cumulative feature store are weighted by a decay factor; and

update the feature values of the cumulative feature store with the weighted combinations.

20. The computer program product of claim 12 , wherein the feature manager is further configured to:

store the incremental feature store in a data store that provides faster data access compared to a data store used for the cumulative feature store.

21. The computer program product of claim 12 , wherein the incremental feature store is stored in random access memory.

Assignments (2)
CHANGE OF NAME Recorded Nov 18, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058897/0824 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 14, 2013
From: HUA, MING; YAN, HONG
To: FACEBOOK, INC.
Reel/Frame 031011/0434 →