Privacy-preserving graph compression with automatic fuzzy variable detection

By generating a community graph of transaction data and determining fuzzy values, the server computer solves the problem of data privacy protection in machine learning systems, realizing effective privacy protection and prediction capabilities for user data.

CN112384920BActive Publication Date: 2025-03-28VISA INTERNATIONAL SERVICE ASSOCIATION
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN201980046244.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2018-07-11
Filing Date
2019-07-11
Publication Date
2025-03-28
Estimated Expiration
2039-07-11

AI Technical Summary

Technical Problem

The prior art is difficult to effectively protect the data privacy used in machine learning systems, especially in multiple transaction data, where the user's user identifier is easily identified.

Method used

Receive network data of multiple transaction data through a server computer, generate one or more graphs including multiple communities, determine fuzzy values ​​in the data values, and determine community fuzzy values ​​within the multiple communities for each user, and ultimately generate a model using these fuzzy values ​​and data values.

Benefits of technology

Privacy protection of user data is achieved, making it difficult for malicious parties to remap fuzzy data to identify specific users, while retaining the predictive ability of the data.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN112384920B_ABST
    Figure CN112384920B_ABST
Patent Text Reader

Abstract

The disclosed method includes: a) receiving, by a server computer, network data including a plurality of transaction data of a plurality of transactions. Each transaction data includes a plurality of data elements having data values. At least one of the plurality of data elements includes a user identifier of a user. Then, the server computer may: b) generate one or more graphs including a plurality of communities based on the network data. The server computer may: c) determine fuzzy values ​​of at least some of the data values ​​for each of the plurality of transactions. For each user, the server computer may: d) determine fuzzy values ​​of communities within the plurality of communities. Then, the server computer may: e) generate a model using the fuzzy values ​​obtained in steps c) and d) and at least some of the data values.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross-reference to related applications

[0002] This application claims the benefit of U.S. Provisional Application No. 62 / 696,480, filed on July 11, 2018, which is incorporated herein by reference in its entirety for all purposes. Background Art

[0003] Today, the ability to collect, analyze, and manage large amounts of information has become widely available. Machine learning techniques are widely used to produce predictive models for medicine, finance, recommendation services, threat analysis, and authentication technologies. Large amounts of data collected over long periods of time enable new solutions to old problems, and advances in deep learning have led to breakthroughs in language, image, and text recognition. Large Internet companies collect users' online activities in order to train recommendation systems that predict their future interests. Health data from different hospitals and government organizations can be used to produce new diagnostic models, while financial companies and payment networks can combine transaction histories, merchant data, and account holder information to train more accurate fraud detection engines. However, data privacy is a concern. With increasing concerns about privacy in many countries, new and improved methods are needed to protect the data used in machine learning systems and methods.

[0004] Embodiments of the invention address these and other problems individually and collectively. Summary of the invention

[0005] Some embodiments of the present invention relate to a method comprising: a) receiving, by a server computer, network data comprising a plurality of transaction data of a plurality of transactions, wherein each transaction data comprises a plurality of data elements having data values, wherein at least one of the plurality of data elements comprises a user identifier of a user; b) generating, by the server computer, one or more graphs comprising a plurality of communities based on the network data; c) determining, by the server computer, fuzzy values ​​of at least some of the data values ​​for each of the plurality of transactions; d) determining, by the server computer, for each user, fuzzy values ​​of communities within the plurality of communities; and e) generating, by the server computer, a model using the fuzzy values ​​obtained in steps c) and d) and at least some of the data values.

[0006] Another embodiment of the present invention relates to a server computer, comprising: a processor; a memory; and a computer-readable medium coupled to the processor, the computer-readable medium comprising code executable by the processor to implement a method, the method comprising: a) receiving network data comprising a plurality of transaction data of a plurality of transactions, wherein each transaction data comprises a plurality of data elements having data values, wherein at least one of the plurality of data elements comprises a user identifier of a user; b) generating one or more graphs comprising a plurality of communities based on the network data; c) determining a fuzzy value of at least some of the data values ​​for each of the plurality of transactions; d) for each user, determining a fuzzy value of a community within the plurality of communities; and e) generating a model using the fuzzy values ​​obtained in steps c) and d) and at least some of the data values.

[0007] For more detailed information about embodiments of the present invention, please refer to the detailed description and drawings. BRIEF DESCRIPTION OF THE DRAWINGS

[0008] Figure 1 A block diagram of a privacy protection system according to an embodiment is shown.

[0009] Figure 2 A block diagram illustrating components of a server computer according to an embodiment.

[0010] Figure 3 A diagram illustrating example membership functions and labels for determining fuzzy values ​​is shown in accordance with an embodiment.

[0011] Figure 4 A flow chart of community detection and fuzzification according to an embodiment is shown.

[0012] Figure 5 A flow chart for obfuscating interaction data according to an embodiment is shown.

[0013] Figure 6 A flowchart of an evolutionary learner data fuzzification method according to an embodiment is shown.

[0014] Figure 7 A flowchart of a membership function determination method according to an embodiment is shown.

[0015] Figure 8 A block diagram showing membership functions changing over 3 epochs of an evolutionary learner is shown, according to an embodiment. DETAILED DESCRIPTION

[0016] Before discussing embodiments of the present invention, some terms may be described in more detail.

[0017] The term "artificial intelligence model" or "AI model" can include models that can be used to predict outcomes to achieve predefined goals. AI models can be developed using learning algorithms, in which training data is classified based on known or inferred patterns. AI models may also be referred to as "machine learning models" or "predictive models."

[0018] "Adversarial AI" can include a technique that attempts to trick a model through malicious input. In some embodiments, adversarial AI can determine whether obfuscated data created by obfuscating network data is privacy-preserving.

[0019] "Machine learning" may include artificial intelligence processes in which a software application may be trained to make accurate predictions through learning. Predictions may be generated by applying input data to a predictive model formed by performing statistical analysis on aggregated data. The model may be trained using training data so that accurate predictions may be made using the model. Predictions may be, for example, classifications of images (e.g., identifying images of cats on the Internet), or as another example, recommendations (e.g., movies that a user may like or restaurants that a consumer may enjoy).

[0020] In some embodiments, the model can be a statistical model that can be used to predict unknown information based on known information. For example, the learning module can be an instruction set for generating a regression line from training data (supervised learning), or an instruction set for grouping data into clusters of different classifications of data based on similarity, connectivity, and / or distances between data points (unsupervised learning). Then, the regression line or data cluster can be used as a model for predicting unknown information based on known information. Once the model is built according to the learning module, the model can be used to generate a predicted output based on a new request. The new request can be a request for a prediction associated with the presented data. For example, the new request can be a request to classify an image or create a recommendation for a user.

[0021] A "topological graph" may include a representation of a graph in a plane of different vertices connected by edges. Different vertices in a topological graph may be referred to as "nodes". Each node may represent specific information of an event, or may represent specific information of a profile of an entity or object. Nodes may be related to each other by a set of edges E. An "edge" may be described as an unordered pair consisting of two nodes that are subsets of a graph G = (V, E), where G is a graph including a set of vertices (nodes) V connected by a set of edges E. For example, a topological graph may represent a transaction network in which a node representing a transaction may be connected by an edge to one or more nodes related to the transaction, such as nodes representing information of a device, user, transaction type, etc. An edge may be associated with a numerical value referred to as a "weight", which may be assigned to a pairwise connection between two nodes. An edge weight may be identified as the strength of the connection between two nodes and / or may be related to cost or distance, as it often represents the amount required to move from one node to the next.

[0022] A "subgraph" or "sub-graph" may include a graph formed by a subset of elements of a larger graph. Elements may include vertices and connecting edges, and a subset may be a set of nodes and edges selected from the entire set of nodes and edges of the larger graph. For example, multiple subgraphs may be formed by randomly sampling graph data, where each random sample may be a subgraph. Each subgraph may overlap with another subgraph formed from the same larger graph.

[0023] A "community" may include a set of nodes in a graph that are densely connected within the group. A community may be a subgraph or a portion / derivative thereof, and a subgraph may or may not be a community and / or include one or more communities. Communities may be identified from a graph using a graph learning algorithm, such as a graph learning algorithm used to map protein complexes. Communities identified using historical data may be used to classify new data for prediction. For example, identifying communities may be used as part of a machine learning process where predictions may be made about information elements based on their relationships to one another.

[0024] The term "node" may include a discrete data point that represents specified information. Nodes may be connected to each other in a topological graph by edges, which may be assigned values ​​called edge weights to describe the strength of the connection between two nodes. For example, a first node may be a data point representing a first device in a network, and the first node may be connected in the graph to a second node representing a second device in the network. The strength of the connection may be defined by an edge weight, which corresponds to the degree to which information can be quickly and easily transferred between two nodes. Edge weights may also be used to express the cost or distance required to move from one state or node to the next. For example, a first node may be a data point representing a first location of a machine, and the first node may be connected in the graph to a second node for a second location of the machine. The edge weight may be the energy required to move from the first location to the second location.

[0025] The term "solver" may include a computing component that searches for a solution. For example, one or more solvers may be used to compute a solution to an optimization problem. A solver may be additionally referred to as an "agent." Multiple agents operating together to solve a given problem, such as in the case of ant colony optimization, may be referred to as a "colony."

[0026] The term "epoch" may include a period of time. For example, an epoch may be an iterative period of time for training a machine learning model. In the process of a learner training a learning algorithm, each epoch may pass after a defined set of steps have been completed. For example, in ant colony optimization, each epoch may pass after all computing agents have found a solution and calculated the cost of their solution. In an iterative algorithm, an epoch may include one iteration or multiple iterations of updating the model. An epoch may sometimes be referred to as a "cycle."

[0027] "Network data" may include data related to a group and / or system of interconnected people and / or things. In some embodiments, the network data may include a plurality of transaction data for a plurality of transactions. Each transaction data may include a plurality of data elements having data values. In some embodiments, at least one of the plurality of data elements includes a user identifier of a user.

[0028] A "data element" may include a data unit with a precise meaning or precise semantics. For example, a data element may include a zip code, a merchant identifier, a user identifier, an amount, an IP address, a date, a time, etc. A data element may be associated with a data value, for example, 94016, merchant_1234, user_1234, $19.99, 111.111.1111, January 1, 2015, and 11:00 a.m. Western Time correspond to data elements, respectively.

[0029] An "interaction" may include a mutual effect or influence. An "interaction" may include a communication, contact, or exchange between parties, devices, and / or entities. Example interactions include a transaction between two parties and an exchange of data between two devices. In some embodiments, an interaction may include a user request to access secure data, a secure webpage, a secure location, etc. In other embodiments, an interaction may include a payment transaction in which two devices may interact to facilitate payment.

