IP Library Granted Patent US 11,288,702
Granted Patent B1
US 11,288,702 · App. 16/906,927 · Granted Mar 29, 2022

Exploration in a real time messaging platform

Inventors: Reid Andersen (San Francisco, CA); James Neufeld (San Francisco, CA); Ashish Goel (Palo Alto, CA); Michael Jahr (San Francisco, CA); Utkarsh Srivastava (Menlo Park, CA); Sandeep Pandey (San Francisco, CA)
Assignee: Twitter, Inc.
G06Q30/0249G06Q30/0269G06Q30/0275
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 11,288,702
App. No.
16/906,927
Granted
Mar 29, 2022
Kind
B1
Abstract

A real-time messaging platform allows advertiser accounts to pay to insert candidate messages into the message streams requested by account holders. To accommodate multiple advertisers, the messaging platform controls an auction process that determines which candidate messages are selected for inclusion in a requested account holder's message stream. Selection is based on a bid for the candidate message, the message stream that is requested, and a variety of other factors that vary depending upon the implementation. The process for selection of candidate messages generally includes the following steps, though any given step may be omitted or combined into another step in a different implementation: targeting, filtering, prediction, ranking, and selection.

Claims (68)

1. A method comprising:

receiving, from a client device of an account holder of a social media platform, a request for a message stream of messages published on the social media platform;

identifying a set of candidate messages for inclusion in the message stream;

calculating a rank value for each candidate message in the set of candidate messages, wherein each rank value for a corresponding candidate message is calculated as a function of a likelihood of engagement of the account holder with the corresponding candidate message;

determining whether the rank value for a particular candidate message is lower than a threshold rank value;

in response to determining that the rank value of the particular candidate message is lower than the threshold rank value, determining whether a number of impressions of the particular candidate message is fewer than a threshold number of impressions, wherein the number of impressions comprises a number of times the particular candidate message was included in message streams of other account holders of the social media platform;

responsive to determining that the number of impressions is less than the threshold number of impressions, increasing the rank value of the particular candidate message, wherein increasing the rank value of the particular candidate message comprises determining one or more tunable parameters using a sampling technique based on a probability that the particular candidate message will outrank other candidate messages of the set of candidate messages;

selecting one or more candidate messages, from the set of candidate messages, that have respective rank values greater than the threshold rank value; and

sending the message stream to the client device for display, wherein the message stream includes the selected one or more candidate messages.

2. The method of claim 1 , further comprising:

identifying a highest rank value of the rank values of the candidate messages in the set of candidate messages,

wherein increasing the rank value of the particular candidate message comprises increasing the rank value of the particular candidate message to an amount greater than the highest rank value.

3. The method of claim 1 , wherein determining the number of impressions of the particular candidate message comprises identifying a number of impressions received by the particular candidate message that have not resulted in engagements as a result of being published in message streams of account holders of the social-media platform.

4. The method of claim 1 , wherein the tunable parameters include a confidence parameter based on a confidence in the predicted likelihood of engagement of the account holder with the particular candidate message.

5. The method of claim 1 , wherein the rank value of each candidate message is determined based on an engagement likelihood model, wherein the method further comprises:

after sending the message stream to the client device, receiving, from the client device, an indication of whether a user of the client device engaged with at least one of the selected candidate messages; and

updating the engagement likelihood model based on the indication of whether the user of the client device engaged with the at least one of the selected candidate message.

6. The method of claim 1 , wherein determining whether the candidate message has the number of impressions fewer than the threshold number of impressions comprises comparing the number of impressions for the particular candidate message with a sampling distribution for the particular candidate message, and

wherein increasing the rank value of the particular candidate message comprises: determining, based on the comparison of the number of impressions and the sampling distribution, an amount for the respective candidate message; and

increasing the rank value of the candidate message by the determined amount.

7. One or more non-transitory computer-readable storage media comprising instructions that, when executed, cause at least one processor of a computing system to perform operations comprising:

receiving, from a client device of an account holder of a social media platform, a request for a message stream of messages published on the social media platform;

