Embodiments of the present invention relate to the field of systems for processing transactions; more particularly, embodiments of the present invention relate to use of a machine learning framework to process data related to transactions.
Many merchants use third parties to handle their payment processing needs for transactions. For example, the merchants redirect their customers to the third party for capturing the payment information and processing the transaction, or the merchants may capture payment information themselves from their customers and send it to a third-party for authorization of the transaction. In some cases, the real-time authorization may be based a machine learning system.
Machine learning allows for the generation of rules or other types of decision algorithms automatically based on detected connections between input data and output data. For example, a machine learning system might review characteristics of thousands or millions of elements of data with known outputs, and determine relationships between the characteristics and the output. Those characteristics may later be used to provide predictions for output values based on the characteristics of data for which an output value is not known.
Building machine learning systems includes defining a set of inputs that accurately predict an outcome. This set of inputs, referred to as features, may be defined for training a machine learning model based on training data. A machine learning system may examine these features for records input into the machine learning system to attempt to determine a prediction.
The present disclosure will be understood more fully from the detailed description given below and from the accompanying drawings of various embodiments, which, however, should not be taken to limit the embodiments described and illustrated herein, but are for explanation and understanding only.
In the following description, numerous details are set forth. It will be apparent, however, to one of ordinary skill in the art having the benefit of this disclosure, that the embodiments described herein may be practiced without these specific details. In some instances, well-known structures and devices are shown in block diagram form, rather than in detail, in order to avoid obscuring the embodiments described herein.
Some portions of the detailed description that follow are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussion, it is appreciated that throughout the description, discussions utilizing terms such as “generating”, “training”, “analyzing”, “selecting”, “providing”, “modifying”, “obtaining”, or the like, refer to the actions and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (e.g., electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission, or display devices.
The embodiments discussed herein may also relate to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing electronic instructions.
The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct a more specialized apparatus to perform the required method steps. The required structure for a variety of these systems will appear from the description below. In addition, the embodiments discussed herein are not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings as described herein.
Machine learning systems include complex computational devices that analyze data to determine relationships between inputs and outputs contained within the data. Machine learning systems are often first trained on data for which a known outcome is available so as to more accurately tune the machine learning model that supports the machine learning system. Once the machine learning model is trained, it may be used to predict an output based primarily on the input data that is provided.
There are multiple types of machine learning models. In some cases, the machine learning models predict a probability of a particular output. As an example, a machine learning model to process images may predict a probability that a particular object within an image is a particular type of object (e.g., an animal, a car, a person, etc.). In some cases, a machine learning model may be capable of analyzing transaction, such as financial transactions to detect a likelihood that the transaction involves fraud. For example, a machine learning model may be configured to examine multiple features of a particular transaction to determine a probability that the transaction is fraudulent. In many cases, the relationship between the ultimate prediction made by the machine learning system and the features of the input data may be inordinately difficult, if not impossible, for a human to predict. By examining tens of thousands of data points, a machine learning model may be trained to identify subtle interactions between the features of the input data that would, in some cases, be impossible for a human to detect.
The features of a particular piece of input data that may contribute to a higher quality prediction may be non-intuitive. Unlike a human, that might form a hypothesis to try to intuit a relationship between the input data and a potential prediction, a machine learning model looks at the data, or combinations of the data, to see how the data is numerically connected to output predictions. Thus, the operations performed by a machine learning model may differ radically from those operations performed by a human attempting to make a similar categorization.
In some cases, training a machine learning model may include indicating, as part of the training, the types of input data that are to be analyzed. For example, the input data may be processed to identify particular characteristics of the data that can be fed to the machine learning model as input to help train the machine learning model. In some cases, these characteristics, also known as features, may be collected from the input data and used by the machine learning model during training to develop relationships between the features of the data and a predicted output. In machine learning, a feature is an individual measurable property or characteristic of a phenomenon that may be analyzed and/or predicted by a machine learning model. The selection of features is an important element of effective algorithms in pattern recognition, classification and regression operations that are used by machine learning systems. As an example, a machine learning system may attempt to predict whether a particular commercial transaction is likely to include fraud. The machine learning system may include features such as the amount of the purchase, the item purchased, the location of the purchase, and the like as features. Based on the features, a probability may be determined for a likelihood that a given transaction is fraudulent.
The process of identifying features that may be useful for a particular machine learning system may be repetitive and time consuming. For example, in some systems, each feature may need to be prototyped before being used for training of a machine learning model. The prototyping may include writing, testing, and troubleshooting each feature to determine its viability. The prototyping of a single feature for a machine learning system may take several hours, and a machine learning system may have to prototype hundreds of features before the features having a significant impact on the output prediction are identified.
Moreover, once a set of features have been identified, the process may be repeated when new, different, input data is provided. For example, a machine learning model trained on one set of transactions for a particular merchant may not be suitable for a new merchant having different input data. Data for the new merchant may involve the regeneration of features and/or retraining to generate a machine learning model that works effectively with that merchant's data.
Aspects of the present disclosure address the above-noted and other deficiencies by providing embodiments in which feature templates are provided in a machine learning system to accelerate the generation and/or customization of features used for machine learning, including the training of a machine learning model. The feature templates may allow for rapid prototyping of machine learning feature that reduce an amount of time and resources utilized to train a machine learning model. Moreover, the use of the feature template may further allow for feature template libraries to be developed that can be utilized to quickly identify features that may be relevant for particular types of transactions. The feature template libraries may include feature templates that may be utilized as starting points for feature generation for particular types of data. The feature templates may, in some embodiments, be further customized based on the type of input data to which the feature templates are to be applied. The use of feature templates may allow for appropriate potential features to be rapidly identified, customized, and prototyped based on characteristics of the input data being analyzed.
Embodiments of the present disclosure may provide a technological improvement to the technological field including the training of machine learning systems by allowing operations that automatically generate feature content for prototyping during the training of a machine learning model. These operations reduce an amount of computing resources needed to prototype features for the training of machine learning models. Moreover, by increasing a speed by which features may be generated for prototyping, a larger feature space may be investigated, which further allows for the potential for a more accurate, and thus improved, machine learning model. In addition, some embodiments of the present disclosure, may allow for operations that more quickly identify feature candidates for training a machine learning model for particular types of data, which may reduce an amount of computing resources needed to generate a machine learning model given a particular set of input data.
The embodiments discussed herein may be utilized by a plurality of different types of systems, such as other types of machine learning system(s) including payment processing systems, card authorization systems, and other systems. Some functionalities of the embodiments described herein relate to the generation of machine learning models to identify and detect fraud associated with commercial transactions. Furthermore, any system seeking to generate a machine learning models based on particular features may use and/or extend the techniques discussed herein related to the generation of a feature template and/or the generation of a machine learning model. However, to avoid obscuring the embodiments discussed herein, fraud detection utilizing machine learning models for merchant transactions is discussed to illustrate and describe some embodiments of the present disclosure, and is not intended to limit the application of the techniques described herein to other systems in which the generation of improved machine learning models according to embodiments of the present disclosure could be used.
In some embodiments, the system 100 includes commerce platform system(s) 110, one or more merchant system(s) 120, and one or more user system(s) 130. In some embodiments, one or more systems (e.g., merchant system 120 and/or user system 130) may be mobile computing devices, such as a smartphone, tablet computer, smartwatch, etc., as well as computer systems, such as a desktop computer system, laptop computer system, server computer systems, etc. The commerce platform system(s) 110 and/or merchant system(s) 120 may also be one or more computing devices, such as one or more server computer systems, desktop computer systems, etc.
The commerce platform system(s) 110, merchant system(s) 120, and/or user system(s) 130 may be coupled to a network 102 and communicate with one another using any of the standard protocols for the exchange of information, including secure communication protocols. In one embodiment, one or more of the commerce platform system(s) 110, merchant system(s) 120, and/or user system(s) 130 may run on one Local Area Network (LAN) and may be incorporated into the same physical or logical system, or different physical or logical systems. In some embodiments, the commerce platform system(s) 110, merchant system(s) 120, and/or user system(s) 130 may reside on different LANs, wide area networks, cellular telephone networks, etc. that may be coupled together via the Internet but separated by firewalls, routers, and/or other network devices. In one embodiment, commerce platform system 110 may reside on a single server, or be distributed among different servers, coupled to other devices via a public network (e.g., the Internet) or a private network (e.g., LAN). It should be noted that various other network configurations can be used including, for example, hosted configurations, distributed configurations, centralized configurations, etc.
In one embodiment, commerce platform system 110 provides financial processing services to one or more merchants, such as to merchant system(s) 120 and/or user system(s) 130. For example, commerce platform system(s) 110 may manage merchant accounts held at the commerce platform, run financial transactions from user system(s) 130 performed on behalf of a merchant, clear transactions, performing payouts to merchant and/or merchant agents, manage merchant and/or agent accounts held at the commerce platform system(s) 110, as well as other services typically associated with commerce platforms systems such as, for example, STRIPE™.
For example, the user system(s) 130 may access the merchant system(s) 120, such as by an electronic device over network 102. In some embodiments, the user system(s) 130 may access a merchant web page 132. The merchant web page 132 may offer one or more products and/or services from the merchant system(s) 120. For example, the user system(s) 130 may indicate the beginning of a financial transaction with the merchant system(s) 120, such as the use of a credit card to acquire the products and/or services of the merchant system(s) 120. In response to the transaction from the user system(s) 130, the merchant system(s) 120 may generate a transaction request 160 to the commerce platform system(s) 110. The transaction request 160 may include, for example, information related to the transaction with the user system(s) 130 collected by the merchant system(s) 120 as part of the transaction.
In response to the transaction request 160, commerce platform system(s) 110 may perform an authentication operation on the transaction request 160 to prevent and/or reduce fraudulent transactions. In some embodiments, the authentication operation may incorporate a risk calculation performed on the transaction request 160 by a fraud detection system 115 that is associated with the commerce platform system(s) 110. As will be discussed in greater detail herein, the fraud detection system 115 may utilize one or more machine learning models 114, such as neural network based models, tree based models, support vector machine models, classification based models, regression based models, etc., to analyze attributes associated with a transaction request 160, such as a card number used in a transaction, an email address used in the transaction, a dollar amount of a transaction, an IP address of the customer and/or the merchant system(s) 120 making the transaction request, etc., as well as fraud detection features generated by the commerce platform system(s) 110 for use by the machine learning model 114 when analyzing the transaction associated with the transaction request 160, such as a number of transactions on a card used in the transaction, a typical dollar amount of transactions for the card, whether the card number has been used with the email address in a prior transaction, etc.
In some embodiments, the fraud detection system 115 may utilize more than one machine learning model 114, though the embodiments of the present disclosure are not limited to such a configuration. The fraud detection system 115 may provide the machine learning model 114 with data associated with the transaction request 160 to determine a probability that the transaction request 160 is associated with fraud. For example, the features associated with the transaction request 160 may be extracted and provided to the machine learning model 114 as input, and the machine learning model 114 may generate a probability (e.g., a risk) that the transaction associated with the transaction request 160 is fraudulent or otherwise suspect.
In some embodiments, in response to the operations of the fraud detection system 115, the merchant system(s) 120 may approve or deny the transaction from the user system(s) 130. For example, responsive to an indication from the machine learning model 114 that a probability that the transaction associated with the transaction request 160 is fraudulent exceeds a threshold value, the merchant system 120 may deny the transaction associated with the transaction request 160. Similarly, responsive to an indication from the machine learning model 114 that a probability that the transaction associated with the transaction request 160 is fraudulent is less than a threshold value, the merchant system 120 may approve the transaction associated with the transaction request 160.
The commerce platform system 110 may include one or more processors 145 (also referred to herein as processing devices), memory 147, which may include volatile memory devices (e.g., random access memory (RAM)), non-volatile memory devices (e.g., flash memory) and/or other types of memory devices, and one or more network interfaces. It should be noted that although, for simplicity, a single processor 145 is depicted in the commerce platform system 110 depicted in
Processor 145 may include a complex instruction set computing (CISC) microprocessor, reduced instruction set computing (RISC) microprocessor, very long instruction word (VLIW) microprocessor, or a processor implementing other instruction sets or processors implementing a combination of instruction sets. Processor 145 may also include one or more special-purpose processing devices such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), network processor, or the like.
Though not illustrated expressly with processor 145 and memory 147, it will be understood that both the merchant system 120 and the user system 130 may also include a processor and memory in a similar fashion. In some embodiments, the amount and/or type of the memory and/or processor of the merchant system 120 and the user system 130 may be different from that of the commerce platform system 110.
Referring to
Merchant system 120 may receive the transaction data entry 104, and may generate a transaction request 160 including at least part of the transaction data entry 104 and one or more transaction parameters (e.g., transaction time, amount, type of card used, etc.). The transaction request 160 is then communicated to commerce platform system 110.
Commerce platform system 110 may receive the transaction request 160 at transaction processing system 116. Transaction processing system 116 may provide elements of transaction request 160 to fraud detection system 115. For example, the transaction processing system 116 may extract transaction data 119 from the transaction request 160. The transaction data 119 may include data related to elements of the transaction data entry 104 and/or additional data related to the transaction request 160 that may be provided by the merchant system 120.
Fraud detection system 115 may utilize a risk calculation engine 144 to generate a risk value 117 that is associated with the transaction request 160 (e.g., as part of an authentication operation of the commerce platform system 110). In some embodiments, the risk value 117 may include and/or represent a probability that the transaction request 160 is, or is associated with, a fraudulent and/or otherwise unauthorized transaction.
At least in part based on the risk value 117, the commerce platform system 110 may generate an approval status with respect to the transaction request 160. For example, the commerce platform system 110 may decide to allow or deny the transaction request 160, though the embodiments of the present disclosure are not limited to a binary decision. As a non-limiting example only, if the risk value 117 exceeds a defined threshold, the commerce platform system 110 may indicate a denial of the transaction request 160, and if the risk value 117 is less than or equal to the defined threshold, the commerce platform system 110 may indicate acceptance of the transaction request 160. Though not expressly illustrated in
Once a decision has been generated with respect to the transaction request 160, commerce platform system 110 may generate one or more transaction resolution messages 162 (e.g., authorizations, remunerations, etc.), which are returned to merchant system(s) 120 and reference the transaction associated with the transaction request 160. The merchant system 120 may in turn provide transaction resolution messaging 162 to the user system 130 (e.g., indicating a success or failure of the transaction associated with the transaction request 160).
In some embodiments, fraud detection system 115 may utilize one or more machine learning (ML) models 114 and/or transaction data 119 to generate the risk value 117 based on the transaction request 160. For example, in some embodiments, ML model 114 may be generated (e.g., trained) based on historical transaction data. containing transaction records associated with prior fraud detection. Though only one ML model 114 is illustrated in
In some embodiments, the ML model 114 may be trained using model training engine 150. The model training engine 150 may generate the ML model 114, for example, using features 230 extracted from transaction training data 235, which may include features 230 generated from transaction data 119, as well as traditional user-based features, and transaction requests 160 associated with prior fraud detection. In some embodiments, the ML model 114 may at least partially be created by the model training engine 150 offline. In embodiments, ML model 114 may further be refined over time based on future transactions for which no fraud was detected and no fraud existed, no fraud was detected but fraud did exist, fraud was detected and no fraud existed, fraud was detected and fraud did exist. In some embodiments, one or more ML training techniques appropriate for a given model may be executed by ML model 114 periodically as new/additional training data becomes available, as well as in real-time using, for example, session data and transaction data as transactions occur. More details with respect to training the ML model 114 will be described with respect to
In some embodiments, as will be discussed further herein, the features 230 that are utilized, along with the transaction training data 235, by the model training engine 150 may be generated by a feature generation engine 140 based on feature templates 210 (also referred to herein as machine learning feature templates 210). In some embodiments, a plurality of feature templates 210 (feature templates 210A to 210N are illustrated in
The feature generation engine 140 may generate the features 230 by using one or more feature templates 210 from the feature template library 220. As will be discussed further herein, the feature templates 210 may allow for rapid generation of features 230 for use in training the ML model 114. For example, the feature templates 210 may allow for potential features 230 to be rapidly prototyped to identify which of the features 230 provide an improved ML model 114. Additional details related to the feature templates 210 and the feature template library 220 will be explained with respect to
In some embodiments, the model training engine 150 may further include a template customization engine 245. The template customization engine 245 may be configured to alter one or more of the feature templates 210. For example, responsive to a performance of ML model training performed by the model training engine 150, one or more aspects of a feature template 210 may be modified by the template customization engine 245. Additional details with respect to feature template customization will be explained with respect to
Referring to
Each of the first and second feature variables 212A, 212B may correspond to components of training data that may be grouped to form features 230. For example, the first feature variables 212A may correspond to elements of the training data (e.g., transaction training data 235 of
Referring to
Each of the generated features 230 may include a combination of one element from the first grouping 201A of the first feature variables 212A and one element from the second grouping 201B of the second feature variables 212B. For example, as illustrated in
As an example, for training data associated with commercial transactions, the first feature variables 212A may include an area code of the purchaser, a name associated with a card used in the transaction, a number of the card used in the transaction, an identification of the customer, an email address associated with the customer, a network address associated with the transaction, a network subnet associated with the transaction, a name associated with the shipping address, and/or a phone number associated with the shipping address. The second feature variables may include an amount of the transaction, a merchant ID associated with the transaction, an outcome (e.g., approval/disapproval) of the transaction, internal metrics associated with the interaction of a web interface (e.g., merchant web page 132 of
Referring to this example, a plurality of combination operations 225 may be performed such that features 230 are generated for each of the first and second feature variables 212A, 212B. For example, a feature 230 may be generated based on area code of a purchaser and an amount of the transaction to generate a feature 230, such that the amount of a transaction (e.g., a countable element) may be grouped by the area code of the transaction. Similarly, the area code of a purchaser may be combined with a merchant ID associated with the transaction to generate a feature 230, such that the amount of a transaction (e.g., a countable element) may be grouped by the merchant ID associated with the transaction. The combination operations 225 may continue through each of the first feature variables 212A and the second feature variables 212B until a full set of features 230 is generated.
The above set of features may be quickly generated utilized code. For example, the full set of features 230 may be generated utilizing code similar to the following:
The code above is merely an example, and illustrates that a plurality of features may be programmatically generated very quickly with a small number of computer instructions. As illustrated above, the generation of the features 230 may focus on the first feature variables 212A and the second feature variables 212B, and the full set of features 230 may be generated automatically from those lists.
The example above is improved over some prior methods of generating features 230 for training an ML model 114. In some prior methods, the generation of features 230 may require an engineer to write, test, and troubleshoot instruction codes for each feature 230. According to some embodiments of the present disclosure, feature templates 210 may be generated much more quickly and with less overhead. Embodiments of the present disclosure thus reduce a number of computing instructions and an amount of computing resources utilized to generate a set of features 230.
The above example with regard to the first and second feature variables 212A, 212B is only one of several types of combinations of first and second feature variables 212A, 212B that may be utilized. For example, in some embodiments, a feature template 210 may wish to compare transactions of a different sizes with a number of transactions over a particular time period. In such an example, the first feature variables 212A may include a plurality of different amounts for a particular transaction (e.g., a list of first feature variables 212A including $10, $15, $20, etc.) as well as a plurality of time durations between transactions (e.g., a list of second feature variables 212B including 10 minutes, 20 minutes, 30 minutes, etc.). Such a set of first and second feature variables 212A, 212B may generate a set of features 230 including transactions less than $10 that occur within 10 minutes, transactions of less than $10 that occur within 20 minutes, etc. Other types of categories for the first feature variables 212A and the second feature variables 212B are contemplated.
Once generated, the features 230 may be utilized to train an ML model 114.
Referring to
For example, the features 230 may be combined with the transaction training data 235 to generate input data 310. More specifically, a particular feature 230, as generated from a feature template 210, may be applied to the transaction training data 235 to generate the input data 310. As discussed herein with respect to
In this way, input data 310 may be generated for each of the features 230 for the transaction training data 235. The input data 310 may be separated into two groups: a training dataset 320 and a testing dataset 325. Each group of the training dataset 320 and the testing dataset 325 may include portions of the input data 310 (e.g., features 230 and their associated transaction training data 235).
Learning operation 330 may be performed on the training dataset 320. The learning operations 330 may examine the features 230 to establish a relationship between the elements of the features 230 and the transaction training data 235 that accurately predict a classification value (e.g., fraudulent or non-fraudulent) for a given element of transaction training data 235. The learning operations 330 may generate an ML training model 365 that represents the determined relationship. The ML training model 365 may take a feature 230 as input, and output a classification value (e.g., fraudulent or non-fraudulent) for transaction training data 235 associated with the feature 230. The learning operations 330 may attempt to adjust parameters 335 of the ML training model 365 to generate a best-fit algorithm that describes a relationship between the features 230 and the classification value for transaction training data 235 of the training dataset 320. A set of parameters 335 may be selected based on the training dataset 320 and preliminarily established as the ML training model 365.
The results of the learning operations 330 may be provided to an evaluation operation 340. The evaluation operation 340 may utilize the ML training model 365 generated by the learning operations 330 (based on the training dataset 320) to see if the ML training model 365 correctly predicts the training classification value for the features 230 for the transaction training data 235 of the testing dataset 325. If the ML training model 365 accurately predicts the classification values of the testing dataset 325, it may be promoted to the ML model 114. If the ML training model 365 does not accurately predict the classification value of the testing dataset 325, feedback 312 may be provided to the learning operations 330, and the learning operations 330 may be repeated, with additional adjustment of the parameters 335. This process of learning operations 330 and evaluation operation 340 may be repeated until an acceptable ML model 114 is generated.
As part of the evaluation operation 340 during the training of the ML model 114, a performance of respective ones of the features 230 may be evaluated. For example, the generation of the ML model 114 may determine which of the features 230 are significant in predicting a classification of a particular transaction. In some embodiments, establishing the significance of a particular feature 230 may include determining if the presence (or value) of the particular feature 230 is statistically significant in predicting an outcome of the classification of the transaction. Those features 230 that are not significant in predicting a classification of the transaction may be removed from the list of features 230 to generate a set of production features 390. The production features 390 may be a subset of the features 230 that were initially provided to the learning operations 330.
In some embodiments, the output of the evaluation operation 340 may be provided to a template modification operation 375. The template modification operation 375 may evaluate those features 230 that are significant with respect to the classification of a particular transaction (e.g., those features 230 that become production features 390). Whether or not a particular feature 230 is significant may depend on a prediction accuracy of feature 230 with respect to a classification and/or decision predicted by the ML model 114. Based on the performance of the features 230 during the training of the ML model 114, the feature template 210 (see, e.g.,
Once the ML model 114 is generated, it may be used to predict classifications 380 for the production features 390. For example, for a given transaction request 160, a set of transaction data 119 (see
Referring back
Stated another way, a feature template 210 may be useful in generating an initial set of features 230 for use in training an ML model 114, as described herein with respect to
Referring to
In addition, each of the feature templates 210 may include template characteristics 410. For example, a first feature template 210A may have first template characteristics 410A, a second feature template 210B may have second template characteristics 410B, a third feature template 210C may have third template characteristics 410C, a fourth feature template 210D may have fourth template characteristics 410D, a fifth feature template 210E may have fifth template characteristics 410E, and a sixth feature template 210F may have sixth template characteristics 410F, and so on. The template characteristics 410 may include one or more characteristics that are descriptive of the feature template 210 and/or the types of data for which the feature template 210 is best suited. As an example, the template characteristics may indicate that the feature template 210 contains feature variables 212 (see
A model profile 420 and a model data 425 may be received. The model profile 420 and the model data 425 may represent data for which an ML model 114 is desired. The model data 425 may include the data (or an example of the data) over which an ML model 114 is to be trained. For example, for a potential user of the ML model 114 that is a retail merchant, the model data 425 may represent transactions and/or transaction requests such as those described herein with respect to
The model profile 420 may include characteristics of the entity associated with the model data 425. In some embodiments, the model profile 420 may include a prediction category of the model. For example, the model profile 420 may describe whether the model data 425 is associated with a merchant, a bank, or the like. The model profile 420 may include information about the type of business associated with the model data 425, a type of goods sold, a price range of the goods sold, and the like.
The model profile 420 and the model data 425 may be analyzed to determine a match with one or more template characteristics 410 of the feature templates 210 of the feature template library 220. For example, the model profile 420 and the model data 425 may be analyzed to determine that a type of business (e.g., retail) represented by the model profile 420 and the model data 425 may match a type of business for which a particular feature template 210 is suited. As another example, the model profile 420 and the model data 425 may indicate a type of transaction that has a type of transaction environment (e.g., internet sales) that matches a template characteristic 410 of one or more feature templates 210. In the example of
Once a particular match is selected, the selected feature template 210B may be processed to generate features 230, as described herein with respect to
Utilizing the feature template selection process illustrated in
In some embodiments, the template customization engine 245 may be configured to adjust a given feature template 210 from the feature template library 220 so as to generate a modified feature template. 210″. In some embodiments, modifying a feature template 210 may be beneficial to adjust the feature template 210 to more closely match characteristics of a set of incoming transactions for a given environment. In some embodiments, a set of feature templates 210 may be maintained as an initial starting point, but may be modified for a particular merchant to generate features 230 that may be more customized to the type of transactions experienced by the merchant.
As illustrated in
Based on the model profile 420 and/or the model data 425, one or more of the first feature variables 212A and/or the second feature variables 212B may be altered. As an example, the model profile 420 and/or the model data 425 may indicate that the model data 425 represents transactions associated with a range of goods that have a higher price range than is represented in the first feature variables 212A. As a result, the values of the first feature variables 212A may be modified (e.g., one or more of a list of first feature variables 212A may be modified to $50, $75, $100, etc.). Similarly, the model profile 420 and/or the model data 425 may indicate that the model data 425 represents transactions associated with another currency, or even something other than straight currency (e.g., voucher amounts). The template customization engine 245 may further adjust the feature template 210B to generate the modified feature template 210B″ based on these modifications. In
Once the modified feature template 210B″ is generated, the modified feature template 210B″ may be processed to generate features 230, as described herein with respect to
Utilizing the feature template customization process illustrated in
In some embodiments, the model profile 420 may be a profile of one or more merchants. Based on an analysis of the merchant profile 420, a plurality of recommendations and/or additional features 230 may be programmatically identified that would be useful for the merchant to utilize as part of the creation of the ML model 114. In some embodiments, recommendations may be programmatically provided based on the analysis of the model profile 320 for features 230 and/or feature templates 210 may be altered and/or combined for training the ML model 114.
In operation 440, merchant information may be received. The merchant information may include data and characteristics for transactions to be modeled by an ML model 114. For example, the merchant information may include data similar to that represented by the model profile 420 and the model data 425 described herein with respect to
In operation 446, the profile of the merchant may be determined. For example, a profile may describe a type of business conducted by the merchant, a typical transaction type of the merchant, sales ranges of the merchant, and the like. The profile of the merchant may be similar to the model profile 420 described with respect to
In concurrent operation 448, characteristics of transaction data of the merchant may be determined. The characteristics of the transaction data may describe and/or include a plurality of transaction of the merchant, examples of fraudulent and non-fraudulent transactions, and the like. The characteristics of the transaction data may be similar to the model data 425 described with respect to
In operation 450, a feature template 210 may be selected. In some embodiments, the feature template 210 may be selected from a plurality of feature templates 210 of a feature template library 220. In some embodiments, the feature template 210 may be selected based on the profile of the merchant determined in operation 446 and/or the characteristics of the transaction data determined in operation 448. In some embodiments, the feature template 210 may be selected based on one or more comparing one or more template characteristics 410 of the feature template 210 to one or more of the merchant profile and/or the characteristics of the transaction data.
In operation 460, it may be determined whether the selected template 210 should be customized. In some embodiments, the determination as to whether the selected template 210 should be customized may be based on an analysis of a template characteristic 410 of the feature template, the profile of the merchant, and/or the characteristics of the transaction data associated with the merchant.
In operation 465, if it is determined that the feature template 210 should be customized, one or more of the feature variables 212 of the feature template 210 (see
After the modification of the feature template 210 performed in operation 465, or if it is determined in operation 460 that the feature template 210 is not to be modified, features 230 may be generated in operation 470. The features 230 may be generated as described herein with respect to
In operation 480 an ML model 114 may be trained. The ML model 114 may be trained utilizing the features 230 generated in operation 470. The ML model 114 may be trained as described herein with respect to
The operations of the method 400 to train an ML model 114 illustrated in
Referring to
Processing logic generates a plurality of machine learning features by combining a respective one of each of the first machine learning feature variables of the first grouping with a respective one of each of the second machine learning feature variables of the second grouping (processing block 520). In some embodiments, the machine learning features may be similar to the features 230 described herein.
Processing logic trains a first machine learning model utilizing the plurality of machine learning features and first training data to generate a machine learning output (processing block 530). In some embodiments, the first machine learning model may be similar to the ML model 114 and/or the ML training model 365 described herein.
Processing logic analyzes the machine learning output to determine a prediction accuracy of the plurality of machine learning features (processing block 540). The prediction accuracy may indicate which of the features are useful for providing accurate predictions from the ML model.
Based on the prediction accuracy of the plurality of machine learning features, the processing logic selects a subset of the plurality of machine learning features (processing block 550). In some embodiments, the subset of the plurality of machine learning features may be similar to the production features 390 described herein with respect to
Processing logic trains a second machine learning model based on the subset of the plurality of machine learning features and the first training data (processing block 560). In some embodiments, the second machine learning model may be similar to the ML model 114 described herein.
Processing logic provides a network transaction to the second machine learning model to generate a classification of the network transaction (processing block 570). In some embodiments, the network transaction may be similar to the transaction data 119 described herein. In some embodiments, the network transaction is one of a plurality of network transactions, and the second machine learning model is configured to predict fraudulent transactions in the plurality of network transactions.
In some embodiments, the method 500 may further include, based on the prediction accuracy of the plurality of machine learning features, the processing logic further modifying at least one of the first grouping of the first machine learning feature variables or the second grouping of the second machine learning feature variables of the machine learning feature template to generate a modified machine learning feature template. For example, as described herein with respect to
In some embodiments, the machine learning feature template is a first machine learning feature template of a plurality of machine learning feature templates, the first machine learning feature template is associated with a first prediction category, and the method 500 further includes the processing logic obtaining second training data associated with a second prediction category, selecting the first machine learning feature template based on the second prediction category matching the first prediction category, generating a second plurality of machine learning features by combining a respective one of each of the first machine learning feature variables of the first grouping with a respective one of each of the second machine learning feature variables of the second grouping, and training a third machine learning model utilizing one or more of the second plurality of machine learning features and the second training data. In some embodiments, the first training data comprises a first plurality of transactions for a first merchant and the second training data comprises a second plurality of transactions for a second merchant, and selecting the first machine learning feature template is further based on a comparison of a first profile of the first merchant and a second profile of the second merchant. In some embodiments, prior to generating the second plurality of machine learning features, the processing logic may modify at least one of the first machine learning feature variables of the first grouping or the second machine learning feature variables of the second grouping based on characteristics of the second training data.
The data processing system illustrated in
The system may further be coupled to a display device 670, such as a light emitting diode (LED) display or a liquid crystal display (LCD) coupled to bus 615 through bus 665 for displaying information to a computer user. An alphanumeric input device 675, including alphanumeric and other keys, may also be coupled to bus 615 through bus 665 for communicating information and command selections to processor 610. An additional user input device is cursor control device 680, such as a touchpad, mouse, a trackball, stylus, or cursor direction keys coupled to bus 615 through bus 665 for communicating direction information and command selections to processor 610, and for controlling cursor movement on display device 670.
Another device, which may optionally be coupled to computer system 600, is a communication device 690 for accessing other nodes of a distributed system via a network. The communication device 690 may include any of a number of commercially available networking peripheral devices such as those used for coupling to an Ethernet, token ring, Internet, or wide area network. The communication device 690 may further be a null-modem connection, or any other mechanism that provides connectivity between the computer system 600 and the outside world. Note that any or all of the components of this system illustrated in
It will be appreciated by those of ordinary skill in the art that any configuration of the system may be used for various purposes according to the particular implementation. The control logic or software implementing the described embodiments can be stored in main memory 650, mass storage device 625, or other storage medium locally or remotely accessible to processor 610.
It will be apparent to those of ordinary skill in the art that the system, method, and process described herein can be implemented as software stored in main memory 650 or read only memory 620 and executed by processor 610. This control logic or software may also be resident on an article of manufacture comprising a computer readable medium having computer readable program code embodied therein and being readable by the mass storage device 625 and for causing the processor 610 to operate in accordance with the methods and teachings herein.
The embodiments discussed herein may also be embodied in a handheld or portable device containing a subset of the computer hardware components described above. For example, the handheld device may be configured to contain only the bus 615, the processor 610, and memory 650 and/or 625. The handheld device may also be configured to include a set of buttons or input signaling components with which a user may select from a set of available options. The handheld device may also be configured to include an output apparatus such as a liquid crystal display (LCD) or display element matrix for displaying information to a user of the handheld device. Conventional methods may be used to implement such a handheld device. The implementation of embodiments for such a device would be apparent to one of ordinary skill in the art given the disclosure as provided herein.
The embodiments discussed herein may also be embodied in a special purpose appliance including a subset of the computer hardware components described above. For example, the appliance may include a processor 610, a data storage device 625, a bus 615, and memory 650, and only rudimentary communications mechanisms, such as a small touch-screen that permits the user to communicate in a basic manner with the device. In general, the more special-purpose the device is, the fewer of the elements need be present for the device to function.
It is to be understood that the above description is intended to be illustrative, and not restrictive. Many other embodiments will be apparent to those of skill in the art upon reading and understanding the above description. The scope should, therefore, be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled.
As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises”, “comprising”, “includes”, and/or “including”, when used herein, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. Therefore, the terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting. As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items.
It should also be noted that in some alternative implementations, the functions/acts noted may occur out of the order noted in the figures. For example, two figures shown in succession may in fact be executed substantially concurrently or may sometimes be executed in the reverse order, depending upon the functionality/acts involved.
Although the method operations were described in a specific order, it should be understood that other operations may be performed in between described operations, described operations may be adjusted so that they occur at slightly different times or the described operations may be distributed in a system which allows the occurrence of the processing operations at various intervals associated with the processing.
Various units, circuits, or other components may be described or claimed as “configured to” or “configurable to” perform a task or tasks. In such contexts, the phrase “configured to” or “configurable to” is used to connote structure by indicating that the units/circuits/components include structure (e.g., circuitry) that performs the task or tasks during operation. As such, the unit/circuit/component can be said to be configured to perform the task, or configurable to perform the task, even when the specified unit/circuit/component is not currently operational (e.g., is not on). The units/circuits/components used with the “configured to” or “configurable to” language include hardware—for example, circuits, memory storing program instructions executable to implement the operation, etc. Reciting that a unit/circuit/component is “configured to” perform one or more tasks, or is “configurable to” perform one or more tasks, is expressly intended not to invoke 35 U.S.C. 112, sixth paragraph, for that unit/circuit/component. Additionally, “configured to” or “configurable to” can include generic structure (e.g., generic circuitry) that is manipulated by software and/or firmware (e.g., an FPGA or a general-purpose processor executing software) to operate in manner that is capable of performing the task(s) at issue. “Configured to” may also include adapting a manufacturing process (e.g., a semiconductor fabrication facility) to fabricate devices (e.g., integrated circuits) that are adapted to implement or perform one or more tasks. “Configurable to” is expressly intended not to apply to blank media, an unprogrammed processor or unprogrammed generic computer, or an unprogrammed programmable logic device, programmable gate array, or other unprogrammed device, unless accompanied by programmed media that confers the ability to the unprogrammed device to be configured to perform the disclosed function(s).
The foregoing description, for purpose of explanation, has been described with reference to specific embodiments. However, the illustrative discussions above are not intended to be exhaustive or to limit the described embodiments to the precise forms disclosed. Many modifications and variations are possible in view of the above teachings. The embodiments were chosen and described in order to best explain the principles and practical applications of the various embodiments, to thereby enable others skilled in the art to best utilize the various embodiments with various modifications as may be suited to the particular use contemplated.