IP Library Granted Patent US 11,315,025
Granted Patent B2
US 11,315,025 · App. 16/152,223 · Granted Apr 26, 2022

Method and system for forecasting information based on events and criterion

Inventors: Adrian Witas (Los Angeles, CA); Varoujan Bedirian (Los Angeles, CA)
Assignee: VIANT TECHNOLOGY LLC
G06N5/04G06F16/2462
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,315,025
App. No.
16/152,223
Granted
Apr 26, 2022
Kind
B2
Abstract

A method and system provide the ability to forecast events that match a criterion. Input is received and includes an event set and a criterion. The event set includes events and each of the events is a record with features. Each feature is an instance of a feature type (FT) and feature value (FV) combination. The criterion is a logical statement that specifies a criterion FT, a criterion FV, and an operator. The event set is partitioned and a partition BitSet is built for each partition. Each partition length of each partition BitSet is based on a number of the events. Based on the partition BitSets, a partition FT-FV count is created. For each partition, a partition FT criterion BitSet is created and a partition Criterion BitSet is computed based thereon. The forecast is then computed based on the partition Criterion BitSet.

Claims (128)

1. A computer-implemented method for forecasting events that match a criterion comprising:

(a) receiving input, wherein:

(1) the input comprises an event set and a criterion;

(2) the event set comprises one or more events;

(3) each of the one or more events comprises a record with one or more features;

(4) each of the one or more features comprises an instance of a feature type (FT) and feature value (FV) combination;

(5) the criterion comprises a logical statement that specifies a criterion FT, a criterion FV, and an operator;

(b) partitioning the event set into one or more partitions;

(c) building a partition BitSet for each of the one or more partitions, wherein each partition length of each partition BitSet is based on a number of the one or more events in the partition represented by that partition BitSet;

(d) based on the partition BitSets, creating a partition FT-FV count that lists a number of occurrences of each FV within a partition-FT combination;

(e) for each partition, computing a partition FT criterion BitSet;

(f) for each partition, computing a partition Criterion BitSet based on the partition FT criterion BitSet; and

(g) computing the forecast based on the partition Criterion BitSet.

2. The computer-implemented method of claim 1 , wherein:

the partitioning comprises:

determining a partition key; and

partitioning the event set into the partitions based on the partition key.

the partition key serves to reduce a total count of the one or more events in each of the one or more partitions; and

the partition key splits the one or more events, count-wise, in a distributed manner across the one or more partitions.

3. The computer-implemented method of claim 1 , wherein the building the partition BitSet comprises:

gathering the FTs in the one or more features into a partition feature type definition; and

for each of the FT-FV combinations, starting with a BitSet of all zeroes (0), setting a bit at position (P) to 1 when the FT-FV combination is found in the event (E) represented by position (P).

4. The computer-implemented method of claim 1 , wherein the computing a partition FT criterion BitSet comprises:

for each FT-FV criterion combination within the criterion, assembling a FT-FV Criterion BitSet and computing a FT-FV criterion count for each FT-FV Criterion BitSet, wherein:

a number of bits in the FT-FV Criterion BitSet corresponds to a number of events in the partition; and

for each FT-FV Criterion combination, starting with a FT-FV Criterion BitSet of all zeroes (0), setting a bit at position (P) to 1 when the FT-FV Criterion combination is found in the event (E) represented by position (P);

for each FT-FV Criterion combination having a common FT, combining the FT-FV Criterion BitSets to create a single FT criterion BitSet by:

when the operator for the FT-FV combination comprises an “=” intra-feature type operator, performing a logical OR operation between the FT-FV Criterion BitSets being combined;

when the operator for the FT-FV combination comprises a “!=” intra-feature type operator:

performing a logical NOT operator against the FT-FV Criterion BitSets; and

performing a logical AND operator between the FT-FV Criterion BitSets being combined; and

computing the partition FT criterion BitSet by applying a logical AND operator or a logical OR operator combining the single FT criterion BitSets, wherein the logical AND operator or the logical OR operator applied is based on an inter-feature type operator used between criterion FT-criterion FV combinations in the criterion.

5. The computer-implemented method of claim 1 , wherein:

the input comprises an aggregate;

the aggregate comprises an instance of a combination of an aggregate type (AT) and an aggregate value (AV);

the method further comprises building a partition AT-AV BitSet by:

for each of the AT-AV combinations, starting with a partition AT-AV BitSet of all zeroes (0), setting a bit at position (P) to 1 when an AT-AV combination is found in the event (E) represented by position (P); and

