Systems and methods for providing a boost for content items in ranking for feeds

Systems, methods, and non-transitory computer readable media can determine a value of a boosting parameter, wherein the boosting parameter is indicative of a value of feedback to a first account type. Respective scores of a plurality of content items that are candidates for a feed of a user can be determined, wherein the plurality of content items are associated with at least one of the first account type or a second account type. Respective scores of content items associated with the first account type in the plurality of content items can be adjusted based on the value of the boosting parameter. The plurality of content items can be ranked based on the respective scores of the plurality of content items.

FIELD OF THE INVENTION

The present technology relates to the field of social networks. More particularly, the present technology relates to techniques for ranking content items associated with social networking systems.

BACKGROUND

Today, people often utilize computing devices (or systems) for a wide variety of purposes. Users can use their computing devices, for example, to interact with one another, create content, share content, and view content. In some cases, a user can utilize his or her computing device to access a social networking system (or service). The user can provide, post, share, and access various content items, such as status updates, images, videos, articles, and links, via the social networking system.

A social networking system may provide user profiles for various users through which users may add connections, such as friends, or publish content items. A content item can be presented on a profile page of a user. A content item can also be presented through a feed, such as a newsfeed, for a user to view and access.

SUMMARY

Various embodiments of the present disclosure can include systems, methods, and non-transitory computer readable media configured to determine a value of a boosting parameter, wherein the boosting parameter is indicative of a value of feedback to a first account type. Respective scores of a plurality of content items that are candidates for a feed of a user can be determined, wherein the plurality of content items are associated with at least one of the first account type or a second account type. Respective scores of content items associated with the first account type in the plurality of content items can be adjusted based on the value of the boosting parameter. The plurality of content items can be ranked based on the respective scores of the plurality of content items.

In some embodiments, the first account type is associated with a number of connections that is below a threshold value.

In certain embodiments, the feedback is a like for a content item.

In an embodiment, the determining the value of the boosting parameter comprises: executing a plurality of policies each assigning different values to the boosting parameter; measuring a distribution of feedback to the first account type and the second account type based on the executing the plurality of policies; and determining the value of the boosting parameter based on the measured distribution of feedback.

In some embodiments, the boosting parameter is associated with a control variable of a proportional-integral-derivative (PID) controller, and the measuring the distribution of feedback comprises measuring a process variable of the PID controller.

In certain embodiments, the determining the value of the boosting parameter based on the measured distribution of feedback comprises minimizing an error between a measured value of the process variable and a setpoint indicative of a desired value of the process variable.

In an embodiment, the process variable is a number of likes for content items associated with the first account type.

In some embodiments, at least some of the ranked plurality of content items can be provided in the feed of the user.

In certain embodiments, the first account type is divided into one or more groups, and the boosting parameter is determined for each of the one or more groups.

In an embodiment, the adjusted respective scores of the content items associated with the first account type increase a distribution of feedback for content items associated with the first account type.

DETAILED DESCRIPTION

Providing a Boost for Content Items in Ranking for Feeds

People use computing devices (or systems) for a wide variety of purposes. Computing devices can provide different kinds of functionality. Users can utilize their computing devices to produce information, access information, and share information. In some cases, users can utilize computing devices to interact or engage with a conventional social networking system (e.g., a social networking service, a social network, etc.). A social networking system may provide user profiles for various users through which users may add connections, such as friends, or publish content items. A content item can be presented on a profile page of a user. A content item can also be presented through a feed, such as a newsfeed, for a user to view and access.

Conventional approaches specifically arising in the realm of computer technology can rank content items for inclusion in a user's feed. For example, each content item that is a candidate for including in a user's feed can be assigned a score, and the candidate content items can be ranked according to their respective scores. At least some of the ranked content items can be presented in the user's feed. Users can provide feedback relating to content items presented in their feeds, for example, by commenting, liking, sharing, etc. Some content items may be associated with top accounts, which may have a significant number of connections or followers. For example, top accounts can be associated with celebrities or other public figures. Other content items may be associated with small accounts, which may include all accounts other than top accounts. Conventional approaches may generally rank content items associated with top accounts (“top account content items”) more highly than content items associated with small accounts (“small account content items”), for example, due to a higher likelihood of users providing feedback for or otherwise interacting with content items associated with top accounts. However, a lower level of exposure of small account content items in users' feeds can result in a lower level of feedback for small account content items, which in turn can affect downstream content production of users associated with small accounts. For example, small account content items are less likely to be included in users' feeds and therefore less likely to receive likes, and a lower number of likes for small account content items can influence small account users to not create as much content.

