IP Library Granted Patent US 11,783,370
Granted Patent B2
US 11,783,370 · App. 17/819,511 · Granted Oct 10, 2023

Graph-based compression of data records

Inventors: Ricardo A. Zilleruelo-Ramos (Mountain View, CA); Hernan Enrique Arroyo Garcia (Mountain View, CA); Joe Frisbie (Seattle, WA); Gaston L'Huillier (San Francisco, CA); Francisco Jose Larrain (Palo Alto, CA)
Assignee: Groupon, Inc.
G06Q30/0246G06F16/1744G06F16/2282G06F16/951G06F16/955H03M7/30H03M7/70
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,783,370
App. No.
17/819,511
Granted
Oct 10, 2023
Kind
B2
Abstract

In general, embodiments of the present invention provide systems, methods and computer readable media for data record compression using graph-based techniques. An example method includes determining a plurality of index components; generating a sorted data record list of a plurality of compound data records; generating an ordered unique index component value list associated with a plurality of unique index component values; assigning a plurality of encodings to the plurality of unique index component values; and generating the compressed data record list based on the ordered unique index component value list and the plurality of encodings.

Claims (52)

1. An apparatus for generating a compressed data record list, the apparatus comprising a processor and a non-transitory memory storing program instructions, wherein the non-transitory memory and the program instructions are configured to, with the processor, cause the apparatus to at least:

determine a plurality of index components associated with a plurality of compound data records in a compound data record set;

generate a sorted data record list of the plurality of compound data records based on a plurality of index component values associated with the plurality of index components;

generate, based on the sorted data record list, an ordered unique index component value list associated with a plurality of unique index component values from the plurality of index component values;

assign a plurality of encodings to the plurality of unique index component values, wherein each of the plurality of encodings represents a data record quantity associated with a respective unique index component value; and

generate the compressed data record list based on the ordered unique index component value list and the plurality of encodings.

2. The apparatus of claim 1 , wherein, prior to determining the plurality of index components, the non-transitory memory and the program instructions are configured to, with the processor, cause the apparatus to:

receive an impression data record set describing a user behavior instance sequence collected during a time window, wherein the impression data record set is associated with a user identifier, wherein the impression data record set comprises the plurality of compound data records.

3. The apparatus of claim 2 , wherein the non-transitory memory and the program instructions are configured to, with the processor, cause the apparatus to:

generate a directed link graph representing the user behavior instance sequence, wherein the directed link graph comprises graph nodes and graph edges, wherein each of the graph nodes represents a user behavior instance within the user behavior instance sequence, wherein each of the graph edges represents a hyperlink between a pair of graph nodes.

4. The apparatus of claim 1 , wherein the non-transitory memory and the program instructions are configured to, with the processor, cause the apparatus to:

determine that a first component of each of the plurality of compound data records is an index component of the plurality of index components.

5. The apparatus of claim 4 , wherein the non-transitory memory and the program instructions are configured to, with the processor, cause the apparatus to:

identify a unique second component value set comprising a plurality of unique second component values associated with a second component of each of the plurality of compound data records, wherein the second component is different from the index component.

6. The apparatus of claim 5 , wherein the non-transitory memory and the program instructions are configured to, with the processor, cause the apparatus to:

determine a data record position list based at least in part on at least one data record position within the compound data record set corresponding to at least one compound data record that is associated with one of the plurality of unique second component values.

7. The apparatus of claim 6 , wherein the non-transitory memory and the program instructions are configured to, with the processor, cause the apparatus to:

generate a data record encoding of the plurality of compound data records based at least in part on associating the second component with the unique second component value set and the data record position list.

8. A computer program product for generating a compressed data record list, the computer program product comprising at least one non-transitory computer readable storage medium having computer executable code portions stored therein, the computer executable code portions comprising program code instructions configured to:

determine a plurality of index components associated with a plurality of compound data records in a compound data record set;

generate a sorted data record list of the plurality of compound data records based on a plurality of index component values associated with the plurality of index components;

generate, based on the sorted data record list, an ordered unique index component value list associated with a plurality of unique index component values from the plurality of index component values;

