IP Library Granted Patent US 11,561,983
Granted Patent B2
US 11,561,983 · App. 16/812,158 · Granted Jan 24, 2023

Online trained object property estimator

Inventor: Mark Henrik Sandstrom (Alexandria, VA)
Assignee: ThroughPuter, Inc.
G06F16/24568G06F16/23G06F16/9017G06K9/6256G06K9/6269G06N20/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 11,561,983
App. No.
16/812,158
Granted
Jan 24, 2023
Kind
B2
Abstract

This disclosure describes systems and methods for using an estimator to produce values for dependent variables of streaming objects based on values of independent variables of the objects. The systems and methods may include continuously tuning the estimator based on any objects received with pre-populated values for the dependent variables.

Claims (88)

1. A method for estimating values of unknown features of a series of objects, the objects being represented as digital feature vectors, each digital feature vector including a plurality of X-variables having corresponding values populated on the respective digital feature vector before the estimating as a plurality of received X-variables, and, for at least a portion of the series of objects, a Y-variable having an unknown value prior to the estimating, the method comprising operations performed by an estimator, the estimator comprising hardware logic configured to perform at least a portion of the operations and/or software logic stored on a non-transitory digital medium and configured to perform, when executed via processing circuitry, at least a portion of the operations, the operations comprising:

maintaining, by the estimator on a non-transitory digital memory, an array of models for the series of objects, wherein

each model of the array of models comprises a Y-variable value and a plurality of X-variable values corresponding to the respective Y-variable value, and

the array of models is organized according to Y-variable values of the models;

for each object of at least a portion of the series of objects, in realtime,

forming, by the estimator, augmented X-variables by appending to the received X-variables a set of synthesized variables for the X-variables of the digital feature vector of the respective object, wherein

respective values of the set of synthesized variables are based at least in part on values of the received X-variables of the respective object,

computing, by the estimator, an estimated value of the Y-variable of the respective object by

identifying, from the array of models, a set of closest matching models based on a measure of difference between the values of at least a subset of the augmented X-variables of the respective object and a corresponding subset of the X-variable values of at least a portion of the models of the array of models, and

producing the estimated value of the Y-variable of the respective object based at least in part on a Y-variable value of one or more models of the set of closest matching models.

2. The method of claim 1 , comprising operations for processing a series of output objects produced by the estimator, such operations being performed by a consumer comprising hardware logic configured to perform at least a portion of the operations for processing the series of output objects produced by the estimator and/or software logic stored on a non-transitory digital medium and configured to perform, when executed via processing circuitry, at least a portion of the operations for processing the series of output objects produced by the estimator, wherein the operations for processing the series of output objects produced by the estimator comprise:

ascertaining, by the consumer, an actual value corresponding to an estimated value of a Y-variable of a given object of the series of output objects;

comparing, by the consumer, the estimated value to the actual value of the Y-variable of the given object to assess accuracy of the estimated value; and

responsive to assessing that the estimated value is inaccurate, generating, by the consumer, a training object from the given object, wherein generating the training object comprises

replacing, in the training object, the estimated value of the Y-variable of the given object with the actual value, and

sending the training object back to the estimator as a new object of the series of objects.

3. The method of claim 2 , wherein assessing accuracy comprises determining whether the estimated value is within a threshold distance of the actual value.

4. The method of claim 2 , wherein the object processing operations further comprise:

maintaining, by the consumer, an accuracy score for the estimator based on a frequency measure of accurate estimates versus inaccurate estimates among at least some objects of the series of output objects; and

providing control, for the estimator by the consumer, to adjust a coefficient used for updating of the X-variable values of the array of models, wherein

responsive to an increase of the accuracy score, the coefficient is adjusted to decrease the significance of the training object as used to update the X-variable values of the array of models, and

responsive to a decrease in the accuracy score, the coefficient is adjusted to increase the significance of the training object as used to update the X-variable values of the array of models.

5. The method of claim 1 , wherein the operations further comprise transmitting, by the estimator, a given object of the series of objects as an output object, wherein

a value of the Y-variable of the digital feature vector of the output object is set to the estimated value for the given object.

6. A system for estimating values of unknown features of a series of objects, the objects being represented as digital feature vectors, each digital feature vector including a plurality of X-variables having corresponding values populated on the respective digital feature vector before the estimating and, for at least a portion of the series of objects, a Y-variable having an unknown value prior to the estimating, the system comprising:

