IP Library Granted Patent US 10,970,312
Granted Patent B2
US 10,970,312 · App. 16/208,410 · Granted Apr 6, 2021

Content resonance

Inventors: Ashish Goel (Palo Alto, CA); Srinivasan Rajgopal (Sunnyvale, CA); Utkarsh Srivastava (Menlo Park, CA); Anamitra Banerji (San Francisco, CA)
Assignee: Twitter, Inc.
G06F16/285G06F16/219G06F16/23G06F16/2322G06F16/24578G06F16/35H04L51/04H04L51/12G06F16/24524G06F16/24545G06Q10/10
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 10,970,312
App. No.
16/208,410
Granted
Apr 6, 2021
Kind
B2
Abstract

A real-time messaging platform and method is disclosed which classifies messages in accordance with a combination of user engagement events as modified to reflect the temporal structure of the user engagement events. A message can be assigned a metric based, for example, on a weighted combination of user engagement rates, decayed with time to reflect an intuition that recent interactions by one or more users with the message will have a greater impact than older interactions with the message. Different types of interaction by one or more users with the message can be assigned different weights when the different engagement events are combined and, also, can be assigned different temporal characteristics.

Claims (76)

1. A computer-implemented method comprising:

providing a message to a plurality of user devices;

receiving, by a first content server, an indication of a first user engagement with the message at a first user device;

in response, obtaining, by the first content server from a resonance database, a first impression total for the message and a first user interaction total for the message;

receiving, by a second content server different than the first content server, an indication of a second user engagement with the message at a second user device;

in response, obtaining, by the second content server from the resonance database, the first impression total for the message and the first user interaction total for the message;

computing, by the first content server, a first updated impression total by adding an impression value for the message to a first decayed user impression total, the first decayed user impression total representing a time-based decay of the first impression total;

computing, by the second content server, a second updated impression total by adding the impression value for the message to a second decayed user impression total, the second decayed user impression total representing a time-based decay of the first impression total;

computing, by the first content server, a first updated user interaction total by adding a first action weight for the first user engagement to a first decayed user interaction total, the first decayed user interaction total representing a time-based decay of the first user interaction total;

computing, by the second content server, a second updated user interaction total by adding a second action weight for the second user engagement to a first decayed user interaction total, the first decayed user interaction total representing a time-based decay of the first user interaction total;

computing, by the first content server, a first resonance value of the message based on both the first updated impression total and the first updated user interaction total;

computing, by the second content server, a second resonance value of the message based on both the second updated impression total and the second updated user interaction total;

selecting, by the first content server from among a first plurality of messages, the message for distribution to one or more user devices based on respective resonance values computed for the first plurality of messages, the resonance values for the first plurality of messages including the first resonance value computed for the message; and

selecting, by the second content server from among a second plurality of messages, the message for distribution to one or more user devices based on respective resonance values computed for the second plurality of messages, the resonance values for the second plurality of messages including the second resonance value computed for the message.

2. The method of claim 1 , wherein the first resonance value of the message and the second resonance value of the message are different.

3. The method of claim 1 , wherein the first updated impression total computed by the first content server is different than the second updated impression total computed by the second content server.

4. The method of claim 3 , wherein the first content server computes the first updated impression total at a different time than the second content server computes the second updated impression total, whereby the first decayed user impression total is different than the second decayed user impression total.

5. The method of claim 3 , wherein the first updated user interaction total computed by the first content server is different than the second updated user interaction total computed by the second content server.

6. The method of claim 5 , wherein the first content server computes the first updated user interaction total using the first engagement, and the first engagement has a different engagement type than the second engagement used by the second content server to compute the second updated user interaction total.

7. The method of claim 5 , wherein the first content server computes the first updated user interaction total at a different time than the second content server computes the second updated user interaction total.

8. The method of claim 1 , wherein obtaining, by the second content server, the first impression total for the message and the first user interaction total for the message comprises obtaining the first impression total for the message and the first user interaction total for the message from memory that is local to the second content server.

9. The method of claim 1 , further comprising distributing among a plurality of content servers the load of updating the first user interaction total in the resonance database.