[0030] "Interaction data" may include data related to an interaction and / or data recorded during an interaction. In some embodiments, the interaction data may be transaction data of network data. The transaction data may include multiple data elements having data values.

[0031] "User" may include an individual. In some embodiments, a user may be associated with one or more personal accounts and / or mobile devices. In some embodiments, a user may also be referred to as a cardholder, account holder, or consumer.

[0032] A "user identifier" may include any piece of data that can identify a user. A user identifier may include any suitable alphanumeric string. In some embodiments, a user identifier may be derived from user identification information. In some embodiments, a user identifier may include an account identifier associated with a user.

[0033] An "account identifier" may include any suitable label for an account. An account identifier may be in any suitable form and may include any suitable type of characters. Examples of account identifiers include a PAN (primary account number), a token, a verification value such as a CVV (card verification value), etc.

[0034] An "event" may include something that happens. In some embodiments, an event may occur at a certain point in time, for example, an event may include an interaction that may occur at "7pm". In other embodiments, an event may occur over a period of time, for example, an event may include a concert that may be performed from "7pm" to "10pm". An event may include the time of an interaction (e.g., the time of a transaction, access to a secure location, transfer of data between parties, etc.).

[0035] A "resource provider" may be an entity that can provide a resource. Resources may include, for example, goods, services, information, access, etc. Examples of resource providers may include merchants, data providers such as government agencies, transportation agencies, etc. A "merchant" may generally be an entity that participates in a transaction and can sell goods or services or provide access to goods or services.

[0036] "Access device" can be any suitable device for providing access to an external computer system. The access device can be in any suitable form. Some examples of access devices include point of sale (POS) devices, cellular phones, PDAs, personal computers (PCs), tablet PCs, handheld dedicated readers, set-top boxes, electronic cash registers (ECRs), automated teller machines (ATMs), virtual cash registers (VCRs), kiosk machines, security systems, access systems, websites, etc. The access device can use any suitable contact or contactless operation mode to send or receive data from or associated with a portable communication device. In some embodiments where the access device may include a POS terminal, any suitable POS terminal may be used and it may include a reader, a processor, and a computer-readable medium. The reader may include any suitable contact or contactless operation mode. For example, an exemplary card reader may include a radio frequency (RF) antenna, an optical scanner, a barcode reader, or a magnetic stripe reader that interacts with a portable communication device, a user device, etc.

[0037] An "acquirer" may generally be a business entity (e.g., a commercial bank) that has a business relationship with a particular merchant or other entity. Some entities may perform both issuer and acquirer functions. Some embodiments may encompass such a single entity, issuer-acquirer. An acquirer may operate an acquirer computer, which may also be generally referred to as a "transmitting computer."

[0038] An "authorization request message" may be an electronic message requesting authorization for an interaction. In some embodiments, the message is sent to a transaction processing computer and / or the issuer of a payment card to request authorization for a transaction. According to some embodiments, the authorization request message may comply with International Organization for Standardization (ISO) 8583, which is a standard for systems for exchanging electronic transaction information associated with payments made by a user using a payment device or payment account. The authorization request message may include an issuer account identifier that may be associated with the payment device or payment account. The authorization request message may also include additional data elements corresponding to "identification information", including (by way of example only): a service code, a card verification value (CVV), a dynamic card verification value (dCVV), a primary account number or "account number" (PAN), a payment token, a user name, an expiration date, and the like. The authorization request message may also include "transaction information", such as any information associated with the current transaction, such as a transaction value, a merchant identifier, a merchant location, an acquirer bank identification number (BIN), a card acceptor ID, information identifying the item being purchased, and the like, as well as any other information that may be used to determine whether to identify and / or authorize a transaction.

[0039] An "authorization response message" may be a message in response to an authorization request. In some cases, the authorization response message may be an electronic message reply to the authorization request message generated by the issuing financial institution or a transaction processing computer. By way of example only, the authorization response message may include one or more of the following status indicators: approved - the transaction was approved; rejected - the transaction was not approved; or call center - more information is pending in the response, the merchant must call a toll-free authorization phone number. The authorization response message may also include an authorization code, which may be a code that the credit card issuing bank returns to the merchant's access device (e.g., POS device) in response to the authorization request message in an electronic message (directly or through a transaction processing computer) indicating approval of the transaction. The code may serve as evidence of authorization.

[0040] An "authorized entity" may be an entity that authorizes a request. Examples of authorized entities may be an issuer, a government agency, a file repository, an access administrator, etc. An authorized entity may operate an authorized entity computer. An "issuer" may refer to a commercial entity (e.g., a bank) that issues and optionally maintains user accounts. An issuer may also issue payment credentials stored on a user device, such as a cellular phone, smart card, tablet computer, or laptop computer, to a consumer, or in some embodiments, to a portable device.

[0041] "Fuzzification" may include domain conversion, where an unambiguous value may be converted to a fuzzy value. An unambiguous value may be a precise value measured by a sensor, such as temperature (e.g., 80°F), pressure (e.g., 1 atm), rpm (e.g., 60 rpm), etc. In some embodiments, each type of unambiguous input may have its own set of membership functions to which it may be converted. This set of membership functions may exist within a domain of discourse that preserves all relevant values ​​that an unambiguous input may have.

[0042] "Explicit values" may include different values ​​or inputs. In some embodiments, explicit values ​​may include measurement parameters (e.g., 6 volts, 12:30 p.m., etc.). Explicit values ​​may include any suitable value. For example, explicit values ​​may be 5, 10, 17.26, 5011, etc.

[0043] A "fuzzy value" may include the degree to which a clear value is compatible with a membership function. For example, a fuzzy value may include a value from 0 to 1. A fuzzy value may also be referred to as a degree of membership. In some embodiments, a clear value may be fuzzified into one or more fuzzy values. For example, a clear value of "11 a.m." may be converted using two partially overlapping membership functions associated with the labels "morning" and "noon." A clear value may be converted into two fuzzy values, for example, a fuzzy value of 0.4 corresponds to a label of "morning" and a fuzzy value of 0.6 corresponds to a label of "noon." In some embodiments, a fuzzy value may include a fuzzy value for a data value as well as a fuzzy value for a community.

[0044] A "membership function" can define a fuzzy set by mapping definite values ​​from its domain to a set associated with a degree of membership.

[0045] "Labels" may include descriptive names used to identify membership functions. Labels may include any suitable descriptors. For example, labels may include "hot," "warm," "cool," "cold," "event 1," "event 2," and any other suitable descriptors that describe fuzzy values ​​to which explicit values ​​may be converted.

[0046] A "range" or "domain" may include the width of a membership function. For example, a range may include a range of definite values ​​(eg, 5-10) whose corresponding (eg, via a membership function) fuzzy values ​​are non-zero.

[0047] A "domain" may include a range of possible values ​​that an explicit value may include. For example, a domain corresponding to an explicit value associated with "time of day" may include values ​​from 00:00 to 23:59.

[0048] A "server computer" may include a powerful computer or computer cluster. For example, a server computer may be a large mainframe, a small computer cluster, or a group of servers that work as a unit. In one example, a server computer may be a database server coupled to a network server. The server computer may be coupled to a database and may include any hardware, software, other logic, or combination of the foregoing for servicing requests from one or more client computers. The server computer may include one or more computing devices and may use any of a variety of computing structures, arrangements, and compilations to service requests from one or more client computers.

[0049] "Processor" may refer to any suitable one or more data computing devices. A processor may include one or more microprocessors working together to perform the desired functions. A processor may include a CPU including at least one high-speed data processor sufficient to execute program components for executing user and / or system generated requests. A CPU may be a microprocessor such as AMD's Athlon, Duron, and / or Opteron; IBM and / or Motorola's PowerPC; IBM and Sony's Cell processor; Intel's Celeron, Itanium, Pentium, Xeon, and / or XScale; and / or similar processors.

[0050] "Memory" may be any suitable device or devices that can store electronic data. Suitable memory may include non-transitory computer-readable media that stores instructions that can be executed by a processor to implement the desired method. Examples of memory may include one or more memory chips, disk drives, etc. Such memory may operate using any suitable electrical, optical, and / or magnetic operating modes.

[0051] I. System

[0052] According to an embodiment, network data and / or derivatives thereof may be converted by a server computer into obfuscated data such that the conversion eliminates the ability to identify data of a particular individual (i.e., a user) in the network data, even when coupled with external data. Even in possession of a large amount of personal data about an individual, it may be difficult for a malicious party to remap the obfuscated data to identify a particular individual. Of course, the obfuscated data may retain predictive power that is useful in creating a predictive model.

[0053] Figure 1 A block diagram of a system 100 according to an embodiment of the present invention is shown. The system 100 includes n resource provider computers 102, y transmission computers 104, a network processing computer 106, z authorized entity computers 108, a network data database 110, a first server computer 112, a second server computer 114, a model database 116, and an evaluation computer 118. The n resource provider computers 102 can be in operative communication with at least one of the y transmission computers 104. The y transmission computers 104 can be in operative communication with the network processing computer 106. The network processing computer 106 can be in operative communication with the z authorized entity computers 108 and the network data database 110. The network data database 110 can be in operative communication with the first server computer 112. The first server computer 112 can be in operative communication with the network data database 110 and with the second server computer 114 and the model database 116 that can be in operative communication with the evaluation computer 118.

[0054] Figure 1The devices in the communication network may be in operative communication with each other via any suitable communication channel or communication network. Suitable communication networks may be any one and / or combination of the following: direct interconnection; the Internet; a local area network (LAN); a metropolitan area network (MAN); an operating mission as a node on the Internet (OMNI); a secure custom connection; a wide area network (WAN); a wireless network (e.g., using protocols such as, but not limited to, wireless application protocol (WAP), I-mode, etc.); etc. Messages between computers, networks, and devices may be transmitted using secure communication protocols such as, but not limited to, file transfer protocol (FTP); hypertext transfer protocol (HTTP); secure hypertext transfer protocol (HTTPS), secure socket layer (SSL), ISO (e.g., ISO 8583), etc.

[0055] For simplicity of explanation, Figure 1 A certain number of components are shown in FIG. However, it should be understood that embodiments of the present invention may include more than one of each component.

[0056] In step 1, n resource provider computers 102 can generate authorization request messages for interaction. The n resource provider computers 102 can each include a computer operated by a resource provider. In some embodiments, the resource provider computer can include a server computer. During the interaction between the resource provider and the user, each resource provider computer can generate an authorization request message for interaction. Then, the resource provider computer can transmit the authorization request message to a transmission computer in y transmission computers 104. Each resource provider computer in the n resource provider computers 102 can transmit the authorization request message to a different or similar transmission computer in y transmission computers 104.

