Association rule mining system
By generating local and global conditional frequent pattern trees in the processing nodes of the computer system, the problems of excessive memory usage and long processing time in the prior art are solved, and the variable relationship in large data sets are efficiently identified.
Patent Information
- Application Number
- CN202080012949.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-03-01
- Filing Date
- 2020-02-24
- Publication Date
- 2025-08-29
- Estimated Expiration
- 2040-02-24
AI Technical Summary
Existing association rule mining techniques have problems with excessive memory usage and long processing time when processing large data sets, especially in parallel frequent mode growth (PFP), data partitioning and updating multiple conditional frequent mode trees are time-consuming and redundant, resulting in memory overflow and application crashes.
By generating local condition frequent pattern trees in the processing nodes of the computer system and generating global condition frequent pattern trees in each processing node, the local and global condition frequent pattern trees are used to generate rulesets to reduce memory usage and processing time.
It realizes efficient identification of variable relationships in large data sets, reduces memory usage and processing time, and improves resource utilization efficiency of computer systems.
Smart Images

Figure CN113396409B_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates generally to improved computer systems, and more particularly to methods, apparatus, computer systems, and computer program products for association rule mining. Background Art
[0002] When a customer uses an online store on the Internet, they typically have a list of items they want to purchase. Each customer may have a unique list, depending on their needs and preferences. The online store can provide recommendations to customers based on information collected about previous purchases, viewed items, and other customer information. Information about items purchased online by customers can be identified for use in making recommendations. For example, items that customers frequently purchase together can be determined. Subsequent purchases made after purchasing a specific item or group of items can also be identified.
[0003] This information can be processed using association rule mining. Association rule mining is a rule-based machine learning method used to discover interesting relationships between variables in large data sets. For example, in the case of purchasing items, association rule mining can be used to reveal how items are related to each other.
[0004] Currently used association rule mining techniques adopt a two-part process in which frequent item discovery and rule generation are performed. Regarding frequent item discovery, a popular method is frequent pattern growth (FP growth). Utilizing this technique, a large number of patterns can be identified from each branch of a frequent pattern tree (FP tree). Furthermore, each pattern can lead to the identification of many rules. As the branches of the tree become deeper, the number of generated rules becomes extremely large. Therefore, memory usage in computer systems can be a problem. Furthermore, the amount of time required to find the frequency of each part of the rule is extremely time-consuming.
[0005] Parallel Frequent Pattern (PFP) growing is a technique for frequent itemset mining in a distributed environment. This technique involves parallel item discovery. Parallel discovery is performed by generating multiple conditional FP trees. However, this technique results in redundant data in the multiple trees, and updating these trees is time-consuming. Furthermore, this technique consumes a significant amount of memory.
[0006] Therefore, it is desirable to have methods and apparatus that take into account at least some of the problems discussed above, as well as other possible problems.For example, it is desirable to have methods and apparatus that overcome the technical problem of identifying relationships between variables in a data set in a manner that reduces resource usage and processing time. Summary of the Invention
[0007] According to one embodiment of the present invention, a method identifies relationships between items in a transaction. A local conditional frequent pattern tree is generated by a computer system in a processing node in the computer system. Nodes in the local conditional frequent pattern tree represent items and the frequency of the items in the transaction. A global conditional frequent pattern tree is generated by the computer system in the processing node. Each of the processing nodes uses a set of local conditional frequent pattern trees in the processing node to generate a global conditional frequent pattern tree. The computer system distributes the global conditional frequent pattern trees generated by the processing nodes so that each of the processing nodes has a global conditional frequent pattern tree generated by other processing nodes. The computer system generates a pattern. The computer system uses the global conditional frequent pattern trees in the processing nodes and the pattern to generate a rule set, wherein the rule set defines the relationships between items.
[0008] According to another embodiment of the present invention, a data mining system includes a computer system that generates a local conditional frequent pattern tree in a processing node in the computer system. The nodes in the local conditional frequent pattern tree represent items and the frequency of the items in a transaction. The computer system generates a global conditional frequent pattern tree in the processing node. Each of the processing nodes uses a set of local conditional frequent pattern trees in the processing node to generate a global conditional frequent pattern tree. The computer system distributes the global conditional frequent pattern trees generated by the processing nodes so that each of the processing nodes has a global conditional frequent pattern tree generated by other processing nodes. The computer system generates a pattern and uses the global conditional frequent pattern tree in the processing node and the pattern to generate a rule set, wherein the rule set defines the relationship between the items.
[0009] According to another embodiment of the present invention, a computer program product for identifying relationships between items in a transaction includes a computer-readable storage medium, a first program code, a second program code, a third program code, a fourth program code, and a fifth program code stored on the computer-readable storage medium. The first program code is executed to generate a conditional frequent pattern tree in a processing node in a computer system, wherein nodes in the conditional frequent pattern tree represent items and their frequencies in the transaction. The second program code is executed to generate a global conditional frequent pattern tree in the processing node, wherein each processing node uses a set of local conditional frequent pattern trees in the processing node to generate a global conditional frequent pattern tree. The third program code is executed to distribute the global conditional frequent pattern tree generated by the processing nodes so that each processing node has a global conditional frequent pattern tree generated by other processing nodes. The fourth program code is executed to generate a pattern. The fifth program code is executed to use the global conditional frequent pattern tree in the processing node and the pattern to generate a rule set, wherein the rule set defines the relationship between items. BRIEF DESCRIPTION OF THE DRAWINGS
[0010] Embodiments of the present invention will now be described, by way of example only, with reference to the accompanying drawings, in which:
[0011] Figure 1 is a diagram of a network of data processing systems in which the illustrative embodiments may be implemented;
[0012] Figure 2 is a block diagram of a data mining environment according to an illustrative embodiment;
[0013] Figure 3 is a block diagram of components for a data miner according to an illustrative embodiment;
[0014] Figure 4 is a data flow diagram illustrating steps performed by components in a data miner in parallel association rule mining according to an illustrative embodiment;
[0015] Figure 5 is a flowchart of a process for identifying relationships between items in a transaction according to an illustrative embodiment;
[0016] Figure 6 is a flowchart of a process for identifying relationships between items in a transaction according to an illustrative embodiment;
[0017] Figure 7 is a more detailed flowchart of a process for identifying relationships between items in a transaction according to an illustrative embodiment;
[0018] Figure 8 is a flowchart of a process for generating a pattern tree from a global conditional frequent pattern tree according to an illustrative embodiment;
[0019] Figure 9 is a flow chart of a process for cascade searching according to an illustrative embodiment;
[0020] Figure 10 is a simplified diagram illustrating data flow for generating a local conditional frequent pattern tree from transactions in accordance with an illustrative embodiment;
[0021] Figure 11 is a simplified diagram illustrating a data flow for generating a local conditional pattern tree from a local frequent pattern tree according to an illustrative embodiment;
[0022] Figure 12 is a simplified diagram showing data flow for generating a pattern tree from a global conditional frequent pattern tree according to an illustrative embodiment; and
[0023] Figure 13 is a block diagram of a data processing system in accordance with an illustrative embodiment. DETAILED DESCRIPTION
[0024] The present invention may be a system, method and / or computer program product at any possible level of integrated technical detail. The computer program product may include a computer-readable storage medium (or medium) having computer-readable program instructions thereon, the computer-readable program instructions being used to cause a processor to perform various aspects of the present invention.
[0025] A computer-readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. A computer-readable storage medium can be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. A non-exhaustive list of more specific examples of computer-readable storage media includes the following: a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disc (DVD), a memory stick, a floppy disk, a mechanical encoding device (such as a punched card or a raised structure in a groove with instructions recorded thereon), and any suitable combination thereof. As used herein, a computer-readable storage medium should not be interpreted as a transient signal itself, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagated through a waveguide or other transmission medium (e.g., a light pulse passing through a fiber optic cable), or an electrical signal emitted by a wire.
[0026] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to a corresponding computing / processing device, or downloaded to an external computer or external storage device via a network (e.g., the Internet, a local area network, a wide area network, and / or a wireless network). The network can include copper transmission cables, optical transmission fibers, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. The network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in the computer-readable storage medium within the corresponding computing / processing device.
[0027] The computer-readable program instructions for performing the operation of the present invention can be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages (such as Smalltalk, C++, etc.), and traditional procedural programming languages (such as "C" programming language or similar programming languages). The computer-readable program instructions can be executed entirely on the user's computer, partly on the user's computer, as an independent software package, partly on the user's computer, partly on a remote computer, or completely on a remote computer or server. In the latter case, the remote computer can be connected to the user's computer through any type of network (including a local area network (LAN) or a wide area network (WAN)), or can be connected to an external computer (for example, by using the Internet of an Internet service provider). In certain embodiments, an electronic circuit (including, for example, a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA)) can execute the computer-readable program instructions to personalize the electronic circuit by utilizing the state information of the computer-readable program instructions, so as to perform various aspects of the present invention.
[0028] Various aspects of the present invention will be described below with reference to flowcharts and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the present invention. It should be understood that each block of the flowcharts and / or block diagrams, and combinations of blocks in the flowcharts and / or block diagrams, can be implemented by computer-readable program instructions.
[0029] These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processing device create a device for implementing the functions / actions specified in one or more blocks of the flowchart and / or block diagram. These computer program instructions can also be stored in a computer-readable medium that can instruct a computer, other programmable data processing device, or other device to function in a specific manner, so that the instructions stored in the computer-readable medium produce an article of manufacture including instructions for implementing the functions / actions specified in one or more blocks of the flowchart and / or block diagram.
[0030] The computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device that causes a series of operating steps to be performed on the computer, other programmable apparatus or other device to produce a computer-implemented process, so that the instructions executed on the computer, other programmable apparatus or other device implement the functions / actions specified in one or more boxes in the flowchart and / or block diagram.
[0031] The flow charts and block diagrams in the accompanying drawings illustrate the possible architecture, functions and operations of the systems, methods and computer program products according to different embodiments of the present invention. To this end, each box in the flow chart or block diagram can represent a part for a module, segment or instruction, which includes one or more executable instructions for realizing the specified logical function. In some alternative implementations, the functions marked in the box may not occur in the order marked in the figure. For example, depending on the function involved, the two boxes shown in succession can actually be performed substantially simultaneously, or these boxes can sometimes be performed in reverse order. It will also be noted that each box in the block diagram and / or flow chart, and the combination of the boxes in the block diagram and / or flow chart can be implemented by a system based on special-purpose hardware, which performs specified functions or actions or performs a combination of special-purpose hardware and computer instructions based on special-purpose hardware.
[0032] The illustrative embodiments recognize and take into account a number of different considerations. For example, the illustrative embodiments recognize and take into account that parallel frequent pattern growth (PFP) has several problems. For example, the illustrative embodiments recognize and take into account that when partitioning data into conditional frequent pattern trees, processing time is abnormal. The illustrative embodiments recognize and take into account that memory usage and computational costs are prohibitively expensive, especially when the dataset size is large in frequent item discovery.
[0033] The illustrative embodiments recognize and take into account that grouping data and updating multiple conditional frequent pattern trees may be more time-consuming than desired. For example, the illustrative embodiments recognize and take into account that a transaction may be divided into multiple records, resulting in data redundancy. The illustrative embodiments recognize and take into account that this redundancy involves using a single transaction to update a larger number of multiple conditional frequent pattern trees. Therefore, the update is more time-consuming than desired.
[0034] The illustrative embodiments recognize and take into account that having a processing node store all conditional frequent pattern trees in memory may consume more memory than desired. The illustrative embodiments recognize and take into account that this situation may lead to memory overflow and application crashes.
[0035] The illustrative embodiments also recognize and take into account that rule generation using PFP can be problematic for pattern searching in a distributed environment with large patterns. The illustrative embodiments recognize and take into account that the size of a pattern can result in the pattern being stored on different partitions. The illustrative embodiments recognize and take into account that for large global patterns, having data in different locations can result in slower than desired searches.
[0036] Thus, the illustrative embodiments provide methods, devices, systems, and computer program products for identifying relationships between items in a transaction. In one illustrative example, the method identifies relationships between items in a transaction. A local conditional frequent pattern tree is generated by a computer system in a processing node in the computer system. The nodes in the local conditional frequent pattern tree represent items and the frequency of the items in the transaction. A global conditional frequent pattern tree is generated by the computer system in the processing node. Each of the processing nodes uses a set of local conditional frequent pattern trees in the processing node to generate a global conditional frequent pattern tree. The global conditional frequent pattern trees generated by the processing nodes are distributed by the computer system so that each of the processing nodes has a global conditional frequent pattern tree generated by other processing nodes. A pattern is generated by the computer system. The computer system uses the global conditional frequent pattern trees in the processing nodes and the pattern to generate a rule set, wherein the rule set defines the relationships between items.
[0037] Referring now to the drawings, and in particular to Figure 1 , depicts a diagram of a network of data processing systems in which the illustrative embodiments may be implemented. Network data processing system 100 is a computer network in which the illustrative embodiments may be implemented. Network data processing system 100 contains network 102, which is the medium used to provide communications links between various devices and computers connected together within network data processing system 100. Network 102 may include connections such as wired, wireless communication links, or fiber optic cables.
[0038] In the depicted example, server computers 104 and 106 are connected to network 102, along with storage unit 108. Furthermore, client devices 110 are connected to network 102. As depicted, client devices 110 include client computer 112, client computer 114, and client computer 116. Client devices 110 may be, for example, computers, workstations, or network computers. In the depicted example, server computer 104 provides information, such as boot files, operating system images, and applications, to client devices 110. Furthermore, client devices 110 may also include other types of client devices, such as mobile phone 118, tablet computer 120, and smart glasses 122. In this illustrative example, server computers 104, 106, storage unit 108, and client devices 110 are network devices connected to network 102, with network 102 serving as the communication medium for these network devices. Some or all of client devices 110 may form an Internet of Things (IoT), in which these physical devices may connect to network 102 and exchange information with each other via network 102.
[0039] In this example, client device 110 is a client to server computer 104. Network data processing system 100 may include additional server computers, client computers, and other devices not shown. Client device 110 connects to network 102 using at least one of a wired, fiber optic, or wireless connection.
[0040] Program code located in network data processing system 100 may be stored on a computer-recordable storage medium and downloaded to a data processing system or other device for use. For example, program code may be stored on a computer-recordable storage medium on server computer 104 and downloaded to client device 110 over network 102 for use on client device 110.
[0041] In the depicted example, network data processing system 100 is the Internet with network 102 representing a global collection of networks and gateways that use the Transmission Control Protocol / Internet Protocol (TCP / IP) suite of protocols to communicate with one another. At the heart of the Internet is a backbone of high-speed data communication lines between major nodes or host computers, consisting of thousands of commercial, government, educational, and other computer systems that route data and messages. Of course, network data processing system 100 may also be implemented using a variety of different types of networks. For example, network 102 may include at least one of the Internet, an intranet, a local area network (LAN), a metropolitan area network (MAN), or a wide area network (WAN). Figure 1 It is intended as an example, not as an architectural limitation for the different illustrative embodiments.
[0042] As used herein, when used with reference to an item, "plurality" means one or more items. For example, "plurality of different types of networks" means one or more different types of networks.
[0043] Furthermore, when used with a list of items, the phrase "at least one of" means that different combinations of one or more of the listed items can be used, and only one of each item in the list may be required. In other words, "at least one of" means that any combination of items and multiple items from the list can be used, but not all items in the list are required. An item can be a specific object, thing, or category.
[0044] For example, but not limited to, "at least one of item A, item B, or item C" may include item A, item A and item B, or item B. This example may also include item A, item B, and item C, or item B and item C. Of course, any combination of these items may exist. In some illustrative examples, "at least one" may include, for example, but not limited to, two of item A; one of item B; ten of item C; four of item B and seven of item C; or other suitable combinations.
[0045] In this illustrative example, data miner 130 may process information 132 to identify relationships between items 134 in information 132. As depicted in this illustrative example, information 132 may be collected from user activity using client 110. For example, user 136 may use client computer 112 to purchase item 134 online. Data miner 130 may receive transaction 138 for item 134 purchased by user 136. Data miner 130 may use data association rule mining in the form of a parallel association rule (PAR) process to identify relationships between items 134 in information 132 and generate rules 144. In this example, rule 144 is an association rule.
[0046] Data miner 130 can be distributed across multiple data processing systems. Each of these data processing systems is a processing node, and the processing nodes to which data miner 130 is distributed are part of a cluster. In this example, data miner 130 runs on server computer 104 and server computer 106. Each of these server computers is a processing node, and the two processing nodes form a cluster.
[0047] As depicted, data miner 130 uses parallel association rules (PAR) process to generate local frequent pattern tree (FP tree) in each node, with the frequent item compression information 132 based on sorting. Local condition frequent pattern tree can be created for local frequent pattern tree and distributed in the cluster. For example, server computer 104 generates global frequent pattern tree from the local condition frequent pattern tree generated by the local frequent pattern tree on server computer 104. Server computer 106 generates global condition frequent pattern tree from the local condition frequent pattern tree generated by the local frequent pattern tree on server computer 106. Each of these server computers broadcasts the generated global condition frequent pattern tree. Therefore, server computer 104 has the global condition frequent pattern tree generated by server computer 104 and the global condition frequent pattern tree generated by server computer 106. In a similar manner, server computer 106 also has these two global condition frequent pattern trees.
[0048] Next, the data miner 130 can aggregate the local conditional frequent pattern trees by conditional items to generate a global conditional frequent pattern tree. The global conditional frequent pattern tree is broadcast to each node in the cluster. As depicted, the data miner 130 can generate a local pattern tree from the corresponding conditional frequent pattern tree on each processing node. The data miner 130 can generate rules 144 on each processing node (server computer) in parallel using the local pattern tree and the global conditional frequent pattern tree.
[0049] As depicted, mining information 132 in the form of transactions regarding items 134 purchased by user 136 can result in rules 144 for recommending items 134 to user 136. For example, rules 144 can be used to recommend selected items based on the current items that user 136 is viewing on client computer 112.
[0050] In this example, the Parallel Association Rules (PAR) process used in the data miner 130 is a two-stage rule search process that can reduce communication costs in the cluster and find the target pattern more quickly than the current process used in association rule mining. This two-stage search process provides a more efficient mechanism for searching for patterns and generating rules. In the illustrative example, the data miner 130 uses a local pattern tree and a global condition frequent pattern tree to search for patterns when generating rules. The pattern tree is first used to perform the search. If the pattern is not found on the pattern tree, the global condition frequent pattern tree is used to perform the search.
[0051] The description of this implementation of association data mining using a parallel association rule (PAR) process by data miner 130 is provided as an illustrative example and is not intended to limit the manner in which data miner 130 may be implemented in other examples. For example, data miner 130 may be located solely on server computer 104 or server computer 106. In other examples, data miner 130 may be located on a server computer, workstation, or other data processing system in addition to or in place of server computer 104 and server computer 106. In other words, the number of processing nodes and the type of processing nodes may vary in different illustrative examples.
[0052] Now refer to Figure 2 , depicts a block diagram of a data mining environment according to an illustrative embodiment. In this illustrative example, the data mining environment 200 includes a plurality of processors that can be used on hardware such as Figure 1 Components implemented in the hardware shown in network data processing system 100 in FIG.
[0053] In this example, data mining environment 200 is an environment in which data miner 202 can operate to process information 204. This processing of information 204 is also referred to as data mining. Data miner 202 operates on computer system 206. Computer system 206 is a physical hardware system that includes one or more data processing systems. When more than one data processing system is present in computer system 206, these data processing systems communicate with each other using a communication medium. The communication medium may be a network. The data processing system may be selected from at least one of a computer, a server computer, a tablet computer, or some other suitable data processing system.
[0054] In this illustrative example, data miner 202 may be distributed across multiple data processing systems in computer system 206. The data processing systems on which data miner 202 is located are processing nodes 208 that form cluster 210. As depicted, in this illustrative example, data miner 202 may process information 204 in parallel. In this example, computer system 206 with data miner 202 and processing nodes 208 in cluster 210 forms data mining system 211. In this illustrative example, information 204 may be partitioned and distributed to processing nodes 208 for parallel processing.
[0055] As depicted, data miner 202 may be implemented in software, hardware, firmware, or a combination thereof. When software is used, the operations performed by data miner 202 may be implemented in program code configured to run on hardware (such as a processor unit). When firmware is used, the operations performed by data miner 202 may be implemented in program code and data and stored in persistent memory to run on a processor unit. When hardware is used, the hardware may include circuitry that operates to perform the operations in data miner 202.
[0056] In the illustrative examples, the hardware can take the form of at least one selected from the following: a circuit system, an integrated circuit, an application specific integrated circuit (ASIC), a programmable logic device, or some other suitable type of hardware configured to perform multiple operations. Utilizing a programmable logic device, the device can be configured to perform multiple operations. The device can be reconfigured at a later time or can be permanently configured to perform multiple operations. Programmable logic devices include, for example, programmable logic arrays, programmable array logic, field programmable logic arrays, field programmable gate arrays, and other suitable hardware devices. In addition, the process can be implemented in an organic component integrated with an inorganic component, and can be composed entirely of organic components other than humans. For example, the process can be implemented as a circuit in an organic semiconductor.
[0057] Data miner 202 can be implemented using artificial intelligence system 203 using hardware, software, or some combination thereof. Artificial intelligence system 203 is a system that exhibits intelligent behavior and can be based on the functionality of the human brain. An artificial intelligence system includes at least one of an artificial neural network, a cognitive system, a Bayesian network, fuzzy logic, an expert system, a natural language system, a cognitive system, or some other suitable system. Machine learning is used to train the artificial intelligence system. Machine learning involves inputting data into a process and allowing the process to adjust and improve the functionality of the artificial intelligence system.
[0058] As depicted, data miner 202 can process information 204 to identify relationships 216 between items 212 in information 204. Upon identifying relationships 216, data miner 202 can perform association rule mining 220 to identify patterns 222 in information 204. Additionally, data miner 202 can identify frequent items 212 and their associations. These associations are rules 224 and can also be referred to as association rules.
[0059] In this illustrative example, data miner 202 implements machine-based learning in artificial intelligence system 203, where data mining is performed using a parallel association rules process 214. This process overcomes the issues of memory usage, processing time, and processor resources encountered by other association rules processes such as parallel frequent pattern growing (PFP).
[0060] In one illustrative example, data miner 202 identifies relationships 216 between items 212 in transactions 218. Items 212 and transactions 218 can take a number of different forms. For example, transaction 218 can be an online purchase of item 212, and wherein rule set 224 can be generated from the analysis for recommending item 212 to a customer.
[0061] In another illustrative example, item 212 can be a commodity, service, amino acid, stock, currency, a node in a network, or an item of other suitable types. A transaction can be, for example, but not limited to, an online purchase of an item, an in-store purchase of an item, the purchase of a commodity, the purchase of a service, the placement of an amino acid, the purchase of stock, and the purchase of currency, the purchase of a commodity, the purchase of a service, the placement of an amino acid, the purchase of stock, the purchase of concurrency, or other suitable types of transactions. In another example, an item can be sensor data. Sensor data can be used to determine whether there is a problem with a sensor of one of the components in a sensor system. In another illustrative example, an item can be a location determined using a global positioning system device in a vehicle. This data can be used to determine when a particular type of traffic event for a vehicle may occur.
[0062] As depicted, data miner 202 in computer system 206 can be distributed within processing nodes 208 in cluster 210. In other words, the processes and functionality of data miner 202 can be located on processing nodes 208 in a manner that enables information 204 to be processed in parallel.
[0063] In one illustrative example, data miner 202 running on computer system 206 generates local conditional frequent pattern tree 226 in processing node 208 in computer system 206. Nodes 228 in local conditional frequent pattern tree 226 represent items 212 in transaction 218 and frequencies 230 of items 212. The generation of local conditional frequent pattern tree 226 may be formed using currently available techniques for generating these types of trees.
[0064] The data miner 202 can generate the local conditional frequent pattern tree 226 in the processing node 208 in the computer system 206 as needed. In other words, when a conditional frequent pattern tree is needed, a local conditional frequent pattern tree can be generated in the processing node. It is not necessary to generate all possible local conditional frequent pattern trees at the same time.
[0065] In this illustrative example, currently available techniques in association rule mining for generating frequent pattern trees from items' transactions can be used to generate local conditional frequent pattern trees 226. These techniques include those used for frequent itemset mining, including, for example, the FP-growth algorithm. These currently available techniques also refer to these types of trees as FP-trees.
[0066] In this illustrative example, when generating local conditional frequent pattern tree 226, data miner 202 generates local frequent pattern tree 232 in processing node 208 in computer system 206. Nodes 234 in local frequent pattern tree 232 represent items 212 in transaction 218 and frequencies 230 of items 212. In this illustrative example, local frequent pattern tree 232 can be generated using currently available techniques in association rule mining (such as FP-growing algorithms). These currently available techniques also refer to these types of trees as FP-trees.
[0067] The data miner 202 generates the local conditional frequent pattern tree 226 in the processing node 208 in the computer system 206 using the corresponding local frequent pattern tree 232 in the processing node 208 in the computer system 206. The local conditional frequent pattern tree 226 may be generated as needed.
[0068] As depicted, data miner 202 can generate global conditional frequent pattern tree 236 in processing node 208. Each of processing nodes 208 generates a global conditional frequent pattern tree using a set of local conditional frequent pattern trees 226 in the processing node.
[0069] The data miner 202 distributes the global condition frequent pattern trees 236 generated by the processing nodes 208 so that each of the processing nodes 208 has all of the global condition frequent pattern trees 236 generated by the processing nodes 208. Distribution can be performed in a number of different ways. For example, the global condition frequent pattern trees 236 can be broadcast to the processing nodes 208 in the cluster 210. For example, each processing node can broadcast the global condition frequent pattern tree generated by the processing node to other processing nodes in the processing nodes 208.
[0070] In this illustrative example, data miner 202 may generate patterns 238. Patterns 238 are patterns of items. These patterns may indicate the order in which items are purchased, used, or otherwise manipulated. Data miner 202 uses patterns 238 in local pattern tree 240 and global conditional frequent pattern tree 236 in processing node 208 to generate rule set 224. Rule set 224 defines relationships 216 between items 212.
[0071] Compared to current techniques, patterns 238 can be processed in a more efficient manner. For example, when generating patterns 238, data miner 202 can place patterns 238 identified using global conditional frequent pattern tree 236 into local pattern tree 240 in processing node 208, where patterns 238 are in local pattern tree 240. In other words, local pattern tree 240 is a data structure that stores patterns 238. This type of storage of patterns 222 is more efficient than currently used techniques. For example, local pattern tree 240 uses less memory and provides faster searches than currently used techniques.
[0072] In generating the rule set 224, the data miner 202 can use the local pattern tree 240 and the global conditional frequent pattern tree 236 in the processing node 208 to generate the rule set 224. In the illustrative example, the local pattern tree 240 is an extended dictionary tree that stores the patterns 238.
[0073] refer to Figure 3 , a block diagram of components of a data miner is depicted according to an illustrative embodiment. In the illustrative examples, the same reference numerals may be used in more than one figure. Such reuse of reference numerals in different figures represents the same element in the different figures.
[0074] Figure 3 3. One way in which the data miner 202 may be implemented is shown. As depicted in this example, the data miner 202 includes a tree builder 300, an aggregator 302, and a rule generator 304. These components implement the process for using the parallel association rule process 214 in the data miner 202. These components of the data miner 202 are located in a processing node 306, where the processing node 306 is a Figure 2In other words, each processing node in the cluster may include these instances of these components so that parallel processing can be performed by data miner 202.
[0075] In the illustrative example, tree generator 300 uses the transactions in the records to generate a local frequent pattern tree 308 in processing node 306. Each record is used once, and tree generator 300 avoids using the same record multiple times. Tree generator 300 then uses local frequent pattern tree 308 to create a local conditional frequent pattern tree 310 in processing node 306.
[0076] In this illustrative example, local conditional frequent pattern trees 310 are created on demand. In other words, tree generator 300 does not create all possible local conditional frequent pattern trees. Instead, tree generator 300 creates local conditional frequent pattern trees in response to requests from aggregator 302.
[0077] Aggregator 302 aggregates local conditional frequent pattern trees 310 in processing node 306 to form a global conditional frequent pattern tree 312 in processing node 306. As depicted, processing node 306 can be assigned to a set of items for processing. For the assigned item, global conditional frequent pattern tree 312 aggregates all local conditional frequent pattern trees for the item as part of the process for generating global conditional frequent pattern tree 312.
[0078] Aggregator 302 sends a request to tree builder 300 for the local conditional frequent pattern tree 310 for the item assigned to processing node 306. In this illustrative example, aggregator 302 may send a request for each item to tree builder 300, which receives and processes those requests in parallel.
[0079] Aggregator 302 receives local conditional frequent pattern trees for items. Aggregator 302 aggregates local conditional frequent pattern trees 310 received from tree generator 300 for items assigned to processing node 306. Thus, tree generator 300 does not need to simultaneously generate every possible local conditional frequent pattern tree from local frequent pattern tree 308 or store every generated local conditional frequent pattern tree. Local conditional frequent pattern trees generated for use in generating global conditional frequent pattern tree 312 can be discarded after being aggregated into global conditional frequent pattern tree 312.
[0080] In this illustrative example, aggregator 302 also broadcasts or otherwise makes global conditional frequent pattern tree 312 available to other processing nodes in the cluster. Further, aggregator 302 may also save global conditional frequent pattern tree 314 broadcast by other processing nodes in processing node 306 to form saved global conditional frequent pattern tree 314.
[0081] As depicted, rule generator 304 uses global conditional frequent pattern tree 312 and saved global conditional frequent pattern tree 314 to identify pattern 316. Pattern 316 is stored in local pattern tree 318 in processing node 306.
[0082] In the illustrative example, rule generator 304 uses local pattern tree 318 and global condition frequent pattern tree (global condition frequent pattern tree 312 and saved global condition frequent pattern tree 314) to generate rule 320. Generation of rule 320 can be performed by rule generator 304 in processing node 306 without using a network connection or requiring communication with other processing nodes.
[0083] In one illustrative example, there are one or more technical solutions that overcome the technical problem of identifying the relationship between various variables in a data set in a manner that reduces resource usage and processing time. Therefore, one or more technical solutions can provide a technical effect of reducing memory usage and the time required to search for patterns. One or more illustrative examples provide one or more technical solutions, in which local conditional frequent pattern trees are created as needed, and it is not necessary to store all local conditional frequent pattern trees in a processing node. One or more illustrative examples provide one or more technical solutions, in which patterns are stored in pattern trees, thereby reducing or eliminating the need to use partitions, with the technical effect of reducing memory usage and processing time. For example, compared to current systems with such large patterns where the patterns are divided into partitions, memory usage is reduced and it takes less time to calculate the confidence of the rules.
[0084] Computer system 206 can be configured to perform at least one of the steps, operations, or actions described in the different illustrative examples using software, hardware, firmware, or a combination thereof. Thus, computer system 206 operates as a special-purpose computer system, wherein data miner 202 in computer system 206 enables identification of relationships between items. In particular, data miner 202 converts computer system 206 into a special-purpose computer system compared to currently available general-purpose computer systems that do not have data miner 202.
[0085] In this illustrative example, the use of data miner 202 in computer system 206 integrates a process into the practical application of a method for identifying relationships between items in a transaction, which improves the performance of computer system 206 in identifying relationships. In other words, data miner 202 in computer system 206 involves the practical application of a process integrated into data miner 202 in computer system 206 that generates local frequent pattern trees in processing nodes and generates local conditional frequent pattern trees on demand in processing nodes, thereby reducing memory usage. The process integrated into data miner 202 in computer system 206 generates global conditional frequent pattern trees in processing nodes by aggregating conditional frequent pattern trees, which are created on demand for aggregation into the global conditional frequent pattern tree. The process integrated into data miner 202 in computer system 206 distributes the global conditional frequent pattern trees generated by the processing nodes, such that each processing node has all the global conditional frequent pattern trees generated by the processing node.
[0086] The use of global conditional frequent pattern trees also reduces memory usage. The process integrated into the data miner 202 in the computer system 206 generates a pattern tree containing patterns of items that reduces memory usage compared to current systems. In this illustrative example, the data miner 202 in the computer system 206 integrates these steps into the practical application of data mining, which leads to improvements in reducing resource usage and reducing processing time to identify relationships between items and generate rules about those relationships. In this way, the data miner 202 in the computer system 206 provides a practical application for identifying relationships between items in a transaction, so that the functionality of the computer system 206 is improved.
[0087] Figure 2 The illustration of the data mining environment in the present invention is not intended to imply physical or structural limitations on the manner in which the illustrative embodiments may be implemented. Other components may be used in addition to or in place of the components shown. Some components may not be necessary. In addition, blocks are presented to illustrate some functional components. When implemented in the illustrative embodiments, one or more of these blocks may be combined, divided, or combined and divided into different blocks.
[0088] In addition to or instead of recommending items to users, data mining and rule generation 224 can be used for other purposes. For example, data mining can be used to discover how items purchased by customers in a store are related to each other. By generating rules for these associations, the rules can be used to place items next to each other so that customers buy more items.
[0089] In addition to or in lieu of online marketing of goods and services, association rule mining using the parallel association rule process 214 in the illustrative example can be applied to many different applications. These other applications may include, for example, intrusion detection, continuous production, network traffic analysis, vehicle traffic routing, malware detection, and medical diagnosis. As another example, information about the amino acid sequence in a protein can be used to develop rules for synthesizing artificial proteins with desired functionality using the parallel association rule process 214. In yet another illustrative example, the parallel association rule process 214 described in the illustrative example can be used to generate rules for identifying signs or symptoms of a disease and diagnosis. In other words, association rule mining as implemented in the illustrative example can be used to generate rules about the probability of disease occurrence.
[0090] In still other illustrative examples, rules 224 need not be generated after identifying patterns 238 in local pattern tree 240 and global condition frequent pattern tree 236 for item 212. Patterns 238 may be used to perform other steps or actions without requiring rules 224.
[0091] Go to Figure 4 , depicts a data flow diagram showing steps performed by components in a data miner in parallel association rule mining according to an illustrative embodiment. In this illustrative example, components in a data miner are shown that process transactions for items stored in records. In this example, the tree generator 300, the aggregator 302 in the rule generator 304 may use Figure 2 4. The steps are performed by parallel association rule process 214 in
[0065] . These components can be distributed across different processing nodes. These components can be located in processing node 408, processing node 410, and processing node 412. For illustrative purposes, three processing nodes are depicted for the cluster. In other illustrative examples, other numbers of processing nodes can be used. For example, in other examples, 5 processing nodes, 200 processing nodes, 3000 processing nodes, or some other number of processing nodes can be used.
[0092] As depicted, the tree generator 300 in the data miner 202 creates sorted frequent items. Sorted frequent items are items in a transaction that have been sorted in descending order based on the support of each item. In other words, the items in each transaction are sorted in descending order so that the first item has the highest support and the last item has the lowest support. The sorted frequent items can also be filtered to retain items with support equal to or above a threshold.
[0093] The tree generator 300 generates a local frequent pattern tree in each of the three processing nodes. The use of the local frequent pattern tree compresses the data in the transaction and creates it using sorted frequent items. Furthermore, the use of the local frequent pattern tree improves the efficiency of the aggregator 302 in generating the local conditional frequent pattern tree during the parallel processing performed by the processing nodes. The tree generator 300 also generates the local conditional frequent pattern tree in the processing nodes.
[0094] These local conditional frequent pattern trees are created on demand. In other words, local conditional frequent pattern trees are created as needed. Conditional frequent pattern trees can be generated as needed without storing all conditional frequent pattern trees in the processing node at the same time. This reduces or avoids application crashes due to memory usage.
[0095] Aggregator 302 generates a global conditional frequent pattern tree created by aggregating local conditional frequent pattern trees. In aggregator 302, when a local conditional frequent pattern tree is needed for aggregation into a global conditional frequent pattern tree, a local conditional frequent pattern tree is created. After the local conditional frequent pattern tree is placed into the global conditional frequent pattern tree, the local conditional frequent pattern tree can be discarded and memory can be freed up for other uses. In this example, aggregator 302 can implement the FP-tree merging process based on Hadoop key-value aggregation.
[0096] Aggregator 302 broadcasts the global conditional frequent pattern tree in the processing nodes. Broadcasting allows each processing node to have a copy of the global conditional frequent pattern tree generated by other processing nodes.
[0097] The rule generator 304 generates a local pattern tree in each processing node from the corresponding global condition frequent pattern tree created by the processing node. The rule generator 304 arranges the local pattern tree and the global condition frequency processing tree in each processing to form a cascade storage structure. Compared with the current technology, the local pattern tree used in this example is a more efficient structure for searching patterns.
[0098] These data structures can use the rule generator 304 to implement high-speed queries to search for patterns in the pattern tree. For local pattern trees where no pattern is found, information can be obtained from the global condition frequent pattern tree. This cascade search is performed by searching the local pattern tree and then searching the global condition frequent pattern tree (if necessary), which can solve the data explosion and data partitioning problems encountered in pattern searches with current technologies. Compared with current technologies for managing patterns, this feature reduces communication costs within the cluster and enables faster location of target patterns.
[0099] The rule generator 304 in each processing node uses the local pattern tree and the global condition frequency processing tree in the processing node to generate rules. Compared with the current practice of storing patterns in partitions, it is more efficient to use the local pattern tree to search for information. The global condition frequent pattern tree includes the global condition frequent pattern tree generated by the node and other global condition frequency processing trees obtained from the global condition frequency processing tree broadcast by the processing node. In this example, the process of generating rules is performed in parallel.
[0100] exist Figure 4 In the data flow described in the steps, local frequent pattern trees exist in processing nodes, and local conditional frequent pattern trees are generated by the processing nodes as needed. This process avoids data segmentation and simultaneous updating of multiple trees, improving the efficiency of conditional tree generation. This process reduces data redundancy and processing time.
[0101] Furthermore, each node stores all global condition frequent pattern trees for use in pattern search for rule generation. These take up less memory than global patterns. Each processing node uses the global condition pattern tree generated by the processing node to generate a pattern tree. This pattern tree and the global condition frequent pattern tree from the processing node are used in a two-stage search process for pattern search and rule generation, thereby reducing data redundancy and data explosion that exist in current technologies (such as FP growth).
[0102] Next go to Figure 5 , a flowchart of a process for identifying relationships between items in a transaction is depicted in accordance with an illustrative embodiment. Figure 5 The processes in can be implemented in hardware, software, or both. When implemented in software, the processes can take the form of program code executed by one or more processor units in one or more hardware devices in one or more computer systems. For example, the processes can be implemented in Figure 2 The data miner 202 is implemented in the computer system 206 in FIG.
[0103] The process begins by generating a local conditional frequent pattern tree in a processing node in a computer system (step 500). Nodes in the local conditional frequent pattern tree represent items and their frequencies in transactions. The process then generates a global conditional frequent pattern tree in the processing node (step 502). In step 502, each of the processing nodes generates a global conditional frequent pattern tree using a set of local conditional frequent pattern trees in the processing node.
[0104] The process distributes the global condition frequent pattern trees generated by the processing nodes so that each of the processing nodes has all the global condition frequent pattern trees generated by the processing nodes (step 504). The result of step 504 is that each processing node has all the global condition frequent pattern trees generated by the processing nodes.
[0105] The process generates a pattern (step 506). The process uses the global condition frequent pattern tree and the pattern in the processing node to generate a rule set (step 508). The process terminates thereafter. The rule set defines the relationship between items.
[0106] refer to Figure 6 , a flowchart of a process for identifying relationships between items in a transaction is depicted in accordance with an illustrative embodiment. Figure 6 The processes in can be implemented in hardware, software, or both. When implemented in software, the processes can take the form of program code executed by one or more processor units in one or more hardware devices in one or more computer systems. For example, the processes can be implemented in Figure 2 The process includes local pattern trees and does not require the use of global patterns as currently used by other association rule mining techniques.
[0107] The process begins by generating a local conditional frequent pattern tree in a processing node in a computer system (step 600). The nodes in the local conditional frequent pattern tree represent items and the frequency of the items in a transaction.
[0108] The process generates a global conditional frequent pattern tree in the processing node (step 602). The process distributes the global conditional frequent pattern tree generated by the processing node so that each of the processing nodes has the global conditional frequent pattern tree generated by the processing node (step 604).
[0109] The process generates a local pattern tree in the processing node, where the pattern is in the local pattern tree (step 606). In this illustrative example, each processing node has a local pattern tree generated from the global conditional pattern frequent tree, which is generated by the processing node from the local conditional pattern frequent tree. The generation of the local pattern tree can be performed in parallel in different processing nodes.
[0110] The process uses the local pattern tree and the global condition frequent pattern tree in the processing node to generate a rule set, wherein the rule set defines the relationship between the items (step 608). The generation of the rules in step 608 can be performed in parallel in different processing nodes. Thereafter, the process terminates.
[0111] In step 608, the processing node can use the local pattern tree generated from the global condition frequent pattern tree created by the processing node. Further, if necessary, the processing node can also access the saved global condition frequent pattern tree obtained from other processing nodes that broadcast the global condition frequent pattern tree of other processing nodes. In this way, pattern and rule generation and the information required for rule generation are combined into a single node for parallel processing.
[0112] refer to Figure 7 , depicts a more detailed flowchart of a process for identifying relationships between items in a transaction, according to an illustrative embodiment. Figure 7 The processes in can be implemented in hardware, software, or both. When implemented in software, the processes can take the form of program code executed by one or more processor units in one or more hardware devices in one or more computer systems. For example, the processes can be implemented in Figure 2 The data miner 202 is implemented in the computer system 206 in FIG.
[0113] The process begins by generating a local frequent pattern tree in each node (step 700). The use of the local frequent pattern tree compresses transaction data. The local frequent pattern tree stores items in nodes with the frequency of the items, and the nodes are connected to each other based on the pattern of transactions using the items.
[0114] The process generates a local conditional frequent pattern tree in each processing node using the local frequent pattern tree (step 702).For example, the processing node generates a local conditional frequent pattern tree from the local frequent pattern tree in the node.
[0115] The process aggregates the local conditional frequent pattern trees in each processing node to generate a global conditional frequent pattern tree (step 704). In step 704, each processing node generates a conditional frequent pattern tree from the local conditional frequent pattern trees in the processing node. The process broadcasts the global conditional frequent pattern tree to each processing node in the cluster (step 706). In this way, each processing node has a copy of all global conditional frequent pattern trees stored locally in the processing node.
[0116] The process generates a local pattern tree from the corresponding global condition frequent pattern tree in each node (step 708). In this illustrative example, the local pattern tree can be generated directly from the global condition frequent pattern tree. In other examples, patterns can be derived from the global condition frequent pattern tree, and the global condition frequent pattern tree with those patterns is used to generate the local pattern tree.
[0117] The process generates a set of rules in parallel using the local pattern tree and the global conditional frequent pattern tree located in each processing node (step 710). The process terminates thereafter.
[0118] Now refer to Figure 8 , a flowchart of a process for generating a pattern tree from a global conditional frequent pattern tree is depicted in accordance with an illustrative embodiment. Figure 8 The processes in can be implemented in hardware, software, or both. When implemented in software, the processes can take the form of program code executed by one or more processor units in one or more hardware devices in one or more computer systems. For example, the processes can be implemented in Figure 2 The process may be implemented in the data miner 202 in the computer system 206 in FIG. Figure 3 The rule generator 304 in the data miner 202 in is implemented to generate a pattern tree (such as a local pattern tree for processing a node). Figure 7 An example of implementing step 706 is shown in FIG.
[0119] The process begins by inputting a global conditional frequent pattern tree (step 800). The global conditional frequent pattern tree is a global conditional frequent pattern tree generated by a processing node that generates a pattern tree. The process creates a root node of a local pattern tree having conditional items and corresponding counts (step 802). In this illustrative example, the conditional item is an item of interest, for which patterns of items in a transaction including the item of interest are identified.
[0120] Then, the process identifies all different items in the global condition frequent pattern tree, and if the type of the identified item appears in multiple nodes in the global condition frequent pattern tree, then the corresponding count is calculated for each different item (step 804). For example, items f, c, and a are three different items that can be present in many nodes and can be present in the global condition pattern tree. In other words, the same item can appear in more than one node. For example, two nodes f:3 and f:2 can both have f as the type of item. One node has count 3, and the other node has count 2. Therefore, f is the type of item with a count of 5. In this case, f is a different item with a count of 5.
[0121] The process then creates child nodes of the root node of the local pattern tree with items and corresponding counts (step 806). The process selects a node from the local pattern tree that has no child nodes and is not a terminal node for processing (step 808).
[0122] Determine whether the node with the selected item in the pattern tree has a child node in the global condition frequent pattern tree (step 810). If the node with the selected item in the pattern tree has a child node in the global condition frequent pattern tree, the process finds all different items in the child nodes of the node with the selected item in the global condition frequent pattern tree for the selected item and calculates the corresponding count of each different item (step 814).
[0123] The process then creates child nodes of the selected node in the local pattern tree, the child nodes having distinct items and corresponding counts for each distinct item (step 816). A determination is made as to whether all nodes without child nodes are terminal nodes (step 818). If not all nodes without child nodes are terminal nodes, the process then returns to step 808. Otherwise, if all nodes without child nodes are terminal nodes, the process terminates.
[0124] Referring again to step 810, if the node with the item in the current pattern tree does not have a child node in the global condition frequent pattern tree, the process marks the node with the item in the local pattern tree as a terminal node (step 812). In this illustrative experimental example, the terminal node is a leaf node, and child nodes cannot be added to the leaf node. The process then proceeds to step 818. Referring again to step 818, if all nodes without child nodes are terminal nodes, the process terminates.
[0125] Next reference Figure 9 , a flowchart of a process for cascade searching is depicted in accordance with an illustrative embodiment. Figure 9 The processes in can be implemented in hardware, software, or both. When implemented in software, the processes can take the form of program code executed by one or more processor units in one or more hardware devices in one or more computer systems. For example, the processes can be implemented in Figure 3 The process may be implemented in the data miner 202 in the computer system 206 in the processing node. For example, the process may be implemented by the rule generator 304 in the data miner 202 in the processing node to search for patterns to generate rules.
[0126] It starts by selecting a pattern of interest for searching (step 900). The pattern searches for the pattern of interest in the local pattern tree (step 902). This search is the first search phase.
[0127] Determine whether the last item in the pattern of interest matches the root of the local pattern tree (step 904). For example, in step 904, the pattern of the item may be f, a, e. In step 904, the process determines whether the item "e" is in the root of the local pattern tree.
[0128] If the last item in the pattern of interest matches the root of the local pattern tree, the process searches the remaining items in the local pattern tree (step 906). Using the example pattern of f, a, e, if item "e" is in the root, the process searches to see if the first item in the pattern (item "f") (searching from the beginning to the end) is in the node below the root node. If item "f" is in the node below the root node, a similar search is performed for item "a".
[0129] The process outputs a count of patterns (step 908). The process then terminates.
[0130] Referring again to step 904, if the last item in the pattern of interest does not match the root of the local pattern tree, the process identifies the global condition frequent pattern tree using the last item in the pattern of interest (step 910). The process searches the global condition frequent pattern tree for the item in the pattern of interest (step 912). The process then proceeds to step 908.
[0131] exist Figure 9 The search performed within a process in
[15] can be performed without requiring connections or communication with other resources outside the process. The search can be performed in parallel, with different processing nodes searching for different patterns of interest.
[0132] The flowcharts and block diagrams in the different depicted embodiments illustrate some possible implementations of the apparatus and methods in the illustrative embodiments, functionality, and operations. To this end, each block in the flowchart or block diagram may represent at least one of a module, segment, function, operation, or a portion of a step. For example, one or more of the blocks may be implemented as program code, hardware, or a combination of program code and hardware. When implemented in hardware, the hardware may take the form of, for example, an integrated circuit that is manufactured or configured to perform one or more operations in the flowchart or block diagram. When implemented as a combination of program code and hardware, the implementation may take the form of firmware. Each block in the flowchart or block diagram may be implemented using a dedicated hardware system that performs different operations or a combination of dedicated hardware and a program code run by the dedicated hardware.
[0133] In some alternative embodiments of the illustrative embodiments, one or more functions noted in the blocks may occur out of the order noted in the figures. For example, in some cases, two blocks shown in succession may be executed substantially simultaneously, or the blocks may sometimes be executed in the reverse order, depending on the functions involved. Furthermore, other blocks may be added in addition to the blocks shown in a flowchart or block diagram.
[0134] Next reference Figure 10 , depicts a diagram illustrating the data flow for generating a local conditional frequent pattern tree from a transaction according to an illustrative embodiment. The data in the diagram may be processed by Figure 2 The data miner 202 in the embodiment of the present invention performs, and in particular, uses Figure 3 The tree generator 300 of the data miner 202 in.
[0135] As depicted in the figure, transactions for items are shown in transaction table 1000. As depicted, column 1001 contains the transaction identifier, column 1003 contains the items purchased in the transaction, and column 1005 contains the ranked frequent items. These items are in descending order of frequency. Column 1005 can be identified by finding the support of each item. Support is the number of times an item exists in the transaction being processed (such as the transactions in transaction table 1000) divided by the total number of transactions. Support is a percentage, and transactions below a threshold frequency can be removed by filtering. The remaining items are arranged in order of descending support.
[0136] These transactions are used to generate local frequent pattern trees 1002. In this example, local frequent pattern trees 1002 are examples of trees generated by each processing node when transactions are assigned to those processing nodes. In other words, the local frequent pattern trees generated by the processing nodes are different from each other because the trees are generated from different transactions assigned to a particular processing node.
[0137] As can be seen, each node in the local frequent pattern tree 1002 identifies an item and the count or frequency of the item. The nodes are linked to each other to reflect the order of the transactions. In this illustrative example, the header table in the local frequent pattern tree 1002 can be used to identify the head nodes of the links between different items.
[0138] Go to Figure 11 , depicts a diagram illustrating a data flow for generating a local conditional pattern tree from a local frequent pattern tree according to an illustrative embodiment. The data in the diagram may be processed by Figure 2 The data miner 202 in the embodiment of the present invention is executed, and in particular uses Figure 3 The rule generator 304 of the data miner 202 in is executed.
[0139] As depicted, the local frequent pattern tree 1100 is used to generate a local conditional frequent pattern tree 1104, which is generated from two branches of "m" (f:2, c:2, a:2) and (f:1, c:1, a:1, b:1) present in the local frequent pattern tree 1100. In this example, the header table of the local conditional frequent pattern tree 1104 is illustrated. These branches of "m" are called the conditional pattern basis of m. Based on the local frequent pattern tree, the conditional pattern is used to construct the local conditional frequent pattern tree. In the illustrative example, these local conditional frequent pattern trees 1104 are generated when needed. In other words, not all potential local conditional frequent trees are generated and stored in the processing node.
[0140] Next reference Figure 12 , according to an illustrative embodiment, a diagram illustrating a data flow for generating a pattern tree from a global conditional frequent pattern tree is described. The processing of the data in the diagram can be performed by Figure 2 The data miner 202 in the embodiment of the present invention is executed, and in particular uses Figure 3 The rule generator 304 of the data miner 202 in is executed.
[0141] In this illustrative example, a global conditional frequent pattern tree 1202 for the item "m" is depicted. The header table is part of the global conditional frequent pattern tree 1202. A local pattern tree 1206 is a data structure that holds patterns generated using the header table 1200 and the global conditional frequent pattern tree 1202. Pattern tree 1206 identifies patterns for items in the global conditional frequent pattern tree 1202. Each node in pattern tree 1206 identifies an item and a counter for the item. This count is considered the frequency of the particular item. Pattern tree 1206 is generated from the global conditional frequent pattern tree 1202.
[0142] Now go to Figure 13 , depicts a block diagram of a data processing system according to an illustrative embodiment. Data processing system 1300 may be used to implement Figure 1 The server computer 104, the server computer 106 and the client device 110 in the data processing system 1300 can also be used to implement the Figure 2 13. Data processing system 1300 includes computer system 206 and processing nodes 208 in cluster 210. In this illustrative example, data processing system 1300 includes communications framework 1302, which provides communications between processor unit 1304, memory 1306, persistent storage 1308, communications unit 1310, input / output (I / O) unit 1312, and display 1314. In this example, communications framework 1302 takes the form of a bus system.
[0143] Processor unit 1304 is configured to execute instructions for software that may be loaded into memory 1306. Processor unit 1304 includes one or more processors. For example, processor unit 1304 may be selected from at least one of a multi-core processor, a central processing unit (CPU), a graphics processing unit (GPU), a physical processing unit (PPU), a digital signal processor (DSP), a network processor, or some other suitable type of processor. Further, for example, processor unit 1304 may be implemented using one or more heterogeneous processor systems in which a main processor is present on a single chip with secondary processors. As another illustrative example, processor unit 1304 may be a symmetric multi-processor system that includes multiple processors of the same type on a single chip.
[0144] Memory 1306 and persistent storage 1308 are examples of storage devices 1316. A storage device is any hardware capable of storing information (such as, for example, without limitation, at least one of data, program code in functional form, or other suitable information) temporarily, permanently, or both temporarily and permanently. In these illustrative examples, storage devices 1316 may also be referred to as computer-readable storage devices. In these examples, memory 1306 may be, for example, random access memory or any other suitable volatile or non-volatile storage device. Persistent storage 1308 may take different forms depending on the particular implementation.
[0145] For example, persistent storage 1308 may include one or more components or devices. For example, persistent storage 1308 may be a hard drive, a solid-state drive (SSD), flash memory, a rewritable optical disk, a rewritable magnetic tape, or some combination thereof. The media used by persistent storage 1308 may also be removable. For example, a removable hard drive may be used for persistent storage 1308.
[0146] In these illustrative examples, communications unit 1310 provides for communications with other data processing systems or devices. In these illustrative examples, communications unit 1310 is a network interface card.
[0147] Input / output unit 1312 allows for input and output of data with other devices that may be connected to data processing system 1300. For example, input / output unit 1312 may provide a connection for user input via at least one of a keyboard, a mouse, or some other suitable input device. Further, input / output unit 1312 may send output to a printer. Display 1314 provides a mechanism for displaying information to a user.
[0148] Instructions for at least one of the operating system, applications, or programs may be located in storage devices 1316, which are in communication with processor unit 1304 through communications framework 1302. The processes of the different embodiments may be performed by processor unit 1304 using computer-implemented instructions, which may be located in a memory, such as memory 1306.
[0149] These instructions are referred to as program code, computer usable program code, or computer readable program code that can be read and executed by a processor in processor unit 1304. The program code in different embodiments may be embodied on different physical or computer-readable storage media, such as memory 1306 or persistent storage 1308.
[0150] Program code 1318 is located in functional form on computer-readable media 1320, which is selectively removable and can be loaded or transferred to data processing system 1300 for execution by processor unit 1304. In these illustrative examples, program code 1318 and computer-readable media 1320 form computer program product 1322. In the illustrative example, computer-readable media 1320 is computer-readable storage media 1324.
[0151] In these illustrative examples, computer readable storage media 1324 is a physical or tangible storage device used to store program code 1318 rather than a medium that propagates or transmits program code 1318 .
[0152] Alternatively, program code 1318 can be transferred to data processing system 1300 using a computer-readable signal medium. A computer-readable signal medium can be, for example, a propagated data signal containing program code 1318. For example, a computer-readable signal medium can be at least one of an electromagnetic signal, an optical signal, or any other suitable type of signal. These signals can be transmitted via a connection, such as a wireless connection, a fiber optic cable, a coaxial cable, an electrical wire, or any other suitable type of connection.
[0153] The different components illustrated for data processing system 1300 are not intended to provide architectural limitations to the manner in which different embodiments may be implemented. In some illustrative examples, one or more of the components may be incorporated into or otherwise form part of another component. For example, in some illustrative examples, memory 1306, or portions thereof, may be incorporated into processor unit 1304. The different illustrative embodiments may be implemented in a data processing system including components in addition to or in place of those illustrated for data processing system 1300. Figure 13 Other components shown in can be varied from the illustrative examples shown. The different embodiments can be implemented using any hardware device or system capable of running program code 1318.
[0154] Thus, illustrative embodiments of the present invention provide a computer-implemented method, computer system, and computer program product for identifying relationships between items in a transaction. A local conditional frequent pattern tree is generated by a computer system in a processing node in the computer system. Nodes in the local conditional frequent pattern tree represent items and their frequencies in the transaction. A global conditional frequent pattern tree is generated by the computer system in the processing node. Each of the processing nodes uses a set of local conditional frequent pattern trees in the processing node to generate a global conditional frequent pattern tree. In some illustrative examples, when more than one conditional item is assigned to a processing node, the processing node may generate more than one global conditional frequent pattern tree. The computer system distributes the global conditional frequent pattern trees generated by the processing nodes so that each of the processing nodes has a global conditional frequent pattern tree generated by other processing nodes. A pattern tree is generated by the computer system. The computer system uses the pattern trees in the processing nodes and the global conditional frequent pattern tree to generate a rule set, wherein the rule set defines the relationships between the items.
[0155] In one or more illustrative examples, information is processed and pre-compressed before generating a local conditional frequent pattern tree. This process improves both memory usage and computing resource usage. Furthermore, the illustrative examples employ a cascaded cache to store pattern frequencies and search for frequencies on demand, which avoids the normal process of searching for frequencies based on the overall set of frequent itemsets.
[0156] Thus, the example can combine pattern and rule generation in one processing node using pattern trees and global conditional pattern trees. With the use of pattern trees and global conditional pattern trees in processing nodes, the transfer of huge patterns in the cluster is avoided and the scope of pattern search is reduced.
[0157] The description of various embodiments of the present invention has been presented for illustrative purposes, but is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used herein is chosen to best explain the principles of the embodiments, practical applications, or technical improvements over technologies found in the marketplace, or to enable those of ordinary skill in the art to understand the embodiments disclosed herein.
Claims
1. A method for identifying relationships between items purchased online, the method comprising: include:, Receiving, by a computer system, a data set comprising information related to items purchased online by a customer; generating, by a computer system, a local conditional frequent pattern tree in a processing node in the computer system, wherein nodes in the local conditional frequent pattern tree represent commodities and frequencies of the commodities in the online purchase; Generating, by the computer system, a global conditional frequent pattern tree in the processing nodes, wherein each of the processing nodes aggregates a set of local conditional frequent pattern trees in the processing nodes to generate a global conditional frequent pattern tree; distributing, by the computer system, the global conditional frequent pattern trees generated by the processing nodes so that each of the processing nodes has the global conditional frequent pattern trees generated by other processing nodes; The computer system generates a local pattern tree based on the global condition frequent pattern tree, wherein the local pattern tree is a data structure storing commodity patterns, the commodity patterns indicating the order of purchasing commodities; and The computer system generates a rule set using the global condition frequent pattern tree and the local pattern tree in the processing node, wherein the rule set defines the relationship between the products for optimizing product recommendations.
2. The method according to claim 1, wherein Generating, by the computer system, a local conditional frequent pattern tree in a processing node in the computer system includes: The computer system generates a local conditional frequent pattern tree in a processing node in the computer system as needed.
3. The method according to claim 1, wherein Each of the nodes has a local pattern tree generated using the global conditional frequent pattern tree generated by the node.
4. The method of claim 1, wherein The local pattern tree is a dictionary tree that stores the patterns.
5. The method according to claim 1, wherein Generating, by the computer system, the local conditional frequent pattern tree in the processing node in the computer system includes: generating, by the computer system, a local frequent pattern tree in the processing node in the computer system, wherein nodes in the local frequent pattern tree represent the product and the frequency of the product in the online purchase; and The local conditional frequent pattern tree in a processing node in the computer system is generated by the computer system using a corresponding local frequent pattern tree in a processing node in the computer system.
6. A data mining system comprising: A computer system receives a data set comprising information about items purchased online by a customer, generates a local conditional frequent pattern tree in a processing node in the computer system, wherein the nodes in the local conditional frequent pattern tree represent items and the frequency of the items in online purchases; generates a global conditional frequent pattern tree in the processing node, wherein each of the processing nodes uses a set of local conditional frequent pattern trees in the processing node to aggregate and generate a global conditional frequent pattern tree; distributes the global conditional frequent pattern tree generated by the processing node so that each of the processing nodes has the global conditional frequent pattern tree generated by other processing nodes; generates a local pattern tree based on the global conditional frequent pattern tree, wherein the local pattern tree is a data structure that stores item patterns, wherein the item patterns indicate the order in which items are purchased; and generates a rule set using the global conditional frequent pattern tree and the local pattern tree in the processing node, wherein the rule set defines the relationship between the items for optimizing item recommendations.
7. The data mining system of claim 6, wherein: When generating the local conditional frequent pattern tree in the processing node in the computer system, the computer system generates the local conditional frequent pattern tree in the processing node in the computer system as needed.
8. The data mining system according to claim 6, wherein: Each of the nodes has a local pattern tree generated using the global conditional frequent pattern tree generated by the node.
9. The data mining system according to claim 6, wherein: The local pattern tree is a dictionary tree that stores the patterns.
10. The data mining system according to claim 6, wherein: When generating the local conditional frequent pattern tree in the processing node in the computer system, the computer system generates a local frequent pattern tree in the processing node in the computer system, wherein the nodes in the local frequent pattern tree represent the products and the frequencies of the products in the online purchase, and wherein the computer system uses the corresponding local frequent pattern trees in the processing nodes to generate the local conditional frequent pattern tree in the processing node.
11. A computer program product for identifying relationships between items purchased online, the computer program product comprising: computer-readable storage medium; A first program code stored on the computer-readable storage medium is configured to receive a data set, the data set comprising information about items purchased online by a customer, and generate a conditional frequent pattern tree in a processing node in a computer system, wherein nodes in the conditional frequent pattern tree represent items and frequencies of the items in the online purchases; second program code stored on the computer-readable storage medium for generating a global conditional frequent pattern tree in the processing nodes, wherein each of the processing nodes aggregates a set of local conditional frequent pattern trees in the processing node to generate a global conditional frequent pattern tree; third program code stored on the computer-readable storage medium for distributing the global conditional frequent pattern trees generated by the processing nodes so that each of the processing nodes has the global conditional frequent pattern trees generated by other processing nodes; fourth program code stored on the computer-readable storage medium for generating a local pattern tree based on the global conditional frequent pattern tree, wherein the local pattern tree is a data structure storing product patterns, the product patterns indicating an order in which products are purchased; as well as Fifth program code stored on the computer-readable storage medium is used to generate a rule set using the global conditional frequent pattern tree and the local pattern tree in the processing node, wherein the rule set defines the relationship between the products for optimizing product recommendations.
12. The computer program product of claim 11, wherein the first program code comprises: Program code stored on the computer-readable storage medium is used to generate a local conditional frequent pattern tree in a processing node in the computer system as needed.
13. The computer program product of claim 11, wherein: The first program code includes: Program code stored on the computer-readable storage medium for generating a local frequent pattern tree in the processing node in the computer system, wherein nodes in the local frequent pattern tree represent the items and the frequencies of the items in the online purchase; and Program code stored on the computer-readable storage medium generates the set of local conditional frequent pattern trees in the processing node using corresponding local frequent pattern trees in the processing node.
Citation Information
Patent Citations
Method and system for mining data association rule
CN101996102A
Distributed FP-growth with node table for large-scale association rule mining
US20180107695A1