# US 2023/0409751 A1 · Privacy-safe connection recommendations

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2023/0409751 A1
- Document ID: US20230409751A1
- Status: Published application
- Kind: A1
- Application number: 18/322,357
- Filed: 2023-05-23
- Published: 2023-12-21
- Earliest claimed: 2021-09-01
- Assignees: Snap Inc.
- Applicants: Snap Inc.
- Inventors: Ioannis Kotsogiannis Teftsoglou; Amit Datta; Liviu Cristea
- Web page: https://patentgrep.com/patent/US20230409751A1

## CPC

- G06F 21/6263: {during internet communication, e.g. revealing personal data from cookies}
- G06F 21/6245: {Protecting personal data, e.g. for financial or medical purposes}
- H04L 51/42: Mailbox-related aspects, e.g. synchronisation of mailboxes
- H04L 51/52: for supporting social networking services
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

When a messaging system generates connection recommendations for a new user, who first registers with the messaging system, the signals available for generation of recommendations may be limited to the user's contact book matches. Using just this limited signal poses a concern associated with leaking information about users represented by the recommendations. The technical problem of generating connection recommendations for a user at registration time in a privacy-safe manner is addressed by a recommendation methodology that obscures the connection source and the connection distance of the recommended profiles.

## Claims

### Claim 1

A method comprising:
determining one-hop profiles using user identifiers associated with a new user, the user identifiers corresponding to potential connections for the new user;
determining two-hop profiles using one-hop connection information associated with the one-hop profiles;
determining three hop profiles using two-hop connection information associated with the two-hop profiles;
generating an inventory of candidate profiles for recommendation to the new user by sampling profiles from the two-hop profiles and the three-hop profiles;
generating an inventory value for the inventory of candidate profiles by computing a predefined statistic using attributes of the candidate profiles in the inventory of candidate profiles;
generating a recommendation set of profiles by incorporating candidate profiles from the inventory of candidate profiles until a value of the predefined statistic computed for the recommendation set of profiles is substantially the same as the inventory value; and
causing presentation of the recommendation set of profiles on a display device of the new user.

### Claim 2 (depends on 1)

The method of claim 1, wherein the one-hop profiles each include contact information identifying a user.

### Claim 3 (depends on 1)

The method of claim 1, wherein determining the one-hop profiles further comprises:
determining that a user identifier, of the user identifiers associated with the new user, is associated with a candidate profile representing an existing user in a messaging system;
determining that the new user is not referenced as a connection or contact by the candidate profile; and
omitting the candidate profile from inclusion into the one-hop profiles.

### Claim 4 (depends on 1)

The method of claim 1, wherein each profile of the one-hop profiles includes connection information indicating at least a predetermined number of social network connections.

### Claim 5 (depends on 1)

The method of claim 1, wherein determining the two-hop profiles comprises determining that a number of profiles in the one-hop profiles is equal to or greater than a predetermined threshold.

### Claim 6 (depends on 1)

The method of claim 1, wherein:
determining the two-hop profiles using one-hop connection information associated with the one-hop profiles comprises determining a candidate profile referenced by the one-hop connection information;
determining that the candidate profile includes a reference to a profile from the one-hop profiles; and
in response to the determining that the candidate profile includes a reference to the profile from the one-hop profiles, including the candidate profile in the two-hop profiles.

### Claim 7 (depends on 1)

The method of claim 1, wherein the one-hop connection information is a social network connection.

### Claim 8 (depends on 1)

The method of claim 1, wherein the one-hop connection information is a contact book connection.

### Claim 9 (depends on 1)

The method of claim 1, further comprising:
for each profile in the inventory of candidate profiles, computing, using a machine learning (ML) model, a probability that the new user will create a connection with the profile upon being presented with the profile; and
ranking the profiles in the inventory of candidate profiles based on the computed probabilities.

### Claim 10 (depends on 1)

The method of claim 1, wherein:
the predefined statistic corresponds to a ratio between two-hop profiles and three-hop profiles; and
the inventory value is an inventory ratio corresponding to a ratio between the two-hop profiles and three-hop profiles in the inventory.

### Claim 11 (depends on 10)