10. The method of claim 1 , wherein each respective action weight corresponds to a different type of user interaction with the message.

11. The method of claim 1 , wherein computing the first resonance value of the message comprises computing a ratio of the first updated user interaction total to the first updated impression total.

12. The method of claim 1 , wherein computing the first resonance value comprises computing the first resonance value without obtaining additional values from the resonance database.

13. A system comprising:

one or more computers and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising:

providing a message to a plurality of user devices;

receiving, by a first content server, an indication of a first user engagement with the message at a first user device;

in response, obtaining, by the first content server from a resonance database, a first impression total for the message and a first user interaction total for the message;

receiving, by a second content server different than the first content server, an indication of a second user engagement with the message at a second user device;

in response, obtaining, by the second content server from the resonance database, the first impression total for the message and the first user interaction total for the message;

computing, by the first content server, a first updated impression total by adding an impression value for the message to a first decayed user impression total, the first decayed user impression total representing a time-based decay of the first impression total;

computing, by the second content server, a second updated impression total by adding the impression value for the message to a second decayed user impression total, the second decayed user impression total representing a time-based decay of the first impression total;

computing, by the first content server, a first updated user interaction total by adding a first action weight for the first user engagement to a first decayed user interaction total, the first decayed user interaction total representing a time-based decay of the first user interaction total;

computing, by the second content server, a second updated user interaction total by adding a second action weight for the second user engagement to a first decayed user interaction total, the first decayed user interaction total representing a time-based decay of the first user interaction total;

computing, by the first content server, a first resonance value of the message based on both the first updated impression total and the first updated user interaction total;

computing, by the second content server, a second resonance value of the message based on both the second updated impression total and the second updated user interaction total;

selecting, by the first content server from among a first plurality of messages, the message for distribution to one or more user devices based on respective resonance values computed for the first plurality of messages, the resonance values for the first plurality of messages including the first resonance value computed for the message; and

selecting, by the second content server from among a second plurality of messages, the message for distribution to one or more user devices based on respective resonance values computed for the second plurality of messages, the resonance values for the second plurality of messages including the second resonance value computed for the message.

14. The system of claim 13 , wherein the first resonance value of the message and the second resonance value of the message are different.

15. The system of claim 13 , wherein the first updated impression total computed by the first content server is different than the second updated impression total computed by the second content server.

16. The system of claim 15 , wherein the first content server is configured to compute the first updated impression total at a different time than the second content server computes the second updated impression total, whereby the first decayed user impression total is different than the second decayed user impression total.

17. The system of claim 15 , wherein the first updated user interaction total computed by the first content server is different than the second updated user interaction total computed by the second content server.

18. The system of claim 17 , wherein the first content server computes the first updated user interaction total using the first engagement, and the first engagement has a different engagement type than the second engagement used by the second content server to compute the second updated user interaction total.

19. The system of claim 17 , wherein the first content server computes the first updated user interaction total at a different time than the second content server computes the second updated user interaction total.

20. The system of claim 13 , wherein obtaining, by the second content server, the first impression total for the message and the first user interaction total for the message comprises obtaining the first impression total for the message and the first user interaction total for the message from memory that is local to the second content server.

21. The system of claim 13 , wherein the operations further comprise distributing among a plurality of content servers the load of updating the first user interaction total in the resonance database.

22. The system of claim 13 , wherein each respective action weight corresponds to a different type of user interaction with the message.

23. The system of claim 13 , wherein computing the first resonance value of the message comprises computing a ratio of the first updated user interaction total to the first updated impression total.

24. The system of claim 13 , wherein computing the first resonance value comprises computing the first resonance value without obtaining additional values from the resonance database.

25. One or more non-transitory computer storage media encoded with computer program instructions that when executed by one or more computers cause the one or more computers to perform operations comprising:

providing a message to a plurality of user devices;

receiving, by a first content server, an indication of a first user engagement with the message at a first user device;

in response, obtaining, by the first content server from a resonance database, a first impression total for the message and a first user interaction total for the message;

receiving, by a second content server different than the first content server, an indication of a second user engagement with the message at a second user device;

