IP Library Granted Patent US 12,455,984
Granted Patent B2
US 12,455,984 · App. 18/305,148 · Granted Oct 28, 2025

Machine learning for data anonymization

Inventors: Grant Howard George Middleton (Toronto, CA); Brian Joseph Rasquinha (Ontario, CA)
Assignee: Privacy Analytics Inc.
G06F21/6254
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 12,455,984
App. No.
18/305,148
Granted
Oct 28, 2025
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for anonymizing unstructured data. In some implementations, a server can receive unstructured data. The server can automatically detect attributes in the unstructured data using a trained machine-learning model and can determine an amount of undetected attributes and detected attributes in the unstructured data. The server can simulate additional attributes for the unstructured data according to the amount of undetected attributes. The server can analyze a risk of disclosure in the unstructured data using the detected attributes and the simulated additional attributes. The server can modify the detected attributes according to the analyzed risk of disclosure and replace the detected attributes with the modified detected attributes in the unstructured data.

Claims (98)

1. A computer-implemented method comprising:

automatically, using a trained machine-learning model, detecting attributes in unstructured data;

determining an amount of undetected attributes and detected attributes in the unstructured data;

simulating additional attributes for the unstructured data according to the amount of undetected attributes, wherein the sampling comprises, for each undetected attribute:

sampling a population distribution for a sampled value, wherein the population distribution is an externally supplied reference distribution;

computing a sampling frequency according to the sampled value; and

assigning the sampling frequency as an additional attribute;

analyzing a risk of disclosure in the unstructured data using the detected attributes and the simulated additional attributes, wherein the analyzing comprises:

assigning a first information value to each detected attribute according to samples received from a first statistical distribution used to simulate the additional attributes;

assigning a second information value to each simulated additional attribute according to samples retrieved from a second statistical distribution, wherein the second statistical distribution is generated based on attributes that change with respect to time;

aggregating the first information value for each detected attribute and the second information value for each simulated additional attribute into an aggregated value;

determining an anonymity value using the first information value, the second information value, the aggregated value, and a size of a population associated with the unstructured data; and

determining the risk of disclosure in the unstructured data using the determined anonymity value;

modifying the detected attributes according to the analyzed risk of disclosure; and

replacing the detected attributes with the modified detected attributes in the unstructured data.

2. The computer-implemented method of claim 1 , wherein the unstructured data comprise medical records, emails, presentations, textbooks, brochures, websites, documents, audio recordings, images, and videos.

3. The computer-implemented method of claim 1 , further comprising:

generating a machine-learning model that is configured to detect the attributes in the unstructured data, wherein generating the machine-learning model comprises:

training the machine-learning model to detect the attributes in a first subset of the unstructured data;

determining a number of undetected attributes in the training of the machine-learning model; and

retraining the machine-learning model to detect the attributes in the first subset of the unstructured data based on data indicative of the undetected attributes.

4. The computer-implemented method of claim 3 , further comprising:

determining the number of the undetected attributes in the first subset satisfies a threshold limit;

in response to determining the number of the undetected attributes satisfies the threshold limit, deploying the trained machine-learning model; and

detecting, by the trained machine-learning model, the attributes in a second subset of the unstructured data by providing the second subset as input to the trained machine-learning model, wherein the second subset of the unstructured data is different from the first subset of the unstructured data.

5. The computer-implemented method of claim 4 , wherein detecting the attributes in the second subset of the unstructured data by providing the second subset as input to the trained machine-learning model further comprises:

for each detected attribute:

generating, by the trained machine-learning model, an identifier in the second subset of the unstructured data that represents (i) an identified location of the detected attribute and (ii) an indication of a detected attribute;

generating, by the trained machine-learning model, a confidence level associated with the identifier that indicates how likely a corresponding detected attribute represents an actual attribute according to criteria;

comparing the confidence level to a threshold level; and

in response to determining the confidence level satisfies the threshold level, labeling a portion of the unstructured data with the identifier at the identified location of the corresponding detected attribute.

6. The computer-implemented method of claim 1 , wherein automatically detecting the attributes in the unstructured data further comprises:

