IP Library Granted Patent US 12,197,539
Granted Patent B2
US 12,197,539 · App. 17/169,161 · Granted Jan 14, 2025

Secure storage and processing of data for generating training data

Inventors: Yunpeng Xu (Millburn, NJ); Tianhao Lu (New York City, NY); Xiaoqiang Luo (Cos Cob, CT); Jiashuo Wang (Mountain View, CA); Chencheng Wu (Los Altos, CA)
Assignee: Microsoft Technology Licensing, LLC
G06F18/2178G06F18/2148G06N20/00
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,197,539
App. No.
17/169,161
Granted
Jan 14, 2025
Kind
B2
Abstract

Techniques for securely storing and processing data for training data generation are provided. In one technique, multiple encrypted records are retrieved from a first persistent storage. For each encrypted record, that record is decrypted in memory to generate a decrypted record that comprises multiple attribute values. Then, based on the attribute values and a definition of multiple features of a machine-learned model, multiple feature values are generated and stored, along with a label, in a training instance, which is then stored in a second persistent storage. One or more machine learning techniques are used to train the machine-learned model based on training data that includes the training instances that are stored in the second persistent storage.

Claims (99)

1. A method comprising:

retrieving a plurality of encrypted records from a first persistent storage;

for each encrypted record in the plurality of encrypted records:

decrypting, in memory, said each encrypted record to generate a decrypted record that comprises a plurality of attribute values;

generating, based on the plurality of attribute values, a plurality of feature values, wherein a method of generating a feature value comprises computing a value based on a comparison of a first attribute value of the decrypted record and a second attribute value associated with a second record different from the decrypted record, and the plurality of feature values comprises at least one value computed by applying the method to the first attribute value and the second attribute value;

storing, in a second persistent storage, in a training instance, the plurality of feature values and a label in association with the plurality of feature values;

using one or more machine learning techniques to train a machine-learned model based on training data that includes the training instances that are stored in the second persistent storage;

wherein the method is performed by one or more computing devices.

2. The method of claim 1 , wherein the plurality of attribute values comprises a first plurality of attribute values, further comprising identifying a record comprising a second plurality of attribute values, wherein generating the plurality of feature values comprises:

for a first attribute value of the first plurality of attribute values, performing a comparison between the first attribute value and a second attribute value in the second plurality of attribute values;

generating a first feature value in the plurality of feature values based on the comparison.

3. The method of claim 2 , wherein a result of the comparison is a similarity score that indicates a similarity measure between the first attribute value and the second attribute value.

4. The method of claim 2 , wherein a result of the comparison is a Boolean value.

5. The method of claim 1 , further comprising:

storing feedback data that is generated based on user input that indicates that (1) a first entity does not match a particular entity indicated in an encrypted record of the plurality of encrypted records and (2) a second entity matches the particular entity;

wherein the feedback data includes an entity identifier of the second entity;

based on the feedback data, storing the entity identifier of the second entity in association with the decrypted record.

6. The method of claim 5 , further comprising;

based on the entity identifier, retrieving a second plurality of attribute values of the second entity;

wherein generating the plurality of feature values is also based on the second plurality of attribute values.

7. The method of claim 1 , further comprising:

for a particular encrypted record from the first persistent storage, identifying a uniform resource locator (URL) associated with the particular encrypted record;

using the URL to identify a record in an entity profile database and identify an entity identifier associated with the record;

associating the entity identifier with the particular encrypted record.

8. The method of claim 1 , wherein storing the plurality of feature values and the label in the training instance comprises:

generating a resolution event that includes the plurality of feature values and the label;

transmitting the resolution event to an event publishing system;

receiving, by a subscriber of the event publishing system, the resolution event;

transforming contents of the resolution event based on a training data format to generate transformed content;

including the transformed content in the training instance.

9. The method of claim 1 , further comprising:

for a particular encrypted record, based on at least a portion of the decrypted record, identifying a plurality of candidate entities;

for each candidate entity in the plurality of candidate entities:

identifying a set of attribute values of said each candidate entity;

generating, based on the decrypted record, the set of attribute values, and

a definition of the plurality of features of a version of the machine-learned model, a set of feature values;

using the version of the machine-learned model to generate, based on the set of feature values, a score for said each candidate entity;

storing the score and an identifier of said each candidate entity in a resolution event;