based on the partition AT-AV BitSets, creating a partition AT-AV count that lists a number of occurrences of each AV within a partition's AT-AV combination.

6. The computer-implemented method of claim 5 , further comprising computing a partition AT Criterion BitSet by:

based on the partitioned AT-AV BitSets, selecting one or more AVs; and

for each selected AV, performing a logical AND operation between the partition AT-AV BitSet and the partition FT criterion BitSet; and

computing the partition AT Criterion BitSet by applying a logical OR operation across results from the logical AND operation between the partition AT-AV BitSet and the partition FT criterion BitSet.

7. The computer-implemented method of claim 6 , further comprising computing a partition AV Match BitSet by:

for each partition AT-AV BitSet within each partition:

if the criterion includes an AT-AV and a range, use only events having AT-AVs within the range of the AT-AV specified;

if the criterion does not include the AT-AV and the range, use all AT-AVs; and

computing the partition AV Match BitSet by applying a logical AND operator between the partition FT criterion BitSet and the partition AT-AV BitSet.

8. The computer-implemented method of claim 7 , wherein the computing the partition Criterion BitSet based on the partition FT criterion BitSet comprises:

if the criterion comprises an AT, computing the partition Criterion BitSet by performing a logical AND operation between the Partition FT Criterion BitSet and the Partition AT Criterion BitSet;

if the criterion does not comprise an AT, the partition Criterion BitSet comprises the Partition FT Criterion BitSet; and

summing bits in the partition Criterion BitSet to generate a count of the one or more events in the partition matching the one or more events that match the AV.

9. The computer-implemented method of claim 7 , wherein the computing the forecast based on the partition Criterion BitSet comprises:

summing counts from each partition Criterion FT BitSet to produce a Total Matched Count;

computing a Total Matched Count per normalized unit of time by multiplying the Total Matched Count by a Criterion Span in the Criterion and dividing by an Event Set Span;

using all AV Matches for the criterion, computing an accurate average AV; and

for each FT-FV combination in the criterion, determining a most restrictive portion of the Criterion based on FT counts and FV counts.

10. The computer-implemented method of claim 1 , wherein:

the event comprises a request for an impression;

the criterion comprises an advertising campaign with targeting information;

the feature type comprises targeting dimensions for placement of the impression;

the event further comprises an aggregate having an aggregate type that is a price;

the forecasting comprises forecasting a count and accurate average price of a specific segment of impression inventory; and

the method further comprises generating an advertising campaign based on the forecasting, wherein the advertising campaign acquires and places one or more advertisements in the impression.

11. The computer-implemented method of claim 1 , wherein:

the event comprises sensor input;

the criterion comprises a query measuring wind velocity and pressure;

the feature type comprises wind velocity;

the event further comprises an aggregate having an aggregate type that is a wingtip pressure of an aircraft;

the forecasting comprises forecasting a maximum velocity while maintaining a pressure below a threshold; and

the method further comprises generating an aircraft design and utilizing the aircraft design to construct a part of an aircraft.

12. A system for forecasting events that match a criterion comprising:

(a) a server computer having a processor; and

(b) an application executing on the server computer that:

(1) receives input, wherein:

(A) the input comprises an event set and a criterion;

(B) the event set comprises one or more events;

(C) each of the one or more events comprises a record with one or more features;

(D) each of the one or more features comprises an instance of a feature type (FT) and feature value (FV) combination; and

(E) the criterion comprises a logical statement that specifies a criterion FT, a criterion FV, and an operator;

(2) partitions the event set into one or more partitions;

(3) builds a partition BitSet for each of the one or more partitions, wherein each partition length of each partition BitSet is based on a number of the one or more events in the partition represented by that partition BitSet;

(4) based on the partition BitSets, creates a partition FT-FV count that lists a number of occurrences of each FV within a partition-FT combination;

(5) for each partition, computes a partition FT criterion BitSet;

(6) for each partition, computes a partition Criterion BitSet based on the partition FT criterion BitSet; and

(7) computes the forecast based on the partition Criterion BitSet.

13. The system of claim 12 , wherein:

the application partitions by:

determining a partition key; and

partitioning the event set into the partitions based on the partition key;

the partition key serves to reduce a total count of the one or more events in each of the one or more partitions; and

the partition key splits the one or more events, count-wise, in a distributed manner across the one or more partitions.

14. The system of claim 12 , wherein the application builds the partition BitSet by:

gathering the FTs in the one or more features into a partition feature type definition; and

