IP Library Granted Patent US 11,816,582
Granted Patent B2
US 11,816,582 · App. 17/507,691 · Granted Nov 14, 2023

Heuristic search for k-anonymization

Inventor: David Jensen (Ouray, CO)
Assignee: Snowflake Inc.
G06N5/01G06F16/24564
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,816,582
App. No.
17/507,691
Granted
Nov 14, 2023
Kind
B2
Abstract

A device searches for an anonymization of a data set using a heuristic search. The device receives a generalization lattice and one or more scoring functions. The device further can include selecting a start node in the generalization lattice. For each of the one or more scoring functions, the device can further include computing a path the generalization lattice from the start node that traverses the generalization lattice. In addition, the device can include determining an optimal path node from each of the one or more paths. Furthermore, the method can include selecting an optimal node from the one or more optimal path nodes.

Claims (48)

1. A method comprising:

receiving a generalization lattice and one or more scoring functions;

selecting a start node and an end node in the generalization lattice;

for each of the one or more scoring functions, computing, with a processing device, a path through the generalization lattice from the start node to the end node that traverses the generalization lattice, wherein a plurality of levels in the generalization lattice each represent a different level of generalization of N columns of quasi-identifier data, wherein the computing of the path comprises:

computing one or more first values, using the scoring function, from a first node on a first level of the generalization lattice to one or more second neighboring nodes on a second level of the generalization lattice;

adding, from the one or more second neighboring nodes, a best node from the second level to the path based on the one or more first values;

computing one or more second values, using the scoring function, from the best node on the second level to one or more third neighboring nodes on a third level of the generalization lattice; and

adding, from the one or more third neighboring nodes, a best node from the third level to the path based on the one or more second values, wherein, at a completion of the computing for each of the plurality of levels, the path comprises one node added from each of the plurality of levels between the start node and the end node;

determining an optimal path node from each of the one or more paths; and

selecting an optimal node from the one or more optimal path nodes.

2. The method of claim 1 , wherein the optimal node is a node that is used to initialize another other lattice search algorithm by providing a better bound on an information loss function.

3. The method of claim 1 , wherein the generalization lattice is a representation of a solution space for the N columns of quasi-identifier data having the same or different levels of generalizations.

4. The method of claim 1 , wherein the start node is a bottom node of the generalization lattice and the end node is a top node of the generalization lattice.

5. The method of claim 1 , wherein the start node is a top node of the generalization lattice and the end node is a bottom node of the generalization lattice.

6. The method of claim 1 , wherein input for the one or more scoring functions includes one or more of a generalization lattice height, generalization lattice width, and a share of a hierarchy at a given level of the generalization lattice.

7. The method of claim 1 , further comprising:

determining a bound from the optimal node, wherein the bound is used to prune equivalences.

8. A system comprising:

a data source;

one or more non-transitory processing devices to:

receive a generalization lattice and one or more scoring functions;

select a start node and an end node in the generalization lattice;

for each of the one or more scoring functions, compute a path the generalization lattice from the start node to the end node that traverses the generalization lattice, wherein a plurality of levels in the generalization lattice each represent a different level of generalization of N columns of quasi-identifier data, wherein, to compute the path, the one or more non-transitory processing devices to:

compute one or more first values, using the scoring function, from a first node on a first level of the generalization lattice to one or more second neighboring nodes on a second level of the generalization lattice;

add, from the one or more second neighboring nodes, a best node from the second level to the path based on the one or more first values;

compute one or more second values, using the scoring function, from the best node on the second level to one or more third neighboring nodes on a third level of the generalization lattice; and

add, from the one or more third neighboring nodes, a best node from the third level to the path based on the one or more second values, wherein, at a completion of the computing for each of the plurality of levels, the path comprises one node added from each of the plurality of levels between the start node and the end node;

determine an optimal path node from each of the one or more paths; and

select an optimal node from the one or more optimal path nodes.

9. The system of claim 8 , wherein the optimal node is a node that is used to initialize another other lattice search algorithm by providing a better bound on an information loss function.

10. The system of claim 8 , wherein the generalization lattice is a representation of a solution space for the N columns of quasi-identifier data having the same or different levels of generalizations.

11. The system of claim 8 , wherein the start node is a bottom node of the generalization lattice and the end node is a top node of the generalization lattice.

12. The system of claim 8 , wherein the start node is a top node of the generalization lattice and the end node is a bottom node of the generalization lattice.

13. The system of claim 8 , wherein input for the one or more scoring functions includes one or more of a generalization lattice height, generalization lattice width, and a share of a hierarchy at a given level of the generalization lattice.

14. The system of claim 8 , wherein the one or more processing devices further to:

determine a bound from the optimal node, wherein the bound is used to prune equivalences.

15. A non-transitory machine-readable medium storing instructions which, when executed by one or more processors of a computing device, cause the one or more processing devices to:

receive a generalization lattice and one or more scoring functions;

select a start node and an end node in the generalization lattice;

for each of the one or more scoring functions, compute, by the one or more processing devices, a path the generalization lattice from the start node to the end node that traverses the generalization lattice, wherein a plurality of levels in the generalization lattice each represent a different level of generalization of N columns of quasi-identifier data, wherein, to compute the path, the one or more processing devices to:

compute one or more first values, using the scoring function, from a first node on a first level of the generalization lattice to one or more second neighboring nodes on a second level of the generalization lattice;

add, from the one or more second neighboring nodes, a best node from the second level to the path based on the one or more first values;

compute one or more second values, using the scoring function, from the best node on the second level to one or more third neighboring nodes on a third level of the generalization lattice; and

add, from the one or more third neighboring nodes, a best node from the third level to the path based on the one or more second values, wherein, at a completion of the computing for each of the plurality of levels, the path comprises one node added from each of the plurality of levels between the start node and the end node;

determine an optimal path node from each of the one or more paths; and

select an optimal node from the one or more optimal path nodes.

16. The non-transitory machine-readable medium of claim 15 , wherein the optimal node is a node that is used to initialize another other lattice search algorithm by providing a better bound on an information loss function.

17. The non-transitory machine-readable medium of claim 15 , wherein the generalization lattice is a representation of a solution space for N columns of quasi-identifier data having the same or different levels of generalizations.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 17, 2021
From: JENSEN, DAVID
To: SNOWFLAKE INC.
Reel/Frame 058136/0916 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE 17/507961 REPLACE 17/508.705 PREVIOUSLY RECORDED AT REEL: 057882 FRAME: 0807. ASSIGNOR(S) HEREBY CONFIRMS THE . Recorded Oct 22, 2021
From: CRUANES, THIERRY; DAGEVILLE, BENOIT; MOTIVALA, ASHISH; ZUKOWSKI, MARCIN
To: SNOWFLAKE COMPUTING INC.
Reel/Frame 057882/0807 →
Continuity (1)
Related Publication 20230131743A1 · Apr 27, 2023