An improved approach rooted in computer technology can overcome the foregoing and other disadvantages associated with conventional approaches specifically arising in the realm of computer technology. Based on computer technology, the disclosed technology can provide a boost for content items associated with small accounts in ranking content items for feeds. Content items can be ranked based on various factors, such as a probability of users providing feedback for or otherwise performing an interaction with a content item. Examples of feedback or interaction can include any type of information users provide or actions users take with respect to a content item, such as liking, commenting, sharing, etc. As an example, content items can be ranked based on a probability of users liking a content item. Scores for small account content items can be adjusted by (e.g., increased by or based on) a boosting parameter in order to distribute feedback more evenly across small account content items and top account content items. Alternatively, it can be considered that scores for top account content items are adjusted by (e.g., decreased by or based on) a penalty. A value of the boosting parameter can be determined such that an optimal distribution of feedback to small account content items and top account content items can be achieved. The boosting parameter can be based on a control variable of a proportional-integral-derivative (PID) controller. Policies assigning different values to the boosting parameter can be executed in order to determine which value of the boosting parameter is most effective in achieving an optimal distribution of feedback. Achieving an optimal distribution of feedback can lead to an optimal level of content production by users associated with accounts. In this manner, applying a boosting parameter to small account content items in ranking content items can increase overall content production by users associated with accounts. Details relating to the disclosed technology are explained below.

FIG. 1illustrates an example system100including an example small account boosting feed ranking module102configured to provide a boost for small accounts in ranking content items for feeds, according to an embodiment of the present disclosure. The small account boosting feed ranking module102can include a boosting parameter determination module104and a feed ranking module106. In some instances, the example system100can include at least one data store120. The components (e.g., modules, elements, steps, blocks, etc.) shown in this figure and all figures herein are exemplary only, and other implementations may include additional, fewer, integrated, or different components. Some components may not be shown so as not to obscure relevant details. In various embodiments, one or more of the functionalities described in connection with the small account boosting feed ranking module102can be implemented in any suitable combinations. For illustrative purposes, the disclosed technology is described in connection with a social networking system, but the disclosed technology can apply to any type of system.

The feed ranking module106can rank content items for users' feeds. For example, a score can be determined for each content item that is a candidate for inclusion in a user's feed, and content items can be ranked based on corresponding scores. In some embodiments, a score associated with a content item can be based on a probability of the user liking the content item. In other embodiments, a score associated with a content item can be based on other factors in addition to or instead of a probability of a user liking a content item. For example, a score associated with a content item can be based additionally or alternatively based on at least one of a probability of a user commenting on a content item, a probability of a user sharing a content item, or a probability of a user otherwise interacting with the content item. Content items that are candidates for inclusion in a user's feed can include content items that are created by small accounts as well as content items that are created by top accounts. A boost can be provided for small account content items by applying a boosting parameter to scores of small account content items. As just one example in which feedback and interactions relate to a user liking a content item, a ranking algorithm can be described as follows:

If small account, score=P(like)*boosting parameter, and

If not small account, score=P(like),

where score is a value on which a content item can be ranked, P(like) is a probability of a user liking the content item, and boosting parameter is a value to increase score. In certain embodiments, a boost to small account content items can be considered as a penalty to top account content items, and a ranking algorithm can be described as follows:

If small account, score=P(like); and

If not small account, score=P(like)*penalty,

