IP Library Granted Patent US 9,900,392
Granted Patent B2
US 9,900,392 · App. 14/750,509 · Granted Feb 20, 2018

Identifying groups for recommendation to a social networking system user based on user location and locations associated with groups

Inventors: Bradley Ray Green (Snohomish, WA); Li Ju (Issaquah, WA); Jireh Yiwei Tan (San Francisco, CA); Chen Wang (Redmond, WA); Yi Miao (Redmond, WA)
Assignee: Facebook, Inc.
H04L67/18G06F17/3087G06Q50/01
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 9,900,392
App. No.
14/750,509
Granted
Feb 20, 2018
Kind
B2
Abstract

A social networking system selects a set of groups for presentation to a user of the social networking system. To select groups, the social networking system identifies candidate groups and selects the set of groups from the candidate groups. To identify certain candidate groups, the social networking system determines a location associated with various groups based on locations associated with users included in the group. For example, the social networking system determines a centroid of a group based on locations associated with users included in the group and associates the centroid with the group if at least a threshold percentage of distances between locations associated with users included in the group and the centroid do not exceed a threshold distance. Groups associated with locations within a threshold distance of a location associated with the user are identified as candidate groups.

Claims (64)

1. A method comprising:

maintaining one or more groups at an online system, each group including one or more users of the online system, with each user associated with a location;

determining a location associated with each of the one or more groups, the location associated with a group based at least in part on locations associated with users in the group, comprising:

determining a centroid of the locations associated with users in the group;

determining distances between locations associated with each user in the group and the centroid;

generating a histogram of the determined distances; and

determining the centroid as the location associated with the group in response to at least a threshold percentile of the determined distances from the histogram being less than or equal to a threshold distance;

receiving a request from a requesting user of a social networking system to identify one or more groups maintained by the social networking system;

determining a plurality of candidate groups for the requesting user from the one or more groups based at least in part on a distance between a location associated with the requesting user and locations associated with each of the one or more groups, a candidate group associated with a location within a threshold distance of the location associated with the user;

including the plurality of candidate groups in one or more selection processes selecting a set of groups; and

communicating information identifying the selected set of groups to a client device associated with the requesting user for presentation.

2. The method of claim 1 , wherein the location associated with the group is based at least in part on hometowns associated with each user in the group and specified by the users.

3. The method of claim 1 , wherein the location associated with the group is based at least in part on locations associated with each user in the group determined by the social networking system from locations received from client devices associated with users in the group.

4. The method of claim 1 , wherein determining the plurality of candidate groups for the requesting user from the one or more groups based at least in part on the distance between the location associated with the requesting user and locations associated with each of the one or more groups comprises:

identifying a geographic region including the location associated with the requesting user, the geographic region including locations within a specified geographic area; and

determining the plurality of candidate groups as groups associated with locations included in the identified geographic region.

5. The method of claim 1 , wherein determining the plurality of candidate groups for the requesting user from the one or more groups based at least in part on the distance between the location associated with the requesting user and locations associated with each of the one or more groups comprises:

identifying a geographic region including the location associated with the requesting user, the geographic region including locations within a specified geographic area; and

identifying groups associated with locations included in the identified geographic region; and

selecting identified groups satisfying at least a threshold number of criteria as candidate groups.

6. The method of claim 5 , wherein one of the criteria specifies a threshold percentage of users in an identified group identifying a common employer and selecting identified groups satisfying at least the threshold number of criteria as candidate groups comprises:

selecting identified groups having less than the threshold percentage of users identifying the common employer.

7. The method of claim 5 , wherein one of the criteria specifies a threshold percentage of users in an identified group having connections to each other indicating a specific relationship between the users and selecting identified groups satisfying at least the threshold number of criteria as candidate groups comprises:

selecting identified groups having less than the threshold percentage of users having connections to each other indicating the specific relationship between the users.

8. The method of claim 1 , wherein determining the plurality of candidate groups for the requesting user from the one or more groups based at least in part on the distance between the location associated with the requesting user and locations associated with each of the one or more groups comprises:

identifying a geographic region including the location associated with the requesting user, the geographic region including locations within a specified geographic area; and

identifying groups associated with locations included in the identified geographic region;

determining a density of groups associated with locations associated with the identified geographic region based at least in part on a number of the identified groups and an area of the geographic region;