identifying a set of candidate messages for inclusion in the message stream;

calculating a rank value for each candidate message in the set of candidate messages, wherein each rank for a corresponding candidate message value is calculated as a function of a likelihood of engagement of the account holder with the corresponding candidate message;

determining whether the rank value for a particular candidate message is lower than a threshold rank value;

in response to determining that the rank value of the particular candidate message is lower than the threshold rank value, determining whether a number of impressions of the particular candidate message is fewer than a threshold number of impressions, wherein the number of impressions comprises a number of times the particular candidate message was included in message streams of other account holders of the social media platform;

responsive to determining that the number of impressions is less than the threshold number of impressions, increasing the rank value of the particular candidate message, wherein increasing the rank value of the particular candidate message comprises determining one or more tunable parameters using a sampling technique based on a probability that the particular candidate message will outrank other candidate messages of the set of candidate messages;

selecting one or more candidate messages, from the set of candidate messages, that have respective rank values greater than the threshold rank value; and

sending the message stream to the client device for display, wherein the message stream includes the selected one or more candidate messages.

8. The non-transitory computer-readable storage media of claim 7 , wherein the instructions further cause the computing system to perform operations comprising:

identifying a highest rank value of the rank values of the candidate messages in the set of candidate messages,

wherein increasing the rank value of the particular candidate message comprises increasing the rank value of the particular candidate message to an amount greater than the highest rank value.

9. The non-transitory computer-readable storage media of claim 7 , wherein determining the number of impressions of the particular candidate message comprises identifying a number of impressions received by the particular candidate message that have not resulted in engagements as a result of being published in message streams of account holders of the social-media platform.

10. The non-transitory computer-readable storage media of claim 7 , wherein the tunable parameters include a confidence parameter based on a confidence in the likelihood of engagement of the account holder with the particular candidate message.

11. The non-transitory computer-readable storage media of claim 7 , wherein the rank value of each candidate message is determined based on an engagement likelihood model, wherein the method further comprises:

after sending the message stream to the computing device, receiving, from the client device, an indication of whether a user of the client device engaged with at last one of the selected candidate message; and

updating the engagement likelihood model based on the indication of whether the user of the client device engaged with the at least one of the selected candidate message.

12. The non-transitory computer-readable storage media of claim 7 , wherein determining whether the candidate message has the number of impressions fewer than the threshold number of impressions comprises comparing the number of impressions for the particular candidate message with a sampling distribution for the particular candidate message, and

wherein increasing the rank value of the particular candidate message comprises: determining, based on the comparison of the number of impressions and the sampling distribution, an amount for the respective candidate message; and

increasing the rank value of the candidate message by the determined amount.

13. A system comprising:

at least one processor; and

a memory configured to store instructions that, when executed by the at least one processor, cause the system to perform operations comprising:

receiving, from a client device of an account holder of a social media platform, a request for a message stream of messages published on the social media platform;

identifying a set of candidate messages for inclusion in the message stream;

calculating a rank value for each candidate message in the set of candidate messages, wherein each rank value for a corresponding candidate message is calculated as a function of a likelihood of engagement of the account holder with the corresponding candidate message;

determining whether the rank value for a particular candidate message is lower than a threshold rank value;

in response to determining that the rank value of the particular candidate message is lower than the threshold rank value, determining whether a number of impressions of the particular candidate message is fewer than a threshold number of impressions, wherein the number of impressions comprises a number of times the particular candidate message was included in message streams of other account holders of the social media platform;

responsive to determining that the number of impressions is less than the threshold number of impressions, increasing the rank value of the particular candidate message, wherein increasing the rank value of the particular candidate message comprises determining one or more tunable parameters using a sampling technique based on a probability that the particular candidate message will outrank other candidate messages of the set of candidate messages;

selecting one or more candidate messages, from the set of candidate messages, that have respective rank values greater than the threshold rank value; and

sending the message stream to the client device for display, wherein the message stream includes the selected one or more candidate messages.