[0057] In some embodiments, the n resource provider computers 102 may receive authorization request messages from access devices associated with the n resource provider computers 102, respectively. For example, the access device may include any suitable device for providing a user with access to an external computer system. Some examples of access devices include point of sale (POS) devices, cellular phones, PDAs, personal computers (PCs), tablet PCs, handheld dedicated readers, set-top boxes, electronic cash registers (ECRs), automated teller machines (ATMs), virtual cash registers (VCRs), kiosk machines, security systems, access systems, websites, etc.

[0058] In step 2, after receiving the authorization request message from one of the n resource provider computers 102, a transmitting computer in the y transmitting computers 104 may forward the authorization request message to the network processing computer 106. For example, the y transmitting computers 104 may include computers and / or server computers operated by an acquirer.

[0059] In step 3, after receiving the authorization request message from the transmitting computer of the y transmitting computers 104, the network processing computer 106 can store the authorization request message and / or data associated therewith in the network data database 110. For example, the network processing computer 106 can store transaction data of the transaction in the network data database 110. The transaction data can include any suitable data elements related to the transaction between the user and the resource provider of the initiating resource provider computer as described herein. The network data database 110 can include any suitable database. The network data database 110 can be a conventional, fault-tolerant, relational, scalable, secure database, such as the Oracle Database available from Oracle. TM or Sybase TM The network data database 110 can store network data.

[0060] The network processing computer 106 may include any suitable server computer. The network processing computer 106 may include data processing subsystems, networks, and operations to support and deliver authorization services, exception file services, transaction scoring services, and clearing and settlement services. Exemplary network processing computers 106 may include VisaNet TM For example, VisaNet TM VisaNet is a processing network that processes credit card transactions, debit card transactions, and other types of commercial transactions. TM This may include the VIP system (Visa Integrated Payment System) that processes authorization requests and the Base II system that performs clearing and settlement services.

[0061] In step 4, after storing the relevant data in the network data database 110, the network processing computer 106 can forward the authorization request message to one of the z authorization entity computers 108. The z authorization entity computers 108 can include any suitable computers. For example, the authorization entity computer can be configured to determine whether to authorize the interaction based on the authorization request message. Examples of authorized entities can include issuers, government agencies, file repositories, access administrators, etc. After receiving the authorization request message, the authorization entity computer can determine whether to authorize the interaction.

[0062] In step 5, after determining whether to authorize the interaction, the authorization entity computer in the z authorization entity computers 108 may generate an authorization response message and transmit it to the network processing computer 106. In some embodiments, upon receiving the authorization response message, the network processing computer 106 may store the authorization response message and / or data associated therewith in the network data database 110.

[0063] At step 6, network processing computer 106 may forward the authorization response message to the appropriate one of y transmitting computers 104. For example, network processing computer 106 may determine which one of y transmitting computers 104 to send the authorization response message to by evaluating a routing table and / or data element in the authorization response message that indicates the appropriate transmitting computer.

[0064] In step 7, after receiving the authorization response message from the network processing computer 106, the transmitting computer in the y transmitting computers 104 can transmit the authorization response message to the appropriate resource provider computer in the n resource provider computers 102, as described herein. In some embodiments, after receiving the authorization response message, the resource provider computer in the n resource provider computers 102 can notify the user of the status of the interaction. For example, the resource provider computer can notify the user whether the interaction (e.g., transaction) is authorized through the access device.

[0065] At any suitable point in time, in step 8, the first server computer 112 may query the network data database 110 for network data. Any number of interactions may have occurred prior to step 8. The network processing computer 106 may store data related to a plurality of interactions in the network data database 110. For example, the network processing computer 106 may store data related to 10, 500, 2,000, 10,000 interactions, etc., in the network data database 110 before the first server computer 112 queries the network data database 110 for network data.

[0066] In some embodiments, the first server computer 112 can query the network data database 110 for network data associated with one or more criteria. For example, one criterion that the first server computer 112 can include in the query is time and / or time range. For example, the first server computer 112 can query network data associated with the past day, the past hour, a specific date range (e.g., May 10, 2019 to May 15, 2019). As another example, the first server computer 112 can include a criterion that the retrieved network data includes data related to interactions that occurred within a specific geographic area (e.g., North America, California, etc.). Other example criteria may be related to user demographics, resource provider demographics, expenditure amounts, etc.

[0067] In step 9, the network data database 110 can provide the queried network data to the first server computer 112. The first server computer 112 can receive network data including a plurality of transaction data of a plurality of transactions (e.g., 5, 28, 500, 10,000 transactions, etc.). Each transaction data may include a plurality of data elements (e.g., zip code, merchant identifier, user identifier, amount, IP address, date, time, etc.) with data values ​​(e.g., 94016, merchant_1234, user_1234, $19.99, 111.111.111.111, January 1, 2015, 11:00 a.m. Western Time, respectively). In some embodiments, at least one of the plurality of data elements may include a user identifier of a user. For example, the network data database 110 can provide the first server computer 112 with transaction data as shown in Table 1 and described in detail below.

[0068] The first server computer 112 can then generate one or more graphs including a plurality of communities based on the network data. The graph can include, for example, nodes representing users and nodes representing resource providers connected by edges representing transactions. The plurality of communities can include any suitable subset of nodes within the graph that share the same and / or similar features. The first server computer 112 can determine the communities in any suitable manner as described herein.

[0069] As described in further detail herein, the first server computer 112 can then determine fuzzy values ​​for at least some of the data values ​​for each transaction. For example, the first server computer 112 can fuzzify the data values ​​corresponding to the time data element of each transaction. As an illustrative example, the first server computer 112 can determine that the data value of "11:00 AM" can correspond to a fuzzy value of 0.5 for a label of "morning" and 0.5 for a label of "noon". The first server computer 112 can determine the fuzzy values ​​based on the determined membership function, as described in further detail herein.

[0070] For each user, the first server computer 112 can then determine fuzzy values ​​for communities within the plurality of communities. For example, the first server computer 112 can first determine the communities of the graph multiple times. For example, the first server computer 112 can determine the communities of the graph three times. The node representing the user can be determined twice as a first community (e.g., a sports community), while the user can be determined once as a second community (e.g., a literature community). The first server computer 112 can determine that the user can be associated with a fuzzy value of 0.66 for the first community (e.g., a sports community) and a fuzzy value of 0.33 for the second community (e.g., a literature community).

[0071] The first server computer 112 can then generate a model using the fuzzy values ​​of the data values ​​and the fuzzy values ​​of the communities and at least some of the data values. The model can include any suitable type of model, as described in further detail herein, for example, support vector machines (SVMs), artificial neural networks, decision trees, Bayesian networks, genetic algorithms, etc. In some embodiments, the model can include a mathematical description of a system or process to assist in calculations and predictions (e.g., fraud models, anomaly detection models, etc.).

[0072] In some embodiments, at step 10, the first server computer 112 may transmit the fuzzy values ​​of at least some data values ​​of each transaction and the fuzzy values ​​of the community and / or the model to the second server computer 114 in a privacy protection test request message. The first server computer 112 may request the second server computer 114 to determine whether the fuzzy values ​​and / or the model can be used to determine the network data used during the creation of the fuzzy values ​​and the model.

[0073] In some embodiments, the second server computer 114 can determine whether the fuzzy value and / or model is privacy-preserving by determining whether the fuzzy value includes the network data that the first server computer 112 attempts to fuzzify. For example, the second server computer 114 can determine whether any of the fuzzy values ​​is equal to a value of 1. For example, the data element "time" can be associated with the data value "8 o'clock in the morning". The first server computer 112 determines that the fuzzy value of the "morning" label is 1 for the data value "8 o'clock in the morning". The second server computer 114 can compare the fuzzy value 1 with a fuzzy value threshold (e.g., 0.9). The second server computer 114 can determine whether any of the fuzzy values ​​exceeds the fuzzy value threshold. In this way, the second server computer 114 can capture any fuzzy values ​​that are not privacy-preserving within the range of the fuzzy value threshold, which can be predetermined or adjusted to a specific value representing a certain amount of privacy. In some embodiments, the second server computer 114 can generate a list of fuzzy values ​​(or other suitable data items) that do not meet the fuzzy value threshold.

[0074] In other embodiments, the second server computer 114 may utilize external data to determine whether the user (or in some embodiments, the resource provider) is identifiable. For example, the second server computer 114 may retrieve external data including user employment data (e.g., salary, work location, job title, schedule, etc.) from any suitable external data database. The second server computer 114 may determine whether the fuzzy value set for the transaction is attributable to a particular user based on the user employment data and the fuzzy value.

[0075] For example, the transaction data may include a fuzzy value for a community and a fuzzy value for a time (e.g., an event), but may not include a fuzzy value for a resource provider location (e.g., a street address), and a stock keeping unit (SKU) of the purchased resource. The second server computer 114 may determine that the user associated with the employment data is employed in an electronics position at Company X, the workplace is located in a city block away from the resource provider location, and the user's workday ends approximately around the fuzzy value of the time (e.g., 0.8 for the afternoon, 0.2 for the evening). The second server computer 114 may also determine that the SKU associated with the purchased resource corresponds to an electronic commodity. Based on the similarity between the employment data and the users described in the fuzzified transaction data, the second server computer 114 may determine an overlap percentage (e.g., 50%, 80%, 90%, etc.). The overlap percentage may indicate the degree of similarity between the user associated with the external data and the user associated with the fuzzified transaction data. If the overlap percentage is greater than a predetermined overlap threshold, the second server computer 114 may determine that the transaction data is not sufficiently fuzzified, and may communicate such information to the first server computer 112.

[0076] In some embodiments, the first server computer 112 can use the same method as the second server computer 114 and can locally determine whether the obfuscated value is privacy preserving.

[0077] In step 11, after determining whether the fuzzy value and / or the model is privacy-preserving, the second server computer 114 may transmit a privacy-preserving test response message to the first server computer 112. The privacy-preserving test response message may include an indication of whether the fuzzy value and / or the model is privacy-preserving. If the second server computer 114 determines that the fuzzy value and / or the model is not privacy-preserving, the second server computer 114 may include an indication of which values ​​(e.g., of the fuzzy value and / or the value of the network data) have not been privacy-preserved.

[0078] At step 12, after fuzzifying the network data and generating a model based thereon, the first server computer 112 may store the model in a model database 116. The model database 116 may include any suitable database. The model database 116 may be a conventional, fault-tolerant, relational, scalable, secure database, such as the one available from Oracle. TM or Sybase TM The model database 116 may store one or more models.

