IP Library Granted Patent US 11,113,617
Granted Patent B1
US 11,113,617 · App. 16/003,260 · Granted Sep 7, 2021

Ranking of user contacts to facilitate efficient user interfaces

Inventor: Xiangyang Liu (Redwood City, CA)
Assignee: Facebook, Inc.
G06N7/005G06F16/24578
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,113,617
App. No.
16/003,260
Granted
Sep 7, 2021
Kind
B1
Abstract

A request for a ranked list of contacts of the user is received from a client device associated with a user. The request identifies a purpose for the ranked list of contacts. A list of the user's contacts is retrieved from a data store and a subset of the user's contacts that are likely to interact with the user in a specified future time period is identified. Ranking scores are calculated for the subset of the user's contacts, each ranking score indicating a probability that the user will interact with a corresponding one of the subset of the user's contacts in a manner consistent with the purpose. A ranked list of contacts is determined based on the ranking scores and sent to the client device.

Claims (75)

1. A method comprising:

receiving, from a client device associated with a user, a request for a ranked list of contacts of the user, the request identifying a purpose for the ranked list of contacts;

retrieving a list of the user's contacts from a data store;

identifying a subset of the user's contacts that are likely to interact with the user in a specified future time period, identifying the subset comprising:

identifying an initial subset of the user's contacts;

identifying a message thread associated with a contact in the initial subset;

obtaining a set of features associated with the message thread;

applying a machine-learned global ranking model to the set of features to generate a likelihood that the contact will interact with the user in the specified future time period; and

refining the initial subset to identify the subset based on the likelihood;

calculating ranking scores for the subset of the user's contacts, each ranking score indicating a probability that the user will interact with a corresponding one of the subset of the user's contacts in a manner consistent with the purpose; and

sending the ranked list of contacts to the client device, the ranked list of contacts based on the ranking scores.

2. The method of claim 1 , wherein

identifying the initial subset of the user's contacts is based on likelihoods that the user's contacts will interact with the user in a second future time period and wherein the specified future time period is a subset of the second future time period.

3. The method of claim 1 , wherein

the set of features includes a number of messages feature and a number of days alive feature, the number of messages feature indicating a total number of messages in the thread and the number of days alive feature indicating a number of instances of a given time period within a longer time period in which a message was added to the threw and wherein the refining further comprises removing the contact from the subset based on the likelihood for the contact.

4. The method of claim 1 , wherein training the global ranking model included:

identifying a set of threads involving the user;

obtaining features for the threads in the set, the features including a number of messages feature and a number of days alive feature, the number of messages feature indicating a total number of messages in the thread and the number of days alive feature indicating a number of instances of a given time period within a longer time period in which a message was added to the thread;

applying the global ranking model to generate predictions of whether the threads will be active in a future time period;

determining a measure of accuracy for the global ranking model by comparing the predictions to ground truth data indicating whether the threads were active in the future time period; and

adjusting the global ranking model based on the measure of accuracy.

5. The method of claim 2 , wherein the specified future time period is a day and the second future time period is a week, and the subset is determined daily.

6. The method of claim 1 , further comprising selecting a context-specific model based on the purpose for the ranked list of contacts, wherein the context-specific model calculates the ranking scores.

7. The method of claim 6 , wherein the context-specific model is a machine learned model that is computationally more expensive than the global ranking model used to identify the subset of the user's contacts.

8. A non-transitory computer-readable storage medium storing computer program instructions executable by a processor to perform operations comprising:

receiving, from a client device associated with a user, a request for a ranked list of contacts of the user, the request identifying a purpose for the ranked list of contacts;

retrieving a list of the user's contacts from a data store;

identifying a subset of the user's contacts that are likely to interact with the user in a specified future time period, the identifying comprising steps:

identifying an initial subset of the user's contacts;

identifying a message thread associated with a contact in the initial subset;

obtaining a set of features associated with the message thread;

applying a machine-learned global ranking model to the set of features to generate a likelihood that the contact will interact with the user in the specified future time period; and

refining the initial subset to identify the subset based on the likelihood;

calculating ranking scores for the subset of the user's contacts, each ranking score indicating a probability that the user will interact with a corresponding one of the subset of the user's contacts in a manner consistent with the purpose; and

sending the ranked list of contacts to the client device, the ranked list of contacts based on the ranking scores.

9. The non-transitory computer-readable storage medium of claim 8 , wherein

