Abstract:
In one embodiment, we describe a method that generates seasonality rules for anomaly detection for a hierarchical/tree based data structure. A new algorithm for processing nodes in hierarchy, as well as business rules for nodes, is described. Variations and examples are given to describe different scopes and embodiments of the invention. Exclusion criteria and children nodes are used as some examples for the implementations, with flow charts to describe the methods of application, as examples.

Description:
BACKGROUND OF THE INVENTION 
       [0001]    It is well understood within trade industry that products manufactured/shipped out-of-season can have a higher risk of being substandard and/or deteriorating. As a well-known example, apples arriving from Australia in the month of November may be suspect, due to the seasonality of apple harvest in Australia. Similarly, mangoes arriving from California in the month of February may be suspect, due to the seasonality of mango harvest in California. Most of the vegetables, food crops, and fruits show seasonality trends, which can be analyzed for anomaly detection. Industrial products also show seasonality trends, although to a lesser extent. 
         [0002]    There are notable and understandable exceptions to seasonality rules. For example, some companies in the US have excellent greenhouse operations, and as part of their business model, they ship some tomatoes in winter, to cater to the winter demand of tomatoes. 
         [0003]    References for related art include:
   1. “Algorithms for Mining Distance-Based Outliers in Large Datasets”, Edwin M. Knox and Raymond T. Ng, Department of Computer Science, University of British Columbia, Vancouver, BC V6T 124 Canada.   2. “Applications of data mining in computer security”, by Daniel Barbara, Sushil Jajodia, Kluwer Academic Publishers, 2002.   3. “Seasonal outliers in time series”, Regina Kaiser and Agustin Maravall, Banco de España Working Papers, 1999.   4. “Distance-based outliers: algorithms and applications”, Edwin M. Knorr, Raymond T. Ng and Vladimir Tucakov, The VLDB Journal, Springer Berlin/Heidelberg, Volume 8, Numbers 3-4/February, 2000.   5. Distance Based Outlier for Data Streams Using Grid Structure, Manzoor Elahi, Lv Xinjie, M. Wasif Nisar and Hongan Wang, Information Technology Journal, 2009, Volume: 8, Issue: 2, Page No.: 128-137.   6. Multiple hierarchical classification of free-text clinical guidelines, Robert Moskovitch, Shiva Cohen-Kashi, Uzi Dror, Iftah Levy, Amit Maimon and Yuval Shahar, Medical Informatics Research Center, Department of Information Systems Engineering, Ben Gurion University, P.O. Box 653, Beer Sheva 84105, Israel.   7. “Greenhouse Tomatoes Change the Dynamics of the North American Fresh Tomato Industry”, at http://postharvest.ucdavis.edu/datastorefiles/234-447.pdf.   8. “Methods for estimating the seasonality of groups of similar items”, http://www.patentstorm.us/patents/6834266.html.   9. “Decision support system for the management of an agile supply chain”, http://www.patentstorm.us/patents/6151582.html.   10. “System and method for detecting traffic anomalies”, http://www.patentstorm.us/patents/6177885/description.html.   11. “Anomaly detection system and a method of teaching it”, http://www.freepatentsonline.com/7613668.html.   
 
         [0015]    However, the invention and embodiments described here, below, have not been addressed or presented, in any prior art. 
       SUMMARY OF THE INVENTION 
       [0016]    In one embodiment, we describe a method that generates seasonality rules for anomaly detection for a hierarchical/tree based data structure. A new algorithm for processing nodes in hierarchy, as well as business rules for nodes, is described. Variations and examples are given to describe different scopes and embodiments of the invention. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0017]      FIG. 1  is The Single Node Seasonality algorithm, for one embodiment, as an example. 
           [0018]      FIG. 2  is The Exclusion Criteria for trade parties, for one embodiment, as an example. 
           [0019]      FIG. 3  is A Method for Generating Child nodes, in a multiple classification hierarchy, for one embodiment, as an example. 
       
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
       [0020]    Here, in one embodiment, we show how to formulate the problem: 
         [0021]    We are given source data consisting of product, associated trade parties and date of activity. The date of activity can be the date of growth/manufacturing or the date of shipping. An example of data can be found here, in Table 1: 
         [0000]    
       
         
               
             
               
               
               
               
               
             
           
               
                 TABLE 1 
               
             
             
               
                   
               
               
                 Data sample of products, associated parties, and frequency: 
               
             
          
           
               
                   
                 Associated 
                 Associated 
                   
                   
               
               
                   
                 Trade Party  
                 Trade Party 
                   
                 Activity 
               
               
                 Product 
                 1 
                 2 
                 Quantity 
                 date 
               
               
                   
               
               
                 Cucumber 
                 ABC 
                 Mexico 
                 100 kg 
                 Jun. 22, 2009 
               
               
                   
                 Grower 
                   
                   
                   
               
               
                 Broccoli  
                 XYZ 
                 Honduras 
                  40 MTon 
                 Jul. 3, 2009 
               
               
                   
                 Grower 
                   
                   
                   
               
               
                 Apples, 
                 BCD 
                 Nicaragua 
                  50 sacks 
                 Mar. 15, 2009 
               
               
                 Gala 
                 Grower 
                   
                   
                   
               
               
                 Apples 
                 Happy 
                 Mexico 
                  2 
                 Mar. 24, 2009 
               
               
                   
                 Farmer 
                   
                 containers 
                   
               
               
                 Apples, 
                 BCD 
                 Nicaragua 
                  60 sacks 
                 Apr. 20, 2009 
               
               
                 Granny 
                 Grower 
                   
                   
                   
               
               
                 Smith 
               
               
                   
               
             
          
         
       
     
         [0022]    Assume we have a dataset of objects, each having n attributes that belong to their corresponding classes. Hierarchical or not, the dataset can be represented as a tree in the following way: The root node that has no incoming edges represents the entire dataset. Following the root node are level-one nodes, which are generated based on class1 attributes. The n-th generation (or level-n) nodes are leaf nodes with no outgoing edges, and they represent a particular object from a dataset, not a group of objects. Each node has the following statistics or parameters: average frequencies by seasonal term (S 1  to S k ), and Max, Min, and Median of S 1  through S k . 
         [0023]    Proposed System and Methodology: 
         [0024]    Notations:
       Product p   q p s i : Quantity of a product for a given seasonal term S i      S P =Sum(q p s 1  to q p s k )   X P =Max(q p s 1  to q p s k )   N P =Min(q p s 1  to q p s k )   D P =Median(q p s 1  to q p s k )       
 
         [0031]    Business Rules: 
         [0032]    Criteria C 0  (Statistically Significant Data): If S P &gt;Threshold T. 
         [0033]    This is the criteria for the node (and subsequently children nodes) not to be eliminated from processing. (Specifically, if Sp&gt;Threshold T, only then we consider that node (and possibly its child nodes). If Sp&lt;=T, then we drop the node and its child nodes altogether.) 
         [0034]    Criteria C 1  (Strong Seasonality): If X P /N P &gt;G 1  (e.g. G 1 =100) 
         [0035]    Treatment T 1 : For each season S i , give a risk increment of f(S i ,D P ), wherein f( . . . ) is a function. 
         [0036]    This is the criteria for the children of the node to be eliminated from processing. 
         [0037]    Criteria C 2  (Weak Seasonality): If X P /N P &gt;G 2  (e.g. G 2 =4). This is the criteria when the node and the child nodes are still eligible for further processing. 
         [0038]    Obviously, G 1  must be greater than G 2 . 
         [0039]    Treatment T 2 : For each season S i , give a risk increment of g(S i ,D P ), wherein g( . . . ) is a function. The treatment T 2  is (in general) different from that of T 1 , but they can be the same in some situations. In general, the weak seasonality implies that the risk increment of g(S i ,D P ) is not the same order of magnitude as that of f(S i ,D P ). 
         [0040]    The Seasonality Algorithm: 
         [0041]    We start the process from the parent node (root node, as a starting point) and continue with all the nodes on the same level until all the eligible nodes have been considered. Then, we continue with their child nodes, until we reach all leaf nodes. All children nodes go to the same process called Single Node Seasonality Algorithm. The process for each node is described in  FIG. 1 , The Single Node Seasonality Algorithm. 
         [0042]    Often times in practice, it will not be necessary to aggregate all the products in the same hierarchy. Sometimes, it is more reasonable to find the highest common ancestor, for example, in case of fruits and vegetables, it will be food. To do that, we will track all the products up in the hierarchy so we can find the node in the tree which is the lowest in the hierarchy, but contains all the products of interest (e.g. food). We will consider that node to be the parent node. 
         [0043]    Checking for Exclusions: 
         [0044]    Check for exclusion process checks to see if the corresponding criterion for a given node is not met by trade parties. If it is not met, then we do not have to apply the corresponding treatment for that subsection. 
         [0045]    Criteria C 3  (The Exclusion Criteria): The exclusion is said to be held, if the trade party has history with this product, and this seasonal cycle&#39;s quantities for this trade party are similar to previous seasonal cycle&#39;s quantities for this trade party. Similarity to previous seasonal cycle, in terms of quantities, is defined as deviating/exceeding from previous cycle&#39;s quantities by no more than a factor of 2 (or a factor Rf, a real number, in general). (The Exclusion Criteria for trade parties is described in  FIG. 2 .) 
         [0046]    Comparison to the prior parameters can also be done using percentages and differences, in relative or absolute values, and also using the neural network method, to find the differences, to train to compare with thresholds, for history on record, in memory units, to find the samples that are beyond the threshold, which should be excluded, deleted, or ignored. 
         [0047]    Generating Children Nodes: 
         [0048]    Navigating a multiple classification hierarchy can be done by using each level&#39;s Information Value. For each candidate child node, we calculate the following statistics: 
         [0049]    For each attribute k of the class i, calculate IV ik =(Sp ik *Xp ik /Np ik )/log(n i ), where Sp ik  is the sum of quantities for an attribute k of the class i, n i  is the number of attributes of the class i, Xp ik  and Np ik  are Min and Max of quantities for an attribute k of the class i. Denote IV i  (Information Value) as the sum of all IV ik  of existing attributes. 
         [0050]    The Xp ik /Np ik  (the max over min ratio) is a determinant of the attributes for seasonality, and hence, it goes into the formula for IV (the bigger the ratio, the higher its contribution to the IV value). Sp ik  (sum of quantities for an attribute k) serves as a weight factor of the attribute on IV calculation. Thus, if an attribute has small number of quantities, then the weight of max/min ratio is small, as well. The (Sp ik *Xp ik /Np ik ) value will contribute to IV greatly, if we see both high seasonality and high number of elements. And, finally, we divide the weighted ratio to log (n i ) to reduce the IV value for the cases when the number of attributes in a class is too many. This reduces the complexity of the hierarchy. 
         [0051]    Of course, the weight can be defined differently, to show the magnitudes of max or min, in an alternative, and a normal real number, rather than log-scale, can be used, to express the values and concepts above, in a different scale. 
         [0052]    The class level that gives the highest IV should be chosen as a child node, as shown in  FIG. 3 , for generating child nodes, in a multiple classification hierarchy. 
         [0053]    The season is defined as a period of time or multiple periods of time/windows T 1 , in which some parameter P 1  has a value of M 11 , and in the other periods, T 2 , T 3 , etc, P 1  has the value of M 12 , M 13 , etc. Similarly, for a parameter P 2 , we will have (for periods T 1 , T 2 , T 3 , . . . ) values of M 21 , M 22 , M 23 , etc, respectively. This constitutes a matrix of H by Q, in which we have H different kinds of parameters (or P), and (maximum possible number for) Q different kinds of windows or time or periods (or T). This gives the relationship between all P and T, with resulting M (values) in the matrix form, for the corresponding columns and rows, represented by Mij, with i and j representing row and column numbers, respectively, in the matrix, as the index for element M in the matrix. 
         [0054]    Other parameters that can be used, in other embodiments, for measuring or quantizing degree of abnormality, being out-of-season, or anomaly, is based on difference between maximum and minimum for a parameter, the range of 25 percent and 75 percent percentile values for a parameter, or one or 2 standard deviations from mean or average for a parameter. Then, assuming a normal distribution or a similar distribution, the further one gets away from the mean or average, the more abnormal it gets, using a metrics or parameter for quantization or comparison, with a real number normalized between 0 to 100, or between 0 and 1 range, as an example for showing the degree of abnormality or being different from norm or average, as one way to quantify the degree or level of being different, or difference to average or mean. The values or distances are compared or subtracted from each other, and can be divided to the base or original value, to normalize them, for comparisons, or scaling, as an example, to get ratios or percentages. 
         [0055]    One can, in one example, subtract or delete the “understandable exceptions”, as mentioned above, from the “total” list of exceptions, to get the “net” list of exceptions, for further processing, in our system here. 
         [0056]    Our system has a central processing unit, in one example, along with multiple storage units, with some user input interface/unit, and communication units between processing module and other modules, e.g. comparison module, exception module, and security module, e.g. doing various tasks shown in  FIGS. 1-3 , above. 
         [0057]    One example: The criteria are stored in first storage unit(s), and parameters are input by a user or from a second storage unit or database/list. The comparisons are done by a system, processor, computer, or microprocessor. The exclusion results and generation of children nodes are done by application or secondary processor unit. The hierarchy and nodes are stored in a memory unit or third storage, as an example. The modules are connected through buffers or other memory units, with another processor directing all the data transfer and actions. One can combine processors and memory units, in one or fewer units, if desired, in another embodiment. 
         [0058]    Any variations of the above teaching are also intended to be covered by this patent application.