Patent Publication Number: US-2023147934-A1

Title: Triaging alerts using machine learning

Description:
CROSS REFERENCE TO OTHER APPLICATIONS 
     This application claims priority to U.S. Provisional Patent Application No. 63/278,196 entitled ANTI-MONEY LAUNDERING ALERT OPTIMIZATION USING MACHINE LEARNING WITH GRAPHS filed Nov. 11, 2021, which is incorporated herein by reference for all purposes. 
    
    
     BACKGROUND OF THE INVENTION 
     Rule-based systems are typically used to analyze data by applying one or more rules to the data and outputting alerts if the data meets criteria set forth by the rules. For example, an anti-money laundering system may include rules defined by human experts. The rules are used to interpret transactional data to predict whether transactions are part of a money-laundering scheme. An alert is generated for those transactions that are potentially part of a money-laundering scheme. A security analyst may then review the alert to determine how to respond. However, there may be a large number of alerts or a high false positive rate, making the review of the alerts tedious or inefficient. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Various embodiments of the invention are disclosed in the following detailed description and the accompanying drawings. 
         FIG.  1    is a flow diagram illustrating an embodiment of a process for triaging alerts using machine learning. 
         FIG.  2    is a flow diagram illustrating an embodiment of a process for triaging alerts using machine learning and feedback. 
         FIG.  3    is a flow diagram illustrating an embodiment of a process for alert optimization including determining explanations for alert processing. 
         FIG.  4    is a block diagram illustrating an embodiment of a system for alert optimization using machine learning to triage alerts. 
         FIG.  5    is a flow diagram illustrating an embodiment of a process for training a machine learning model to triage alerts. 
         FIG.  6    is a flow diagram illustrating an embodiment of a process for re-training a machine learning model to triage alerts. 
         FIG.  7    is a flow diagram illustrating an embodiment of a process for monitoring performance of a machine learning model that triages alerts. 
         FIG.  8 A  is a diagram illustrating an example of a graphical user interface for showing an explanation of alert triaging by a machine learning model. 
         FIG.  8 B  is a diagram illustrating an example of a graphical user interface for alert optimization using machine learning to triage alerts. 
     
    
    
     DETAILED DESCRIPTION 
     The invention can be implemented in numerous ways, including as a process; an apparatus; a system; a composition of matter; a computer program product embodied on a computer readable storage medium; and/or a processor, such as a processor configured to execute instructions stored on and/or provided by a memory coupled to the processor. In this specification, these implementations, or any other form that the invention may take, may be referred to as techniques. In general, the order of the steps of disclosed processes may be altered within the scope of the invention. Unless stated otherwise, a component such as a processor or a memory described as being configured to perform a task may be implemented as a general component that is temporarily configured to perform the task at a given time or a specific component that is manufactured to perform the task. As used herein, the term ‘processor’ refers to one or more devices, circuits, and/or processing cores configured to process data, such as computer program instructions. 
     A detailed description of one or more embodiments of the invention is provided below along with accompanying figures that illustrate the principles of the invention. The invention is described in connection with such embodiments, but the invention is not limited to any embodiment. The scope of the invention is limited only by the claims and the invention encompasses numerous alternatives, modifications and equivalents. Numerous specific details are set forth in the following description in order to provide a thorough understanding of the invention. These details are provided for the purpose of example and the invention may be practiced according to the claims without some or all of these specific details. For the purpose of clarity, technical material that is known in the technical fields related to the invention has not been described in detail so that the invention is not unnecessarily obscured. 
     Techniques for triaging alerts using machine learning are disclosed. In various embodiments, a triage machine learning model is configured and trained to score alerts reflecting an importance of a case (e.g., likelihood of being suspicious). An “alert” or an “alerted transaction” refers to transactions alerted by rules as further described herein. The triage model facilitates and optimizes alert review because it allows the usage of resources for alert review to be improved. An alert manager then determines an action to take with respect to the alert such as ranking alerts, forwarding the alert for analyst review, assigning the alert to an appropriate queue, or the like. For example, alerts can be ranked based on their scores. Cases that are likely to be true positives (e.g., as defined by a score threshold) are prioritized by assigning them to a first queue and cases that are less likely to be true positives are assigned to a second queue. The first queue gets reviewed immediately by senior analysts, while the second queue is reviewed by a less senior team. If an analyst considers a case in the second queue to be suspicious, then the case can be escalated to the first queue. In various embodiments, explanations for the triage model&#39;s decisions can be determined and output to aid analysts in their investigation and review of alerts. In various embodiments, the triage model can be monitored, adapted, and re-trained, e.g., in response to model performance change or rule set changes. For example, a new rule bypasses triage prior to having sufficient labels to re-train the model. 
     In various embodiments, a process for triaging alerts includes receiving data associated with transactions and using one or more computer processors to analyze the received data using one or more rules to automatically identify potentially suspicious activities. Based at least in part on analysis results of the one or more rules associated with the identified potentially suspicious activities, the process uses a machine learning model to at least in part automatically triage the identified potentially suspicious activities to automatically process at least a portion of the identified potentially suspicious activities. 
     In various embodiments, a process for training a machine learning model to triage alerts includes configuring a machine learning model and receiving training data (e.g., alerted transactions). The process uses one or more computer processors and the received training data to train the machine learning model to triage potentially suspicious activities including by automatically processing at least a portion of the potentially suspicious activities, where the potentially suspicious activities are identified by one or more rules in a set of rules. 
       FIG.  1    is a flow diagram illustrating an embodiment of a process for triaging alerts using machine learning. This process may be implemented on or by the system shown in  FIG.  4   . 
     In the example shown, the process begins by receiving data associated with transactions ( 100 ). The data can be enriched to extract features. The process can extract the features associated with the received data, or the features can be provided to the process along with the data. For example, the process extracts a first set of features to be used to analyze the received data using the one or more rules to automatically identify potentially suspicious activities. The process extracts a second set of features to be used to score each of the identified potentially suspicious activities using the machine learning model. In other words, some features may be used by one or more rules to identify suspicious activities and some features may be used by a machine learning model to triage the identified suspicious activities. The features used by the rule(s) and the features used by the model may be the same, different, or overlap. 
     The process uses one or more computer processors to analyze the received data using one or more rules to automatically identify potentially suspicious activities ( 102 ). The processor(s) may analyze the received data by applying one or more rules to the data. The rules may generate an alert or otherwise flag those entities (e.g., customer, account) or transactions that are associated with potentially suspicious activities. 
     For example, in an anti-money laundering system, relevant features used by the rule(s) include, but are not limited to:
         Characteristics of an account/customer such as profession or age   Typical behavior of the customer including typical movements of money such as the average amount spent in the last week or the number of transfers on the last day       

     The process scores each of the identified potentially suspicious activities using a machine learning model based at least in part on analysis results of the one or more rules associated with the identified potentially suspicious activities ( 104 ). The machine learning model is trained to assign a score to an identified potentially suspicious activity using the analysis result. For example, in an anti-money laundering system, relevant features used by the model include, but are not limited to:
         Relationships of the customer and others the customer interacts with such as the number of unique counterparties or distance to suspicious customers   Communities such as how much money is moving within a community, community size, closeness centrality, or betweenness centrality       

     An example of how to train the model is shown in  FIG.  5   . An analysis result includes information associated with the alert such as the features described herein, which rules were triggered, and related transactions contributing to the same alerts. For example, a score indicates the likelihood of an activity being a true positive. 
     The process triages the identified potentially suspicious activities including by determining an action to take with respect to at least a portion of the identified potentially suspicious activities based at least in part on the scoring of each of the identified potentially suspicious activities ( 106 ). The score determined by the model can be used to determine an action to take (e.g., resolve) with respect to a potentially suspicious activity (also sometimes referred to as an alert) based on user rules or guidelines. The score can be used to determine actions to take such as:
         rank alerts by score,   group alerts into various importance levels,   de-prioritize low importance alerts,   prioritize high importance alerts,   send alerts to teams or analysts for review,   hibernate alerts (which snoozes alerts and closes alerts after a specified time such as 60 days), or   create different queues (e.g., group by risk) to be addressed by different teams or analysts.       

     A user can define how to manage the priority of an alert. A priority of an alert can be changed by decreasing a priority (de-prioritizing) or increasing a priority (prioritizing) of the alert. An alert can be de-prioritized by removing the activity from the list or decreasing its rank or priority in the list. An alert can be prioritized by increasing its rank or priority in the list. Whether to de-prioritize or prioritize an alert can be based on a corresponding score. For example, alerts below some score threshold are de-prioritized and/or alerts above some score threshold are prioritized. As another example, alerts can be prioritized by only providing (e.g., storing or outputting) the top n activities, where n can be a pre-defined number such as the top 10 activities selected based on review capabilities available. The other activities are suppressed. 
     The actions described above are merely exemplary and not intended to be limiting. An action to take with respect to an identified potentially suspicious activity can be tailored to a use case and/or defined by a user depending on operations, risk appetite, applicable regulations, among other things. 
       FIG.  2    is a flow diagram illustrating an embodiment of a process for triaging alerts using machine learning and feedback. This process may be implemented on or by the system shown in  FIG.  4   . This process may be implemented as part of another process such as after  104  of  FIG.  1   . 
     In the example shown, the process begins by determining a scored list of identified potentially suspicious activities ( 200 ). The list can be assembled by collecting identified potentially suspicious activities and querying a machine learning model to determine their scores. 
     The process provides the scored list of the identified potentially suspicious activities ( 202 ). For example, the process stores the list or outputs the list. The list can be obtained by a decision module such as an alert manager that determines an action to take with respect to an activity such as ranking the activities so they can be presented according to their risk as further described herein. 
     The process receives feedback associated with the scored list of the identified potentially suspicious activities ( 204 ). The feedback can be automatic feedback or feedback from a human. Examples of feedback include labels or other information such as a chargeback, whether an entity associated with a transaction is on a watchlist, the result of expert human review, etc. 
     The process updates the machine learning model based on the received feedback ( 206 ). For example, the machine learning model can be re-trained using the updated labels from the feedback. 
       FIG.  3    is a flow diagram illustrating an embodiment of a process for alert optimization including determining explanations for alert processing. This process may be implemented on or by the system shown in  FIG.  4   . This process may be implemented as part of another process such as after  104  of  FIG.  1   . 
     In the example shown, the process begins by determining an explanation for a decision associated with the scoring ( 300 ). The explanations used by the disclosed triage model can be used to provide insights into the scores. Human reviewers, regulators, and others may find this helpful. For example, explanations include what features contributed most to a model decision, which reviewers may find helpful. This can greatly decrease reviewer investigation time. As another example, if the triage model is used for alert suppression (e.g., low priority alerts are suppressed without human review), these explanations can be used to justify the decision to the regulators. 
     The process may then provide an explanation by performing  302  to  306 . For example, providing the explanation includes initially providing a second-level explanation that includes a grouping of features that belong to a same concept or semantic group, followed by providing a first-level explanation as follows. In various embodiments, a multi-level explanation strategy is used to provide white-box explanations of predicted scores. A first level explanation (e.g.,  810  of  FIG.  8 B ) is more detailed and shows the specific features used by the model and their contributions to the model&#39;s decision. One way to determine the specific features is by using a TreeSHAP algorithm. This information could have some redundancy for a human reviewer since models typically use many features and some of the features could be capturing information about the same semantic meaning or concept. Thus, a second-level explanation can be presented. 
     The process provides a second-level explanation ( 302 ). A second level of explanation (e.g.,  800  of  FIG.  8 A ) can be presented to provide an aggregated view of the features by grouping the ones that belong to the same concept/semantic group together based on human expert knowledge. As described with respect to  FIG.  3   , in various embodiments, second level explanations are presented first. 
     If the user requests additional explanation ( 304 ), the process provides a first-level explanation. In various embodiments, the first-level explanation includes features and associated contributions used by the machine learning model to determine the decision associated with the automatic triaging. Otherwise, if the user does not request additional explanation, the process ends. 
       FIG.  4    is a block diagram illustrating an embodiment of a system for alert optimization using machine learning to triage alerts. The system includes a rules system  410 , machine learning (triage) model  400 , and an alert manager  430 . Rules system  410  is configured to apply one or more rules from rules store  412  to generate one or more alerts. Machine learning (triage) model  400  is configured to score the alerts. Model  400  can be trained using the process of  FIG.  5   . Alert Manager  430  is configured to process the alerts based on the scores determined by the model, for example outputting some of the alerts for user review. Feedback (e.g., user review)  420  is optionally received and used to improve model  400  (e.g., by applying the process of  FIG.  2   ) and/or rules sets in rules store  410 . 
     In operation, the system of  400  is configured to perform the process of  FIG.  1   . Rules system  410  processes a transaction by applying rules  412 . Alerts output by the rules system are triaged by the machine learning (triage model) using a score assigned to the alert by the model. The alert manager  430  then processes the alerts output by the model. Optionally, feedback such as user review  420  is used to improve the model  400 . 
       FIG.  5    is a flow diagram illustrating an embodiment of a process for training a machine learning model to triage alerts. This process may be implemented on or by the system shown in  FIG.  4   . 
     In the example shown, the process begins by configuring a machine learning model ( 500 ). The model can be configured with initial settings such as parameters for how long to train the model, what learning rate to use or how strong regularization should be. If the model is being re-trained because the volume of alerts has changed, it can be configured with updated information such as new labels, as further described herein. 
     The process receives training data ( 502 ). In various embodiments, the training data includes potentially suspicious activities (alerts), which may be identified by applying rules to transactional data. The process may enrich the data to obtain various features. One type of feature is called an entity (or profile) feature. Another type of feature is called a neighborhood feature and may be subject to graph analysis (e.g., relationships of customers and communities). 
     Using the example of anti-money laundering, a set of entity/profile features engineered for the triage model characterizes the history of transactions specific to each account. A profile is an arithmetic aggregation by a particular field and over a specified time window, such as the total amount spent per account in the past week. 
     These features enable a machine learning model to contrast historical (long windows) with current behavior (short windows) and correlate that with suspicious activity. Example time windows include one day, one and two weeks, one and two months. In various embodiments, the aggregation functions include sum, mean, minimum, maximum, and count as well as those that may cover several time windows such as ratios and differences. Any feature selection (including permutation-based feature selection) can be performed over the profiles by training a gradient boosted trees model on a sample of the training dataset, keeping the smallest set of features which cumulatively contribute up to a predefined percentage (e.g., 90%) of the performance for the metric of interest. As a result, a subset of the profiles is selected to enrich the data. Profiles can be built by automatically generating features based on the semantic labels of the data fields (e.g., entity, location, date, or amount). 
     While profile features capture entity-centric behavior, graph features capture inter-entity relations. Because money flows occur between bank accounts, one choice is to represent accounts as nodes and transactions as edges between accounts. The direction of the edge follows the direction of the money (from sender to receiver), and edge attributes include the transaction timestamp and amount. 
     Scalability can be an issue when many events (e.g., on the order of millions) need to be processed per second. Since older events become progressively less relevant, a dynamic graph construction leveraging sliding windows to limit the number of events needed at any moment in time can be used. Similar to profile features, the graph-based features are computed periodically (e.g., every day) as follows. First, the graph snapshot of the previous day is updated by removing the edges that no longer fall within the sliding window and by adding new edges corresponding to the current day&#39;s events. Secondly, the graph features for every node with an event in the target day (accounts requiring evaluation) are calculated. 
     Some examples of specific graph features used by the triage model for anti-money laundering will be discussed but this is not intended to be limiting as the process can be applied to other graph-based features using the same or similar transactional graph. Suspicious accounts are expected to have more counterparties on average. To convey this information to the model, the in- and out-degrees of the target node are calculated. Additionally, in- and out-degrees of its successors and predecessors&#39; mean, minimum, and maximum are calculated. In this way, eight new features are created that characterize the number of counterparties of an account and its neighborhood. Analogously, a weighted version of these features is calculated by using the transferred amount as the edge weight. Because the above features contain information from nodes that are one hop away from the target node, they cannot be captured by the profile features. 
     Money laundering patterns typically involve criminal networks. Therefore, suspicious nodes tend to have a higher probability of being connected to other suspicious nodes. This property is captured by Guilty-Walker (GW) features where random walks are generated which stop upon reaching a known illicit node or if there are no available connections. A predefined number of random walks (e.g., 50) can be run for each target node. Features characterizing the length of the random walks (e.g., minimum, maximum, median, mean, standard deviation, 25th, and 75th percentile), the fraction of successful random walks (the “hit rate”), and the number of distinct illicit nodes encountered can be computed. 
     In anti-money laundering, feedback is typically not immediate because investigations tend to be lengthy. Because labels are typically not immediately available for all past transactions, a waiting period can be introduced as follows. A machine learning model is trained using profiles and degree features and other features that do not necessarily depend on the label on a first training set. The resulting model is used to score a second training set and define a suitable threshold to obtain pseudo-labels. The GuiltyWalker features are computed using the pseudo-labels for the unlabeled transactions in the waiting period and the actual labels otherwise. Finally, the triage model is trained on the second training set, using profiles, degrees, and GuiltyWalker features. 
     The process uses one or more computer processors and the received training data to train the machine learning model to score potentially suspicious activities including by automatically processing at least a portion of the potentially suspicious activities, wherein the potentially suspicious activities are identified by one or more rules in a set of rules ( 504 ). 
       FIG.  6    is a flow diagram illustrating an embodiment of a process for re-training a machine learning model to triage alerts. This process may be implemented on or by the system shown in  FIG.  4   . This process may be implemented as part of another process such as after  504  of  FIG.  5   . 
     In the example shown, the process begins by determining whether at least one identified potentially suspicious activity is different from previously-identified potentially suspicious activities ( 600 ). In other words, the process determines whether the potentially suspicious activities are expected to be a subset of the original potentially suspicious activities. The set of alerts may change when the scope of a rule set changes such as by changing a threshold of one or more rules or adding one or more rules to the rule set. When the scope of a rule is expanded, the model can be re-trained so that the new alerts are appropriately triaged and processed. In various embodiments, when a new rule is added to the rule set, some of the alerts may overlap with alerts generated by other rules. Overlapping alerts are considered for prioritization (scored by the machine learning model), while the non-overlapping alerts are not scored by the model until after the model is re-trained. 
     If at least one identified potentially suspicious activity is not different from previously-identified potentially suspicious activities (e.g., the scope of the alerts remains unchanged), the process ends. For example, if a rule has been removed or a rule set is unchanged, the machine learning model does not need to be changed. 
     Otherwise, if at least one identified potentially suspicious activity is different from previously-identified potentially suspicious activities, the process proceeds to  602  to form a set of potentially suspicious activities. This set of alerts is expected to differ from an earlier set of alerts because the scope of alerts increases due to adding a rule or changing a threshold. More specifically, the pool of alerts is expected to grow and include some types of alerts that the model has not previously seen. 
     The process re-configures the machine learning model in response to a determination that a threshold amount of labeled data has been gathered for the formed set of potentially suspicious activities ( 604 ). The threshold amount of labeled data can be set so that the model is re-trained at an optimal time (not too frequently or infrequently). 
     The process uses computer processor(s) and the gathered labeled data to re-train the machine learning model ( 606 ). After the model is re-trained, it will be able to (more accurately) score those new alerts that were generated due to the rule, threshold, or other change that caused the number of alerts to increase (or at least remain unchanged). 
     In various embodiments, alerts generated by rule set changes (e.g., a new rule) are handled as follows. The process runs the rule on historical data, and all or a sample of the alerts are reviewed by analysts. The sample can be selected at random, selected following active learning policies, etc. The machine learning model is re-trained using the new labels, and then the model is deployed for the entirety of the rule set. 
       FIG.  7    is a flow diagram illustrating an embodiment of a process for monitoring performance of a machine learning model that triages alerts. This process may be implemented on or by the system shown in  FIG.  4   . This process may be implemented as part of another process such as after  504  of  FIG.  5   . 
     In the example shown, the process begins by monitoring performance of the machine learning model ( 700 ). In various embodiments, the performance of the machine learning model is monitored continuously. The model can be monitored by comparing model predictions with actual results (e.g., true labels) provided by human reviewers (e.g.,  420 ). Although some alerts may be assigned to a lower priority queue because they score below a score threshold, they can nevertheless be evaluated earlier as follows. In various embodiments, monitoring the performance of the machine learning model includes determining a label (e.g., by a human reviewer) of at least one of the potentially suspicious activities that is assigned a score below a priority threshold by the trained machine learning model. Those low-scoring potentially suspicious activities (assigned a score below the priority threshold) for which labels are determined can be randomly selected. The number of such low-scoring alerts to review can be user-defined such as a pre-defined percentage of low-scoring alerts. 
     The process determines whether performance of the machine learning model is below a performance threshold ( 702 ). For example, the threshold is based on a percentage of positives in a group of low-scoring potentially suspicious activities. 
     If the performance of the machine learning model is not below a performance threshold, the process continues monitoring performance of the model ( 700 ). 
     Otherwise, if the performance of the machine learning model is below a performance threshold, the process proceeds to re-configure the machine learning model and/or use computer processor(s) to re-train the machine learning model ( 704 ). The model can be re-configured by selecting a new model threshold such as lowering the model score threshold below which an alert is suppressed. In various embodiments, an explanation (examples of which are described with respect to  FIG.  3   ) generated by the machine learning model can be used to re-configure the machine learning model and/or re-train the machine learning model. 
       FIG.  8 A  is a diagram illustrating an example of a graphical user interface for showing an explanation of alert triaging by a machine learning model. As described with respect to  FIG.  3   , the explanations used by the disclosed triage model can be used to provide insights into the scores. 
     In this example, a second level explanation  800  is shown. Explanation  800  provides an aggregated view of the features by grouping the ones that belong to the same concept/semantic group together based on human expert knowledge. The specific features are neighborhood magnitude, money sent, and proximity to illicit are shown along with their corresponding contribution to the score (2.21). A reviewer can quickly tell at a glance that the feature “proximity to illicit” had the greatest contribution to the score. 
       FIG.  8 B  is a diagram illustrating an example of a graphical user interface for alert optimization using machine learning to triage alerts. In this example, a first level explanation  810  is shown. This explanation is more detailed. For example, the features amount_min_sent, amount_mean_sent, and amount_sum_sent can be grouped into “money sent” in  FIG.  8 A  but are shown separately to provide more detail. As described with respect to  FIG.  3   , in various embodiments, second level explanations are presented first, and if a user wants to see more details they can be presented as shown in the figure. 
     Although the foregoing embodiments have been described in some detail for purposes of clarity of understanding, the invention is not limited to the details provided. There are many alternative ways of implementing the invention. The disclosed embodiments are illustrative and not restrictive.