assign a plurality of encodings to the plurality of unique index component values, wherein each of the plurality of encodings represents a data record quantity associated with a respective unique index component value; and

generate the compressed data record list based on the ordered unique index component value list and the plurality of encodings.

9. The computer program product of claim 8 , wherein, prior to determining the plurality of index components, the computer executable code portions comprise the program code instructions configured to:

receive an impression data record set describing a user behavior instance sequence collected during a time window, wherein the impression data record set is associated with a user identifier, wherein the impression data record set comprises the plurality of compound data records.

10. The computer program product of claim 9 , wherein the computer executable code portions comprise the program code instructions configured to:

generate a directed link graph representing the user behavior instance sequence, wherein the directed link graph comprises graph nodes and graph edges, wherein each of the graph nodes represents a user behavior instance within the user behavior instance sequence, wherein each of the graph edges represents a hyperlink between a pair of graph nodes.

11. The computer program product of claim 8 , wherein the computer executable code portions comprise the program code instructions configured to:

determine that a first component of each of the plurality of compound data records is an index component of the plurality of index components.

12. The computer program product of claim 11 , wherein the computer executable code portions comprise the program code instructions configured to:

identify a unique second component value set comprising a plurality of unique second component values associated with a second component of each of the plurality of compound data records, wherein the second component is different from the index component.

13. The computer program product of claim 12 , wherein the computer executable code portions comprise the program code instructions configured to:

determine a data record position list based at least in part on at least one data record position within the compound data record set corresponding to at least one compound data record that is associated with one of the plurality of unique second component values.

14. The computer program product of claim 13 , wherein the computer executable code portions comprise the program code instructions configured to:

generate a data record encoding of the plurality of compound data records based at least in part on associating the second component with the unique second component value set and the data record position list.

15. A computer-implemented method for generating a compressed data record list, the computer-implemented method comprising:

determining a plurality of index components associated with a plurality of compound data records in a compound data record set;

generating a sorted data record list of the plurality of compound data records based on a plurality of index component values associated with the plurality of index components;

generating, based on the sorted data record list, an ordered unique index component value list associated with a plurality of unique index component values from the plurality of index component values;

assigning a plurality of encodings to the plurality of unique index component values, wherein each of the plurality of encodings represents a data record quantity associated with a respective unique index component value; and

generating the compressed data record list based on the ordered unique index component value list and the plurality of encodings.

16. The computer-implemented method of claim 15 , wherein, prior to determining the plurality of index components, the computer-implemented method further comprises:

receiving an impression data record set describing a user behavior instance sequence collected during a time window, wherein the impression data record set is associated with a user identifier, wherein the impression data record set comprises the plurality of compound data records.

17. The computer-implemented method of claim 16 , further comprising:

generating a directed link graph representing the user behavior instance sequence, wherein the directed link graph comprises graph nodes and graph edges, wherein each of the graph nodes represents a user behavior instance within the user behavior instance sequence, wherein each of the graph edges represents a hyperlink between a pair of graph nodes.

18. The computer-implemented method of claim 15 , further comprising:

determining that a first component of each of the plurality of compound data records is an index component of the plurality of index components.

19. The computer-implemented method of claim 18 , further comprising:

identifying a unique second component value set comprising a plurality of unique second component values associated with a second component of each of the plurality of compound data records, wherein the second component is different from the index component.

20. The computer-implemented method of claim 19 , further comprising:

determining a data record position list based at least in part on at least one data record position within the compound data record set corresponding to at least one compound data record that is associated with one of the plurality of unique second component values.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 12, 2024
From: GROUPON, INC.
To: BYTEDANCE INC.
Reel/Frame 068722/0203 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 24, 2022
From: LARRAIN, FRANCISCO JOSE
To: GROUPON, INC.
Reel/Frame 060887/0292 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 12, 2022
From: ZILLERUELO-RAMOS, RICARDO A.; ARROYO GARCIA, HERNAN ENRIQUE; FRISBIE, JOE; L'HUILLIER, GASTON
To: GROUPON, INC.
Reel/Frame 060798/0588 →