receiving data specifying criteria associated with attributes to be detected in the unstructured data; and

receiving data specifying criteria associated with attributes not to be detected in the unstructured data.

7. The computer-implemented method of claim 6 , wherein the criteria comprise a name, a date of birth, a personal identifier, an age, a location, a medical diagnosis, a relevant date, personal characteristics, and an address.

8. The computer-implemented method of claim 6 , wherein determining the amount of undetected attributes and detected attributes in the unstructured data further comprises:

determining a number of identifiers associated with the detected attributes labeled in the unstructured data; and

determining a number of undetected attributes in the unstructured data, wherein determining the number of undetected attributes comprises:

determining a difference between (i) the number of identifiers associated with the detected attributes to (ii) a known number of detected attributes in the unstructured data, wherein the known number of detected attributes is supplied by an external party; and

in response to determining the difference between (i) the number of identifiers associated with the detected attributes to (ii) the known number of detected attributes in the unstructured data, simulating the additional attributes according to the difference.

9. The computer-implemented method of claim 1 , wherein simulating the additional attributes for the unstructured data according to the amount of undetected attributes comprises simulating the additional attributes for the unstructured data using a random seed, a counting method, and an averaging method.

10. The computer-implemented method of claim 1 , wherein simulating the additional attributes for the unstructured data according to the amount of undetected attributes comprises simulating the additional attributes for the unstructured data according to the amount of the undetected attributes the trained machine-learning model missed during processing of the unstructured data.

11. The computer-implemented method of claim 1 , wherein modifying the detected attributes in the unstructured data according to the analyzed risk of disclosure further comprises:

determining a transformation approach for transforming the detected attributes in the unstructured data based on the analyzed risk of disclosure; and

transforming the detected attributes in the unstructured data according to the determined transformation approach, wherein the transformations comprise at least one of resynthesis, masking, generalizing, injecting noise, and imputing simulated values.

12. The computer-implemented method of claim 11 , wherein replacing the detected attributes with the modified detected attributes in the unstructured data further comprises:

generating structured data that represents the detected attributes from the unstructured data using identifiers associated with the detected attributes in the unstructured data; and

applying the transformed attributes from the structured data to locations of the identifiers in the unstructured data, wherein applying the transformed attributes replace the detected attributes from the unstructured data.

13. The computer-implemented method of claim 1 , further comprising providing, to an external party, the unstructured data that comprises the modified detected attributes and the undetected attributes.

14. A system comprising:

one or more computers and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising:

automatically, using a trained machine-learning model, detecting attributes in unstructured data;

determining an amount of undetected attributes and detected attributes in the unstructured data;

simulating additional attributes for the unstructured data according to the amount of undetected attributes, wherein the sampling comprises, for each undetected attribute:

sampling a population distribution for a sampled value, wherein the population distribution is an externally supplied reference distribution;

computing a sampling frequency according to the sampled value; and

assigning the sampling frequency as an additional attribute;

analyzing a risk of disclosure in the unstructured data using the detected attributes and the simulated additional attributes, wherein the analyzing comprises:

assigning a first information value to each detected attribute according to samples received from a first statistical distribution used to simulate the additional attributes;

assigning a second information value to each simulated additional attribute according to samples retrieved from a second statistical distribution, wherein the second statistical distribution is generated based on attributes that change with respect to time;

aggregating, for each detected attribute and simulated additional attribute, the first information value and the second information value into an aggregated value;

determining an anonymity value using the first information value, the second information value, the aggregated information value, and a size of a population associated with the unstructured data; and

determining the risk of disclosure in the unstructured data using the determined anonymity value;

modifying the detected attributes according to the analyzed risk of disclosure; and

replacing the detected attributes with the modified detected attributes in the unstructured data.

15. The system of claim 14 , wherein the unstructured data comprise medical records, emails, presentations, textbooks, brochures, websites, documents, audio recordings, images, and videos.

16. The system of claim 14 , further comprising:

generating a machine-learning model that is configured to detect the attributes in the unstructured data, wherein generating the machine-learning model comprises:

training the machine-learning model to detect the attributes in a first subset of the unstructured data;

