IP Library Granted Patent US 11,711,404
Granted Patent B2
US 11,711,404 · App. 17/086,310 · Granted Jul 25, 2023

Embeddings-based recommendations of latent communication platform features

Inventors: Aaron Mauer (New York, NY); Alexander Nicholas Johnson (San Francisco, CA); Adam Oliner (San Francisco, CA); Zhifeng Deng (Fremont, CA)
Assignee: Salesforce, Inc.
H04L65/1093G06N3/045G06N5/022G06N20/20H04L12/1818H04L51/04H04L51/216H04L67/306
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,711,404
App. No.
17/086,310
Granted
Jul 25, 2023
Kind
B2
Abstract

A communication platform may comprise different systems for helping a user discover features of the platform. However, the systems may generate different results. An application programming interface (API) may receive such outputs and may be configured to select between the outputs based on detecting a state at a user's computing device and/or using a machine-learned model to weight the outputs and/or probabilities associated therewith using a target metric. The API may then rank the outputs and select from among them based at least in part on the target metric.

Claims (97)

1. A method, implemented at least in part by a server computing device associated with a communication platform, the method comprising:

receiving, via the communication platform, a communication from a computing device associated with a first user;

in response to receiving the communication:

identifying at least one of a first candidate user or a first candidate channel;

identifying at least one of a second candidate user or a second candidate channel, based in part on:

a first embedding based at least in part on the communication and indicating a first degree of interactions between the first user and features of the communication platform, and

a similarity between the first embedding and a second embedding indicating a second degree of interactions between the first user and the second candidate user or a third degree of interactions between the first user and the second candidate channel; and

selecting at least one of the second candidate user or the second candidate channel based at least in part on a target metric; and

causing at least one of:

the second candidate user, the communication, the first candidate user, or the first user to be added to the second candidate channel.

2. The method of claim 1 , wherein the first embedding comprises a graph embedding, wherein the graph embedding is associated with a representation of one or more user interactions with one or more channels.

3. The method of claim 1 , further comprising:

computing multiple first probabilities associated with at least one of the first candidate user or the first candidate channel;

computing one or more second probabilities associated with at least one of the second candidate user or the first candidate channel based at least in part on the first embedding and the similarity; and

ranking, based at least in part on the multiple first probabilities and the one or more second probabilities, at least two candidates, the at least two candidates comprising at least one of the first candidate user or the first candidate channel and at least one of the second candidate user or the second candidate channel.

4. The method of claim 3 , wherein the ranking comprises ordering the at least two candidates based at least in part on the target metric, and wherein the target metric is based at least in part on one or more of:

a probability threshold that a proposed user will invite another user to a proposed channel or an active channel associated with the communication received from the computing device associated with the first user; or

a predicted number of messages, reactions, or files that the first user or the proposed user will at least one of read or write via the proposed channel.

5. The method of claim 3 , wherein computing the multiple first probabilities and the one or more second probabilities is based at least in part on the target metric, and wherein the target metric is based at least in part on at least one of:

a probability threshold that a proposed user will invite another user to a proposed channel or an active channel associated with the communication received from the computing device associated with the first user; or

a predicted number of messages, reactions, or files that the first user or the proposed user will at least one of read or write via the proposed channel.

6. The method of claim 3 , wherein identifying the at least one of the first candidate user or the first candidate channel is based at least in part on:

a distance between a first semantic embedding associated with the first candidate user or the first candidate channel;

the first candidate user or the first candidate channel being associated with a frequency of communications associated with the first user and the first candidate user or first candidate channel that meets or exceeds a threshold frequency;

a number of users joining the first candidate channel within a predetermined time period; or

a channel membership of the first candidate user or the first candidate channel.

7. The method of claim 1 , further comprising:

providing at least one of the first candidate user or the first candidate channel and at least one of the second candidate user or the second candidate channel as input to a first machine-learned model; and

receiving, from the first machine-learned model, one or more first probabilities associated with at least one of the first candidate user or the first candidate channel and one or more second probabilities associated with at least one of the second candidate user or the second candidate channel;

wherein selecting at least one of the second candidate user or the second candidate channel is based at least in part on the one or more second probabilities.

8. The method of claim 7 , wherein:

the target metric is a first target metric,

the first machine-learned model is one among multiple machine-learned models,

the first machine-learned model is associated with the first target metric and a second machine-learned model of the multiple machine-learned models is associated with a second target metric different than the first target metric, and

the one or more first probabilities and the one or more second probabilities indicate a probability that a candidate user or a candidate channel meets or exceeds a threshold associated with the first target metric.

9. A system comprising:

one or more processors;

a memory storing processor-executable instructions that, when executed by the one or more processors, cause the system to perform operations comprising:

receiving, via a communication platform, a communication from a computing device associated with a first user;

in response to receiving the communication:

identifying, via a first candidate generation system, at least one of a first candidate user or a first candidate channel;

identifying, via a second candidate generation system, at least one of a second candidate user or a second candidate channel, based at least in part on:

a first embedding based at least in part on the communication and indicating a first degree of interactions between the first user and features of the communication platform, and

a similarity between the first embedding and a second embedding indicating a second degree of interactions between the first user and the second candidate user or a third degree of interactions between the first user and the second candidate channel; and

selecting at least one of the second candidate user or the second candidate channel based at least in part on a target metric; and

causing at least one of:

the second candidate user, the communication, the first candidate user or the first user to be added to the second candidate channel.

10. The system of claim 9 , wherein:

the first candidate generation system computes a first probability associated with the first candidate user or the first candidate channel;