an array of models for the series of objects, maintained on a non-transitory digital memory,

wherein

each model of the array of models comprises a Y-variable value and a plurality of X-variable values corresponding to the respective Y-variable value, and

the array of models are accessible using the Y-variable values of the models;

a realtime estimator module configured as a plurality of submodules, each submodule comprising software logic stored on a non-transitory digital medium and configured for execution via processing circuitry and/or hardware logic, the plurality of submodules comprising

a submodule for forming a plurality of subsets of the X-variables of the digital feature vector of each object of the series of objects, each subset being a respective object variant of the X-variables of a given object, and

a submodule for computing an estimated value of the Y-variable of each object of the series of objects by

for each object variant of the given object, (i) identifying, from the array of models, a respective set of at least one closest matching model based in part on a measure of difference between values of the X-variables of the respective object variant and a corresponding subset of the X-variables of the models of the array of models, and (ii) calculating, based on Y-variables of said set of closest matching models, a respective variant-specific estimate, and

producing the estimated value for the Y-variable of the respective object based at least in part on Y-variable values of at least some of the respective variant-specific estimate for the given object, and

a submodule for transmitting an output object comprising the estimated value.

7. The system of claim 6 , wherein:

each object variant of each object of the series of objects comprises a respective accuracy ranking; and

producing the estimated value of the Y-variable comprises producing the estimated value using the variant-specific estimates and corresponding accuracy rankings of each object variant.

8. The system of claim 7 , wherein using the variant-specific estimates comprises calculating a weighted average of such variant-specific estimates based at least in part on the respective rankings of the object variants.

9. The system of claim 6 , wherein the estimator module further comprises a submodule for adjusting accuracy rankings of the object variants by, for each one of the object variants:

based upon receiving of an object with a valid pre-populated value for the Y-variable, assessing a measure of accuracy for the respective object variant based at least in part on a relative difference between the respective variant-specific estimate, and the pre-populated value; and

applying the measure of accuracy to adjust the accuracy ranking of the respective object variant.

10. The system of claim 9 , wherein, for at least one given variant of the object variants, the respective accuracy ranking is adjusted based at least in part on

(a) a degree of match between the respective variant-specific estimate and the pre-populated Y-variable value of the given training object, and/or

(b) a measure of a relative frequency of occurrences that the respective variant-specific estimate has been

(i) among a threshold number of closest variant-specific estimates compared with the pre-populated Y-variable value, or

(ii) within a defined range of error from the pre-populated Y-variable value.

11. The system of claim 6 , wherein the submodules of the estimator module further comprise:

a submodule for processing a given object as a training object by

identifying, by the estimator, that the given object comprises a Y-variable of the digital feature vector having a valid pre-populated value, and

determining, by the estimator, whether any model in the array of models comprises the pre-populated value, wherein

based upon the array of models lacking a model having a respective Y-variable value matching the pre-populated value, the estimator stores, in the array of models as an element corresponding to the pre-populated value, the values of the plurality of X-variables of the digital feature vector of the respective object, and

based upon the array of models including a matching model having a respective Y-variable value matching the pre-populated value, the estimator updates the matching model by equating each of at least a subset of the X-variable values of the given model to a respective updated value.

12. The system of claim 11 , wherein each respective updated value is computed as a function of the respective X-variable value of the given model prior to the updating and the values of the corresponding X-variable of one or more object variants of the respective object.

13. The system of claim 11 , submodule for forming augmented X-variables by appending to the X-variables as received a set of synthesized variables based at least in part on values of the as-received X-variables of the digital feature vector of the given object,

wherein the submodule for forming the plurality of subsets, for each object of the series of objects, forms each subset of the plurality of subsets from the augmented X-variables of the respective object.

14. The system of claim 6 , comprising a primary estimator and a collection of secondary estimators, with each of the secondary estimators having its own specific array of models, wherein the respective Y-value estimate produced by the primary estimator for the given object is used for selecting an appropriate one of the secondary estimators for performing estimation at deeper level of detail for the given object, based on the specific models of such selected secondary estimator.

15. The system of claim 6 , wherein the estimator module is a first estimator module, the system further comprising:

a collection of object model banks; and

a second estimator module logically connected in series to the estimator module, wherein