for each of the FT-FV combinations, starting with a BitSet of all zeroes (0), setting a bit at position (P) to 1 when the FT-FV combination is found in the event (E) represented by position (P).

15. The system of claim 12 , wherein the application computes a partition FT criterion BitSet by:

for each FT-FV criterion combination within the criterion, assembling a FT-FV Criterion BitSet and computing a FT-FV criterion count for each FT-FV Criterion BitSet, wherein:

a number of bits in the FT-FV Criterion BitSet corresponds to a number of events in the partition;

for each FT-FV Criterion combination, starting with a FT-FV Criterion BitSet of all zeroes (0), setting a bit at position (P) to 1 when the FT-FV Criterion combination is found in the event (E) represented by position (P);

for each FT-FV Criterion combination having a common FT, combining the FT-FV Criterion BitSets to create a single FT criterion BitSet by:

when the operator for the FT-FV combination comprises an “=” intra-feature type operator, performing a logical OR operation between the FT-FV Criterion BitSets being combined;

when the operator for the FT-FV combination comprises a “!=” intra-feature type operator:

performing a logical NOT operator against the FT-FV Criterion BitSets; and

performing a logical AND operator between the FT-FV Criterion BitSets being combined; and

computing the partition FT criterion BitSet by applying a logical AND operator or a logical OR operator combining the single FT criterion BitSets, wherein the logical AND operator or the logical OR operator applied is based on an inter-feature type operator used between criterion FT-criterion FV combinations in the criterion.

16. The system of claim 12 , wherein:

the input comprises an aggregate;

the aggregate comprises an instance of a combination of an aggregate type (AT) and an aggregate value (AV); and

the application builds a partition AT-AV BitSet by:

for each of the AT-AV combinations, starting with a partition AT-AV BitSet of all zeroes (0), setting a bit at position (P) to 1 when an AT-AV combination is found in the event (E) represented by position (P); and

based on the partition AT-AV BitSets, creating a partition AT-AV count that lists a number of occurrences of each AV within a partition's AT-AV combination.

17. The system of claim 16 , wherein the application further computes a partition AT Criterion BitSet by:

based on the partitioned AT-AV BitSets, selecting one or more AVs;

for each selected AV, performing a logical AND operation between the partition AT-AV BitSet and the partition FT criterion BitSet; and

computing the partition AT Criterion BitSet by applying a logical OR operation across results from the logical AND operation between the partition AT-AV BitSet and the partition FT criterion BitSet.

18. The system of claim 17 , wherein the application further computes a partition AV Match BitSet by:

for each partition AT-AV BitSet within each partition:

if the criterion includes an AT-AV and a range, use only events having AT-AVs within the range of the AT-AV specified;

if the criterion does not include the AT-AV and the range, use all AT-AVs; and

computing the partition AV Match BitSet by applying a logical AND operator between the partition FT criterion BitSet and the partition AT-AV BitSet.

19. The system of claim 18 , wherein the application computes the partition Criterion BitSet based on the partition FT criterion BitSet by:

if the criterion comprises an AT, computing the partition Criterion BitSet by performing a logical AND operation between the Partition FT Criterion BitSet and the Partition AT Criterion BitSet;

if the criterion does not comprise an AT, the partition Criterion BitSet comprises the Partition FT Criterion BitSet; and

summing bits in the partition Criterion BitSet to generate a count of the one or more events in the partition matching the one or more events that match the AV.

20. The system of claim 18 , wherein the application computes the forecast based on the partition Criterion BitSet by:

summing counts from each partition Criterion FT BitSet to produce a Total Matched Count;

computing a Total Matched Count per normalized unit of time by multiplying the Total Matched Count by a Criterion Span in the Criterion and dividing by an Event Set Span;

using all AV Matches for the criterion, computing an accurate average AV; and

for each FT-FV combination in the criterion, determining a most restrictive portion of the Criterion based on FT counts and FV counts.

Assignments (2)
PATENT SECURITY AGREEMENT Recorded Nov 10, 2019
From: VIANT TECHNOLOGY LLC; ADELPHIC LLC; MYSPACE LLC
To: PNC BANK, NATIONAL ASSOCIATION
Reel/Frame 050977/0542 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 4, 2018
From: WITAS, ADRIAN; BEDIRIAN, VAROUJAN
To: VIANT TECHNOLOGY LLC
Reel/Frame 047073/0641 →
Continuity (2)
Provisional Application 62642367 · Mar 13, 2018
Related Publication 20190287001A1 · Sep 19, 2019