The method of claim 10, wherein generating the recommendation set of profiles to be displayed on the display device of the new user comprises:
generating, based on the inventory of candidate profiles, a preliminary set of profiles;
determining that the inventory ratio does not match a preliminary ratio computed as a ratio between two-hop profiles and three-hop profiles in the preliminary set;
updating the preliminary set by adding at least one additional two-hop profile or three-hop profile to cause the preliminary ratio to be substantially the same as the inventory ratio; and
identifying the recommendation set of profiles as the updated preliminary set of profiles.

### Claim 12 (depends on 1)

The method of claim 1, wherein:
the two-hop profiles included in the inventory of candidate profiles comprise a first type of two-hop profiles and a second type of two-hop profiles;
the predefined statistic is one of at least a proportion of the first type of two-hop profiles, a proportion of the second type of two-hop profiles, and a proportion of three-hop profiles in a set of profiles; and
the inventory value is one of at least a proportion of the first type of two-hop profiles, a proportion of the second type of two-hop profiles, and a proportion of the three-hop profiles in the inventory of candidate profiles.

### Claim 13

A system comprising:
one or more processors; and
a non-transitory computer readable storage medium comprising instructions that when executed by the one or more processors cause the one or more processors to perform operations comprising:
determining one-hop profiles using user identifiers associated with a new user, the user identifiers corresponding to potential connections for the new user;
determining two-hop profiles using one-hop connection information associated with the one-hop profiles;
determining three-hop profiles using two-hop connection information associated with the two-hop profiles;
generating an inventory of candidate profiles for recommendation to the new user by sampling profiles from the two-hop profiles and the three-hop profiles;
generating an inventory value for the inventory of candidate profiles by computing a predefined statistic using attributes of the candidate profiles in the inventory of candidate profiles;
generating a recommendation set of profiles by incorporating candidate profiles from the inventory of candidate profiles until a value of the predefined statistic computed for the recommendation set of profiles is substantially the same as the inventory value; and
causing presentation of the recommendation set of profiles on a display device of the new user.

### Claim 14 (depends on 13)

The system of claim 13, wherein the one-hop profiles each include contact information identifying a user.

### Claim 15 (depends on 13)

The system of claim 13, wherein the determining of the one-hop profiles comprises:
determining that a user identifier, of the user identifiers associated with the new user, is associated with a candidate profile representing an existing user in a messaging system;
determining that the new user is not referenced as a connection or contact by the candidate profile; and
omitting the candidate profile from inclusion into the one-hop profiles.

### Claim 16 (depends on 13)

The system of claim 13, wherein each profile from the one-hop profiles includes connection information indicating at least a predetermined number of social network connections.

### Claim 17 (depends on 13)

The system of claim 13, wherein the determining of the two-hop profiles comprises determining that a number of profiles in the one-hop profiles is equal to or greater than a predetermined threshold.

### Claim 18 (depends on 13)

The system of claim 13, wherein:
determining the two-hop profiles using one-hop connection information associated with the one-hop profiles comprises determining a candidate profile referenced by the one-hop connection information;
determining that the candidate profile includes a reference to a profile from the one-hop profiles; and
in response to the determining that the candidate profile includes a reference to the profile from the one-hop profiles, including the candidate profile in the two-hop profiles.

### Claim 19 (depends on 13)

The system of claim 13, wherein the one-hop connection information is a social network connection.

### Claim 20

A machine-readable non-transitory storage medium having instruction data executable by a machine to cause the machine to perform operations comprising:
determining one-hop profiles using user identifiers associated with a new user, the user identifiers corresponding to potential connections for the new user;
determining two-hop profiles using one-hop connection information associated with the one-hop profiles;
determining three-hop profiles using two-hop connection information associated with the two-hop profiles;
generating an inventory of candidate profiles for recommendation to the new user by sampling profiles from the two-hop profiles and the three-hop profiles;
generating an inventory value for the inventory of candidate profiles by computing a predefined statistic using attributes of the candidate profiles in the inventory of candidate profiles;
generating a recommendation set of profiles by incorporating candidate profiles from the inventory of candidate profiles until a value of the predefined statistic computed for the recommendation set of profiles is substantially the same as the inventory value; and
causing presentation of the recommendation set of profiles on a display device of the new user.