[0079] In some embodiments, at step 13, the evaluation computer 118 may query one or more models in the model database 116. The evaluation computer 118 may query any suitable number of models stored in the model database 116 at any suitable point in time. The evaluation computer 118 may include an external computer that is located external to the first server computer 112. For example, the evaluation computer 118 may query the model database 116 for a fraud model and a sales model.

[0080] At step 14, the model database 116 may provide one or more models to the evaluation computer 118. After receiving the one or more models, the evaluation computer 118 may run the one or more models to determine output data for each model. For example, the model may include an SVM trained on fuzzy transaction data that is capable of labeling input data as "fraudulent" or "non-fraudulent."

[0081] In some embodiments, the evaluation computer 118 may transmit a request to the first server computer 112. The request may include request data about the model. For example, the evaluation computer 118 may request the first server computer 112 to run the model to determine high-end electronic sales in California. After receiving the request including the request data, the first server computer 112 may determine output data. The first server computer 112 may input the request data into the model to determine the output data output by the model.

[0082] Figure 2 A block diagram of a server computer 200 according to an embodiment is shown. The exemplary server computer 200 may include a processor 204. The processor 204 may be coupled to a memory 202, a network interface 206, an input element 210, an output element 212, and a computer readable medium 208. The computer readable medium 208 may include a community determination module 208A, a fuzzification module 208B, and a model creation module 208C. The server computer 200 may be Figure 1 A first server computer 112 is depicted in FIG.

[0083] The memory 202 may be used to store data and code. The memory 202 may be coupled to the processor 204 internally or externally (e.g., a cloud-based data storage device), and may include any combination of volatile and / or non-volatile memory, such as RAM, DRAM, ROM, flash memory, or any other suitable memory device. For example, the memory 202 may store keys, network data, membership functions, etc.

[0084] Input element 210 may include any suitable device capable of inputting data into server computer 200. Examples of input devices include buttons, touch screens, touch pads, microphones, biometric scanners, etc. Input element(s) 210 may include any suitable device capable of inputting data into server computer 200. Examples of input elements 210 include buttons, touch screens, touch pads, microphones, etc.

[0085] Output element 212 may include any suitable device that can output data. Examples of output element 212 may include a display screen, a speaker, and a data transmission device. One or more output elements 212 may include any suitable device that can output data. Examples of output elements 212 may include a display screen, a speaker, and a data transmission device. For example, output element 212 may include a display screen that can display the response value to a user of server computer 200.

[0086] The computer-readable medium 208 may include code that can be executed by the processor 204 to perform a method, the method comprising: a) receiving, by a server computer, network data including multiple transaction data of multiple transactions, wherein each transaction data includes multiple data elements having data values, wherein at least one of the multiple data elements includes a user identifier of a user; b) generating, by the server computer, one or more graphs including multiple communities based on the network data; c) determining, by the server computer, fuzzy values ​​of at least some of the data values ​​for each of the multiple transactions; d) for each user, determining, by the server computer, fuzzy values ​​of communities within the multiple communities; and e) generating a model by the server computer using the fuzzy values ​​obtained in steps c) and d) and at least some of the data values.

[0087] The community determination module 208A may include code or software executable by the processor 204 for determining community groups in network data. The community determination module 208A in conjunction with the processor 204 may determine communities in any suitable manner. For example, the community determination module 208A in conjunction with the processor 204 may group data items (e.g., nodes of a graph) into groups (e.g., clusters) based on similarities of the nodes relative to each other.

[0088] In some embodiments, the community determination module 208A in conjunction with the processor 204 can perform an unsupervised learning algorithm, which can include a graph learning process that can group nodes into dense clusters based on distance. For example, the learning process can include the following: 1) Create a sorted list of edges using the connectivity and overall count of the edges as weights; 2) For each edge, generate a descending sorted set of adjacent edges using the weights defined above as the sorting basis; 3) For each adjacent edge, generate the distance between the adjacent item and the target edge; 4) If the distance is greater than a cutoff value, add the adjacent edge to the community; 5) Repeat until all edges are associated with the community.

[0089] Examples of suitable learning algorithms for identifying communities may include: Fastgreedy, Spinglass, Walktrap, Edge Betweenness, Infomap, Label Propagation, Optimal Modularity, and Multilevel. In addition, the graph learning algorithm may be an algorithm for identifying communities that overlap with each other (i.e., share nodes). For example, a graph learning algorithm that is commonly used to identify protein complexes based on overlapping clusters can also be used to classify nodes in any interactive network (e.g., grouping nodes of a trading network). The graph learning algorithm may include: calculating the weight of each node in the topological graph based on the calculated weight of each edge, and generating a queue including nodes in descending order of weight. A seed node may be selected from the top of the queue to generate a community. Next, nodes may be added to the community in an iterative manner using the calculated probability of interaction between nodes. Then, the added nodes may be removed from the queue, and the nodes remaining at the top of the queue may be used as seeds for the next community. This process may then be repeated until the queue is cleared, thereby generating multiple communities. For further details on the determination of community groups, see U.S. Publication No. US 2019 / 0005407, filed on June 30, 2017, which is incorporated herein by reference in its entirety for all purposes.

[0090] In other embodiments, the community determination module 208A in conjunction with the processor 204 can generate one or more graphs including multiple communities based on the network data. The community determination module 208A in conjunction with the processor 204 can perform any suitable number of community determinations using the network data. For example, the community determination module 208A in conjunction with the processor 204 can determine the community of the network data at 5 different times, and then compare 5 different results of the community determination process. Each result may include multiple communities. In some embodiments, the community determination module 208A in conjunction with the processor 204 can determine that a specific user or resource provider is included in different communities in different graphs based on the output of the community determination process. In some embodiments, for each different graph in one or more graphs, the community determination module 208A in conjunction with the processor 204 can perform a community determination process with different values ​​of parameters and / or different thresholds, so that the output of each community determination process may include different community groups.

[0091] The obfuscation module 208B may include code or software executed by the processor 204 for obfuscating data. The obfuscation module 208B in conjunction with the processor 204 may determine fuzzy values ​​for at least some of the data values ​​for each of the plurality of transactions. For example, the obfuscation module 208B in conjunction with the processor 204 may obfuscate the data values ​​by mapping the data values ​​to the fuzzy values ​​using one or more membership functions, as described in detail herein. For example, the obfuscation module 208B in conjunction with the processor 204 may have the functionality described in at least the second section below.

[0092] In some embodiments, the fuzzification module 208B in conjunction with the processor 204 can determine fuzzy values ​​for communities within multiple communities for each user. For example, the fuzzification module 208B in conjunction with the processor 204 can determine a fuzzy value that can indicate that the user is associated with multiple communities. In some embodiments, the fuzzification module 208B in conjunction with the processor 204 can represent the output of the community determination module 208B as a fuzzy value. For example, the first user may be associated with a sports community during 2 of the 3 community determination trials, and associated with a literary community during 1 of the 3 community determination trials. The fuzzification module 208B in conjunction with the processor 204 can convert these ratios into fuzzy values. For example, the fuzzification module 208B in conjunction with the processor 204 can determine that the fuzzy value associated with the sports community for the first user is 0.66, and the fuzzy value associated with the literary community for the first user is 0.33.

[0093] The obfuscation module 208B in conjunction with the processor 204 can obfuscate any suitable data value corresponding to a data element, such as a time of day, a day of year, a location, an IP address, a user identifier, a resource provider identifier, an amount of money, and the like.

[0094] The model creation module 208C may include code or software executed by the processor 204 to create a model. The model creation module 208C in conjunction with the processor 204 may generate a model using the fuzzified values ​​obtained by the fuzzification module 208B in conjunction with the processor 204 and at least some data values ​​such as a zip code, an IP address, and an amount.

[0095] The model creation module 208C in conjunction with the processor 204 can create any suitable type of model, such as support vector machines (SVMs), artificial neural networks, decision trees, Bayesian networks, genetic algorithms, etc. In some embodiments, the model can include a mathematical description of a system or process to assist in calculations and predictions (e.g., fraud models, anomaly detection models, etc.).

[0096] For example, the model creation module 208C in conjunction with the processor 204 can create a model, which can be a statistical model that can be used to predict unknown information based on known information. For example, the model creation module 208C in conjunction with the processor 204 can include an instruction set for generating a regression line (supervised learning) based on training data, or an instruction set for grouping data into clusters of different classifications of data (unsupervised learning) based on similarity, connectivity and / or distances between data points. Then, the regression line or data cluster can be used as a model for predicting unknown information based on known information. Once a model has been built from the model creation module 208C, the model can be used in conjunction with the processor 204 to generate a predicted output based on a request. For example, the request can be a request for a prediction associated with the presented data. For example, the request can be a request to classify a transaction as fraudulent or non-fraudulent, or a request for user suggestions.

[0097] The network interface 206 may include an interface that may allow the server computer 200 to communicate with an external computer. The network interface 206 may enable the server computer 200 to transfer data with another device (e.g., a second server computer, etc.). Some examples of the network interface 206 may include a modem, a physical network interface (e.g., an Ethernet card or other network interface card (NIC)), a virtual network interface, a communication port, a Personal Computer Memory Card International Association (PCMCIA) slot and card, etc. The wireless protocols enabled by the network interface 206 may include Wi-Fi. TMThe data transmitted via the network interface 206 may be in the form of signals, which may be electrical, electromagnetic, optical, or any other signals capable of being received by an external communication interface (collectively referred to as "electronic signals" or "electronic messages"). These electronic messages, which may include data or instructions, may be provided between the network interface 206 and other devices via a communication path or channel. As described above, any suitable communication path or channel may be used, such as wire or cable, optical fiber, telephone line, cellular link, radio frequency (RF) link, WAN or LAN network, the Internet, or any other suitable medium.

[0098] II. Overview of Fuzzification

[0099] Fuzzy logic can include a form of multi-valued logic in which the value of a variable can be any real number between 0 and 1 (inclusive). In contrast, in Boolean logic, the value of a variable can only be an integer value, 0 or 1. In the fuzzification process, a clear set of input data can be collected and converted to a fuzzy set of values ​​using at least a membership function. Then, calculations can be performed using the fuzzy values.

[0100] A. Fuzzification of values

[0101] "Fuzzification" may involve domain conversion, where an unambiguous value may be converted to a fuzzy value. An unambiguous value may be a precise value that can be measured (e.g., a voltage of 5V, a pressure of 50Pa, etc.). For example, in some embodiments, an unambiguous value may include a data value from network data.