in response, obtaining, by the second content server from the resonance database, the first impression total for the message and the first user interaction total for the message;

computing, by the first content server, a first updated impression total by adding an impression value for the message to a first decayed user impression total, the first decayed user impression total representing a time-based decay of the first impression total;

computing, by the second content server, a second updated impression total by adding the impression value for the message to a second decayed user impression total, the second decayed user impression total representing a time-based decay of the first impression total;

computing, by the first content server, a first updated user interaction total by adding a first action weight for the first user engagement to a first decayed user interaction total, the first decayed user interaction total representing a time-based decay of the first user interaction total;

computing, by the second content server, a second updated user interaction total by adding a second action weight for the second user engagement to a first decayed user interaction total, the first decayed user interaction total representing a time-based decay of the first user interaction total;

computing, by the first content server, a first resonance value of the message based on both the first updated impression total and the first updated user interaction total;

computing, by the second content server, a second resonance value of the message based on both the second updated impression total and the second updated user interaction total;

selecting, by the first content server from among a first plurality of messages, the message for distribution to one or more user devices based on respective resonance values computed for the first plurality of messages, the resonance values for the first plurality of messages including the first resonance value computed for the message; and

selecting, by the second content server from among a second plurality of messages, the message for distribution to one or more user devices based on respective resonance values computed for the second plurality of messages, the resonance values for the second plurality of messages including the second resonance value computed for the message.

26. The one or more non-transitory computer storage media of claim 25 , wherein the first resonance value of the message and the second resonance value of the message are different.

27. The one or more non-transitory computer storage media of claim 25 , wherein the first updated impression total computed by the first content server is different than the second updated impression total computed by the second content server.

28. The one or more non-transitory computer storage media of claim 27 , wherein the first content server computes the first updated impression total at a different time than the second content server computes the second updated impression total, whereby the first decayed user impression total is different than the second decayed user impression total.

29. The one or more non-transitory computer storage media of claim 27 , wherein the first updated user interaction total computed by the first content server is different than the second updated user interaction total computed by the second content server.

30. The one or more non-transitory computer storage media of claim 29 , wherein the first content server computes the first updated user interaction total using the first engagement, and the first engagement has a different engagement type than the second engagement used by the second content server to compute the second updated user interaction total.

31. The one or more non-transitory computer storage media of claim 29 , wherein the first content server computes the first updated user interaction total at a different time than the second content server computes the second updated user interaction total.

32. The one or more non-transitory computer storage media of claim 25 , wherein obtaining, by the second content server, the first impression total for the message and the first user interaction total for the message comprises obtaining the first impression total for the message and the first user interaction total for the message from memory that is local to the second content server.

33. The one or more non-transitory computer storage media of claim 25 , wherein the operations further comprise distributing among a plurality of content servers the load of updating the first user interaction total in the resonance database.

34. The one or more non-transitory computer storage media of claim 25 , wherein each respective action weight corresponds to a different type of user interaction with the message.

35. The one or more non-transitory computer storage media of claim 25 , wherein computing the first resonance value of the message comprises computing a ratio of the first updated user interaction total to the first updated impression total.

36. The one or more non-transitory computer storage media of claim 25 , wherein computing the first resonance value comprises computing the first resonance value without obtaining additional values from the resonance database.

Assignments (8)
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 Mar 27, 2019
From: GOEL, ASHISH; RAJGOPAL, SRINIVASAN; SRIVASTAVA, UTKARSH; BANERJI, ANAMITRA
To: TWITTER, INC.
Reel/Frame 050236/0552 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 4, 2018
From: GOEL, ASHISH; RAJGOPAL, SRINIVASAN; SRIVASTAVA, UTKARSH; BANERJI, ANAMITRA
To: TWITTER, INC.
Reel/Frame 048962/0733 →
Continuity (6)
Continuation 15385407 · Dec 20, 2016
Continuation 15045154 · Feb 16, 2016
Continuation 13975515 · Aug 26, 2013
Continuation 13433217 · Mar 28, 2012
Provisional Application 61470385 · Mar 31, 2011
Related Publication 20190179833A1 · Jun 13, 2019