US 11,893,462 B2
Machine learning using secured shared data
Monica J. Holboke, Toronto (CA); Justin Langseth, Kailua, HI (US); Stuart Ozer, Oakland, CA (US); and William L. Stratton, Jr., Atlanta, GA (US)
Assigned to Snowflake Inc., Stockholm (SE)
Filed by Snowflake Inc., Bozeman, MT (US)
Filed on Nov. 14, 2022, as Appl. No. 18/055,248.
Application 18/055,248 is a continuation of application No. 17/644,732, filed on Dec. 16, 2021, granted, now 11,501,015.
Application 17/644,732 is a continuation of application No. 17/232,859, filed on Apr. 16, 2021, granted, now 11,216,580.
Claims priority of provisional application 63/160,306, filed on Mar. 12, 2021.
Prior Publication US 2023/0186160 A1, Jun. 15, 2023
Int. Cl. G06N 3/00 (2023.01); G06N 20/00 (2019.01); G06F 21/62 (2013.01); G06F 16/25 (2019.01); G06F 16/28 (2019.01); G06F 18/214 (2023.01)
CPC G06N 20/00 (2019.01) [G06F 16/256 (2019.01); G06F 16/283 (2019.01); G06F 18/214 (2023.01); G06F 21/6227 (2013.01)] 26 Claims
OG exemplary drawing
 
1. A method comprising:
sharing, on a database system, a database application to a first user of the database system, the database application generated by a second user of the database system, the database application comprising a machine learning model for training on a training dataset, the training dataset comprising:
a first database training dataset from the first user of the database system; and
a second database training dataset from the second user of the database system, the first database training dataset and the second database training dataset including non-overlapping dataset features;
sharing, on the database system, encrypted data from the second user in a secure encrypted view;
sharing one or more functions of the database application, the one or more functions configured to access the encrypted data in the secure encrypted view;
identifying a query, from the first user, to train the machine learning model on the training dataset;
generating, on the database system, an encrypted trained machine learning model by training the machine learning model on a joined dataset according to the query, without decrypting the encrypted data from the second user; and
generating, on the database system, one or more outputs from the encrypted trained machine learning model by applying the encrypted trained machine learning model on new data.