[0102] Each type of unambiguous value corresponding to a data element (e.g., user identifier, amount, time, location, event, community, etc.) can be handled by the system using a different set of membership functions or sets to which the data element is converted. In other words, a first data element (e.g., time) can correspond to a first set of membership functions, while a second data element (e.g., location) can correspond to a second set of membership functions. The set of membership functions can exist within a domain that preserves a range of values ​​that an unambiguous input can have (e.g., all relevant values). The membership functions can define fuzzy sets by mapping unambiguous values ​​to fuzzy values ​​or degrees of membership of one or more labels.

[0103] Figure 3A diagram 300 is shown that illustrates example membership functions and labels for determining fuzzy values, according to an embodiment. The diagram 300 includes four membership functions: a first membership function 302, a second membership function 304, a third membership function 306, and a fourth membership function 308. The membership function range spans a universe 310 of explicit values ​​of 1 to 24. Each membership function may span a range 312 of values, which membership function maps an explicit value 314 to a non-zero value of a membership degree 316. For example, the range 312 corresponds to the second membership function 304 and spans an explicit value of 5 to an explicit value of 19 (not including 5 and 19).

[0104] Each membership function may correspond to a label. The number of labels may correspond to the number of regions into which the universe 310 should be divided, such that each label describes a region of behavior. Each membership function may be assigned a range (e.g., range 312), numerically identifying a series of explicit values ​​314 corresponding to the label.

[0105] The shape of the membership function can represent a variable with a definite value 314. Of course, this shape is also limited by the available computing resources. Complex shapes require more complex description equations or larger lookup tables. The shape of the membership function can include trigonometric functions (e.g., Figure 3 300 ), trapezoidal function, single mode function, Gaussian function, piecewise linear function, etc. In some embodiments, each membership function may include different range sizes and / or may have different function shapes.

[0106] The number of membership functions may depend on the type of explicit values ​​to be fuzzified. Too few membership functions for a given application may result in a system that produces non-privacy preserving fuzzified data. However, too many membership functions may result in large changes in the output for small changes in the input, which may lead to instability in the system. Too many membership functions may adversely affect models that are partially created based on the fuzzified data.

[0107] To further provide privacy-preserving obfuscated data, membership functions can overlap in range. No overlap between membership functions reduces to a system based on Boolean logic, and therefore the resulting data can be linked back to the original data by a malicious party. Each distinct value 314 on the universe 310 can belong to the range of more than one membership function.

[0108] As an illustrative example, during the fuzzification process, the server computer may map each categorical input 314 on the universe of discourse 310 to determine an intersection with each membership function. The server computer may determine a degree of membership 316 for each membership function that intersects with a particular categorical value.

[0109] For example, explicit value 314 may be associated with the data element "time of day". Thus, domain 310 may cover all times of the day (e.g., 00:00 to 23:59), however, for simplicity of illustration, Figure 3 , 310. The explicit values ​​314 depicted in 310 include the hours 1, 2, 3, 4, ..., 24. Each membership function may include a range 312 covering the amount of time of the day (i.e., the universe 310). The first membership function 302 may be labeled "01:00 to 12:00", the second membership function 304 may be labeled "05:00 to 19:00", the third membership function 306 may be labeled "11:00 to 24:00", and the fourth membership function 308 may be labeled "18:00 to 6:00".

[0110] For example, the input explicit value may be 09:00, which is within the range of the first membership function 302 and the second membership function 304. The explicit value 09:00 may be mapped to have a membership of 0.5 for the first membership function 302 and a membership of 0.5 for the second membership function 304.

[0111] The fuzzy value may include any suitable data item, including information related to membership. For example, the fuzzy value of the explicit value 09:00 may be a tuple of (0.5, 0.5, 0, 0), where the element index in the tuple corresponds to the membership function and / or label. In other embodiments, the fuzzy value may be included in a dictionary, for example, {"01:00-12:00":"0.5", "05:00-19:00":"0.5", "11:00-24:00":"0", "18:00-6:00":"0"}.

[0112] In some embodiments, to avoid edge conditions on certain input values, the output may include fuzzy values ​​with three or more memberships. This may also reduce the ability of a malicious party to identify a specific individual by dispersing user data across multiple membership functions. At the same time, the combined memberships may remain representative of the individual.

[0113] B. Community Fuzzification

[0114] As described herein, devices and systems may also be configured to obfuscate community data (eg, community groups). Figure 4 A flow chart of community detection and fuzzification according to an embodiment is shown.

[0115] Graph 402 may be a graph generated by a server computer based on network data. Graph 402 may include nodes connected by edges. For example, graph 402 may include user nodes 410 and resource provider nodes 420. User nodes 410 may be connected to resource provider nodes 420 based on interactions (e.g., transactions) occurring between associated users and resource providers.

[0116] Graph 402 may be created in any suitable manner. For example, graph 402 may be a bipartite graph created based on a value matrix indicating relationships between nodes (e.g., users and resource providers). Such matrices may include, for example, an association matrix, an adjacency matrix, and the like.

[0117] The server computer can generate a graph 402 including a plurality of communities 404. The server computer can determine the communities 404 based on a clustering process. For example, the server computer can determine the communities 404 based on a hierarchical clustering process, a centroid-based clustering process (e.g., k-means clustering), a distribution-based clustering process, a density-based clustering process, and / or any suitable process that groups data items (e.g., nodes) into clusters based on shared and / or similar characteristics.

[0118] At least some of the nodes of the graph 402 may be included in the plurality of communities 404. The node 430 may be included in the first community 440 and the second community 450. For example, the node 430 may represent a user. Based on the transaction data and any other suitable data about the user (e.g., salary, place of residence, etc.), the server computer may determine that the user of the node 430 is included in the first community 440 (e.g., sports community) and the second community 450 (e.g., literature community).

[0119] For example, a user of node 430 can perform an action to create an association between a user and a community, such as shopping at a sporting goods store or visiting a library. An individual can be associated with these two components in proportion. For example, if an individual shops at a sporting goods store every day, but only visits a library once a month, the individual can be weighted higher in the sports community, as determined by the community determination process. Therefore, the server computer can determine that the individual has a weight of 0.8 for the sports community and a weight of 0.2 for the literature community. An individual can be associated with any suitable number of communities, such as 5 communities, 10 communities, or any suitable number of communities.

[0120] In some embodiments, the server computer may determine the community groups multiple times, where the community groups may or may not overlap. The server computer may determine the community groups any suitable number of times. The server computer may then determine the ratio of each node included in each community. For example, a user node may be included in a first community group 8 times and may be included in a second community group 2 times. The user node may then be associated with a fuzzy value of 0.8 for the first community group and associated with a fuzzy value of 0.2 for the second community group.

[0121] After determining the community 404, the server computer can generate a fuzzy community network space 406. The fuzzy community network space 406 can be a graph that includes a community as a node and a node representing a user and / or a resource provider. For example, a node 460 can represent a user of a node 430 associated with a first community 440 and a second community 450. In the fuzzy community network space 406, a community node 470 can represent the first community 440, and a community node 480 can represent the second community 450. Node 460 can be connected to both community node 470 and community node 480. The edge connecting node 460 can be weighted with the fuzzy value of the community group. For example, the edge between node 460 and community node 470 (e.g., a first community node) can be weighted with 0.8. Similarly, the edge between node 460 and community node 480 (e.g., a second community node) can be weighted with 0.2.

[0122] III. Methods

[0123] Embodiments may use the systems and devices described herein to at least determine a fuzzy value. Figure 4-8 Some examples of these methods are described. In some embodiments, the server computers may include first server computers 112 or Figure 1 and 2 A server computer 200 is provided.

[0124] A. Obfuscate network data

[0125] Figure 5 A flow chart for obfuscating interaction data according to an embodiment is shown. As described herein, Figure 5 The method may be performed by a server computer. The server computer is described in the context of blurring the interaction data and creating a model based at least in part on the interaction data. Figure 5 However, it should be understood that the present invention can be applied to other situations. For example, the server computer can obfuscate any suitable data, such as network data including multiple transaction data.

[0126] In step 502, the server computer can retrieve network data from a suitable database. For example, the server computer can retrieve network data including multiple transaction data of multiple transactions. Multiple transactions are depicted in Table 1, where each row is one of the multiple transaction data. Each transaction data may include multiple data elements with data values. For example, the data elements may include, but are not limited to, a user identifier, a day of the year, a time of the day, a resource provider identifier, a zip code, an IP address, and an amount. Each data element may be associated with a data value. For example, data value 1111 may be associated with a data element of a user identifier. As another example, data value 9 may be associated with a data element of a time of the day. More examples are depicted in at least Table 1. In some embodiments, multiple data elements may also include SKU values, geographic locations (e.g., addresses, etc.), and other data elements related to the transaction.

[0127] In some embodiments, at least one of the plurality of data elements may include a user identifier of a user. For example, the first column of Table 1 shows a data element of a user identifier for a plurality of transaction data, in which each transaction may be performed by a different user.

[0128]

[0129] Table 1: Multiple transaction data for multiple transactions

[0130] At step 504, after retrieving the network data, the server computer may determine fuzzy values ​​for at least some of the data values ​​for each of the plurality of transactions. For example, in some embodiments, the server computer may determine fuzzy values ​​for at least the data value corresponding to a "time of day" data element. The fuzzy values ​​for the data values ​​corresponding to the "time of day" or "day of year" data elements may be referred to as fuzzy event values.

[0131] The server computer may use multiple membership functions to determine the fuzzy event value. As described herein, multiple membership functions are capable of mapping a clear value to a fuzzy value. For example, in Table 2 below, the events may include event 1, event 2, and event 3. The data value of the "time of day" data element of the first row corresponding to the first transaction data may be fuzzified to be associated with event 1, event 2, and event 3. In this case, the fuzzy value may include 0.8 (i.e., 80%) associated with event 1, 0.2 associated with event 2, and 0 associated with event 3.

[0132] The server computer can determine the fuzzy event value based on multiple membership functions. For example, the multiple membership functions can include three membership functions, each of which is associated with a label and a range. The first membership function can have a label "morning" and a range from 0 to 12 (i.e., night to noon). The second membership function can have a label "noon" and a range from 6 to 18. The third membership function can have a label "evening" and a range from 12 to 0. These membership functions are described in an illustrative manner, but it should be understood that there may be more or fewer membership functions and larger or smaller ranges with various amounts of overlap between membership functions. For example, there may be a fourth membership function with a label of "night" and a range of 21 to 4.