where score is a value on which a content item can be ranked, P(like) is a probability of a user liking the content item, and penalty is a value to decrease score. In the above ranking algorithms, a score for a content item is multiplied by a boosting parameter or a penalty, but the score for the content item can be adjusted based on the boosting parameter or the penalty in any appropriate manner (e.g., adding, subtracting, increasing by a percentage, decreasing by a percentage, etc.). In some embodiments, an account can have a number of connections, and the account can be assigned to a group or bucket based on the number of connections. For example, a first group or bucket can include accounts in which each account has a number of connections in a first predetermined range (e.g., top one percentile to tenth percentile), a second group or bucket can include accounts in which each account has a number of connections in a second predetermined range (e.g., eleventh percentile to twentieth percentile), etc. In such cases, each group or bucket can have a separate respective boosting parameter for content items of accounts in the group or bucket. In this regard, the separate boosting parameters associated with various groups or buckets can have different values. In certain embodiments, there can be one boosting parameter for multiple groups or buckets, but values of the boosting parameter can differ for each group or bucket. In some embodiments, the boosting parameter can be applied in real time. For example, the boosting parameter can be applied in real time to a small account content item if a threshold value is not satisfied, and applying the boosting parameter can stop once the threshold value is satisfied. In one example, the threshold value can indicate a minimum level of feedback, such as a number of likes, for a small account. All examples herein are provided for illustrative purposes, and there can be many variations and other possibilities.

In some embodiments, the small account boosting feed ranking module102can be implemented, in part or in whole, as software, hardware, or any combination thereof. In general, a module as discussed herein can be associated with software, hardware, or any combination thereof. In some implementations, one or more functions, tasks, and/or operations of modules can be carried out or performed by software routines, software processes, hardware, and/or any combination thereof. In some cases, the small account boosting feed ranking module102can be, in part or in whole, implemented as software running on one or more computing devices or systems, such as on a server system or a client computing device. In some instances, the small account boosting feed ranking module102can be, in part or in whole, implemented within or configured to operate in conjunction or be integrated with a social networking system (or service), such as a social networking system630ofFIG. 6. Likewise, in some instances, the small account boosting feed ranking module102can be, in part or in whole, implemented within or configured to operate in conjunction or be integrated with a client computing device, such as the user device610ofFIG. 6. For example, the small account boosting feed ranking module102can be implemented as or within a dedicated application (e.g., app), a program, or an applet running on a user computing device or client computing system. It should be understood that many variations are possible.

The data store120can be configured to store and maintain various types of data, such as the data relating to support of and operation of the small account boosting feed ranking module102. The data maintained by the data store120can include, for example, information relating to small accounts, top accounts, content items, feeds, boosting parameters, policies, feedback, distribution of feedback, statistics, etc. The data store120also can maintain other information associated with a social networking system. The information associated with the social networking system can include data about users, social connections, social interactions, locations, geo-fenced areas, maps, places, events, groups, posts, communications, content, account settings, privacy settings, and a social graph. The social graph can reflect all entities of the social networking system and their interactions. As shown in the example system100, the small account boosting feed ranking module102can be configured to communicate and/or operate with the data store120. In some embodiments, the data store120can be a data store within a client computing device. In some embodiments, the data store120can be a data store of a server system in communication with the client computing device.

A value model can be defined to incorporate a value of feedback in ranking content items. Small accounts and top accounts can value feedback differently. For example, an additional like to a small account can have a much higher value than an additional like to a top account. The value model can be defined to include one or more parameters that can be based on the value of feedback to different types of accounts. As an example, the value model can include a boosting parameter that can be applied to scores for small account content items. In an embodiment, the boosting parameter can indicate a weight assigned to a like to a small account. Parameters in the value model can be based on proportional-integral-derivative (PID) controllers. A PID controller can continuously calculate an error value as a difference between a desired setpoint and a measured process variable and apply a correction based on proportional, integral, and derivative terms (i.e., denoted P, I, and D, respectively). The PID controller can attempt to minimize the error value over time by adjustment of a control variable. Parameters in the value model can be considered to be control variables, which can influence corresponding process variables. A process variable can be measured, and a control variable associated with the process variable can be updated based on a measured value of the process variable. For example, the boosting parameter can be a control variable, and a corresponding process variable for the boosting parameter can be a variable that can be measured, such as a number of likes to small accounts, a ratio of likes to small accounts, etc. Many variations are possible.

