IP Library Granted Patent US 11,620,477
Granted Patent B2
US 11,620,477 · App. 16/891,845 · Granted Apr 4, 2023

Decoupled scalable data engineering architecture

Inventors: Bryan Wayne Collins (North Bay, CA); Eric Paver Simon (Denver, CO); Alain Charles Briancon (Germantown, MD); Mirza Safiullah Baig (Hamilton, CA); Yarden Arane (Washington, DC); Wenjie Wu (Austin, TX); Divya Karumuri (Scarborough, CA); Kevin Bryce (Toronto, CA)
Assignee: Cerebri AI Inc.
G06K9/6257G06F8/10G06F8/24G06F8/315G06F8/36G06F9/44521G06F16/254G06K9/6256G06K9/6264G06K9/6282G06N5/04G06N20/00G06N20/20G06Q10/067G06Q10/06316G06Q10/06375G06Q10/06393G06Q30/012G06Q30/016G06Q30/0202G06Q30/0204G06Q40/025G06Q40/08
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,620,477
App. No.
16/891,845
Granted
Apr 4, 2023
Kind
B2
Abstract

Provided is a process including: writing classes using object-oriented modelling of modeling topics; scanning the classes to determine class definition information; receiving from a subscribing modeling object a request for a subscription to a given modeling topic in a given modeling topic class, the subscription request including a modeling topic filter to select the given modeling topic from a plurality of modeling topics described by the given modeling topic class; registering a modeling topic accessor associated with the subscribing modeling object and a modeling topic mutator associated with the subscribing modeling object; processing, through the modeling topic filter a modeling topic that is accessed through an accessor and is described by the modeling topic class, the modeling topic being received from a modeling publisher object; notifying the subscribing object of the received modeling topic through a registered modeling topic listener; and mutating the received modeling topic.

Claims (157)

1. A tangible, non-transitory, machine-readable medium storing instructions that when executed by one or more processors effectuate operations comprising:

identifying, with one or more processors, feature processing transformations of one or more datasets;

identifying, with one or more processors, pipelines of the transformations, the pipelines being pipelines in an object-oriented modeling application;

forming, with one or more processors, a first plurality of classes using object-oriented modeling of the feature processing transformations of the one or more datasets, the first plurality of classes being classes of objects in the object-oriented modeling application;

forming, with one or more processors, a second plurality of classes using object-oriented modeling of the pipelines, the second plurality of classes being classes of objects in the object-oriented modeling application;

forming, with one or more processors, a third plurality of classes using object-oriented modeling of the one or more datasets, the third plurality of classes being classes of objects in the object-oriented modeling application;

interrogating, with one or more processors, a class library containing the first plurality of classes to determine first class definition information;

interrogating, with one or more processors, a class library containing the second plurality of classes to determine second class definition information;

selecting, with one or more processors, a given dataset from the one or more datasets or other datasets;

interrogating, with one or more processors, a class library containing the third plurality of classes to determine third class definition information;

accessing, with one or more processors, the first, second, and third class definitions information to produce an interdependency graph of one or more data processing operator instances of a given pipeline among the pipelines of the transformations;

generating, with one or more processors, an execution schedule of the given pipeline based on the interdependency graph;

causing, with one or more processors, execution of the given pipeline according to the execution schedule;

accessing the first definition information to process the given dataset; and

storing a result of processing the given dataset in memory.

2. The medium of claim 1 , wherein the operations further comprise:

accessing attributes of the given dataset at each of a plurality of modelors of the given pipeline.

3. The medium of claim 1 , wherein causing execution of the given pipeline according to the execution schedule comprises:

executing the given pipeline on a distributed cluster computing framework.

4. A tangible, non-transitory, machine-readable medium storing instructions that when executed by one or more processors effectuate operations comprising:

writing, with one or more processors, a first plurality of classes using object-oriented modeling;

writing, with one or more processors, a second plurality of classes using object-oriented modeling of modeling topics;

scanning, with one or more processors, a class library containing the first plurality of classes to determine class definition information;

