US 11,989,633 B2
Shared learning across separate entities with private data features
Ashish Goel, Stanford, CA (US); and Peter Lofgren, Palo Alto, CA (US)
Assigned to Stripe, Inc., South San Francisco, CA (US)
Filed by Stripe, Inc., San Francisco, CA (US)
Filed on Jan. 25, 2019, as Appl. No. 16/258,116.
Prior Publication US 2020/0242492 A1, Jul. 30, 2020
Int. Cl. G06N 20/20 (2019.01); G06F 18/243 (2023.01); G06N 3/084 (2023.01); G06N 5/043 (2023.01)
CPC G06N 20/20 (2019.01) [G06F 18/24323 (2023.01); G06N 3/084 (2013.01); G06N 5/043 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A computer-implemented method, the method comprising:
responsive to a training stop condition having not been reached, repeating a set of steps, the set of steps corresponding to a particular iteration for training a set of models, the set of steps comprising:
training, by a first party using a set of training records, a first model that produces for a respective event corresponding to a respective training record of the set of training records:
a first-party score related to a label classification of the respective event, wherein at least one first feature from a set of features for the respective event is not shared and at least one other feature from the set of features for the respective event is shared with a second party,
wherein the respective training record corresponding to the respective event comprises an event identifier, a label about the respective event, and the set of features for the respective event,
wherein the respective training record corresponds to, if available, a second-party score, generated previously by the second party using at least a set of second party features comprising at least one third feature that is not shared and at least one fourth feature that is shared with the first party, and
wherein the second-party score is not available in a first iteration corresponding to an initial round of performing the set of steps for the training of the model that produces the first-party score, and the second-party score is available in a second iteration corresponding to a subsequent round of performing the set of steps for the training of the model that produces the first-party score;
communicating the first-party score to the second party, for use by the second party to train a second model to produce another second-party score related to a label classification of the respective event; and
receiving, by the first party, the other second-party score from the second party; and
responsive to the training stop condition having been reached, outputting one or more trained models.