The PID controller can adjust control variables until process variables converge to desired values. A desired or ideal value of a process variable can be referred to as a setpoint. A desired or ideal value can be determined or selected as appropriate. For example, a desired or ideal value can be determined based on data, analysis, research, estimation, etc. By way of analogy to a temperature system, the temperature of a room can be influenced by varying how much heat is output. An ideal temperature can be a setpoint, a current temperature can be a process variable, and an amount of heat output can be a control variable. Similarly, for ranking content items, an ideal distribution of feedback can be a setpoint, a current distribution of feedback can be a process variable, and the boosting parameter can be a control variable. An ideal distribution of feedback may be determined as appropriate. For example, the ideal distribution of feedback can be a distribution that leads to an increase in overall content production. Parameters in the value model can be defined as control variables of a PID controller as appropriate, along with corresponding process variables which can be measured and setpoints associated with corresponding process variables. Once variables have been defined, the PID controller can update the control variable in terms of how much error there is between the setpoint and the process variable. The control variable u(t) (e.g., boosting parameter) can be updated at time t by setting a value of the u(t) according to the following equation:
u(t)=a*e(t)+b*E(t)+c*d(t)  (1),
where e(t) represents an amount of error between the process variable (e.g., the current distribution of feedback) and the setpoint (e.g., ideal distribution of feedback); E(t) represents a total cumulative error (e.g., the sum of all e(t) values measured up to time t); and d(t) represents the derivative of e(t) with respect to time. Parameters a, b, and c can be tuned or changed and can influence a convergence pattern (e.g., convergence speed and smoothness). Process variables can be measured, and control variables can be updated based on the measured values for the process variables.

The statistics collection module206can obtain relevant data associated with execution of one or more policies. For example, the statistics collection module206can measure the value of the process variable (e.g., a number of likes) of the PID controller. In some embodiments, an account can have a number of connections, and accounts can be divided into different groups based on respective number of connections, and the value of the process variable can be measured for each group. As an example, a first group of accounts can include accounts in which each account has a number of connections in a first predetermined range (e.g., top one percentile to twenty-fifth percentile), a second group of accounts can include accounts in which each account has a number of connections in a second predetermined range (e.g., top twenty-sixth percentile to fiftieth percentile), etc. In some embodiments, multiple boosting parameters may be used for different groups of small accounts. For example, a first group of small accounts can have an associated first boosting parameter, a second group of small accounts can have an associated second boosting parameter, etc.

The statistics collection module206can measure process variables. In some embodiments, a batch of content items for a user's feed can be ranked, and identifiers associated with content items can be stored in an in-memory cache. After a period of time, such as a fixed-time interval (e.g., a selected number of second(s), minute(s), hour(s), etc.), data associated with a process variable can be obtained. For example, actions taken by users in connection with the content items can be obtained. Examples of actions can include providing feedback, such as likes, comments, shares, etc. Actions may be logged by a client and stored to a database that can be queried from the statistics collection module206. The statistics collection module206can store or cause to store information about actions and other relevant information, and the boosting parameter policy module204can update the value of the process variable based on the actions. The boosting parameter policy module204can also update the cumulative error and the derivative in equation (1) based on the actions.

FIG. 3illustrates an example scenario300for providing a boost for small accounts in ranking content items for feeds, according to an embodiment of the present disclosure.FIG. 3illustrates a chart310showing a distribution of feedback340without applying a boosting parameter to small account content items and a distribution of feedback350after applying a boosting parameter to small account content items. In the example ofFIG. 3, the type of feedback illustrated is a number of likes. In other examples, other types of feedback, such as comments, shares, etc., can be used. The x-axis320of the chart310represents a number of connections that an account has. The y-axis330of the chart310represents a number of likes associated with content items of an account. Without applying the boosting parameter, the number of likes distributed to accounts is shown by the distribution340. As indicated by the distribution340, most of the likes are distributed to top accounts (i.e., accounts having a relatively large number of connections). After applying the boosting parameter, the number of likes is distributed more evenly to accounts, as shown by the distribution350. As reflected in the distribution350, small accounts (i.e., accounts having a relatively small number of connections) receive a larger share of likes as compared to the distribution340.

