Abstract:
Online systems, for example, social networking systems evaluate expressions based on features describing relations between entities represented in the online system. These expressions are represented using an expression language. The expression language allows features to be specified as functions of attributes from user accounts. The expressions support use of variables to represent computations, for example, sub-expressions. The expressions are dynamic, since expressions can be specified and executed at call time. The same set of expressions is used many times, e.g., to compute the same function for multiple feature sets, for example, user accounts. Expressions are preferably represented using postfix representation. However some expressions, for example, expressions using variables are represented as trees. To optimize the expressions at runtime, the expressions are cached using a representation determined to be efficient for executing the expression. The cached representation of the expression is applied to multiple feature sets, for example, user accounts.
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.
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.
Abstract:
In one embodiment, a method comprises receiving a search request; generating a search query based on the search request, the search query including a logical expression, the logical expression including a logical operator that operates on multiple operands, at least one of the operands including an optional search constraint and an associated weight; searching a data store to identify a set of objects matching the search query, the set of objects including a subset of objects satisfying the logical expression, each object in the subset satisfying at least one of the operands, for each operand that includes an optional search constraint, at least a proportion of the objects in the subset satisfying the optional search constraint, the proportion determined based on the associated weight; and sending instructions for presenting a search-results page, the search-results page including search results corresponding to the objects in the identified set of objects.
Abstract:
In one embodiment, a method comprises, by a computer system, receiving a search term, determining a search constraint for a search query, and generating a search query. The search query includes the search term and the search constraint. The search query requires that at least a first number of search results that are returned in response to the search query match both the search term and the search constraint. The search query permits at least a second number of the search results to match only the search term. The computer system provides the search query for a search against a store of data.
Abstract:
In one embodiment, a method comprises, by a computer system, receiving a search term, determining a search constraint for a search query, and generating a search query. The search query includes the search term and the search constraint. The search query requires that at least a first number of search results that are returned in response to the search query match both the search term and the search constraint. The search query permits at least a second number of the search results to match only the search term. The computer system provides the search query for a search against a store of data.
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.
Abstract:
Online systems, for example, social networking systems evaluate expressions based on features describing relations between entities represented in the online system. These expressions are represented using an expression language. The expression language allows features to be specified as functions of attributes from user accounts. The expressions support use of variables to represent computations, for example, sub-expressions. The expressions are dynamic, since expressions can be specified and executed at call time. The same set of expressions is used many times, e.g., to compute the same function for multiple feature sets, for example, user accounts. Expressions are preferably represented using postfix representation. However some expressions, for example, expressions using variables are represented as trees. To optimize the expressions at runtime, the expressions are cached using a representation determined to be efficient for executing the expression. The cached representation of the expression is applied to multiple feature sets, for example, user accounts.