the second candidate generation system computes a second probability associated the first candidate user or the first candidate channel; and

the operations further comprise:

aggregating the first probability and the second probability as a first aggregated probability associated with the first candidate user or the first candidate channel; and

ranking, based at least in part on the first aggregated probability and a second aggregated probability associated with the second candidate user or the second candidate channel, candidates, wherein the candidates comprise at least one of the first candidate user or the first candidate channel and at least one of the second candidate user or the second candidate channel.

11. The system of claim 10 , wherein:

at least one of the first probability or the second probability are based at least in part on the target metric or ranking the candidates is based at least in part on the target metric; and

the selecting is based at least in part on the ranking.

12. The system of claim 9 , wherein the operations further comprise:

providing at least one of the first candidate user or the first candidate channel and at least one of the second candidate user or the second candidate channel as input to a first machine-learned model; and

receiving, from the first machine-learned model, one or more first probabilities associated with at least one of the first candidate user or the first candidate channel and one or more second probabilities associated with at least one of the second candidate user or the second candidate channel;

wherein selecting at least one of the second candidate user or the second candidate channel is based at least in part on the one or more second probabilities.

13. The system of claim 12 , wherein:

the target metric is a first target metric,

the first machine-learned model is one among multiple machine-learned models,

the first machine-learned model is associated with the first target metric and a second machine-learned model of the multiple machine-learned models is associated with a second target metric different than the first target metric, and

the one or more first probabilities and the one or more second probabilities indicate a probability that a candidate user or a candidate channel meets or exceeds a threshold associated with the first target metric.

14. A non-transitory computer-readable medium storing processor-executable instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising:

receiving, via a communication platform, a communication from a computing device associated with a first user;

in response to receiving the communication:

identifying, via a first candidate generation system, at least one of a first candidate user or a first candidate channel;

identifying, via a second candidate generation system, at least one of a second candidate user or a second candidate channel, based in part on:

a first embedding based at least in part on the communication and indicating a first degree of interactions between the first user and features of the communication platform, and

a similarity between the first embedding and a second embedding indicating a second degree of interactions between the first user and the second candidate user or a third degree of interactions between the first user and the second candidate channel; and

selecting at least one of the second candidate user or the second candidate channel based at least in part on a target metric; and

causing at least one of:

the second candidate user, the communication, the first candidate user, or the first user to be added to the second candidate channel.

15. The non-transitory computer-readable medium of claim 14 , wherein:

the first candidate generation system computes a first probability associated with the first candidate user or the first candidate channel;

the second candidate generation system computes a second probability associated the first candidate user or the first candidate channel; and

the operations further comprise:

aggregating the first probability and the second probability as a first aggregated probability associated with the first candidate user or the first candidate channel;

ranking, based at least in part on the first aggregated probability and a second aggregated probability associated with the second candidate user or the second candidate channel, candidates, the candidates comprising at least one of the first candidate user or the first candidate channel and at least one of the second candidate user or the second candidate channel.

16. The non-transitory computer-readable medium of claim 15 , wherein:

at least one of the first probability or the second probability are based at least in part on the target metric or ranking the candidates is based at least in part on the target metric; and

the selecting is based at least in part on the ranking.

17. The non-transitory computer-readable medium of claim 15 , wherein the ranking comprises ordering the candidates based at least in part on the target metric, and wherein the target metric is based at least in part on one or more of:

a probability threshold that a proposed user will invite another user to a proposed channel or an active channel associated with the communication received from the computing device associated with the first user; or

a predicted number of messages, reactions, or files that the first user or the proposed user will at least one of read or write via the proposed channel.

18. The non-transitory computer-readable medium of claim 14 , wherein the operations further comprise:

providing at least one of the first candidate user or the first candidate channel and at least one of the second candidate user or the second candidate channel as input to a first machine-learned model; and

receiving, from the first machine-learned model, one or more first probabilities associated with at least one of the first candidate user or the first candidate channel and one or more second probabilities associated with at least one of the second candidate user or the second candidate channel;

wherein selecting at least one of the second candidate user or the second candidate channel is based at least in part on the one or more second probabilities.

19. The non-transitory computer-readable medium of claim 18 , wherein:

the target metric is a first target metric,

the first machine-learned model is one among multiple machine-learned models,

the first machine-learned model is associated with the first target metric and a second machine-learned model of the multiple machine-learned models is associated with a second target metric different than the first target metric, and

the one or more first probabilities and the one or more second probabilities indicate a probability that a candidate user or a candidate channel meets or exceeds a threshold associated with the first target metric.

20. The non-transitory computer-readable medium of claim 14 , wherein the first embedding comprises a graph embedding, wherein the graph embedding is associated with a representation of one or more user interactions with one or more channels.

Assignments (4)
MERGER Recorded Nov 21, 2022
From: SLACK TECHNOLOGIES, LLC
To: SALESFORCE.COM, INC.
Reel/Frame 061972/0569 →
CHANGE OF NAME Recorded Nov 21, 2022
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 061972/0769 →
MERGER AND CHANGE OF NAME Recorded Oct 1, 2021
From: SLACK TECHNOLOGIES, INC.; SLACK TECHNOLOGIES, LLC
To: SLACK TECHNOLOGIES, LLC
Reel/Frame 057683/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 12, 2020
From: MAURER, AARON; JOHNSON, ALEXANDER NICHOLAS; DENG, ZHIFENG; OLINER, ADAM
To: SLACK TECHNOLOGIES, INC.
Reel/Frame 054354/0041 →