generating a modified geographic region including the location associated with the requesting user by reducing one or more dimensions of the geographic region in response to the density of groups exceeding a threshold value; and

identifying groups associated with locations within the modified geographic region as candidate groups.

9. The method of claim 1 , wherein determining the plurality of candidate groups for the requesting user from the one or more groups based at least in part on the distance between the location associated with the requesting user and locations associated with each of the one or more groups comprises:

identifying a geographic region including the location associated with the requesting user, the geographic region including locations within a specified geographic area; and

identifying groups associated with locations included in the identified geographic region;

determining a number of the identified groups;

generating a modified geographic region including the location associated with the requesting user by reducing one or more dimensions of the geographic region in response to number of identified groups exceeding a threshold value; and

identifying groups associated with locations within the modified geographic region as candidate groups.

10. A computer program product comprising a non-transitory computer readable storage medium having instructions encoded thereon that, when executed by a processor, cause the processor to:

maintain one or more groups at an online system, each group including one or more users of the online system, with each user associated with a location;

determine a location associated with each of the one or more groups, the location associated with a group based at least in part on locations associated with users in the group, comprising:

determine a centroid of the locations associated with users in the group;

determine distances between locations associated with each user in the group and the centroid;

generate a histogram of the determined distances; and

determine the centroid as the location associated with the group in response to at least a threshold percentile of the determined distances from the histogram being less than or equal to a threshold distance;

receive a request from a requesting user of a social networking system to identify one or more groups maintained by the social networking system;

determine a plurality of candidate groups for the requesting user from the one or more groups based at least in part on a distance between a location associated with the requesting user and locations associated with each of the one or more groups, a candidate group associated with a location within a threshold distance of the location associated with the user;

include the plurality of candidate groups in one or more selection processes selecting a set of groups; and

communicate information identifying the selected set of groups to a client device associated with the requesting user for presentation.

11. The computer program product of claim 10 , wherein the location associated with the group is based at least in part on hometowns associated with each user in the group and specified by the users.

12. The computer program product of claim 10 , wherein the location associated with the group is based at least in part on locations associated with each user in the group determined by the social networking system from locations received from client devices associated with users in the group.

13. The computer program product of claim 10 , wherein determining the plurality of candidate groups for the requesting user from the one or more groups based at least in part on the distance between the location associated with the requesting user and locations associated with each of the one or more groups comprises:

identify a geographic region including the location associated with the requesting user, the geographic region including locations within a specified geographic area; and

determine the plurality of candidate groups as groups associated with locations included in the identified geographic region.

14. The computer program product of claim 10 , wherein determining the plurality of candidate groups for the requesting user from the one or more groups based at least in part on the distance between the location associated with the requesting user and locations associated with each of the one or more groups comprises:

identify a geographic region including the location associated with the requesting user, the geographic region including locations within a specified geographic area; and

identify groups associated with locations included in the identified geographic region; and

select identified groups satisfying at least a threshold number of criteria as candidate groups.

15. The computer program product of claim 14 , wherein one of the criteria specifies a threshold percentage of users in an identified group identifying a common employer and selecting identified groups satisfying at least the threshold number of criteria as candidate groups comprises:

select identified groups having less than the threshold percentage of users identifying the common employer.

16. The computer program product of claim 10 , wherein determine the plurality of candidate groups for the requesting user from the one or more groups based at least in part on the distance between the location associated with the requesting user and locations associated with each of the one or more groups comprises:

identify a geographic region including the location associated with the requesting user, the geographic region including locations within a specified geographic area; and

identify groups associated with locations included in the identified geographic region;

determine a density of groups associated with locations associated with the identified geographic region based at least in part on a number of the identified groups and an area of the geographic region;

generate a modified geographic region including the location associated with the requesting user by reducing one or more dimensions of the geographic region in response to the density of groups exceeding a threshold value; and

identify groups associated with locations within the modified geographic region as candidate groups.

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 Oct 6, 2015
From: GREEN, BRADLEY RAY; JU, LI; TAN, JIREH YIWEI; WANG, CHEN; MIAO, YI
To: FACEBOOK, INC.
Reel/Frame 036740/0381 →
Continuity (1)
Related Publication 20160378776A1 · Dec 29, 2016