IP Library › Granted Patent US 11,854,022
Granted Patent B2
US 11,854,022 · App. 16/810,443 · Granted Dec 26, 2023

Proactively predicting transaction dates based on sparse transaction data

Inventors: Ninad Kulkarni (Dublin, CA); Jing Wang (Mountain View, CA); Pankti Jayesh Kansara (San Jose, CA); Mario Ponce Midence (Livermore, CA); James Rapp (Denver, CO)
Assignee: SAP SE
G06Q30/0202G06N7/01G06N20/00G06Q10/047G06Q10/1093G06Q30/0605
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,854,022
App. No.
16/810,443
Filed
Mar 5, 2020
Granted
Dec 26, 2023
Kind
B2
Examiner
VIG, NARESH
Art Unit
3622
USPC
706/12
Abstract

The present disclosure involves systems, software, and computer implemented methods for proactively predicting demand based on sparse transaction data. One example method includes receiving a request to predict transaction dates for a plurality of transaction entities for a future time period. Historical transaction data for the transaction entities is identified for a plurality of categories of transacted items. The plurality of categories are organized using a hierarchy of levels. Multiple levels of the hierarchy are iterated over, starting at a lowest level. For each current level in the iteration, a plurality of transaction date prediction models are trained and tested. Heuristics for the plurality of trained transaction date prediction models are compared to determine a most accurate transaction date prediction model. The most accurate transaction date prediction model is used to make a prediction of transaction dates for the current level for the future time period.

Claims (67)

1. A computer-implemented method comprising:

receiving, by a computer, a request to predict transaction dates for a plurality of transaction entities for a future time period;

identifying, by the computer, historical transaction data for the transaction entities for a plurality of categories of transacted items, wherein the plurality of categories are organized using a hierarchy of levels;

iterating, by the computer, over multiple levels of the hierarchy and combinations of transaction entities and transacted items starting at a lowest level, wherein the iterating includes, determining, as filtered transaction data to use for the lowest level, historical transaction data from pairs of transacted entities and transacted items for which at least a threshold number of transactions have occurred for the lowest level, and wherein the iterating includes, for each current level in the iteration and for each transacted item:

dividing the filtered transaction data for the current level and the transacted item into a training data set and a testing data set;

identifying a plurality of machine learning transaction date prediction models for the current level and the transacted item, wherein the plurality of machine learning transaction date prediction models include at least one compressed model configured to use compressed training data and at least one uncompressed model configured to use uncompressed data;

generating, from the training data set, uncompressed training data for the at least one uncompressed model;

generating, from the uncompressed training data, compressed training data for the at least one compressed model, including compressing patterns of multiple zero elements followed by a non-zero element into a single value;

training each of the plurality of machine learning transaction date prediction models using either the compressed or uncompressed training data determined from transaction data for the current level to generate a plurality of trained transaction date prediction models;

testing each trained transaction date prediction model using the testing data set to generate a heuristic for each trained transaction date prediction model;

comparing the heuristics for the plurality of trained transaction date prediction models to determine a most accurate transaction date prediction model for the current level and the transacted item that most accurately predicts transaction dates of transactions of the transacted item in the current level, wherein the comparing includes decompressing compressed results from compressed models before the comparing; and

using the determined most accurate transaction date prediction model to make a prediction of transaction dates for the current level for the transacted item for the future time period;

determining a next level for a next iteration, where the next level represents a broader category of the transacted item than the current level;

determining next filtered transaction data as next pairs of transacted entities and transacted items to use for the next level by determining pairs of transacted entities and transacted items for which at least the threshold number of transactions have not occurred for the current level; and

determining, as transaction data to use for the next level, historical transaction data for the next pairs of transacted entities and transacted items for which at least the threshold number of transactions have occurred for the next level;

aggregating, by the computer, transaction date predictions for multiple levels of the hierarchy into an aggregated transaction date prediction that includes predicted transaction dates for each pair of transacted entity and transacted item;