determining a number of undetected attributes in the training of the machine-learning model; and

retraining the machine-learning model to detect the attributes in the first subset of the unstructured data based on data indicative of the undetected attributes.

17. The system of claim 16 , further comprising:

determining the number of the undetected attributes in the first subset satisfies a threshold limit;

in response to determining the number of the undetected attributes satisfies the threshold limit, deploying the trained machine-learning model; and

detecting, by the trained machine-learning model, the attributes in a second subset of the unstructured data by providing the second subset as input to the trained machine-learning model, wherein the second subset of the unstructured data is different from the first subset of the unstructured data.

18. The system of claim 17 , wherein detecting the attributes in the second subset of the unstructured data by providing the second subset as input to the trained machine-learning model further comprises:

for each detected attribute:

generating, by the trained machine-learning model, an identifier in the second subset of the unstructured data that represents (i) an identified location of the detected attribute and (ii) an indication of a detected attribute;

generating, by the trained machine-learning model, a confidence level associated with the identifier that indicates how likely a corresponding detected attribute represents an actual attribute according to criteria;

comparing the confidence level to a threshold level; and

in response to determining the confidence level satisfies the threshold level, labeling a portion of the unstructured data with the identifier at the identified location of the corresponding detected attribute.

19. The system of claim 14 , wherein automatically detecting the attributes in the unstructured data further comprises:

receiving data specifying criteria associated with attributes to be detected in the unstructured data; and

receiving data specifying criteria associated with attributes not to be detected in the unstructured data.

20. A non-transitory computer-readable medium storing software comprising instructions executable by one or more computers which, upon such execution, cause the one or more computers to perform operations comprising:

automatically, using a trained machine-learning model, detecting attributes in unstructured data;

determining an amount of undetected attributes and detected attributes in the unstructured data;

simulating additional attributes for the unstructured data according to the amount of undetected attributes, wherein the sampling comprises, for each undetected attribute:

sampling a population distribution for a sampled value, wherein the population distribution is an externally supplied reference distribution;

computing a sampling frequency according to the sampled value; and

assigning the sampling frequency as an additional attribute;

analyzing a risk of disclosure in the unstructured data using the detected attributes and the simulated additional attributes, wherein the analyzing comprises:

assigning a first information value to each detected attribute according to samples received from a first statistical distribution used to simulate the additional attributes;

assigning a second information value to each simulated additional attribute according to samples retrieved from a second statistical distribution, wherein the second statistical distribution is generated based on attributes that change with respect to time;

aggregating, for each detected attribute and simulated additional attribute, the first information value and the second information value into an aggregated value;

determining an anonymity value using the first information value, the second information value, the aggregated information value, and a size of a population associated with the unstructured data; and

determining the risk of disclosure in the unstructured data using the determined anonymity value;

