IP Library Granted Patent US 11,809,565
Granted Patent B2
US 11,809,565 · App. 17/649,310 · Granted Nov 7, 2023

Security for private data inputs to artificial intelligence models

Inventors: Abigail Reyes Knox (Oakville, CA); Daniel Thomas Harrison (Newmarket, CA)
Assignee: Salesforce Inc.
G06F21/57G06N5/02G06F2221/031
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,809,565
App. No.
17/649,310
Granted
Nov 7, 2023
Kind
B2
Abstract

Methods, systems, and devices for supporting security for private data inputs to artificial intelligence models are described. A device (e.g., an application server) may receive a request to run an artificial intelligence model. The device may run the artificial intelligence model on a public data set and an extended set of data that includes both the public data set and a private data set. The device may determine a first set of outcomes based on running the artificial intelligence model on the public data set and a second set of outcomes based on rerunning the model on the extended set of data. The device may then compare the two sets of outcomes to determine whether a private data value is identifiable based on the second set of outcomes. If a private data value is identifiable, the device may obfuscate the results prior to transmitting the results to the requestor.

Claims (74)

1. A method for running an artificial intelligence model at a server, comprising:

running, in memory of the server, the artificial intelligence model on a public data set associated with a request and an extended data set associated with the request, the extended data set comprising the public data set and a set of private data associated with the request;

identifying a first set of outcomes based at least in part on running the artificial intelligence model on the public data set;

identifying a second set of outcomes based at least in part on running the artificial intelligence model on the extended data set;

comparing the first set of outcomes with the second set of outcomes to determine whether a difference between the first set of outcomes and the second set of outcomes satisfies a statistical threshold; and

transmitting, to a user device, a set of results based at least in part on comparing the first set of outcomes with the second set of outcomes.

2. The method of claim 1 , further comprising:

determining that the difference between the first set of outcomes and the second set of outcomes satisfies the statistical threshold; and

determining whether a private data value from the set of private data is identifiable based at least in part on the difference between the first set of outcomes and the second set of outcomes, wherein transmitting the set of results is based at least in part on determining whether the private data value from the set of private data is identifiable.

3. The method of claim 2 , further comprising:

determining that the private data value from the set of private data is identifiable based at least in part on the difference between the first set of outcomes and the second set of outcomes; and

obfuscating a first set of results based at least in part on determining that the private data value from the set of private data is identifiable, wherein transmitting the set of results comprises transmitting the first set of results.

4. The method of claim 3 , further comprising:

refraining from transmitting, to the user device, the second set of outcomes in response to the request based at least in part on determining that the private data value from the set of private data is identifiable.

5. The method of claim 2 , further comprising:

determining that the private data value from the set of private data is not identifiable based at least in part on the difference between the first set of outcomes and the second set of outcomes; and

identifying a second set of results comprising the second set of outcomes based at least in part on determining that the private data value from the set of private data is not identifiable, wherein transmitting the set of results comprises transmitting the second set of results.

6. The method of claim 1 , further comprising:

determining that the difference between the first set of outcomes and the second set of outcomes fails to satisfy the statistical threshold; and

identifying a second set of results comprising the second set of outcomes based at least in part on determining that the difference between the first set of outcomes and the second set of outcomes fails to satisfy the statistical threshold, wherein transmitting the set of results comprises transmitting the second set of results.

7. The method of claim 1 , further comprising:

calculating a probability of identifying a private data value from the set of private data based at least in part on the difference between the first set of outcomes and the second set of outcomes satisfying the statistical threshold; and

determining that the private data value from the set of private data is identifiable based at least in part on the difference between the first set of outcomes and the second set of outcomes; determining that the private data value from the set of private data is identifiable is further based at least in part on the probability satisfying a threshold.

8. The method of claim 1 , further comprising:

receiving, from the user device, the request to run the artificial intelligence model, wherein running the artificial intelligence model is based at least in part on receiving the request.

9. The method of claim 1 , further comprising:

receiving, from the user device, a second request to run the artificial intelligence model;

identifying a third set of outcomes based at least in part on running the artificial intelligence model on a second public data set;

identifying a fourth set of outcomes based at least in part on running the artificial intelligence model on a second extended data set comprising the second public data set and a second set of private data associated with the second request;

comparing the third set of outcomes with the fourth set of outcomes to determine that a difference between the third set of outcomes and the fourth set of outcomes satisfies the statistical threshold;

