IP Library Granted Patent US 9,852,212
Granted Patent B2
US 9,852,212 · App. 15/259,630 · Granted Dec 26, 2017

Dynamic clustering for streaming data

Inventors: Matthew DeLand (San Francisco, CA); Chander Iyer (Troy, NY)
Assignee: Groupon, Inc.
G06F17/30598G06F17/30592
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,852,212
App. No.
15/259,630
Granted
Dec 26, 2017
Kind
B2
Abstract

In general, embodiments of the present invention provide systems, methods and computer readable media for modeling multi-dimensional, dynamically evolving data using dynamic clustering. In one aspect, a method includes receiving a core group of clusters of objects, each object being represented by a corresponding instance of a multi-dimensional feature vector including a dimension k; receiving a stream of data points representing a group of objects, each data point respectively representing an instance of dimension k describing a feature of an object within the group of objects; and, for each data point, adding an object described by the data point to a first cluster of objects within the core group of clusters; updating properties of the first cluster of objects in response to adding the object; and determining whether to update the core group of clusters using the updated properties of the first cluster of objects.

Claims (55)

1. A computer-implemented method, comprising:

generating a core group of clusters of objects;

receiving, by a server computer, the core group of clusters of objects, wherein each object of the objects is represented by a corresponding instance of a multi-dimensional feature vector including a dimension k, wherein k is a number, wherein the core group of clusters of objects is clustered based on the dimension k; wherein the generating the core group of clusters of objects is based in part on at least a tuning parameter representing one or more of clustering density, clustering distance, and a clustering standard deviation;

receiving, by the server computer during a particular time window, a multi-dimensional stream of data points representing the objects of the core group of clusters, each data point of the data points respectively representing an instance of a dimension k describing a feature of an object within the group of objects; and

for said each data point of the data points,

adding, by the server computer, an object described by the data point to a first cluster of objects within the core group of clusters in response to classifying the object as belonging to the first cluster of objects;

updating, by the server computer, properties of the first cluster of objects in response to the adding the object, wherein the updating the properties includes calculating a first standard deviation of clustering dimension k for the first cluster of objects;

in response to receiving a request via network for core cluster information, determining, by the server computer, whether to update the core group of clusters using the updated properties of the first cluster of objects, wherein the determining whether to update the core group of clusters of objects comprises: comparing the first standard deviation of clustering dimension k to a minimum standard deviation of clustering dimension k and updating, by the server computer, the core group of clusters of objects based on the tuning parameter representing clustering density.

2. The method of claim 1 ,

in an instance in which the first standard deviation of clustering dimension k is greater than the minimum standard deviation of clustering dimension k, splitting the first cluster of objects by dividing the first cluster of objects into a second cluster of objects and a third cluster of objects.

3. The method of claim 2 , further comprising:

in an instance in which the first standard deviation of clustering dimension k is less than or equal to the minimum standard deviation of clustering dimension k,

selecting a fourth cluster of objects that is closest to the first cluster of objects within the core group of clusters of objects;

calculating a combined standard deviation of clustering dimension k for the combined first cluster of objects and fourth cluster of objects; and

in an instance in which the combined standard deviation of clustering dimension k is less than or equal to the minimum standard deviation of clustering dimension k, generating a fifth cluster of objects within the core group of clusters by merging the first cluster of objects and the fourth cluster of objects.

4. The method of claim 1 , wherein the tuning parameter is one of a minimum number of data points to form a core cluster or a minimum number of neighborhood points for merging into core clusters.

5. The method of claim 1 , wherein the stream of data points is collected during a particular time window.

6. The method of claim 1 , wherein the core group of clusters of objects represents a group of objects belonging to a taxonomy hierarchy.

7. A system, comprising:

one or more computers, each computer of the one or more computers having a processor and memory and one or more storage devices storing instructions that when executed by the one or more computers cause the one or more computers to perform operations comprising:

generating a core group of clusters of objects;

receiving the core group of clusters of objects, wherein each object of the objects is represented by a corresponding instance of a multi-dimensional feature vector including a dimension k, wherein k is a number, wherein the core group of clusters of objects is clustered based on the dimension k; wherein the generating the core group of clusters of objects is based in part on at least a tuning parameter representing one or more of clustering density, clustering distance, and a clustering standard deviation;

receiving, during a particular time window, a multi-dimensional stream of data points representing the objects of the core group of clusters, each data point of the data points respectively representing an instance of dimension k describing a feature of an object within the group of objects;

for said each data point of the data points,

adding an object described by the data point to a first cluster of objects within the core group of clusters in response to classifying the object as belonging to the first cluster of objects;

updating properties of the first cluster of objects in response to the adding the object, wherein the updating the properties includes calculating a first standard deviation of clustering dimension k for the first cluster of objects; and

in response to receiving a request via network for core cluster information, determining, whether to update the core group of clusters using the updated properties of the first cluster of objects, wherein the determining whether to update the core group of clusters of objects comprises: comparing the first standard deviation of clustering dimension k to a minimum standard deviation of clustering dimension k and updating the core group of clusters of objects based on the tuning parameter representing clustering density.