modifying the detected attributes according to the analyzed risk of disclosure; and replacing the detected attributes with the modified detected attributes in the unstructured data.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 5, 2025
From: IQVIA INC.
To: PRIVACY ANALYTICS INC.
Reel/Frame 071939/0775 →
CORRECTIVE ASSIGNMENT TO CORRECT THE CONVEYING PARTIES INADVERTENTLY NOT INCLUDED IN FILING PREVIOUSLY RECORDED AT REEL: 065709 FRAME: 618. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT. Recorded Dec 6, 2023
From: IQVIA INC.; IQVIA RDS INC.; IMS SOFTWARE SERVICES LTD.; Q SQUARED SOLUTIONS HOLDINGS LLC
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION
Reel/Frame 065790/0781 →
SECURITY INTEREST Recorded Nov 29, 2023
From: IQVIA INC.
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION
Reel/Frame 065709/0618 →
SECURITY INTEREST Recorded Nov 29, 2023
From: IQVIA INC.; IQVIA RDS INC.; IMS SOFTWARE SERVICES LTD.; Q SQUARED SOLUTIONS HOLDINGS LLC
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION
Reel/Frame 065710/0253 →
SECURITY INTEREST Recorded Jul 12, 2023
From: IQVIA INC.; IMS SOFTWARE SERVICES, LTD.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 064258/0577 →
SECURITY INTEREST Recorded May 24, 2023
From: IQVIA INC.; IQVIA RDS INC.; IMS SOFTWARE SERVICES LTD.; Q SQUARED SOLUTIONS HOLDINGS LLC
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION
Reel/Frame 063745/0279 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 23, 2023
From: MIDDLETON, GRANT HOWARD GEORGE; RASQUINHA, BRIAN JOSEPH
To: IQVIA INC.
Reel/Frame 063729/0225 →
Continuity (2)
Provisional Application 63333908 · Apr 22, 2022
Related Publication 20240119175A1 · Apr 11, 2024
References Cited (21)
US 9646262B2 · Phillipps et al. · 2017 [cited by applicant]
US 10685138B2 · Scaiano · 2020 [cited by examiner]
US 11574186B2 · Iyoob · 2023 [cited by examiner]
US 11868489B2 · Locher · 2024 [cited by examiner]
US 20210049282A1 · Di Valentino · 2021 [cited by examiner]
US 20210110313A1 · Jones · 2021 [cited by examiner]
US 20210133557A1 · Iyoob · 2021 [cited by examiner]
US 20220050917A1 · Jiang · 2022 [cited by examiner]
International Preliminary Report on Patentability in International Appln. No. PCT/US2023/19445, mailed on Oct. 31, 2024, 10 pages. [cited by applicant]
Anonymizing Health Data: Case Studies and Methods to Get You Started, O'Reilly Media, Inc., Dec. 2013, (Abstract Only). [cited by applicant]
Barker, “Guideline for using cryptographic standards in the federal government: cryptographic mechanisms,” National Institute of Standards and Technology, Special Publication 800-175B Revision 1, Mar. 2020, 91 pages. [cited by applicant]
Csrc.nist.gov [online], “NIST Policy on Hash Functions—Hash Functions | CSRC,” Jan. 4, 2017, retrieved Jul. 7, 2023, retrieved from URL<http://web.archive.org/web/20190928164002/https://csrc.nist.gov/Projects/Hash-Funct… [cited by applicant]
Dang, “Secure Hash Standard,” Federal Information Processing Standards (NIST FIPS), Aug. 2015, retrieved on Jul. 6, 2023, retrieved from URL<https://www.nist.gov/publications/secure-hash-standard>, 36 pages. [cited by applicant]
Dankar et al., “Estimating the Re-identification Risk of Clinical Data Sets,” BMC Medical Informatics & Decision Making, 2012, 12 (66): 1-15. [cited by applicant]
El Emam et al., “A Systematic Review of Re-identification Attacks on Health Data,” PloS ONE, Dec. 2011, 6 (12):1-12. [cited by applicant]
El Emam et al., “De-identification Methods for Open Health Data: The Case of the Heritage Health Prize Claims Dataset,” J. Med. Internet Res, Feb. 2012, 14 (1): 1-16. [cited by applicant]
Fortunebusinessinsights.com [online], “Natural Language Processing (NLP) Market Size, Share & COVID-19 Impact Analysis, By Deployment (On-Premises, Cloud, and Hybrid), By Enterprise Type (Small & Medium-sized Enterprise… [cited by applicant]
International Search Report and Written Opinion in International Appln. No. PCT/US2023/19445, mailed on Jul. 17, 2023, 18 pages. [cited by applicant]
Nist.gov [online], “Guide for Conducting Risk Assessments,” NIST Special Publication SP-800-30 Rev 1, Sep. 2012, retrieved on Jul. 7, 2023, retrieved from URL<http://www.nist.gov/manuscript-publication-search.cfm?pub_id… [cited by applicant]
Sweeney, “k-Anonymity: A Model for Protecting Privacy,” International Journal on Uncertainty, Fuzziness and Knowledge-Based Systems, 2002, 10(5):557-570. [cited by applicant]
Xu et al., “Anonymizing Transaction Databases for Publication,” Proceedings of the 14th ACM SIGKDD international conference on Knowledge discovery and data mining, Aug. 24, 2008, 767-775. [cited by applicant]