scanning, with one or more processors, a class library containing the second plurality of classes to determine class definition information;

receiving, with one or more processors, at an orchestrating system, from a subscribing modeling object a request for a subscription to a given modeling topic in a given modeling topic class among the second plurality of classes, the subscription request including a modeling topic filter to select the given modeling topic from a plurality of modeling topics described by the given modeling topic class;

registering, with one or more processors, by the orchestrating system, a modeling topic accessor associated with the subscribing modeling object;

registering, with one or more processors, by the orchestrating system, a modeling topic mutator associated with the subscribing modeling object;

processing, with one or more processors, by the orchestrating system, through the modeling topic filter a modeling topic that is accessed through an accessor and is described by the modeling topic class, the modeling topic being received from a modeling publisher object;

notifying, with one or more processors, by the orchestrating system, the subscribing object of the received modeling topic through a registered modeling topic listener, in response to determining that the received modeling topic matches the modeling topic filter; and

mutating, with one or more processors, the received modeling topic at the subscriber modeling object in response to determining that the received modeling topic matches the modeling topic filter included in the request for a subscription.

5. The medium of claim 4 , wherein mutating comprises:

adding an attribute to an object, deleting an attribute of an object, updating an attribute of an object, reading an attribute of an object, adding reference to another object as an attribute, using a setter, or using a getter.

6. The medium of claim 4 , wherein mutating comprises:

adding an attribute to of an object, deleting an attribute of an object, updating an attribute of an object, reading an attribute of an object, adding reference to another object as an attribute, using a setter, and using a getter.

7. The medium of claim 4 , wherein:

items captured in modeling topics include:

consumers,

communications to consumers by an enterprise,

communications to an enterprise by consumers,

events that include purchases by consumers from the enterprise, and

events that include non-purchase interactions by consumers with the enterprise; and

at least some items are obtained from entity logs that are obtained from a customer relationship management system of the enterprise.

8. The medium of claim 7 , wherein:

a result of the operations is used by a trained predictive machine learning model developed using an object-oriented modeling (OOM) framework.

9. The medium of claim 8 , wherein:

the enterprise is a credit card issuer and the trained predictive machine learning model developed using the OOM framework is configured to predict whether a consumer will default;

the enterprise is a lender and the trained predictive machine learning model developed using the OOM framework is configured to predict whether a consumer will borrow;

the enterprise is an insurance company and the trained predictive machine learning model developed using the OOM framework is configured to predict whether a consumer will file a claim;

the enterprise is an insurance company and the trained predictive machine learning model developed using the OOM framework is configured to predict whether a consumer will sign-up for insurance;

the enterprise is a vehicle seller and the trained predictive machine learning model developed using the OOM framework is configured to predict whether a consumer will purchase a vehicle;

the enterprise is a seller of goods and the trained predictive machine learning model developed using the OOM framework is configured to predict whether a consumer will file a warranty claim, or

the enterprise is a wireless operator and the trained predictive machine learning model developed using the OOM framework is configured to predict whether a consumer upgrade their cellphone, or the enterprise is bank and the trained predictive machine learning model developed using the OOM framework is configured to predict the change in GDP.

10. A tangible, non-transitory, machine-readable medium storing instructions that when executed by one or more processors effectuate operations comprising:

obtaining, with one or more processors, for a plurality of entities, datasets, wherein:

the datasets comprise a plurality of entity logs;

a first subset of the plurality of entity logs are events involving the entities;

a first subset of the events are actions by the entities;

at least some of the actions are targeted actions;

a second subset of the plurality of entity logs are attributes related to the entities; and

the events are distinct from the attributes;

forming, with one or more processors, an object-orientated orchestration, the object-orientated orchestration comprising:

forming a plurality of objects, wherein each object of the plurality of objects comprises a different set of attributes and events;

forming object-oriented labeled datasets based on the event and the attributes of each of the datasets;

forming a library of classes, generated by a plurality of object-orientation modelors; and

forming a plurality of object-manipulation functions, each function configured to leverage a specific class;

