US 11,854,022 B2
Proactively predicting transaction dates based on sparse transaction data
Ninad Kulkarni, Dublin, CA (US); Jing Wang, Mountain View, CA (US); Pankti Jayesh Kansara, San Jose, CA (US); Mario Ponce Midence, Livermore, CA (US); and James Rapp, Denver, CO (US)
Assigned to SAP SE, Walldorf (DE)
Filed by SAP SE, Walldorf (DE)
Filed on Mar. 5, 2020, as Appl. No. 16/810,443.
Claims priority of provisional application 62/924,618, filed on Oct. 22, 2019.
Prior Publication US 2021/0117839 A1, Apr. 22, 2021
Int. Cl. G06Q 30/00 (2023.01); G06Q 30/0202 (2023.01); G06Q 30/0601 (2023.01); G06N 20/00 (2019.01); G06Q 10/047 (2023.01); G06Q 10/1093 (2023.01); G06N 7/01 (2023.01)
CPC G06Q 30/0202 (2013.01) [G06N 7/01 (2023.01); G06N 20/00 (2019.01); G06Q 10/047 (2013.01); G06Q 10/1093 (2013.01); G06Q 30/0605 (2013.01)] 14 Claims
OG exemplary drawing
 
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.