[0133] The server computer may determine that a data value of 9 (i.e., 9 a.m.) for the data element "time of day" maps to a fuzzy value of 0.8 for event 1 (e.g., morning), a fuzzy value of 0.2 for event 2 (e.g., noon), and a fuzzy value of 0 for event 3 (e.g., evening).

[0134] Table 2 below further illustrates fuzzy events of other transaction data in the plurality of transaction data. For example, the third row of Table 2 shows third transaction data including fuzzy event data (i.e., fuzzy values ​​of at least some data values), wherein the fuzzy event value of event 1 is 0.2, the fuzzy event value of event 2 is 0.6, and the fuzzy event value of event 3 is 0.2. These fuzzy event values ​​may correspond to time 12 (i.e., noon) of the day, which may be included within the range of the three aforementioned membership functions. The third transaction data may also include data values ​​of data elements of day of the year, time of the day, resource provider, zip code, IP address, and amount, as shown in Table 1.

[0135]

[0136]

[0137] Table 2: Fuzzy events

[0138] In step 506, after determining the fuzzy values ​​of at least some of the data values, the server computer can generate one or more graphs including multiple communities based on the network data. The server computer can generate one or more graphs including multiple communities as described herein. For example, the server computer can determine two communities associated with the network data. However, it should be understood that the server computer can determine more than two communities. The two communities may include a "high-tech" community and an "outdoor enthusiast" community. The "high-tech" community may include users associated with frequent and / or large purchases of new technology (e.g., buying a new smartphone every 6 months), and in some embodiments, resource providers. The "outdoor enthusiast" community may include users associated with purchasing camping equipment, sporting goods, etc.

[0139] At step 508, after determining the community, the server computer may determine a fuzzy value of the community within the plurality of communities for each user. The fuzzy value of the community may be a fuzzy community value. Table 3 below shows the fuzzy community value.

[0140] The fuzzy community value may be a fuzzified value of the community associated with each transaction data. For example, the first transaction data may be associated with community 1 at 0.1 and community 2 at 0.9. As another example, the fifth data point may be associated with community 1 at 0.5 and community 2 at 0.5.

[0141] In some cases, as described herein, transaction data may be associated with one or more communities, and thus one or more communities may be referred to as overlapping community groups. Overlapping community groups may be expressed as fuzzy relationships between community groups. Such relationships between overlapping community groups may be expressed as a multigraph, where nodes representing community groups are connected to nodes representing users (e.g., Figure 4 as depicted by the fuzzy community network space 406).

[0142] As an illustrative example, the first row in Table 3 below shows a fuzzy community value associated with a first user (e.g., associated with a user identifier of "1111"). The first user can be associated with first transaction data (i.e., the first row of Table 1). The transaction data history of the first user can indicate connections to both a "high-tech" community (e.g., Community 1) and an "outdoor enthusiast" community (e.g., Community 2). The first user may frequently purchase camping equipment, but rarely purchase new cell phones and other technology. Due to the transaction data history of the first user, the server computer can determine that the first user's fuzzy value associated with the "high-tech" community is 0.1 and the fuzzy value associated with the "outdoor enthusiast" community is 0.9.

[0143] In some embodiments, the server computer may perform steps 506 to 508 before determining the fuzzy value at step 504. In other embodiments, the server computer may perform steps 506 to 508 in parallel with step 504, such as Figure 5 Depicted.

[0144] card number Community 1 Community 2 1111 0.1 0.9 2222 0.2 0.8 3333 0.3 0.7 4444 0.4 0.6 5555 0.5 0.5 6666 0.6 0.4 7777 0.7 0.3 8888 0.8 0.2 9999 0.9 0.1 0000 0.95 0.05

[0145] Table 3: Fuzzifying communities

[0146] After determining fuzzy values ​​of at least some of the data values ​​and fuzzy values ​​of communities within the plurality of communities for each of the plurality of transactions, the server computer may determine a data table at step 510. The data table may include fuzzy values ​​of at least some of the data values ​​and fuzzy values ​​of the communities.

[0147] In some embodiments, the server computer can determine the data table by storing fuzzy values ​​of at least some of the data values ​​and fuzzy values ​​of the community. For example, the server computer can include fuzzy event data and fuzzy community data into the transaction data. The server computer can also remove the data values ​​that are fuzzified in step 504. For example, when determining the data table, the server computer can remove the data element of "time of day". The data table may include fuzzified data based on fuzzy event values ​​and fuzzy community values. Of course, it should be understood that the data table may include any other suitable fuzzy data, such as but not limited to location, zip code, day of the year, merchant identifier, IP address, and amount.

[0148] As an illustrative example, a data table is shown in Table 4 below. Fuzzy community data for a first user, including a fuzzy value of 0.1 for community 1 (e.g., a "high-tech" community) and a fuzzy value of 0.9 for community 2 (e.g., an "outdoor enthusiast" community), may be included in the first transaction data of Table 1. The server computer may also include fuzzy values ​​corresponding to data values ​​associated with the "time of day" data element in the transaction data. For example, the server computer may include values ​​0.8, 0.2, and 0 associated with event 1, event 2, and event 3, respectively, in the first transaction data. In addition, the server computer may remove the obfuscated data value 9 from the first transaction data. In some embodiments, the server computer may also remove the user identifier from each of the multiple transaction data.

[0149]

[0150]

[0151] Table 4: Data sheet

[0152] In step 512, after determining the data table, the server computer can generate a model using the fuzzy values ​​obtained in steps 504 and 508 and at least some of the data values ​​corresponding to the data elements (e.g., zip code, IP address, amount, etc.). The model may include a statistical model that can be used to predict unknown information based on known information (e.g., data table). For example, the data table can be used to train the model during the training process, such as to make suggestions (e.g., a suggestion model). For example, a person may walk into a store at noon on a rainy day. Time, noon, and weather can be features of the fuzzy spatial domain to which the person's action (e.g., entering the store) will be matched. The high probability response (i.e., output) obtained from the model using this data may be "This person needs an umbrella and a raincoat." The output of recommending an umbrella and a raincoat to the user can be sent to an external computer.

[0153] As another example, the model may be a sales forecasting model. Figure 1 The evaluation computer 118 of the external computer can generate a request including request data and then transmit the request to the server computer. The request can include request data, and the request data includes, for example, a request for expected electronic product sales in California at noon. After receiving the request from the external computer, the server computer can determine the output data output by the model. In some embodiments, the request data can be input into the model. For example, referring to Table 4, the server computer can determine the total sales associated with electronic products (e.g., community 1, SKU code, etc.) during noon (e.g., event 2) in California (e.g., zip code).

[0154] For example, the server computer may use the fuzzy community value and the fuzzy event value to weight the amount of each transaction data. For example, for the first transaction, where the other data values ​​are indicative of the request (e.g., the zip code is a zip code in California, etc.), the server computer may determine the weighted amount by multiplying the high-tech community (e.g., community 1) and the midday event (e.g., event 2) by the amount. The server computer may calculate:

[0155] 0.1*0.2*12=0.24

[0156] The value 0.24 in this example is small because the associated transaction data is slightly associated with the "high-tech" community and slightly associated with the noon event. The server computer can determine the weighted amount of each of the multiple transaction data. For 10 rows of Table 4 (e.g., an example of 10 transaction data), the server computer can determine the total weighted amount of 126.82 by adding the weighted amount of each transaction data of Table 4. After determining the output data, the server computer can provide the output data to the external computer.

[0157] B. Fuzzy membership function induction through evolutionary learners

[0158] In some embodiments, the server computer may include an evolutionary learner that can determine the membership function and the fuzzy data. The evolutionary learner may be any suitable evolutionary learner. An optimization technique particularly suitable for finding the best and / or least expensive path in a graph may include ant colony optimization. Ant colony optimization is a method for finding the best solution similar to a genetic algorithm. Ant colony optimization and genetic algorithms utilize the probabilistic technique of simulated annealing, both of which are based on ideas in biology. Genetic algorithms may include optimization methods that iteratively modify a set of individually proposed solutions (i.e., populations) until the best solution is found after multiple consecutive iterations (i.e., generations). In this method, information about the accuracy (i.e., fitness) of the solution can be communicated only between agents (i.e., solvers) within a specific domain of the selected graph. This may cause these algorithms to converge to a local optimum or the fastest suitable solution, rather than the global optimum of the graph. In some cases, genetic algorithms can effectively locate the global optimum of a graph; however, this may take a considerable amount of time because multiple generations of solutions may be required to gain a deep understanding of the entire information space.

[0159] In contrast, ant colony optimization techniques are not based on the perspective of collective bee colonies. In ant colony optimization, multiple agents can try to find the best solution and can communicate feedback (i.e., pheromones) to each other collectively. These pheromones can be recorded and can relay information about the effectiveness of their respective solution paths relative to the overall goal (e.g., gradients or other error terms) in each iteration. Agents can be distributed throughout the information space and communicate with the entire agent (i.e., the group), so that despite the existence of local optima in the evaluation domain, such methods can still better achieve the global optimal solution. An additional advantage of using the ant colony optimization algorithm is that multiple learner objectives can be configured within the algorithm. That is, learner objectives can be expressed in a variety of ways. For example, the agents in the ant colony algorithm can be configured to search for paths based on signal-to-noise ratio, shortest path, smoothest topology, etc.

[0160] 1. Evolutionary Learner

[0161] Figure 6 A flow chart showing an evolutionary learner data fuzzification method according to an embodiment. As described herein, the method will be described in the context of determining an optimal membership function that can then be used during data fuzzification. Figure 6 However, it should be understood that the embodiments may be applied to other situations.

[0162] Prior to step 600, the server computer may retrieve network data from a network data database. In step 600, the server computer may segment the network data into a plurality of samples. For example, the network data may include a plurality of transaction data, and the server computer may segment the plurality of transaction data into 2, 5, 20 samples, etc., each sample including a subset of the plurality of transaction data. In some embodiments, each sample may include the same amount of transaction data (e.g., the transaction data is 100 transactions). A sample may include a subset of data (e.g., network data) of the entire data set.

[0163] At step 602, after segmenting the network data into a plurality of samples, the server computer may initialize pheromones for an evolutionary learner. The evolutionary learner may include, for example, a modified ant colony process. Pheromones may be data items that facilitate agents to communicate feedback to each other about the best solution. For example, pheromones may include algorithm parameters (e.g., sigmoid, sensitivity, etc.) and detailed information of membership functions (e.g., proposed segmentation points of the membership function, membership function type (e.g., triangle, trapezoid, etc.)).