8. The system of claim 7 , wherein determining whether to update the core group of clusters of objects comprises:

in an instance in which the first standard deviation of clustering dimension k is greater than the minimum standard deviation of clustering dimension k, splitting the first cluster of objects by dividing the first cluster of objects into a second cluster of objects and a third cluster of objects.

9. The system of claim 8 , further comprising:

in an instance in which the first standard deviation of clustering dimension k is less than or equal to the minimum standard deviation of clustering dimension k,

selecting a fourth cluster of objects that is closest to the first cluster of objects within the core group of clusters of objects:

calculating a combined standard deviation of clustering dimension k for the combined first cluster of objects and fourth cluster of objects; and

in an instance in which the combined standard deviation of clustering dimension k is less than or equal to the minimum standard deviation of clustering dimension k, generating a fifth cluster of objects within the core group of clusters by merging the first cluster of objects and the fourth cluster of objects.

10. The system of claim 7 , wherein the tuning parameter is one of a minimum number of data points to form a core cluster or a minimum number of neighborhood points for merging into core clusters.

11. The system of claim 7 , wherein the stream of data points is collected during a particular time window.

12. The system of claim 7 , wherein the core group of clusters of objects represents a group of objects belonging to a taxonomy hierarchy.

13. A computer program product, stored on a non-transitory computer readable medium, comprising instructions that when executed on one or more computers cause the one or more computers to perform operations comprising:

generating a core group of clusters of objects;

receiving the core group of clusters of objects, wherein each object of the objects is represented by a corresponding instance of a multi-dimensional feature vector including a dimension k, wherein k is a number, wherein the core group of clusters of objects is clustered based on the dimension k; wherein the generating the core group of clusters of objects is based in part on at least a tuning parameter representing one or more of clustering density, clustering distance, and a clustering standard deviation;

receiving, during a particular time window, a multi-dimensional stream of data points representing the objects of the core group of clusters, each data point of the data points respectively representing an instance of dimension k describing a feature of an object within the group of objects;

for said each data point of the data points,

adding an object described by the data point to a first cluster of objects within the core group of clusters in response to classifying the object as belonging to the first cluster of objects;

updating properties of the first cluster of objects in response to the adding the object, wherein the updating the properties includes calculating a first standard deviation of clustering dimension k for the first cluster of objects; and

in response to receiving a request via network for core cluster information, determining, whether to update the core group of clusters using the updated properties of the first cluster of objects, wherein the determining whether to update the core group of clusters of objects comprises: comparing the first standard deviation of clustering dimension k to a minimum standard deviation of clustering dimension k and updating the core group of clusters of objects based on the tuning parameter representing clustering density.

14. The computer program product of claim 13 ,

in an instance in which the first standard deviation of clustering dimension k is greater than the minimum standard deviation of clustering dimension k, splitting the first cluster of objects by dividing the first cluster of objects into a second cluster of objects and a third cluster of objects.

15. The computer program product of claim 14 , further comprising:

in an instance in which the first standard deviation of clustering dimension k is less than or equal to the minimum standard deviation of clustering dimension k,

selecting a fourth cluster of objects that is closest to the first cluster of objects within the core group of clusters of objects;

calculating a combined standard deviation of clustering dimension k for the combined first cluster of objects and fourth cluster of objects; and

in an instance in which the combined standard deviation of clustering dimension k is less than or equal to the minimum standard deviation of clustering dimension k, generating a fifth cluster of objects within the core group of clusters by merging the first cluster of objects and the fourth cluster of objects.

16. The computer program product of claim 13 , wherein the tuning parameter is one of a minimum number of data points to form a core cluster or a minimum number of neighborhood points for merging into core clusters.

17. The computer program product of claim 13 wherein the stream of data points is collected during a particular time window.

18. The computer program product of claim 13 wherein the core group of clusters of objects represents a group of objects belonging to a taxonomy hierarchy.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 12, 2024
From: GROUPON, INC.
To: BYTEDANCE INC.
Reel/Frame 068833/0811 →
RELEASE OF SECURITY INTEREST Recorded Feb 26, 2024
From: JPMORGAN CHASE BANK, N.A.
To: GROUPON, INC.; LIVINGSOCIAL, LLC (F/K/A LIVINGSOCIAL, INC.)
Reel/Frame 066676/0001 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN INTELLECTUAL PROPERTY RIGHTS Recorded Feb 26, 2024
From: JPMORGAN CHASE BANK, N.A.
To: GROUPON, INC.; LIVINGSOCIAL, LLC (F/K/A LIVINGSOCIAL, INC.)
Reel/Frame 066676/0251 →
SECURITY INTEREST Recorded Jul 23, 2020
From: GROUPON, INC.; LIVINGSOCIAL, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 053294/0495 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2017
From: DELAND, MATTHEW; IYER, CHANDLER J.
To: GROUPON, INC.
Reel/Frame 042001/0456 →
Continuity (2)
Continuation 14038661 · Sep 26, 2013
Related Publication 20170124178A1 · May 4, 2017