Abstract:
In one embodiment, a method includes accessing a social graph that includes a number of nodes and edges connecting the nodes. Each of the edges between two of the nodes representing a single degree of separation between them. The nodes include a first node corresponding to a first user associated with an online social network and a plurality of second nodes that each correspond to a concept or a second user associated with the online social network. The method also includes generating a card cluster including a number of cards. Each card includes a suggested query referencing a query-domain associated with the online social network and zero or more query-filters. Each query-filter references one or more nodes of the plurality of nodes or one or more edges of the plurality of edges.
Abstract:
In one embodiment, a method includes accessing a social graph that includes a number of nodes and edges connecting the nodes. Each of the edges between two of the nodes representing a single degree of separation between them. The nodes include a first node corresponding to a first user associated with an online social network and a plurality of second nodes that each correspond to a concept or a second user associated with the online social network. The method also includes generating a number of cards. Each card includes a suggested query referencing a query-domain associated with the online social network and zero or more query-filters for the query-domain. Each query-filter references one or more nodes of the plurality of nodes or one or more edges of the plurality of edges.
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:
In one embodiment, a method includes receiving, from a client system of a first user of a communication network, an input from the first user to access a card-stack interface, generating one or more card clusters from a plurality of cards, each card comprising a query referencing a query-domain associated with the communication network and zero or more query-filters for the query-domain, wherein each query-filter references one or more objects of the communication network, each card cluster comprising one or more cards from the plurality of cards, the cards being formed into card clusters based on a card-affinity between the cards, and sending, to the client system in response to the input from the first user, the card-stack interface for display to the first user, wherein the card-stack interface comprises one or more of the card clusters.
Abstract:
A social networking system provides a personalized set of bookmarks to a user based on the user's interactions with the bookmarks and/or the items associated with the bookmarks. The personalized set of bookmarks is grouped by category, and the categories are ordered in accordance with rankings for the categories. The rankings for the categories are determined based on the highest ranked item from each category of item, and the ranking of the items is determined based on the user's interactions with the bookmarks and/or associated items.
Abstract:
In one embodiment, a method includes accessing a social graph that includes a number of nodes and edges connecting the nodes. Each of the edges between two of the nodes representing a single degree of separation between them. The nodes include a first node corresponding to a first user associated with an online social network and a plurality of second nodes that each correspond to a concept or a second user associated with the online social network. The method also includes generating a card cluster including a number of cards. Each card includes a suggested query referencing a query-domain associated with the online social network and zero or more query-filters. Each query-filter references one or more nodes of the plurality of nodes or one or more edges of the plurality of edges.
Abstract:
In one embodiment, one or more server computing devices receive, from a client computing device, a request for first information associated with a first node of a graph. The one or more server computing devices determine whether the first node is associated with a cluster of nodes. A cluster of nodes includes one or more concept nodes of the graph that are related to each other. When the first node is associated with a cluster of nodes, the one or more server computing devices access the cluster of nodes that the first node is associated with, obtain second information from one or more of the nodes in the cluster of nodes that the first node is associated with, and provide the second information for rendering by the client computing device.
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:
Online systems store information describing a large number of users in order to process requests accessing the user information. The user information is distributed across multiple servers. The distribution is performed so that the information is available even if one or more servers fail. The user information is distributed across a first set of servers and a second copy of the user information is distributed across a second set of servers. The user information from each server of the first set is uniformly distributed across multiple servers from the second set, for example, using random distribution, round robin strategy, or any other strategy that uniformly distributes the information across a given set of processors. Requests previously directed to a failed server are redistributed across multiple servers thereby load balancing the processing of these requests.