14. The system of claim 13 , further comprising instructions that when executed cause the system to perform operations comprising:

identifying a highest rank value of the rank values of the candidate messages in the set of candidate messages,

wherein increasing the rank value of the particular candidate message comprises increasing the rank value of the particular candidate message to an amount greater than the highest rank value.

15. The system of claim 13 , wherein determining the number of impressions of the particular candidate message comprises identifying a number of impressions received by the particular candidate message that have not resulted in engagements as a result of being published in message streams of account holders of the social-media platform.

16. The system of claim 13 , wherein the tunable parameters include a confidence parameter based on a confidence in the likelihood of engagement of the account holder with the particular candidate message.

17. The system of claim 13 , wherein the rank value of each candidate message is determined based on an engagement likelihood model, wherein the method further comprises:

after sending the message stream to the client device, receiving, from the computing device, an indication of whether the user of the client device engaged with at least one of the selected candidate message; and

updating the engagement likelihood model based on the indication of whether a user of the client device engaged with the at least one of the selected candidate message.

18. The system of claim 13 , wherein determining whether the candidate message has the number of impressions fewer than the threshold number of impressions comprises comparing the number of impressions for the particular candidate message with a sampling distribution for the particular candidate message, and

wherein increasing the rank value of the particular candidate message comprises: determining, based on the comparison of the number of impressions and the sampling distribution, an amount for the respective candidate message; and

increasing the rank value of the candidate message by the determined amount.

19. The method of claim 1 , wherein a tunable parameter in the one or more tunable parameters is a fraction of times that the particular candidate message is designed to be selected as part of the one or more candidate messages based on the increased rank value.

20. The method of claim 1 , wherein a tunable parameter in the one or more tunable parameters indicates how many candidate messages in the one or more candidate messages are selected from among candidate messages with respective increased rank values.

21. The non-transitory computer-readable storage media of claim 7 , wherein a tunable parameter in the one or more tunable parameters is a fraction of times that the particular candidate message is designed to be selected as part of the one or more candidate messages based on the increased rank value.

22. The non-transitory computer-readable storage media of claim 7 , wherein a tunable parameter in the one or more tunable parameters indicates how many candidate messages in the one or more candidate messages are selected from among candidate messages with respective increased rank values.

23. The system of claim 13 , wherein a tunable parameter in the one or more tunable parameters is a fraction of times that the particular candidate message is designed to be selected as part of the one or more candidate messages based on the increased rank value.

24. The system of claim 13 , wherein a tunable parameter in the one or more tunable parameters indicates how many candidate messages in the one or more candidate messages are selected from among candidate messages with respective increased rank values.

Assignments (7)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (REEL 062079, FRAME 0677) Recorded Mar 3, 2026
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: X CORP. (F/K/A TWITTER, INC.)
Reel/Frame 075015/0574 →
RELEASE OF SECURITY INTEREST Recorded Apr 30, 2025
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: X CORP. (F/K/A TWITTER, INC.)
Reel/Frame 071127/0240 →
RELEASE OF SECURITY INTEREST Recorded Mar 27, 2025
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: X CORP. (F/K/A TWITTER, INC.)
Reel/Frame 070670/0857 →
SECURITY INTEREST Recorded Oct 28, 2022
From: TWITTER, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 062079/0677 →
SECURITY INTEREST Recorded Oct 28, 2022
From: TWITTER, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 061804/0001 →
SECURITY INTEREST Recorded Oct 28, 2022
From: TWITTER, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 061804/0086 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 30, 2021
From: ANDERSEN, REID; NEUFELD, JAMES; GOEL, ASHISH; JAHR, MICHAEL E.; SRIVASTAVA, UTKARSH; PANDEY, SANDEEP
To: TWITTER, INC.
Reel/Frame 056104/0686 →
Continuity (4)
Continuation 16200582 · Nov 26, 2018
Continuation 14214420 · Mar 14, 2014
Provisional Application 61800546 · Mar 15, 2013
Provisional Application 61800729 · Mar 15, 2013