forming a first training dataset from the datasets;

training, with one or more processors, a first machine-learning model on the first training dataset by adjusting parameters of the first machine-learning model to optimize a first objective function that indicates interdependency of the plurality of object-manipulation functions in leveraging a specific class;

forming an interdependency graph using, at least in part, the first objective function; and

storing, with one or more processors, the adjusted parameters of the trained first machine-learning model in memory;

receiving a request to determine a set of actions required to achieve a specific targeted action;

determining, with one or more processors, the set of actions required to achieve the specific targeted action using a compiler function, the compiler function comprising:

assigning the specific targeted action to a first subset of the plurality of objects using a first subset of the plurality of object-manipulation functions, wherein:

the first subset of the plurality of object-manipulation functions is formed using the interdependency graph; and

determining a first subset of classes from the library of classes of the object-oriented orchestration that are related to the first subset of the plurality of objects;

determining the set of actions required to achieve the specific targeted action using a second subset of the plurality of object-manipulation functions, wherein:

the second subset of the plurality of object-manipulation functions is formed using the interdependency graph; and

each object-manipulation function of the second subset of the plurality of object-manipulation functions is configured to leverage at least one class of the first subset of classes from the library of classes of the object-oriented orchestration.

11. The medium of claim 10 , wherein the interdependency graph comprises:

a plurality of execution schedules, wherein each execution schedule from the plurality of execution schedules comprises a subset of the object-manipulation functions.

12. The medium of claim 11 , wherein each execution schedule from the plurality of execution schedules is configured to leverage at least one class from the library of classes.

13. The medium of claim 10 , wherein the interdependency graph comprises:

a plurality of execution triggers, wherein each execution trigger from the plurality of execution triggers comprises a subset of the object-manipulation functions.

14. The medium of claim 10 , wherein the interdependency graph comprises:

a plurality of execution schedules, wherein each execution schedule from the plurality of execution schedules comprises a subset of the object-manipulation functions,

a plurality of execution triggers, wherein each execution trigger from the plurality of execution triggers comprises a subset of the object-manipulation functions, and

an orchestrator assigning execution triggers or execution schedules within the interdependency graph.

15. The medium of claim 10 , wherein the formation of object-oriented orchestration further comprises:

forming a second training dataset from the datasets;

training, with one or more processors, a second machine-learning model on the second training dataset by adjusting parameters of the second machine-learning model to optimize a second objective function that determines the first subset of the plurality of object-manipulation functions; and

storing, with one or more processors, the adjusted parameters of the trained second machine-learning model in memory.

16. The medium of claim 10 , comprising indicating interdependency of the plurality of object-manipulation functions in leveraging a specific class with the first trained machine learning at least in part by:

obtaining a given entity log of the given entity;

determining a plurality of features from the given entity log, the plurality of features having fewer dimensions than the given entity log; and

inputting the determined plurality of features into the first trained machine learning model to cause the model to output a value indicative of the interdependency of the plurality of object-manipulation functions in leveraging a specific class related to the given entity.

17. The medium of claim 10 , wherein:

the first machine learning model is based on a plurality of decision trees combined with an ensemble procedure; and

the ensemble procedure is boosting, random forest or other form of bootstrap aggregation, or rotation forest; and

at least some of the decision trees are trained with classification and regression tree by recursively splitting a feature space of inputs to the first machine learning model along different dimensions of the feature space at values of respective dimensions that locally optimize the respective split to minimize entropy of Gini impurity of targeted actions and non-targeted actions on each side of respective splits.

18. The medium of claim 10 , comprising, before training, transforming each entity log into a collection of features to which the first machine learning model is capable of responding and training the model on features of the collection of features.

19. The medium of claim 18 , wherein at least some of the features are determined by the attributes, the attributes comprising:

entity restrictions for at least some of the plurality of entities;

entity business protocols for at least some of the plurality of entities;

entity policies for at least some of the plurality of entities;

entity authorized users for at least some of the plurality of entities; and

entity security protocols for at least some of the plurality of entities.