determining that each private data value from the second set of private data is not identifiable based at least in part on the difference between the third set of outcomes and the fourth set of outcomes satisfying the statistical threshold; and

transmitting, to the user device, a third set of results in response to the second request, wherein the third set of results comprises the fourth set of outcomes.

10. The method of claim 1 , further comprising:

identifying the public data set based at least in part on the request; and

identifying a correlation between one or more public data values of the public data set and the first set of outcomes, wherein identifying the first set of outcomes is based at least in part on the correlation.

11. The method of claim 10 , further comprising:

receiving an update to the public data set, wherein the update comprises addition or deletion of at least one public data value to or from the public data set; and

modifying the correlation based at least in part on the update to the public data set, wherein identifying the first set of outcomes is based at least in part on the modified correlation.

12. The method of claim 1 , further comprising:

identifying the extended data set based at least in part on the request; and

identifying a correlation between one or more private data values of the set of private data, one or more public data values of the public data set, and the second set of outcomes, wherein identifying the second set of outcomes is based at least in part on the correlation.

13. The method of claim 12 , further comprising:

receiving an update to the extended data set, wherein the update comprises addition or deletion of at least one private data value to or from the extended data set; and

modifying the correlation based at least in part on the update to the extended data set, wherein identifying the second set of outcomes is based at least in part on the modified correlation.

14. The method of claim 1 , further comprising:

receiving, from the user device, a second request for an update to the extended data set; and

transmitting, to the user device, a notification indicating the update to the extended data set.

15. The method of claim 1 , further comprising:

identifying the public data set based at least in part on the request; and

identifying a data feed associated with the public data set, wherein running the artificial intelligence model on the public data set comprises running the artificial intelligence model on the identified data feed.

16. The method of claim 1 , further comprising:

identifying the set of private data based at least in part on the request; and

identifying a data feed associated with the set of private data, wherein running the artificial intelligence model on the extended data set comprises running the artificial intelligence model on the identified data feed.

17. An apparatus for running an artificial intelligence model at a server, comprising:

a processor;

memory in electronic communication with the processor; and

instructions stored in the memory and executable by the processor to cause the apparatus to:

run, in memory of the server, the artificial intelligence model on a public data set associated with a request and an extended data set associated with the request, the extended data set comprising the public data set and a set of private data associated with the request;

identify a first set of outcomes based at least in part on running the artificial intelligence model on the public data set;

identify a second set of outcomes based at least in part on running the artificial intelligence model on the extended data set;

compare the first set of outcomes with the second set of outcomes to determine whether a difference between the first set of outcomes and the second set of outcomes satisfies a statistical threshold; and

transmit, to a user device, a set of results based at least in part on comparing the first set of outcomes with the second set of outcomes.

18. The apparatus of claim 17 , wherein the instructions are further executable by the processor to cause the apparatus to:

determining that the difference between the first set of outcomes and the second set of outcomes satisfies the statistical threshold; and

determining whether a private data value from the set of private data is identifiable based at least in part on the difference between the first set of outcomes and the second set of outcomes, wherein transmitting the set of results is based at least in part on determining whether the private data value from the set of private data is identifiable.

19. The apparatus of claim 18 , wherein the instructions are further executable by the processor to cause the apparatus to:

determine that the private data value from the set of private data is identifiable based at least in part on the difference between the first set of outcomes and the second set of outcomes; and

obfuscate a first set of results based at least in part on determining that the private data value from the set of private data is identifiable, wherein transmitting the set of results comprises transmitting the first set of results.

20. A non-transitory computer-readable medium storing code for running an artificial intelligence model at a server, the code comprising instructions executable by a processor to:

run, in memory of the server, the artificial intelligence model on a public data set associated with a request and an extended data set associated with the request, the extended data set comprising the public data set and a set of private data associated with the request;

identify a first set of outcomes based at least in part on running the artificial intelligence model on the public data set;

identify a second set of outcomes based at least in part on running the artificial intelligence model on the extended data set;

compare the first set of outcomes with the second set of outcomes to determine whether a difference between the first set of outcomes and the second set of outcomes satisfies a statistical threshold; and

transmit, to a user device, a set of results based at least in part on comparing the first set of outcomes with the second set of outcomes.

Continuity (2)
Continuation 16367515 · Mar 28, 2019
Related Publication 20220147633A1 · May 12, 2022