wherein the resolution event include a plurality of scores, one for each candidate entity of the plurality of candidate entities;

determining a measure of accuracy of the version of the machine-learned model based on the plurality of scores.

10. The method of claim 9 , wherein:

the resolution event also includes an entity identifier of a target entity that is associated with the plurality of attribute values;

the method further comprising making a determination that the entity identifier does not match the identifier of any of the plurality of candidate entities;

the measure of accuracy is also based on the determination.

11. The method of claim 1 , further comprising:

based on at least a portion of the decrypted record, identifying one or more candidate entities;

for each candidate entity in the one or more candidate entities:

identifying a set of attribute values of said each candidate entity;

generating, based on the decrypted record, the set of attribute values, and

a definition of the plurality of features of a version of the machine-learned model, a set of feature values;

storing, in a second training instance, the set of feature values and a negative label that indicates that said each candidate entity does not match an entity that is associated with the decrypted record.

12. One or more storage media storing instructions which, when executed by one or more processors, cause:

retrieving a plurality of encrypted records from a first persistent storage;

for each encrypted record in the plurality of encrypted records:

decrypting, in memory, said each encrypted record to generate a decrypted record that comprises a plurality of attribute values;

generating, based on the plurality of attribute values, a plurality of feature values, wherein a method of generating a feature value comprises computing a value based on a comparison of a first attribute value of the decrypted record and a second attribute value associated with a second record different from the decrypted record, and the plurality of feature values comprises at least one value computed by applying the method to the first attribute value and the second attribute value;

storing, in a second persistent storage, in a training instance, the plurality of feature values and a label in association with the plurality of feature values;

using one or more machine learning techniques to train a machine-learned model based on training data that includes the training instances that are stored in the second persistent storage.

13. The one or more storage media of claim 12 , wherein the plurality of attribute values comprises a first plurality of attribute values, further comprising identifying a record comprising a second plurality of attribute values, wherein generating the plurality of feature values comprises:

for a first attribute value of the first plurality of attribute values, performing a comparison between the first attribute value and a second attribute value in the second plurality of attribute values;

generating a first feature value in the plurality of feature values based on the comparison.

14. The one or more storage media of claim 12 , further comprising:

storing feedback data that is generated based on user input that indicates that (1) a first entity does not match a particular entity indicated in an encrypted record of the plurality of encrypted records and (2) a second entity matches the particular entity;

wherein the feedback data includes an entity identifier of the second entity;

based on the feedback data, storing the entity identifier of the second entity in association with the decrypted record.

15. The one or more storage media of claim 14 , further comprising;

based on the entity identifier, retrieving a second plurality of attribute values of the second entity;

wherein generating the plurality of feature values is also based on the second plurality of attribute values.

16. The one or more storage media of claim 12 , further comprising:

for a particular encrypted record from the first persistent storage, identifying a uniform resource locator (URL) associated with the particular encrypted record;

using the URL to identify a record in an entity profile database and identify an entity identifier associated with the record;

associating the entity identifier with the particular encrypted record.

17. The one or more storage media of claim 12 , wherein storing the plurality of feature values and the label in the training instance comprises:

generating a resolution event that includes the plurality of feature values and the label;

transmitting the resolution event to an event publishing system;

receiving, by a subscriber of the event publishing system, the resolution event;

transforming contents of the resolution event based on a training data format to generate transformed content;

including the transformed content in the training instance.

18. The one or more storage media of claim 12 , further comprising:

for a particular encrypted record, based on at least a portion of the decrypted record, identifying a plurality of candidate entities;

for each candidate entity in the plurality of candidate entities:

identifying a set of attribute values of said each candidate entity;

generating, based on the decrypted record, the set of attribute values, and

a definition of the plurality of features of a version of the machine-learned model, a set of feature values;

using the version of the machine-learned model to generate, based on the set of feature values, a score for said each candidate entity;

storing the score and an identifier of said each candidate entity in a resolution event;

wherein the resolution event include a plurality of scores, one for each candidate entity of the plurality of candidate entities;

determining a measure of accuracy of the version of the machine-learned model based on the plurality of scores.

19. The one or more storage media of claim 18 , wherein:

the resolution event also includes an entity identifier of a target entity that is associated with the plurality of attribute values;

the method further comprising making a determination that the entity identifier does not match the identifier of any of the plurality of candidate entities;

the measure of accuracy is also based on the determination.