[0164] At step 604, the server computer may determine whether the current epoch is less than a maximum epoch. The maximum epoch may be a predetermined number of iterations that the server computer may iterate through the modified ant colony process. If the server computer determines that the current epoch (e.g., epoch number 1) is less than or equal to the maximum epoch (e.g., epoch number 7), the server computer may proceed to step 606. If the server computer determines that the current epoch is greater than the last epoch, the server computer may end the process, and the membership function finally determined may include the best membership function.

[0165] Figure 8 will be described as running through Figure 6 An example of a method. Figure 8 A block diagram showing membership functions changing over 3 epochs of an evolutionary learner is shown, according to an embodiment. Figure 8 Shown in Figure 6 and Figure 7 Visual depiction of membership functions during the method. Figure 8 The columns represent Figure 6 Each period of , and the rows represent different membership functions, which can be Figure 7 The membership functions described in are determined by different agents during an epoch. In multiple epochs, each set of membership functions can be changed by updating the pheromone of each agent. Over time, each agent can converge to the same / similar membership functions, which can then be used to fuzzify the network data.

[0166] exist Figure 8, four agents are shown for each period. Each agent can determine a set of membership functions that can be used, for example, to fuzzify the time of day. Within three periods, the agents can converge on an optimal set of membership functions that can protect the privacy of the explicit values ​​and retain the predictive power of the explicit values ​​(e.g., for use in a model).

[0167] The first membership function set (first proxy set) during period 1 may include three membership functions. The first membership function set may correspond to a label about "time of day". For example, the first, second and third membership functions may be labeled as morning 810, noon 820 and evening 830, respectively. As another example, the fourth membership function set (fourth proxy set) during period 1 may include two membership functions with labels of morning 840 and evening 850. During the first period, as described below, the server computer may determine that the first membership function set performs well (e.g., providing fuzzy values ​​that retain predictive power similar to that of explicit values, and / or providing privacy for explicit values). The server computer may also determine that the fourth membership function set performs poorly (e.g., failing to provide fuzzy values ​​that retain predictive power similar to that of explicit values, and / or failing to provide privacy for explicit values). During the second period, the server computer may avoid membership function sets that performed poorly in the previous period. For example, during the second period, the fourth proxy may determine a membership function set that includes three membership functions instead of two membership functions, as determined in the first period.

[0168] At step 606, the server computer may determine a membership function for an agent (i.e., ant) ​​in the plurality of agents. The plurality of agents may include any suitable number of agents. For example, the plurality of agents may include 3, 5, 10, 100 agents, etc. The server computer may be as follows: Figure 7 For example, in some embodiments, at step 606, the server computer may execute Figure 7 process.

[0169] At step 608, after determining the membership function for an agent (e.g., a first agent) in the plurality of agents, the server computer may store the membership function associated with the agent. At step 610, after storing the membership function for the agent, the server computer may determine whether a membership function has been determined for each agent in the plurality of agents. If the server computer determines that a membership function has not been determined for each agent, the server computer may repeat steps 606 to 608 for each agent in the plurality of agents. If the server computer determines that a membership function has been determined for each agent in the plurality of agents, the server computer may proceed to step 612.

[0170] For example, in steps 606 to 610, the server computer may determine the membership function for the first period. Figure 8 The first period of FIG. 6 depicts four membership function sets. Each membership function set may be stored in association with an agent. In this example, there may be 4 agents. Each membership function set may include different membership functions of different ranges, shapes, locations, etc. The following steps 611 to 628 may include determining Figure 8 Pheromone trends / changes depicted between the first and second periods. The process may then be repeated any suitable number of times (eg, N periods) to determine an optimal membership function, such as the membership function described in the third period.

[0171] At step 611, after determining the membership function of each of the plurality of agents, the server computer may fuzzify the plurality of transaction data of the sample with the membership function of each agent, as described herein.

[0172] At step 612, after fuzzifying the plurality of transaction data using the membership function of each of the plurality of agents, the server computer may use a back propagation neural network to determine a predicted value of a target variable in the plurality of target variables. The target variable may include fraud, total expenditure amount, transaction speed, etc. The predicted value may be a predicted target variable (e.g., predicted fraud). In some embodiments, a back propagation neural network may be used to approximate a general learner.

[0173] As an illustrative example, the server computer can use the data fuzzified by the agent's membership function to predict a target variable (eg, fraud) for a sample of transaction data. The server computer can use the fuzzified transaction data to predict a fraud rate.

[0174] At step 614, the server computer may determine the error between the predicted value and the actual value. The actual value may include historical values ​​corresponding to the target variable (e.g., historical fraud) retrieved from the database. In some embodiments, the actual value may be determined by the server computer using a back propagation neural network and a plurality of transaction data (unfuzzified) to predict the actual value of the target variable. The server computer may determine the error in any suitable manner. For example, in some embodiments, the server computer may determine the mean square error (MSE) of the target variable (e.g., fraud).

[0175] For example, the server computer may determine the error as follows:

[0176] MSE l =1 / length(S1)(actual value-predicted value) 2

[0177] The error may represent the degree to which the fuzzified data retains predictive power compared to the unfuzzified data (eg, network data).

[0178] At step 616, after determining the predicted value of the target variable in the plurality of target variables, the server computer may determine whether a predicted value and an error value based on the predicted value have been determined for each of the plurality of target variables. For example, the server computer may perform steps 612 to 614 for the target variable of fraud, and then may perform steps 612 to 614 for the target variable total amount of expenditures, etc. The server computer may repeat steps 612 to 614 for each of the plurality of target variables. If the server computer determines that a predicted value and an error have been determined for each of the target variables of the agent, the server computer may perform step 618.

[0179] At step 618, after determining the plurality of predicted values ​​and the corresponding plurality of errors for the agents in the plurality of agents, the server computer may determine an average error for the agents. For example, the average error for the agents may be determined as follows:

[0180]

[0181] At step 620, after determining the average error for the agents in the plurality of agents, the server computer may determine whether the average error has been determined for each of the plurality of agents. The server computer may repeat steps 612 to 618 for each of the plurality of agents until the average error for each of the plurality of agents is determined. If the server computer determines that the average error has been determined for each of the plurality of agents, the server computer may proceed to step 622.

[0182] At step 622, after determining a plurality of average errors including the average error of each of the plurality of agents, the server computer may update the global pheromone. The global pheromone may include rules regarding which membership functions to avoid and which membership functions to move toward. The global pheromone may enable multiple agents to transmit the results (e.g., average errors) of their individual pheromones. For more detailed information on the local and global pheromones of the agents, see [Bonabeau, Eric et al., Swarm intelligence: from natural to artificial systems, No. 1, Oxford University Press, 1999].

[0183] At step 624, after updating the global pheromone, the server computer may verify the anonymization of the network data. The server computer may reject any membership functions that display the original user data from the network data. For example, the membership function determined by a particular agent may not anonymize the user data. In this case, the server computer may verify whether the generated obfuscated data is privacy-preserving. In some embodiments, the server computer may also reject any membership functions that display location data (e.g., zip code, address, etc.), resource provider data, and / or any other suitable raw data that the membership function is intended to anonymize. For example, if the membership function set does not obfuscate the zip code, the server computer may reject the membership function set.

[0184] In some embodiments, the server computer may reject a membership function by adjusting the mean error (eg, AvgMSE) of the agents associated with the rejected membership function.

[0185] In some embodiments, the server computer can transmit the obfuscated data to a second server computer, which can include adversarial AI that determines whether the obfuscated data is privacy-preserving. For example, similar to the server computer, the second server computer can determine whether the obfuscated data is privacy-preserving.

[0186] At step 626, after rejecting the non-privacy preserving membership functions (if any), the server computer may save the membership function associated with the minimum average error. For example, the minimum average error may be the minimum average error among the plurality of average errors of the plurality of agents. The membership function associated with the minimum average error may be the membership function that best maintains the accuracy of the prediction value determination while anonymizing the network data for the current period.

[0187] At step 628, after saving the membership function with the minimum average error, the server computer may update each agent's pheromone (eg, local pheromone) and increment the current epoch (eg, by 1).

[0188] For example, when updating the pheromone of an agent among a plurality of agents, the global pheromone may be used to screen out bad parameters. For example, the first agent (i) may determine a bad membership function (i.e., a membership function corresponding to a large average error and / or non-privacy protection) as, for example, a membership function having a split at the point QUOTE, while the second agent (J) may determine a membership function having a split at the point. When the second agent (J) updates its pheromone, it may avoid (i.e., stay away from) the split point.

[0189] After updating the pheromone of each of the plurality of agents, the server computer may continue with step 604 and determine whether the current period is less than or equal to the maximum period. If the current period is less than or equal to the maximum period, the server computer may repeat steps 606 to 628, wherein the updated pheromone (updated at step 628) may modify the membership function for the next period. If the server computer determines that the current period is greater than the maximum period, the server computer may end the process. The membership function with the smallest average error saved at step 626 may be the best membership function determined by the server computer. The server computer may then continue to fuzzify the network data using the membership function and then generate a model based on the fuzzified data, as described herein.

[0190] For example, refer to Figure 8 , the second period shows the membership functions determined for each agent at step 606. For example, during the first period, the first membership function set and the third membership function set may have lower errors, while the second membership function set and the fourth membership function set may have higher errors. Therefore, the server computer can adjust the global pheromone to cause a change to the low-error membership function set. During the second period, a new membership function set can be determined based in part on the updated global pheromone. For example, the fourth membership function set included two membership functions during the first period, but, during the second period, the fourth membership function set includes three membership functions because the pheromones have been weighted for agents with three membership functions.

[0191] During the third period, the four membership function sets may converge to an optimal membership function set based on the pheromone changes from the second period. As described herein, the server computer may use the optimal membership function determined by the evolutionary learner to fuzzify the transaction data.

[0192] 2. Membership function determination

[0193] Figure 7 A flow chart of a method for determining a membership function according to an embodiment is shown. Figure 6 The process is described in the context of determining the membership functions of agents during an evolutionary learning process Figure 7 However, it should be understood that the present invention can be applied to other situations. Figure 7For more details on the determination of membership functions, see [Hong, Tzung-Pei, and Chai-Ying Lee, "Induction of fuzzyrules and membership functions from training examples," Fuzzy Sets and Systems 84.1 (1996): 33-47], which is incorporated herein by reference in its entirety. In this step, the output values ​​of all training examples are appropriately grouped by applying the following clustering procedure, and appropriate membership functions for the output values ​​are generated. The clustering procedure considers training examples with similar output values ​​to belong to the same class with high membership values. Figure 7 It is described in detail in [Hong, Tzung-Pei and Chai-Ying Lee, "Induction of fuzzy rules and membership functions from training examples", Fuzzy Sets and Systems 84.1 (1996): 33-47] and will be briefly described here.