the system comprises logic for selecting, for each object of the series of objects, one of the model banks of the collection of object model banks as the array of models to be used by the second estimator, wherein

selecting of one of the model banks, by the logic for selecting, is based at least in part on the respective estimate value produced by the first estimator module.

16. A method for estimating values of unknown features of a series of objects, the objects being represented as digital feature vectors, each digital feature vector including a plurality of X-variables having values populated on corresponding components of the respective digital feature vector before the estimating as a plurality of received X-variables, and, for at least a portion of the series of objects, a Y-variable having an unknown value prior to the estimating, the method comprising operations performed by hardware logic configured to perform at least a portion of the operations and/or software logic stored on a non-transitory digital medium and configured to perform, when executed via processing circuitry, at least a portion of the operations, the operations comprising:

maintaining, on a non-transitory digital memory, an array of models for the series of objects,

wherein

each model of the array of models comprises a Y-variable value and an augmented vector of X-variable values corresponding to the respective Y-variable value, and

the array of models is arranged according to the Y-variable values of the models; and

for each object of the series of objects, in realtime,

forming the augmented vector of X-variables of the respective object by appending to the received X-variables one or more synthesized variables, wherein

each synthesized variable is based at least in part on one or more values of the received X-variables of the respective object,

computing an estimated value of the Y-variable of the respective object by

identifying, from the array of models, a set of closest matching models at least in part by comparing X-variables values of the augmented vector of individual models of the array to the X-variable values of the augmented vector of the respective object, and

transmitting the respective object as an output object, wherein, for at least a portion of the series of objects where the Y-variable of the respective object had an unknown value prior to the estimating,

a populated value of the Y-variable of the digital feature vector of the output object is computed based at least in part on Y-variable values of the set of closest matching models.

17. The method of claim 16 , further comprising:

forming, for each object of the series of objects, subsets of X-variable values of the augmented vector of X-variables, each such subset of the augmented X-variables referred to as a respective object variant, wherein

identifying the set of closest matching models comprises, for each given object variant of the respective object, finding, from the array of models, a respective closest matching model to add to the set of closest matching models based in part on a measure of difference between the X-variables of the respective object variant and a corresponding subset of the X-variable values of the models of the array of models, the respective closest matching model of the given variant being a respective variant-specific estimate; and

producing the estimated value of the Y-variable of the respective object based at least in part on the respective variant-specific estimates.

18. The method of claim 17 , further comprising adjusting accuracy rankings of the object variants of the respective object by, for each object variant of the respective object:

based upon receiving an object with a valid pre-populated Y-variable value, assessing a measure of accuracy for the respective object variant based at least in part on a relative difference between the pre-populated value and the respective variant-specific estimate; and

applying the measure of accuracy to adjust the accuracy ranking of the respective object variant.

19. The method of claim 17 , wherein producing the estimated value of the Y-variable comprises producing the estimated value using the variant-specific estimates and the corresponding accuracy rankings of the object variants.

20. The method of claim 17 , further comprising:

receiving, among the series of objects, a given object comprising a Y-variable of the digital feature vector of the object having a pre-populated value that is a valid value; and

processing the given object as a training object by

determining whether any model in the array of models comprises the pre-populated value,

based upon the array of models lacking a model having a respective Y-variable value matching the pre-populated value, storing the X-variable values of the plurality of received X-variables of the digital feature vector of the respective object in the array of models as an element corresponding to the pre-populated value, and

based upon the array of models including a matching model having a respective Y-variable value matching the pre-populated value, updating the matching model by equating each of at least a subset of the X-variable values of the given model to a respective updated value, wherein each respective updated value is computed as a function of the respective X-variable value of the given model prior to the updating and the values of the corresponding X-variable of one or more object variants of the respective object.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 3, 2020
From: SANDSTROM, MARK HENRIK
To: THROUGHPUTER, INC.
Reel/Frame 052820/0937 →
Continuity (8)
Provisional Application 62876087 · Jul 19, 2019
Provisional Application 62871096 · Jul 6, 2019
Provisional Application 62868756 · Jun 28, 2019
Provisional Application 62857573 · Jun 5, 2019
Provisional Application 62827435 · Apr 1, 2019
Provisional Application 62822569 · Mar 22, 2019
Provisional Application 62815153 · Mar 7, 2019
Related Publication 20200285645A1 · Sep 10, 2020
Cited By (2)
US 12,306,929 US 12,417,408