20. The medium of claim 10 , wherein training comprises means for training.

21. The medium of claim 10 , wherein the plurality of entity logs comprise information about:

consumers;

communications to consumers by an enterprise;

communications to an enterprise by consumers;

purchases by consumers from an enterprise;

non-purchase interactions by consumers with an enterprise; and

a customer relationship management system of an enterprise.

22. The medium of claim 10 , wherein:

the enterprise is a credit card issuer and the specific targeted action is predicting whether a consumer will default;

the enterprise is a lender and the specific targeted action is predicting whether a consumer will borrow;

the enterprise is an insurance company and the specific targeted action is predicting whether a consumer will file a claim;

the enterprise is an insurance company and the specific targeted action is predicting whether a consumer will sign-up for insurance;

the enterprise is a vehicle seller and the specific targeted action is predicting whether a consumer will purchase a vehicle;

the enterprise is a seller of goods and the specific targeted action is predicting whether a consumer will file a warranty claim,

the enterprise is a wireless operator and the specific targeted action is predicting whether a consumer upgrade their cellphone, or

the enterprise is a bank and the specific targeted action is predicting GDP variation.

23. The medium of claim 10 , wherein the first trained model is configured to filter some of the entity logs, wherein the filtration comprise:

a dependency level among the entity logs calculated by Bayesian Networks;

a logistic regression calculated by Lasso and ElasticNet penalty functions; or

a product moment correlation coefficient calculated by Pearson correlation.

24. The medium of claim 10 , wherein the object-oriented labeled datasets formed according to an ontology of events.

25. The medium of claim 10 , wherein the object-oriented labeled datasets formed according to a hierarchal taxonomy of events.

26. The medium of claim 10 , the operations further comprising:

steps for determining the set of actions required to achieve the specific targeted action.

27. The medium of claim 10 , wherein the operations further comprise:

formation of the interdependency graph using, at least in part, feature engineering modelors, the feature engineering modelors comprise:

recency feature engineering modelors;

frequency feature engineering modelors;

lag feature engineering modelors;

difference feature engineering modelors; and

harmonic analysis feature engineering modelors;

wherein the feature engineering modelors are a subset of plurality of object-orientation modelors.

28. The medium of claim 10 , wherein the plurality of object-manipulation functions comprise:

a feature engineering function used to gather features of a first object-orientation modelor and then use the features in a second object-orientation modelor, wherein the feature engineering function comprises:

a recency feature engineering sub-routine;

a frequency feature engineering sub-routine;

a lag feature engineering sub-routine;

a difference feature engineering sub-routine; and

a harmonic analysis feature engineering sub-routine.

29. The medium of claim 10 , wherein the plurality of object-orientation modelors comprise:

a scaled propensity modelor used to calculate probability of a customer making an economic commitment;

a timing modelor used to calibrate moments in time when a customer is likely to engage with the specific targeted action;

an affinity modelor used to capture ranked likes and dislikes of an entity's customers for a first subset of targeted actions;

a best action modelor used to create a framework for concurrent Key Performance Index of the specific targeted action at different points in a customer's journey; and

a cluster modelor used to group an entity's customers based on the customers' behavior into a finite list.

30. The medium of claim 10 , the operations further comprising forming an object-oriented orchestration by:

adding version indicators to the datasets;

adding primary surrogate keys to the datasets and updating the version indicators; and

encoding the datasets in dimensional star schema and updating the version indicators.

31. The medium of claim 10 , the operations further comprising forming an object-oriented orchestration by:

adding version indicators to the modelors.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 30, 2020
From: COLLINS, BRYAN WAYNE; SIMON, ERIC PAVER; BRIANCON, ALAIN CHARLES; BAIG, MIRZA SAFIULLAH; ARANE, YARDEN; WU, WENJIE; KARUMURI, DIVYA; BRYCE, KEVIN
To: CEREBRI AI INC.
Reel/Frame 054226/0806 →
Continuity (2)
Provisional Application 62856713 · Jun 3, 2019
Related Publication 20200380183A1 · Dec 3, 2020