filtering the aggregated date prediction based on aggregation rules to generate a filtered aggregated transaction date prediction; and

providing, by the computer, the filtered aggregated transaction date prediction in response to the request.

2. The method of claim 1 , wherein a first most accurate transaction date prediction model for a first level is different than a second most accurate transaction date prediction model for a second different level.

3. The method of claim 1 , wherein the first most accurate transaction date prediction model is retrained on a first training data set and a first testing data set.

4. The method of claim 1 , wherein the transaction date prediction models include historical mean, historical median, last-observed, or simple exponential smoothing models.

5. The method of claim 1 , wherein the transaction date prediction models comprise a zero-inflated Poisson model or a zero-inflated negative binomial model.

6. The method of claim 1 , where a lowest level of the hierarchy corresponds to a transacted item.

7. The method of claim 6 , wherein higher levels of the hierarchy correspond to more general categories of transacted items.

8. The method of claim 1 , wherein a transaction date prediction for a given level is provided to a transaction quantity forecaster that generates a transaction quantity prediction for the level based on the transaction date prediction for the level.

9. The method of claim 8 , wherein transaction quantity predictions from different levels are aggregated with the aggregated transaction date prediction into an aggregated transaction date and quantity prediction.

10. The method of claim 9 , wherein the aggregated transaction date and quantity prediction comprises a transaction entity visit schedule for scheduling visits to transaction entities that are predicted to have certain transactions on certain dates and in certain quantities.

11. The method of claim 10 , further comprising applying at least one inclusion rule to the transaction entity visit schedule.

12. The method of claim 11 , wherein the at least one inclusion rule includes a minimum visit rule or a minimum predicted transaction value rule.

13. A system comprising:

one or more computers; and

a computer-readable medium coupled to the one or more computers having instructions stored thereon which, when executed by the one or more computers, cause the one or more computers to perform operations comprising:

receiving, by a computer, a request to predict transaction dates for a plurality of transaction entities for a future time period;

identifying, by the computer, historical transaction data for the transaction entities for a plurality of categories of transacted items, wherein the plurality of categories are organized using a hierarchy of levels;

iterating, by the computer, over multiple levels of the hierarchy and combinations of transaction entities and transacted items starting at a lowest level, wherein the iterating includes, determining, as filtered transaction data to use for the lowest level, historical transaction data from pairs of transacted entities and transacted items for which at least a threshold number of transactions have occurred for the lowest level, and wherein the iterating includes, for each current level in the iteration and for each transacted item:

dividing the filtered transaction data for the current level and the transacted item into a training data set and a testing data set;

identifying a plurality of machine learning transaction date prediction models for the current level and the transacted item, wherein the plurality of machine learning transaction date prediction models include at least one compressed model configured to use compressed training data and at least one uncompressed model configured to use uncompressed data;

generating, from the training data set, uncompressed training data for the at least one uncompressed model;

generating, from the uncompressed training data, compressed training data for the at least one compressed model, including compressing patterns of multiple zero elements followed by a non-zero element into a single value;

training each of the plurality of machine learning transaction date prediction models using either the compressed or uncompressed training data determined from transaction data for the current level to generate a plurality of trained transaction date prediction models;

testing each trained transaction date prediction model using the testing data set to generate a heuristic for each trained transaction date prediction model;

comparing the heuristics for the plurality of trained transaction date prediction models to determine a most accurate transaction date prediction model for the current level and the transacted item that most accurately predicts transaction dates of transactions of the transacted item in the current level, wherein the comparing includes decompressing compressed results from compressed models before the comparing; and

using the determined most accurate transaction date prediction model to make a prediction of transaction dates for the current level for the transacted item for the future time period;

determining a next level for a next iteration, where the next level represents a broader category of the transacted item than the current level;

determining next filtered transaction data as next pairs of transacted entities and transacted items to use for the next level by determining pairs of transacted entities and transacted items for which at least the threshold number of transactions have not occurred for the current level; and