[0194] At step 702, the server computer may sort the data values ​​of the transaction data (e.g., data values ​​corresponding to data elements of "time of day," "amount," etc.). The server computer may sort the data values ​​in any suitable manner. For example, in some embodiments, the server computer may numerically sort the data values ​​in ascending or descending order. In other embodiments, the server computer may sort the data values ​​based on relevance to a target variable (e.g., fraud, total amount spent, transaction velocity, etc.).

[0195] After sorting the data values, the server computer may determine differences between adjacent data values ​​at step 704. After determining differences between adjacent data values, the server computer may determine similarities between adjacent data values ​​at step 706. Adjacent data values ​​may include data values ​​that are adjacent to each other in the sorted data value list.

[0196] After determining similarity data values ​​between adjacent data values, the server computer may cluster the data values ​​according to the similarity in steps 708 to 714. In step 708, the server computer may determine whether all data has been considered during clustering. If the server computer determines that all data has been considered, the server computer may proceed to step 716. If the server computer determines that all data has not been considered, the server computer may proceed to step 710.

[0197] At step 710, after determining that not all data has been considered, the server computer can determine whether the similarity of adjacent values ​​is less than a similarity threshold. The similarity threshold can include any suitable threshold. If the server computer determines that the similarity value is equal to or greater than the similarity threshold, the server computer can continue with step 712 and place the two data points in the same group. If the server computer determines that the similarity value is less than the similarity threshold, the server computer can continue with step 714 and place the two data points in different groups. After steps 712 and 714, the server computer can determine the similarity between adjacent values ​​of the next two values ​​after step 706.

[0198] After determining in step 708 that all data has been considered (clustered), the server computer can determine membership functions based on the clustered data in step 716, as further described in [Hong, Tzung-Pei and Chai-Ying Lee, "Induction of fuzzy rules and membership functions from training examples," Fuzzy Sets and Systems 84.1 (1996): 33-47].

[0199] Embodiments of the present invention provide several advantages. For example, network data can be obfuscated in an irreversible manner, thereby protecting the privacy of the network data in any model built using the obfuscated data. For example, a user associated with a transaction may not be identified by the obfuscated data, thereby forming privacy-preserving data.

[0200] Embodiments of the present invention provide several additional advantages. For example, obfuscation of network data can help correct for biases in coverage data for one individual and location. For example, even if a user only uses a credit card or other payment device for a specific commodity (e.g., gas), by obfuscating the relationship, the user's data can still help improve the model for users who use credit cards for all operations.

[0201] It should be understood that any embodiment of the present invention can be implemented in the form of control logic using hardware (e.g., an application specific integrated circuit or a field programmable gate array) and / or using computer software, wherein a general purpose programmable processor is modular or integrated. As used herein, a processor includes a single-core processor, a multi-core processor on the same integrated chip, or multiple processing units on a single circuit board or networked. Based on the disclosure and teachings provided herein, a person of ordinary skill in the art will know and understand other ways and / or methods of implementing embodiments of the present invention using hardware and a combination of hardware and software.

[0202] Any software component or function described in this application can be implemented as software code to be executed by a processor using any suitable computer language such as Java, C, C++, C#, Objective-C, Swift, or a scripting language such as Perl or Python, using, for example, conventional or object-oriented techniques. The software code can be stored as a series of instructions or commands on a computer-readable medium for storage and / or transmission, and suitable media include random access memory (RAM), read-only memory (ROM), magnetic media such as a hard drive or floppy disk, or optical media such as a compact disk (CD) or a digital versatile disk (DVD), flash memory, etc. The computer-readable medium can be any combination of such storage or transmission devices.

[0203] Such programs can also be encoded and transmitted using carrier signals adapted to be transmitted via wired, optical and / or wireless networks that meet multiple protocols including the Internet. Therefore, the computer-readable medium according to an embodiment of the present invention can be created using data signals encoded with such programs. The computer-readable medium encoded with program code can be encapsulated with compatible devices or provided separately from other devices (e.g., downloaded via the Internet). Any such computer-readable medium can reside on or within a single computer product (e.g., hard drive, CD or entire computer system), and can be present on or within different computer products in a system or network. The computer system can include a monitor, a printer, or other suitable displays for providing any result mentioned herein to the user.

[0204] The above description is illustrative and non-restrictive. After those skilled in the art have read this disclosure, many variations of the present invention will become apparent to them. Therefore, the scope of the present invention should not be determined with reference to the above description, but should be determined with reference to the pending claims and their full scope or equivalents.

[0205] One or more features of any embodiment may be combined with one or more features of any other embodiment without departing from the scope of the present invention.

[0206] As used herein, the use of "a," "an," or "the" is intended to mean "at least one" unless clearly indicated to the contrary.

Claims

1. A method for obfuscating transaction data, the method comprising: a) receiving, by a server computer, network data comprising a plurality of transaction data of a plurality of transactions, wherein each transaction data comprises a plurality of data elements having data values, wherein at least one of the plurality of data elements comprises a user identifier of a user; b) generating, by the server computer, one or more graphs including a plurality of communities based on the network data; c) anonymizing the network data by determining, by the server computer for each transaction in the plurality of transactions, obfuscated values ​​for at least some of the data values, wherein determining the obfuscated values ​​for the at least some of the data values ​​comprises: determining, by the server computer, a set of membership functions for each data element corresponding to the at least some of the data values, wherein at least one membership function in the set of membership functions overlaps with a second membership function in the set of membership functions, and a percentage of overlap between the at least one membership function and the second membership function is greater than a predetermined overlap threshold; and determining, by the server computer, the fuzzy values ​​of the at least some of the data values ​​using the set of membership functions; d) for each user, determining, by the server computer, a fuzzy value of a community within the plurality of communities; determining, by the server computer, an updated set of membership functions based on determining that at least one of the fuzzy values ​​obtained in steps c) and d) is not privacy preserving, and generating updated fuzzy values ​​for the at least some of the data values ​​using the updated set of membership functions; generating a model by the server computer using the fuzzy values ​​and the updated fuzzy values ​​obtained in step c) and the at least some of the data values; and Provides predictions of fraudulent transactions based on models generated using anonymized network data.

2. The method according to claim 1, further comprising: receiving, by the server computer, a request from an evaluation computer, wherein the request includes request data; as well as Output data output by the model is determined by the server computer, wherein the request data is input into the model and the output data includes the prediction.

3. The method of claim 1, wherein the data elements include at least one or more of the user identifier, a resource provider identifier, a day of year, a time of day, a location, an IP address, and an amount.

4. A method according to claim 3, wherein the data element includes the time of the day, wherein the fuzzy value of the community is a fuzzy community value, and wherein the fuzzy values ​​of at least some of the data values ​​corresponding to the time of the day are fuzzy event values.

5. The method according to claim 4, further comprising: A data table including at least the fuzzy event value and the fuzzy community value is created by the server computer.

6. The method according to claim 5, wherein creating the data table further comprises: storing, by the server computer, the fuzzy event value and the fuzzy community value of each transaction data of the plurality of transaction data in the data table; as well as The user identifier of each transaction data in the plurality of transaction data is removed by the server computer.

7. The method according to claim 6, further comprising: A subset of the plurality of data elements is stored in the data table by the server computer.

8. The method of claim 1, wherein the model is one of a support vector machine, an artificial neural network, a decision tree, a Bayesian network, and a genetic algorithm.

9. The method according to claim 1, wherein the method comprises: After generating the model, The model is transmitted from the first server computer to the second server computer, wherein the second server computer determines whether the external data and the model can be used to identify at least one user.

10. A server computer, comprising: processor; Memory; as well as A computer readable medium coupled to the processor, the computer readable medium comprising code executable by the processor to implement a method comprising: a) receiving network data including a plurality of transaction data of a plurality of transactions, wherein each transaction data includes a plurality of data elements having data values, wherein at least one of the plurality of data elements includes a user identifier of a user; b) generating one or more graphs including a plurality of communities based on the network data; c) anonymizing the network data by determining obfuscated values ​​of at least some of the data values ​​for each of the plurality of transactions, wherein determining the obfuscated values ​​of the at least some of the data values ​​comprises: determining a set of membership functions for each data element corresponding to said at least some of said data values, wherein at least one membership function in said set of membership functions overlaps with a second membership function in said set of membership functions, and a percentage of overlap between said at least one membership function and said second membership function is greater than a predetermined overlap threshold; and determining the fuzzy values ​​of the at least some of the data values ​​using the set of membership functions; d) for each user, determining a fuzzy value of a community within the plurality of communities; determining an updated set of membership functions based on determining that at least one of the fuzzy values ​​obtained in steps c) and d) is not privacy preserving, and generating updated fuzzy values ​​for the at least some of the data values ​​using the updated set of membership functions; generating a model using the fuzzy values ​​and the updated fuzzy values ​​obtained in step c) and the at least some of the data values; and Provides predictions of fraudulent transactions based on models generated from anonymized network data.

11. The server computer according to claim 10, wherein the method further comprises: receiving, by the server computer, a request from an evaluation computer, wherein the request includes request data; as well as Output data output by the model is determined by the server computer, wherein the request data is input into the model and the output data includes the prediction.

12. The server computer of claim 10, wherein the data element comprises at least one of the user identifier, a resource provider identifier, a day of year, a time of day, a location, an IP address, and an amount.

13. A server computer according to claim 12, wherein the data element includes the time of day, wherein the fuzzy value of the community is a fuzzy community value, and wherein the fuzzy values ​​of at least some of the data values ​​corresponding to the time of day are fuzzy event values.

14. The server computer according to claim 13, wherein the method further comprises: A data table including at least the fuzzy event value and the fuzzy community value is created.

15. The server computer according to claim 14, wherein creating the data table further comprises: storing the fuzzy event value and the fuzzy community value of each transaction data in the plurality of transaction data in the data table; as well as The user identifier of each transaction data in the plurality of transaction data is removed by the server computer.

16. The server computer according to claim 15, further comprising: A subset of the plurality of data elements is stored in the data table.

17. The server computer of claim 10, wherein the model is one of a support vector machine, an artificial neural network, a decision tree, a Bayesian network, and a genetic algorithm.

18. The server computer according to claim 11, wherein the method further comprises: After generating the model, The model is transmitted to a second server computer, wherein the second server computer determines whether the external data and the model can be used to identify at least one user.

Citation Information

Patent Citations

  • GPU enhanced graph model build and scoring engine

    US20190005407A1

  • Big data analysis method for warning of heavy-load and overload of electric power system

    CN105404944A

  • Fuzzy data operations

    US20130138688A1