20. The one or more storage media of claim 12 , further comprising:

based on at least a portion of the decrypted record, identifying one or more candidate entities;

for each candidate entity in the one or more candidate entities:

identifying a set of attribute values of said each candidate entity;

generating, based on the decrypted record, the set of attribute values, and

a definition of the plurality of features of a version of the machine-learned model, a set of feature values;

storing, in a second training instance, the set of feature values and a negative label that indicates that said each candidate entity does not match an entity that is associated with the decrypted record.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 5, 2021
From: XU, YUNPENG; LU, TIANHAO; LUO, XIAOQIANG; WANG, JIASHUO; WU, CHENCHENG
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 055168/0809 →
Continuity (1)
Related Publication 20220253540A1 · Aug 11, 2022
References Cited (42)
US 8285719B1 · Long · 2012 [cited by examiner]
US 9697475B1 · Subramanya · 2017 [cited by examiner]
US 10305845B1 · Waagen · 2019 [cited by examiner]
US 10558923B1 · Kenthapadi · 2020 [cited by examiner]
US 10650326B1 · Johnston · 2020 [cited by examiner]
US 10692127B1 · Kumar et al. · 2020 [cited by applicant]
US 10873533B1 · Ismailsheriff · 2020 [cited by examiner]
US 11106692B1 · Guetta · 2021 [cited by examiner]
US 20110225155A1 · Roulland · 2011 [cited by examiner]
US 20110307435A1 · Overell · 2011 [cited by examiner]
US 20130117203A1 · Malka · 2013 [cited by examiner]
US 20140279583A1 · Surdeanu · 2014 [cited by examiner]
US 20150242407A1 · Frohock · 2015 [cited by examiner]
US 20150379072A1 · Dirac et al. · 2015 [cited by applicant]
US 20160350675A1 · Laks · 2016 [cited by examiner]
US 20170097984A1 · Haldar · 2017 [cited by examiner]
US 20170098013A1 · Shirwadkar · 2017 [cited by examiner]
US 20170099249A1 · Kozareva · 2017 [cited by examiner]
US 20170242886A1 · Jolley · 2017 [cited by examiner]
US 20170255867A1 · Ramachandran · 2017 [cited by examiner]
US 20170308802A1 · Ramsøy · 2017 [cited by examiner]
US 20170337265A1 · Garrett · 2017 [cited by examiner]
US 20180232644A1 · Acharya · 2018 [cited by examiner]
US 20180330179A1 · Streit · 2018 [cited by examiner]
US 20190012609A1 · Fishler · 2019 [cited by examiner]
US 20190102078A1 · Bhatt · 2019 [cited by examiner]
US 20190102675A1 · Biswas · 2019 [cited by examiner]
US 20200042828A1 · Silberman · 2020 [cited by examiner]
US 20200402625A1 · Aravamudan et al. · 2020 [cited by applicant]
US 20210110295A1 · Oberhofer · 2021 [cited by examiner]
US 20210256032A1 · Burbank · 2021 [cited by examiner]
US 20210397726A1 · Kulaga et al. · 2021 [cited by applicant]
US 20220318429A1 · Levy · 2022 [cited by examiner]
US 20220318665A1 · Levy · 2022 [cited by examiner]
US 20220321541A1 · Zhao et al. · 2022 [cited by applicant]
CN 102982097A · 2013 [cited by examiner]
WO WO2009086311A1 · 2009 [cited by examiner]
“International Search Report and Written Opinion Issued in PCT Application No. PCT/US22/012695”, Mailed Date: Mar. 31, 2022, 10 Pages. [cited by applicant]
“Notice of Allowance Issued in U.S. Appl. No. 17/219,482”, Mailed Date: Jul. 21, 2023, 11 Pages. [cited by applicant]
Thilakanathan, et al., “SafeProtect: Controlled Data Sharing With User-Defined Policies in Cloud-Based Collaborative Environment”, In Proceedings of IEEE Transactions on Emerging Topics in Computing, vol. 4, Issue 2, Ap… [cited by applicant]
Vimercati, et al., “Encryption-Based Policy Enforcement for Cloud Storage”, In Proceedings of IEEE 30th International Conference on Distributed Computing Systems Workshops, Jun. 21, 2010, pp. 42-51. [cited by applicant]
U.S. Appl. No. 17/219,482, filed Mar. 31, 2021. [cited by applicant]