determining, as transaction data to use for the next level, historical transaction data for the next pairs of transacted entities and transacted items for which at least the threshold number of transactions have occurred for the next level;

aggregating, by the computer, transaction date predictions for multiple levels of the hierarchy into an aggregated transaction date prediction that includes predicted transaction dates for each pair of transacted entity and transacted item;

filtering the aggregated date prediction based on aggregation rules to generate a filtered aggregated transaction date prediction; and

providing, by the computer, the aggregated transaction date prediction in response to the request.

14. A computer program product encoded on a non-transitory storage medium, the product comprising non-transitory, computer readable instructions for causing one or more processors of a computer to perform operations comprising:

receiving, by a computer, a request to predict transaction dates for a plurality of transaction entities for a future time period;

identifying, by the computer, historical transaction data for the transaction entities for a plurality of categories of transacted items, wherein the plurality of categories are organized using a hierarchy of levels;

iterating, by the computer, over multiple levels of the hierarchy and combinations of transaction entities and transacted items starting at a lowest level, wherein the iterating includes, determining, as filtered transaction data to use for the lowest level, historical transaction data from pairs of transacted entities and transacted items for which at least a threshold number of transactions have occurred for the lowest level, and wherein the iterating includes, for each current level in the iteration and for each transacted item:

dividing the filtered transaction data for the current level and the transacted item into a training data set and a testing data set;

identifying a plurality of machine learning transaction date prediction models for the current level and the transacted item, wherein the plurality of machine learning transaction date prediction models include at least one compressed model configured to use compressed training data and at least one uncompressed model configured to use uncompressed data;

generating, from the training data set, uncompressed training data for the at least one uncompressed model;

generating, from the uncompressed training data, compressed training data for the at least one compressed model, including compressing patterns of multiple zero elements followed by a non-zero element into a single value;

training each of the plurality of machine learning transaction date prediction models using either the compressed or uncompressed training data determined from transaction data for the current level to generate a plurality of trained transaction date prediction models;

testing each trained transaction date prediction model using the testing data set to generate a heuristic for each trained transaction date prediction model;

comparing the heuristics for the plurality of trained transaction date prediction models to determine a most accurate transaction date prediction model for the current level and the transacted item that most accurately predicts transaction dates of transactions of the transacted item in the current level, wherein the comparing includes decompressing compressed results from compressed models before the comparing; and

using the determined most accurate transaction date prediction model to make a prediction of transaction dates for the current level for the transacted item for the future time period;

determining a next level for a next iteration, where the next level represents a broader category of the transacted item than the current level;

determining next filtered transaction data as next pairs of transacted entities and transacted items to use for the next level by determining pairs of transacted entities and transacted items for which at least the threshold number of transactions have not occurred for the current level; and

determining, as transaction data to use for the next level, historical transaction data for the next pairs of transacted entities and transacted items for which at least the threshold number of transactions have occurred for the next level;

aggregating, by the computer, transaction date predictions for multiple levels of the hierarchy into an aggregated transaction date prediction that includes predicted transaction dates for each pair of transacted entity and transacted item;

filtering the aggregated date prediction based on aggregation rules to generate a filtered aggregated transaction date prediction; and

providing, by the computer, the aggregated transaction date prediction in response to the request.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 9, 2020
From: KULKARNI, NINAD; WANG, JING; KANSARA, PANKITI JAYESH; MIDENCE, MARIO PONCE; RAPP, JAMES
To: SAP SE
Reel/Frame 053164/0200 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 5, 2020
From: LULKARNI, NINAD; WANG, JING; KANSARA, PANKTI JAYESH; MIDENCE, MARIO PONCE; RAPP, JAMES
To: SAP SE
Reel/Frame 052031/0761 →
Continuity (2)
Provisional Application 62924618 · Oct 22, 2019
Related Publication 20210117839A1 · Apr 22, 2021
Cited By (2)
US 12,387,170 US 12,699,588