identifying the initial subset of the user's contacts is based on likelihoods that the user's contacts will interact with the user in a second future time period and wherein the specified future time period being is a subset of the second future time period.

10. The non-transitory computer-readable storage medium of claim 8 , wherein

the set of features includes a number of messages feature and a number of days alive feature, the number of messages feature indicating a total number of messages in the thread and the number of days alive feature indicating a number of instances of a given time period within a longer time period in which a message was added to the thread;

and wherein the refining further comprises removing the contact from the subset based on the likelihood for the contact.

11. The non-transitory computer-readable storage medium of claim 8 , wherein machine-learned model, and training the global ranking model included:

identifying a set of threads involving the user;

obtaining features for the threads in the set, the features including a number of messages feature and a number of days alive feature, the number of messages feature indicating a total number of messages in the thread and the number of days alive feature indicating a number of instances of a given time period within a longer time period in which a message was added to the thread;

applying the global ranking model to generate predictions of whether the threads will be active in a future time period;

determining a measure of accuracy for the global ranking model by comparing the predictions to ground truth data indicating whether the threads were active in the future time period; and

adjusting the global ranking model based on the measure of accuracy.

12. The non-transitory computer-readable storage medium of claim 9 , wherein the specified future time period is a day and the second future time period is a week, and the subset is determined daily.

13. The non-transitory computer-readable storage medium of claim 8 , wherein the operations further comprise selecting a context-specific model based on the purpose for the ranked list of contacts, wherein the context-specific model calculates the ranking scores.

14. The non-transitory computer-readable storage medium of claim 13 , wherein the context-specific model is a machine learned model that is computationally more expensive than the global ranking model used to identify the subset of the user's contacts.

15. A system comprising:

a computer processor for executing computer program instructions; and

a non-transitory computer-readable storage medium storing computer program instructions executable by the processor to perform operations comprising:

receiving, from a client device associated with a user, a request for a ranked list of contacts of the user, the request identifying a purpose for the ranked list of contacts;

retrieving a list of the user's contacts from a data store;

identifying a subset of the user's contacts that are likely to interact with the user in a specified future time period, the identifying comprising steps:

identifying an initial subset of the user's contacts;

identifying a message thread associated with a contact in the initial subset;

obtaining a set of features associated with the message thread;

applying a machine-learned global ranking model to the set of features to generate a likelihood that the contact will interact with the user in the specified future time period; and

refining the initial subset to identify the subset based on the likelihood;

calculating ranking scores for the subset of the user's contacts, each ranking score indicating a probability that the user will interact with a corresponding one of the subset of the user's contacts in a manner consistent with the purpose; and

sending the ranked list of contacts to the client device, the ranked list of contacts based on the ranking scores.

16. The system of claim 15 , wherein

identifying the initial subset of the user's contacts is based on likelihoods that the user's contacts will interact with the user in a second future time period and wherein the specified future time period being is a subset of the second future time period.

17. The system of claim 15 , wherein

the set of features includes a number of messages feature and a number of days alive feature, the number of messages feature indicating a total number of messages in the thread and the number of days alive feature indicating a number of instances of a given time period within a longer time period in which a message was added to the thread;

and wherein the refining further comprises removing the contact from the subset based on the likelihood for the contact.

18. The system of claim 15 , wherein training the global ranking model included:

identifying a set of threads involving the user;

obtaining features for the threads in the set, the features including a number of messages feature and a number of days alive feature, the number of messages feature indicating a total number of messages in the thread and the number of days alive feature indicating a number of instances of a given time period within a longer time period in which a message was added to the thread;

applying the global ranking model to generate predictions of whether the threads will be active in a future time period;

determining a measure of accuracy for the global ranking model by comparing the predictions to ground truth data indicating whether the threads were active in the future time period; and

adjusting the global ranking model based on the measure of accuracy.

19. The system of claim 16 , wherein the specified future time period is a day and the second future time period is a week, and the subset is determined daily.

20. The system of claim 15 , wherein the operations further comprise selecting a context-specific model based on the purpose for the ranked list of contacts, the context-specific model being a machine learned model that is computationally more expensive than a global ranking model used to identify the subset of the user's contacts, wherein the context-specific model calculates the ranking scores.

Assignments (2)
CHANGE OF NAME Recorded Nov 18, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058897/0824 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 12, 2018
From: LIU, XIANGYANG
To: FACEBOOK, INC.
Reel/Frame 046061/0010 →
Cited By (1)
US 12,596,971