FIG. 4illustrates an example first method400for providing a boost for small accounts in ranking content items for feeds, according to an embodiment of the present disclosure. It should be understood that there can be additional, fewer, or alternative steps performed in similar or alternative orders, or in parallel, based on the various features and embodiments discussed herein unless otherwise stated.

At block402, the example method400can determine a value of a boosting parameter, wherein the boosting parameter is indicative of a value of feedback to a first account type. At block404, the example method400can determine respective scores of a plurality of content items that are candidates for a feed of a user, wherein the plurality of content items are associated with at least one of the first account type or a second account type. At block406, the example method400can adjust respective scores of content items associated with the first account type in the plurality of content items, based on the value of the boosting parameter. At block408, the example method400can rank the plurality of content items based on the respective scores of the plurality of content items. Other suitable techniques that incorporate various features and embodiments of the present disclosure are possible.

FIG. 5illustrates an example second method500for providing a boost for small accounts in ranking content items for feeds, according to an embodiment of the present disclosure. It should be understood that there can be additional, fewer, or alternative steps performed in similar or alternative orders, or in parallel, based on the various features and embodiments discussed herein unless otherwise stated. Certain steps of the method500may be performed in combination with the example method400explained above.

At block502, the example method500can execute a plurality of policies each assigning different values to a boosting parameter. The boosting parameter can be similar to the boosting parameter explained in connection withFIG. 4. At block504, the example method500can measure a distribution of feedback to a first account type and a second account type based on the executing the plurality of policies. The first account type can be similar to the first account type explained in connection withFIG. 4. The second account type can be similar to the second account type explained in connection withFIG. 4. At block506, the example method500can determine a value of the boosting parameter based on the measured distribution of feedback. The value of the boosting parameter can be similar to the value of the boosting parameter explained in connection withFIG. 4. Other suitable techniques that incorporate various features and embodiments of the present disclosure are possible.

It is contemplated that there can be many other uses, applications, features, possibilities, and/or variations associated with various embodiments of the present disclosure. For example, users can, in some cases, choose whether or not to opt-in to utilize the disclosed technology. The disclosed technology can, for instance, also ensure that various privacy settings, preferences, and configurations are maintained and can prevent private information from being divulged. In another example, various embodiments of the present disclosure can learn, improve, and/or be refined over time.

Social Networking System—Example Implementation

The user device610comprises one or more computing devices that can receive input from a user and transmit and receive data via the network650. In one embodiment, the user device610is a conventional computer system executing, for example, a Microsoft Windows compatible operating system (OS), Apple OS X, and/or a Linux distribution. In another embodiment, the user device610can be a device having computer functionality, such as a smart-phone, a tablet, a personal digital assistant (PDA), a mobile telephone, etc. The user device610is configured to communicate via the network650. The user device610can execute an application, for example, a browser application that allows a user of the user device610to interact with the social networking system630. In another embodiment, the user device610interacts with the social networking system630through an application programming interface (API) provided by the native operating system of the user device610, such as iOS and ANDROID. The user device610is configured to communicate with the external system620and the social networking system630via the network650, which may comprise any combination of local area and/or wide area networks, using wired and/or wireless communication systems.

The external system620includes one or more web servers that include one or more web pages622a,622b, which are communicated to the user device610using the network650. The external system620is separate from the social networking system630. For example, the external system620is associated with a first domain, while the social networking system630is associated with a separate social networking domain. Web pages622a,622b, included in the external system620, comprise markup language documents614identifying content and including instructions specifying formatting or presentation of the identified content.

In some embodiments, the social networking system630can include an small account boosting feed ranking module646. The small account boosting feed ranking module646can be implemented with the small account boosting feed ranking module102, as discussed in more detail herein. In some embodiments, one or more functionalities of the small account boosting feed ranking module646can be implemented in the user device610.

Hardware Implementation