WO2021048902A1 - 学習モデル適用システム、学習モデル適用方法、及びプログラム - Google Patents

学習モデル適用システム、学習モデル適用方法、及びプログラム Download PDF

Info

Publication number
WO2021048902A1
WO2021048902A1 PCT/JP2019/035376 JP2019035376W WO2021048902A1 WO 2021048902 A1 WO2021048902 A1 WO 2021048902A1 JP 2019035376 W JP2019035376 W JP 2019035376W WO 2021048902 A1 WO2021048902 A1 WO 2021048902A1
Authority
WO
WIPO (PCT)
Prior art keywords
learning model
feature amount
calculation
feature
features
Prior art date
Application number
PCT/JP2019/035376
Other languages
English (en)
French (fr)
Inventor
恭輔 友田
Original Assignee
楽天株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 楽天株式会社 filed Critical 楽天株式会社
Priority to EP19944677.4A priority Critical patent/EP3882825A4/en
Priority to US17/415,742 priority patent/US20220083910A1/en
Priority to JP2020539117A priority patent/JP7015927B2/ja
Priority to PCT/JP2019/035376 priority patent/WO2021048902A1/ja
Priority to TW109130412A priority patent/TWI778411B/zh
Publication of WO2021048902A1 publication Critical patent/WO2021048902A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/211Selection of the most significant subset of features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/128Restricting unauthorised execution of programs involving web programs, i.e. using technology especially used in internet, generally interacting with a web browser, e.g. hypertext markup language [HTML], applets, java
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Definitions

  • the present invention relates to a learning model application system, a learning model application method, and a program.
  • Patent Document 1 a feature amount extracted from behavior data related to the behavior of a user who has accessed a website is input, and teacher data that outputs a judgment result of legitimacy of the user is trained by a learning model, which is fraudulent.
  • a system for creating a learning model that detects a user is described.
  • the setting related to the calculation of the feature amount input to the learning model does not change, so that it is not possible to respond to the change in behavior and learning.
  • the accuracy of the model may be reduced.
  • it is expected that the application of the learning model will be delayed because it takes a lot of time and effort for the data scientist to analyze and reflect the settings.
  • the present invention has been made in view of the above problems, and an object of the present invention is to provide a learning model application system, a learning model application method, and a program capable of rapidly applying a learning model.
  • the learning model application system includes a calculation means for calculating a plurality of feature quantities based on learning data used in learning the learning model, and each feature quantity in the learning model.
  • a selection means for selecting at least one of the plurality of feature quantities based on the influence of the above, and an application means for applying a learned learning model learned based on the feature quantities selected by the selection means.
  • a setting means for setting the calculation of the feature amount input to the learned learning model based on the feature amount selected by the selection means.
  • the learning model application method includes a calculation step for calculating a plurality of feature quantities based on learning data used in learning the learning model, and the plurality of features based on the influence of each feature quantity in the learning model.
  • a selection step that selects at least one of the feature quantities of the above, an application step that applies a learned learning model learned based on the feature quantities selected by the selection step, and a selection step selected by the selection step. It is characterized by including a setting step for setting the calculation of the feature amount input to the trained learning model based on the feature amount.
  • the program according to the present invention is a calculation means for calculating a plurality of feature quantities based on learning data used in learning a learning model, and based on the influence of each feature quantity in the learning model, the plurality of feature quantities
  • the computer functions as a setting means for setting the calculation of the feature amount input to the trained learning model.
  • the calculation means calculates the plurality of feature quantities based on the plurality of pretreatment components, and the setting means uses the selection means among the plurality of pretreatment components. It is characterized in that the preprocessing component used in the calculation of the selected feature amount is set to be used in the calculation of the feature amount input to the trained learning model.
  • the learning model application system further includes input means for inputting data of the same format to each preprocessing component, and each preprocessing component inputs to another preprocessing component. It is characterized in that the calculation process is executed based on the data in the same format as the data to be generated.
  • the learning model application system further includes an additional means for adding a new preprocessing component for calculating a new feature amount, wherein the calculation means is the new preprocessing component.
  • the new feature amount is calculated, and the setting means transfers the new preprocessing component to the trained learning model when the new feature amount is selected by the selection means. It is characterized in that it is set to be used in the calculation of the input feature amount.
  • the learning model application system further includes an acquisition means for acquiring the calculation time of each feature amount, and the selection means includes the influence of each feature amount in the learning model and each feature amount. It is characterized in that at least one of the plurality of feature quantities is selected based on the calculation time of.
  • the learning model application system further includes a specific means for specifying a combination of feature amounts related to each other from the plurality of feature amounts, and the selection means is related to each other. If there is a combination of feature quantities, a part of the combination is selected.
  • the learning model application system includes an acquisition means for acquiring the calculation time of each feature amount and a determination means for determining whether or not the calculation time for each feature amount is equal to or longer than a predetermined time.
  • the selection means further includes, when a feature amount having a calculation time of a predetermined time or longer exists, the feature amount is treated as a missing value, and the influence on the learning model is evaluated.
  • the learning model is a model for detecting fraud in a website
  • the learning model application system is the learned learning when a user accesses the website.
  • the estimation means for estimating the fraud of the user based on the model and the setting made by the setting means is further included, and each process of the selection means, the application means, and the setting means is the estimation. It is characterized in that it is executed as a background process different from the process of the means.
  • the learning model is a model for detecting fraud in a website
  • the learning model application system is selected by the selection means for the administrator of the website. It is characterized by further including a notification means for notifying information on a feature amount.
  • the learning model can be applied quickly.
  • FIG. 1 is a diagram showing an overall configuration of a learning model application system.
  • the learning model application system S includes a database server 10, a background server 20, a preprocessing server 30, a real-time server 40, a service providing server 50, and a user terminal 60, and these include the Internet and the like. It is possible to connect to network N.
  • the database server 10 is a server computer that stores various data.
  • the database server 10 includes a control unit 11, a storage unit 12, and a communication unit 13.
  • the control unit 11 includes at least one processor.
  • the control unit 11 executes processing according to the programs and data stored in the storage unit 12.
  • the storage unit 12 includes a main storage unit and an auxiliary storage unit.
  • the main storage unit is a volatile memory such as RAM
  • the auxiliary storage unit is a non-volatile memory such as ROM, EEPROM, flash memory, or hard disk.
  • the communication unit 13 is a communication interface for wired communication or wireless communication, and performs data communication via the network N.
  • the background server 20 is a server computer that selects a feature amount described later and trains a learning model.
  • the background server 20 includes a control unit 21, a storage unit 22, and a communication unit 23.
  • the physical configurations of the control unit 21, the storage unit 22, and the communication unit 23 may be the same as those of the control unit 11, the storage unit 12, and the communication unit 13, respectively.
  • the preprocessing server 30 is a server computer that calculates the features described later.
  • the preprocessing server 30 includes a control unit 31, a storage unit 32, and a communication unit 33.
  • the physical configurations of the control unit 31, the storage unit 32, and the communication unit 33 may be the same as those of the control unit 11, the storage unit 12, and the communication unit 13, respectively.
  • the real-time server 40 is a server computer to which the learning model described later is applied.
  • the real-time server 40 includes a control unit 41, a storage unit 42, and a communication unit 43.
  • the physical configurations of the control unit 41, the storage unit 42, and the communication unit 43 may be the same as those of the control unit 11, the storage unit 12, and the communication unit 13, respectively.
  • the service providing server 50 is a server computer that provides an arbitrary service via a website.
  • the service providing server 50 includes a control unit 51, a storage unit 52, and a communication unit 53.
  • the physical configurations of the control unit 51, the storage unit 52, and the communication unit 53 may be the same as those of the control unit 11, the storage unit 12, and the communication unit 13, respectively.
  • the user terminal 60 is a computer operated by the user.
  • the user terminal 60 is a mobile phone (including a smartphone), a mobile information terminal (including a tablet computer), a personal computer, or the like.
  • the user terminal 60 includes a control unit 61, a storage unit 62, a communication unit 63, an operation unit 64, and a display unit 65.
  • the physical configurations of the control unit 61, the storage unit 62, and the communication unit 63 may be the same as those of the control unit 11, the storage unit 12, and the communication unit 13, respectively.
  • the operation unit 64 is an input device, for example, a pointing device such as a touch panel or a mouse, a keyboard, a button, or the like.
  • the operation unit 64 transmits the operation content by the user to the control unit 61.
  • the display unit 65 is, for example, a liquid crystal display unit, an organic EL display unit, or the like.
  • the display unit 65 displays an image according to the instruction of the control unit 61.
  • the programs and data described as being stored in the storage units 12, 22, 32, 42, 52, 62 may be supplied via the network N.
  • the hardware configuration of each computer described above is not limited to the above example, and various hardware can be applied. For example, even if a reading unit for reading a computer-readable information storage medium (for example, an optical disk drive or a memory card slot) or an input / output unit for inputting / outputting data to / from an external device (for example, a USB port) is included. Good.
  • the program or data stored in the information storage medium may be supplied to each computer via the reading unit or the input / output unit.
  • FIG. 2 is a diagram showing an outline of the learning model application system S.
  • the processing of the learning model application system S is performed by exemplifying a scene in which the service providing server 50 provides a website such as news or video to the user and analyzes the behavior of the user who has accessed the website.
  • the learning model application system S generates behavior data when a user accesses a website, analyzes the behavior data using the learning model, and classifies it as either a normal user or an unauthorized user.
  • Behavior data is data related to user behavior.
  • the action data includes at least one item, and the action content of the user is stored.
  • Behavioral data may be generated for all users who visit the website, or behavioral data may be generated for only some of the users.
  • the behavior data may show the behavior at a certain point in time, or may show the history of the behavior over a certain period of time. For example, the behavior data indicates the time when the website is accessed, the location of the user when the website is accessed, the operation content of the user on the website, and the like.
  • a normal user is a user who has behaved normally and is not an unauthorized user.
  • An unauthorized user is a user who has performed an illegal action and is not a normal user.
  • Unauthorized behavior is behavior that is detrimental to the service provider or other users, such as hacking, cracking, malicious posting, intentionally mass access, and inconvenience to other users. Acts, acts that violate the terms of service, or acts that violate the law.
  • services for normal users are not restricted, and services for unauthorized users are restricted.
  • the service if classified as a rogue user, the service does not have to be restricted immediately, the service may be restricted after an administrator review, or the service may be restricted after additional authentication to the user. May be restricted.
  • the learning model is a model that uses machine learning.
  • the learning model is sometimes referred to as a learner, classifier, or classification learner.
  • a learning model for classifying whether or not the user is an unauthorized user is used.
  • Various known methods can be used for machine learning itself, and for example, methods such as neural networks, reinforcement learning, or deep learning can be used.
  • Machine learning is not limited to supervised learning, and semi-supervised learning may be used, or a learning model based on unsupervised learning may be used.
  • the behavior data may be input to the learning model as it is, but in the present embodiment, a plurality of feature quantities calculated based on the behavior data are input to the learning model.
  • the learning model classifies the user as either a normal user or an unauthorized user based on a plurality of input feature quantities.
  • the feature amount is information indicating the feature of the data to be processed by the learning model.
  • the feature amount can be said to be information indicating the characteristics of the user's behavior.
  • the feature quantity may be indicated by a numerical value or other information such as characters.
  • the feature amount may be a feature that can be calculated from the behavior data, for example, the distance from the average access location of the user, the elapsed time from the previous access of the user, the access frequency of the user, or the use of the service by the user.
  • the situation for example, payment amount and payment frequency
  • the feature amount is information expressed by two values such as whether or not the access is from overseas, or whether or not a certain period of time has passed since the service was registered for use. You may.
  • the preprocessing server 30 is provided with m (m: natural number) preprocessing components C m used in the calculation of the feature amount.
  • the preprocessing component Cm is used not only in the background server 20 but also in the real-time server 40.
  • the real-time server 40 since the real-time server 40 is required to perform faster processing than the background server 20, the feature amount calculation that cannot be completed in time by the processing of the real-time server 40 is not performed. That is, the processing limit of the real-time server 40 is the processing limit of the background server 20.
  • the feature quantities that can be calculated by m preprocessing components Cm are n types (n: natural numbers). All of the n types of features may be used in learning, but among the n types of features, there are also features that have a small influence on the learning model (not important in the case of fraud detection). When such a feature amount is learned, the accuracy of the learning model may decrease or it may take time to process. Therefore, in the present embodiment, k types of features (natural numbers of k: n or less) having a relatively large influence are selected and learned by the learning model.
  • the database server 10 stores the history of behavior data of various users who have accessed the website in the past and the diagnosis result of whether or not the user is an unauthorized user.
  • the background server 20 acquires behavior data for the latest fixed period from the database server 10 in order to create a learning model to be applied to the real-time server 40.
  • the background server 20 transmits the action data acquired from the database server 10 to the preprocessing server 30.
  • the background server 20 causes the preprocessing server 30 to brute force the feature quantities and acquire n types of feature quantities (S1).
  • the background server 20 evaluates the influence of the features on the learning model and selects k types of features from the n types of features (S2).
  • a known feature selection method can be applied to the feature selection itself. For example, a filter-method that is completed only with a data set without using a learning model, and an optimum combination of features using a learning model. Wrapper-Method for searching for features, or Embedded-Method for selecting features during learning can be used.
  • a case where k types of features are selected based on the degree of influence (importance) of each of n types of features will be described.
  • a known method for example, a method of evaluating how much difference is brought about in the predicted result when only the feature amount to be evaluated is changed, so-called Permutation Impact
  • a numerical value indicating the degree of influence in the learning model is output for each feature amount.
  • the background server 20 selects k types of features from n types of features in descending order of influence.
  • the background server 20 trains the learning model based on the selected k types of features (S3). Of the n types of features, the feature amounts other than the selected k types of features have a small influence on the learning model. Therefore, in the present embodiment, the feature quantity having a small influence is not used in learning, but the feature quantity having a small influence is not used in learning at all, and the learning coefficient is lowered to some extent. May be trained.
  • the background server 20 transmits and applies the trained learning model to the real-time server 40 (S4). Since k types of features are input to the trained learning model, it is not necessary to calculate all of the n types of features at the time of fraud detection. Therefore, the background server 20 does not calculate all the features of n types for the preprocessing server 30, but calculates only the features of k types for the preprocessing server 30. Make settings related to quantity calculation (S5). The application of the learning model and the setting related to the calculation of the feature amount may be performed at the same time, or one of them may be performed first.
  • the real-time server 40 can detect fraud using the applied learning model. For example, when a user accesses the website of the service providing server 50, the service providing server 50 generates behavior data based on the behavior of the user on the website. The real-time server 40 collects the generated behavior data and transmits it to the preprocessing server 30. The real-time server 40 causes the preprocessing server 30 to calculate and acquire k types of features (S6). Unlike the case where the background server 20 requests the calculation, the preprocessing server 30 does not calculate all of the n types of features, but calculates only the k types of features. In the example of FIG. 2, the preprocessing components c 2 and cm used in the calculation of n types of features are not used in the calculation of k types of features. The setting of such feature amount calculation is performed in S5.
  • the real-time server 40 inputs k types of features received from the preprocessing server 30 into the applied learning model and performs fraud detection (S7).
  • S7 fraud detection
  • the real-time server 40 acquires an output indicating that the user is an unauthorized user from the learning model
  • the real-time server 40 requests the user for additional authentication or restricts the provision of the service.
  • the behavior of a malicious third party changes daily, so the type of feature amount that has a large effect on the learning model may change. For example, even if the important feature amount for fraud detection at a certain time is "distance from the average access location", if the behavior of a malicious third party changes, the important feature amount for fraud detection will be changed. , May change to "Elapsed time since last access”. In this case, the old learning model cannot respond to changes in behavior and cannot detect user fraud. Therefore, the feature amount of "distance from the average access location" should not be learned by the learning model. Instead, it is preferable to learn the feature amount of "elapsed time since the last access”.
  • the learning model application system S periodically evaluates the influence of the feature amount on the learning model and reselects the feature amount to be trained by the learning model.
  • the background server 20 changes the setting of the preprocessing server 30 so as to calculate the latest feature amount.
  • the preprocessing components c 1 , c 2 , and c 5 are required to calculate the features of k 1 type selected at a certain time t 1.
  • setting of the pre-processing server 30 in time t 1 is pretreated by using the components c 1, c 2, c 5 , is set to calculate a k 1 types of features.
  • k 1 type of features calculated using the preprocessing components c 1 , c 2 , and c 5 are input.
  • the learning model application system S of the present embodiment responds to the change in behavior by learning the learning model by selecting the feature amount corresponding to the change in the behavior of a malicious third party. I try to do it. Further, the learning model application system S applies the learned learning model and sets it so that the feature amount required for the latest learning model can be calculated so that the learning model can be applied quickly. There is. Hereinafter, the details of this technique will be described.
  • FIG. 3 is a functional block diagram showing an example of the functions realized by the learning model application system S.
  • the functions realized by each of the database server 10, the background server 20, the preprocessing server 30, and the real-time server 40 will be described.
  • the data storage unit 100 is realized in the database server 10.
  • the data storage unit 100 is mainly realized by the storage unit 12.
  • the data storage unit 100 stores data necessary for learning.
  • the behavior database DB will be described as an example of the data stored in the data storage unit 100.
  • FIG. 4 is a diagram showing an example of data storage in the behavior database DB.
  • the action database DB is a database in which the history of actions performed in the past is accumulated.
  • behavior data generated in the past and a fraud flag indicating whether or not the user is a fraudulent user are stored in association with each other.
  • No shown in FIG. 4 is a record number that identifies each record in the action database DB.
  • the data in the database is uniquely identified by the record number.
  • the fraud flag may not be stored in the behavior database DB.
  • the invalid flag may be added when the teacher data set DS1 for evaluation, which will be described later, is created.
  • Arbitrary information may be stored in the behavior data, for example, a user ID, a user name, an IP address, a URL of an accessed website, an access location, an access date and time, a payment amount, a payment date and time, and the like are stored.
  • the behavior data may store these histories.
  • one behavior data is statistical such as the distance from the average access location of the user, the elapsed time since the user's last access, or the access frequency of the user.
  • Features can be calculated.
  • these statistical features are calculated by the plurality of behavior data.
  • the information included in the behavior data is not limited to these, and may include other information such as input contents from the operation unit 64.
  • the user ID is information that uniquely identifies the user.
  • the user name is the name entered by the user at the time of registration.
  • the IP address is the IP address of the user terminal 60 used when the user accesses the service providing server 50.
  • the access location is information about the location of the user terminal 60 used when the user accesses the service providing server 50. The access location is estimated using IP address, GPS information (latitude / longitude information or coordinate information), radio base station information, access point information, and the like.
  • the access date and time is the date and time when the user accesses the service providing server 50.
  • the payment amount is the payment amount of the user, for example, the amount when using a paid service or purchasing a product.
  • the settlement date and time is the date and time when the settlement was made, for example, the date and time when the service was used or the date and time when the product was purchased.
  • the fraud flag is information indicating whether or not the user is a fraudulent user. If the rogue flag has a first value (on), it means that it is a rogue user, and if the rogue flag has a second value (off), it means that it is a legitimate user (not a rogue user). To do.
  • the value of the invalid flag is information that is the correct answer for the learning model, and is specified by the administrator, for example. The administrator may input the value of the invalid flag for all the behavior data, or may browse the judgment result of the learning model and correct only the incorrect value.
  • the database server 10 acquires behavior data from the real-time server 40 or the service providing server 50, issues a new record number, and stores it in the behavior database DB.
  • the administrator browses the contents of the behavior data stored in the behavior database DB and specifies the value of the invalid flag.
  • the database server 10 acquires the behavior data and stores it in the behavior database DB together with the fraud flag specified by the administrator.
  • the contents of the action database DB are provided to the background server 20.
  • a data storage unit 200 As shown in FIG. 3, in the background server 20, a data storage unit 200, a selection unit 201, an application unit 202, a setting unit 203, and a notification unit 204 are realized. Each process of the selection unit 201, the application unit 202, and the setting unit 203 is executed as a background process different from the process of the estimation unit 401 in the real-time server 40.
  • the background process is a process executed on a computer different from the computer to which the learning model M2 for production is applied. That is, background processing and real-time processing are executed on different computers.
  • the background processing may be executed on the same computer as the real-time processing, but in this case, the real-time processing is executed with priority over the background processing. For example, the background processing is executed at a time zone in which the frequency of real-time processing is relatively low.
  • the data storage unit 200 is mainly realized by the storage unit 22.
  • the data storage unit 200 stores data necessary for selecting a feature amount and applying the learning model.
  • a learning model M1 for evaluation a teacher data set DS1 for evaluation, a learning model M2 for production, and a teacher data set DS2 for production will be described. ..
  • the learning model M1 for evaluation is a model used for evaluating each of the n types of features.
  • the learning model M1 for evaluation is a model used to select k types of features having a relatively large influence from n types of features.
  • the learning model M1 for evaluation is used only for selecting the feature amount, and therefore is not applied to the real-time server 40.
  • the learning model is not used for evaluating the influence of the feature amount as in Filter-Method, the learning model M1 for evaluation is not stored in the data storage unit 200.
  • the data storage unit 200 stores the program (algorithm) and parameters of the learning model M1 for evaluation.
  • a teacher data set DS1 for evaluation is trained in the learning model M1 for evaluation, and for example, the parameters of the learning model M1 for evaluation are adjusted by the teacher data set DS1 for evaluation.
  • a known method can be used, for example, a neural network learning method can be used.
  • the evaluation learning model M1 is trained so that the relationship between the input and output of the evaluation teacher data described later can be obtained.
  • FIG. 5 is a diagram showing a data storage example of the teacher data set DS1 for evaluation.
  • the evaluation teacher data set DS1 stores teacher data to be trained by the evaluation learning model M1.
  • the number of teacher data may be arbitrary, for example, it may be about ten to several hundred, or it may be 1,000 or more.
  • the individual teacher data stored in the evaluation teacher data set DS1 is described as the evaluation teacher data.
  • the teacher data for evaluation is an individual record of FIG. 5, and the teacher data set DS1 for evaluation is a collection of teacher data for evaluation.
  • the evaluation teacher data shows the relationship between the input and the output in the evaluation learning model M1.
  • the teacher data for evaluation shows the relationship between all n types of feature quantities and the fraudulent flag.
  • the teacher data for evaluation is created for each behavior data stored in the behavior database DB. Therefore, there is a one-to-one correspondence between the behavior data stored in the behavior database DB and the teacher data stored in the teacher data set DS1 for evaluation.
  • n types of features are calculated from the behavior data whose "No” is “1” in the behavior database DB of FIG. 4, and as the features of the teacher data whose "No” is “1” in the evaluation database of FIG. It is stored.
  • the fraud flag stored in the behavior data is stored as it is as a fraud flag in the teacher data.
  • the teacher data for evaluation showing the relationship between the n types of features and the fraudulent flag is created for the behavior data in the latest fixed period.
  • teacher data for evaluation is created for the behavior data in the latest fixed period in the behavior database DB
  • teacher data for evaluation will be described for all the behavior data in the behavior database DB. May be created.
  • teacher data for evaluation may be created only for a part of behavior data randomly selected from the behavior database DB, or evaluation is performed only for behavior data indicating the behavior of a specific user. Teacher data for may be created.
  • the production learning model M2 is a learning model learned by k types of features selected by the selection unit 201.
  • the production learning model M2 is a learning model that will be applied to the real-time server 40 from now on, or a learning model that has already been applied to the real-time server 40.
  • the production learning model M2 can be said to be the latest learning model.
  • the data storage unit 200 stores the program (algorithm) and parameters of the learning model M2 for production.
  • the production teacher data set DS2 is trained.
  • the parameters of the production learning model M2 are adjusted by the production teacher data set DS2.
  • a known method can be used, for example, a neural network learning method can be used.
  • the production learning model M2 is trained so that the relationship between the input and output of the production teacher data, which will be described later, can be obtained.
  • FIG. 6 is a diagram showing a data storage example of the teacher data set DS2 for production.
  • the production teacher data set DS2 stores teacher data to be trained by the production learning model M2.
  • the number of teacher data may be arbitrary, for example, it may be about ten to several hundred, or it may be 1,000 or more.
  • each record stored in the production teacher data set DS2 is described as production teacher data.
  • the production teacher data is the individual records of FIG. 6, and the production teacher data set DS2 is a collection of production teacher data.
  • the production teacher data shows the relationship between the input and the output in the production learning model M2.
  • the teacher data for production shows the relationship between k types of feature quantities and fraudulent flags.
  • the production teacher data is created for each evaluation teacher data stored in the evaluation teacher data set DS1. Therefore, there is a one-to-one correspondence between the teacher data for production and the teacher data for evaluation.
  • k types of features are stored as the features of the production teacher data.
  • the fraud flag stored in the evaluation teacher data is stored as it is as the fraud flag of the production teacher data. In this way, for all the teacher data stored in the evaluation teacher data set DS1, the production teacher data showing the relationship between the k types of features and the invalid flag is created.
  • production teacher data may be created.
  • production teacher data may be created based on behavioral data not included in the evaluation teacher data set DS1. For example, even if k types of feature quantities are selected based on dozens of evaluation teacher data, and hundreds to thousands of behavioral data are used to create production evaluation data. Good.
  • the selection unit 201 is mainly realized by the control unit 21.
  • the selection unit 201 selects at least one of the plurality of features based on the influence of each feature in the learning model.
  • the selection unit 201 evaluates the influence of each feature amount based on the learning model M1 for evaluation.
  • the effect of the feature amount is the effect on the output of the learning model.
  • the influence of the feature quantity can be said to be the degree of attention of the learning model, the importance in the output of the learning model, or the basis for the learning model to determine the output content.
  • the influence of the feature amount is indicated by the degree of influence calculated by a known feature amount selection method such as Permutation Impact or Gini Impact.
  • the degree of influence is indicated by a numerical value
  • the influence of the feature amount may be indicated by other information such as characters.
  • the larger the numerical value indicated by the degree of influence the greater the influence.
  • the degree of influence of the feature amount is calculated by calculating how much the output is affected when the value of the feature amount is changed. The greater the impact on the output, the greater the numerical value indicated by the degree of impact.
  • the selection unit 201 can select an arbitrary number of feature quantities. For example, only one feature quantity may be selected, or a plurality of feature quantities may be selected. Further, the selection unit 201 may select all of the n types of features (in this case, the numerical value of n is the same as the numerical value of k), or selects only a part of the n types of features. It may be (in this case, the numerical value of k is smaller than the numerical value of n).
  • the selection unit 201 selects k types of features that have a relatively high influence on the learning model from among n types of features. For example, the selection unit 201 acquires the influence of each of the n types of features stored in the teacher data set DS1 for evaluation, and selects k types of features based on the acquired influence. For example, the selection unit 201 selects k types of features in descending order of influence. Further, for example, the selection unit 201 may select all the feature amounts having an influence degree equal to or higher than the threshold value. In this case, the number of features whose degree of influence is equal to or greater than the threshold value is the numerical value of k. Further, for example, the selection unit 201 may select a feature amount having a higher predetermined percentage of influence. In this case, the number of features with the highest predetermined percentage of influence is the numerical value of k.
  • the application unit 202 is mainly realized by the control unit 21.
  • the application unit 202 applies the trained learning model learned based on the feature amount selected by the selection unit 201.
  • the trained learning model is a model trained based on teacher data including k types of features selected by the selection unit 201.
  • the production learning model M2 corresponds to the learned learning model. Therefore, the portion described as the actual learning model M2 in the present embodiment can be read as the learned learning model.
  • the application is to replace the learning model. Therefore, the application can also be exported, switched, overwritten, or activated.
  • the production learning model M2 is applied to the real-time server 40. Therefore, the application unit 202 transfers the production learning model M2 in which the production teacher data set DS2 is learned to the real-time server 40. By transmitting, the learning model M2 for production is applied.
  • the setting unit 203 is mainly realized by the control unit 21.
  • the setting unit 203 makes settings related to the calculation of the feature amount input to the learning model M2 for production based on the feature amount selected by the selection unit 201.
  • the setting related to the calculation of the feature amount is to set whether or not to calculate the feature amount.
  • the setting for calculating the feature amount is to calculate the feature amount selected by the selection unit 201 and not to calculate the feature amount not selected by the selection unit 201.
  • the setting unit 203 is set to exclude feature quantities other than k types from the calculation target. Information for identifying whether or not to calculate each feature amount is shown in the calculation setting data D described later. Therefore, the setting unit 203 sets whether or not to calculate the feature amount by setting the information stored in the calculation setting data D.
  • setting unit 203 since the feature amount using the pre-processing components C m is calculated, setting unit 203, among a plurality of pre-processing components C m, used in the calculation of the selected feature amount by the selection unit 201 the preprocessing component C m to be set for use in the calculation of the characteristic amount input to the trained learning model.
  • Information indicating whether or not to use the pre-processing components C m is shown in the calculation setting data D which will be described later. Therefore, setting section 203, by setting the information stored in the calculation setting data D, and set the pre-processing components C m utilized.
  • the setting unit 203 sets the pre-processing component C m necessary for calculating the feature amount selected by the selection unit 201 as to be used, and sets the other pre-processing components C m as not to be used.
  • the notification unit 204 is mainly realized by the control unit 21. Since the learning model of the present embodiment is a model for detecting fraud in the website, the notification unit 204 notifies the website administrator of information regarding the feature amount selected by the selection unit 201.
  • the website administrator is the provider of the service, for example, the person on the business side, not the data scientist who analyzes the learning model. Any medium can be used for the notification, for example, e-mail, a message application, SNS, SMS, chat, an electronic bulletin board, or the like may be used.
  • the feature amount information is information indicating the content of the feature amount selected by the selection unit 201. For example, when the feature amount of "distance from the average access location" is selected, the notification unit 204 notifies that "distance from the average access location” is selected, and “previously”. When the feature amount of "elapsed time from access” is selected, the notification unit 204 notifies that "elapsed time since the previous access” is selected.
  • the website administrator changes the design of the website or changes the specifications when providing the service by looking at the contents of the notified features.
  • the data storage unit 300 is mainly realized by the storage unit 32.
  • the data storage unit 300 stores data necessary for calculating the feature amount.
  • the calculation setting data D and the preprocessing component Cm will be described as an example of the data stored in the data storage unit 300.
  • FIG. 3 there is shown a pre-processing component C m only one, in fact, m pieces of preprocessing component C m is stored.
  • Data storage unit 300 stores programs and calculation formulas contained in the pretreatment components C m.
  • FIG. 7 is a diagram showing a data storage example of the calculation setting data D.
  • the calculation setting data D stores the calculation method and the selection flag for each feature amount that can be calculated by the preprocessing server 30.
  • the calculation setting data D stores the calculation method and the selection flag for each of the n types of features.
  • a calculation method information for identifying the pre-processing components C m used in the calculation of the feature quantity is stored.
  • the pre-processing components C m so executes the preprocessing required for calculation of the feature quantity, as the calculation method, the calculation for calculating the feature quantity from the value outputted from the pre-processing component C m
  • the expression is stored.
  • the pre-processing component C m calculates the feature amount itself, the feature amount output from the pre-processing component C m may be acquired, so that the calculation formula is not particularly shown in the calculation setting data D.
  • the selection flag is information indicating whether or not it has been selected by the selection unit 201.
  • the selection flag is information indicating whether or not it is included in the k types of features. If the selection flag has the first value (on), it means that it has been selected by the selection unit 201, and if the selection flag has the second value (off), it means that it has not been selected by the selection unit 201. means.
  • the value of the selection flag is set by the setting unit 203 described later.
  • the input unit 301 is mainly realized by the control unit 31. Input unit 301, to the pre-processing components C m, and inputs data required for calculation of the feature quantity.
  • each behavior data is the same format
  • the input unit 301 for each pre-processing components C m, and inputs the data of the same format to each other.
  • the input unit 301 is input to the preprocessing component C m behavior data to be processed as is. Further, for example, in the case of processing the behavior data, the input unit 301, the same processing behavior data subjected to input to the pre-processing component C m.
  • Each preprocessing component C m based on the same type of data as the data input to the other pre-processing components C m, executes the calculation process.
  • the preprocessing component C m may execute calculation processing based on a calculation formula determined in advance, for example, aggregation processing, average value calculation processing, standard deviation calculation processing, probability distribution creation processing, or Others Perform statistical value calculation processing.
  • the pre-processing component C m calculates the feature amount itself, the pre-processing component C m executes the calculation process of the feature amount.
  • the calculation unit 302 is mainly realized by the control unit 31.
  • the calculation unit 302 calculates a plurality of features based on the learning data used in learning the learning model.
  • the learning data may be any data used for training the learning model, and may mean the teacher data itself or the data from which the teacher data is created.
  • the behavior data corresponds to the learning data. Therefore, the part described as the behavior data in the present embodiment can be read as the learning data.
  • the calculation unit 302 may calculate the feature amount based on a predetermined calculation formula. In the present embodiment, since the calculation method of the feature amount is defined in the calculation setting data D, the calculation unit 302 calculates the feature amount based on the calculation method shown in the calculation setting data D. In the present embodiment, since a plurality of preprocessing components C m are prepared, the calculation unit 302 calculates a plurality of feature quantities based on the plurality of preprocessing components C m.
  • the calculation unit 302 when the calculation unit 302 receives a calculation request from the background server 20, it calculates all of the n types of features. That is, the calculating unit 302, preprocessing component C m by using calculating a calculable characteristic amount brute force.
  • the calculation unit 302 when the calculation unit 302 receives a calculation request from the real-time server 40, it calculates k types of features and does not calculate other features. Since which feature amount should be calculated is shown in the calculation setting data D, the calculation unit 302 specifies the feature amount to be calculated with reference to the calculation setting data D, and calculates the specified feature amount. ..
  • the data storage unit 400 is mainly realized by the storage unit 42.
  • the data storage unit 400 stores the learning model M2 for production. Since the production learning model M2 stored in the data storage unit 400 is the same as the production learning model M2 stored in the data storage unit 200, the description thereof will be omitted. When a new production learning model M2 is applied by the application unit 203, the production learning model M2 stored in the data storage unit 400 is replaced.
  • the estimation unit 401 is mainly realized by the control unit 41.
  • the learning model of the present embodiment is a model for detecting fraud on the website, and the estimation unit 401 is performed by the learned learning model and the setting unit 203 when the user accesses the website. Estimate the user's fraud based on the settings.
  • the service providing server 50 generates behavior data of a user who has accessed a website and transmits it to the real-time server 40.
  • the estimation unit 401 requests the preprocessing server 30 to calculate the feature amount of the behavior data of the user who has accessed the website.
  • the estimation unit 401 inputs k types of feature quantities received from the preprocessing server 30 into the production learning model M2.
  • the production learning model M2 classifies the user as either an unauthorized user or a normal user based on the input feature amount.
  • the estimation unit 401 acquires the classification result output from the learning model M2 for production, and estimates the user's fraud.
  • FIG. 8 is a flow chart showing an example of background processing.
  • the background processing shown in FIG. 8 is executed by the control units 21 and 31 operating according to the programs stored in the storage units 22 and 32, respectively.
  • the process described below is an example of the process executed by the functional block shown in FIG.
  • the background processing may be executed at any timing, and may be executed when a predetermined date and time arrives, or when the accuracy of the current production learning model M2 deteriorates. It may be executed.
  • the background server 20 acquires the action data stored in the action database DB from the database server 10 (S100).
  • the background server 20 transmits a behavior data acquisition request to the database server 10.
  • the database server 10 receives the acquisition request, it acquires the behavior data of the latest predetermined period in the behavior database DB and transmits it to the background server 20.
  • the background server 20 transmits a feature amount calculation request to the preprocessing server 30 based on the action data acquired in S100 (S101).
  • the calculation request in S101 may be made by transmitting data in a predetermined format, and it is assumed that the behavior data acquired in S100 is included, for example.
  • processing server 30 Before processing server 30 receives the calculation request from the background server 20, for all the pre-processing components C m, and inputs each of the plurality of action data included in the calculation request (S102). In S102, the pre-processing server 30, for all the pre-processing component C m, since the input action data as it is, so that mutually behavior data of the same format is input to all of the pre-processing components C m.
  • Pretreatment server 30 a calculation method defined in the calculation setting data D, a value output from the pre-processing component C m, based on, to calculate all the characteristic quantity of n types (S103).
  • S103 before the processing server 30, for each feature quantity, by substituting the value output from the preprocessing component C m to a predetermined calculation formula to calculate the value of the characteristic quantity.
  • the pre-processing server 30 does not substitute the calculation formula and acquires the value output from the pre-processing component C m as it is as the feature amount. ..
  • the preprocessing server 30 transmits n types of features calculated in S103 to the background server 20 (S104).
  • the background server 20 When the background server 20 receives n types of features, it creates teacher data for evaluation and adds it to the teacher data set DS1 for evaluation (S105). In S105, the background server 20 creates teacher data in which n types of feature quantities received from the preprocessing server 30 are input and an invalid flag of behavior data is output.
  • the background server 20 determines whether or not n types of feature quantities have been acquired for all the behavior data acquired in S100 (S106). When it is determined that there is action data for which the feature amount has not been acquired yet (S106; N), the process returns to the process of S101, and the feature amount of the next action data is calculated.
  • the background server 20 trains the learning model M1 for evaluation based on the teacher data set DS1 for evaluation (S106; Y). S107). In S107, the background server 20 adjusts the parameters of the evaluation learning model M1 so that the input-output relationship indicated by the evaluation teacher data set DS1 can be obtained based on a known learning algorithm.
  • the background server 20 selects k types of features from n types of features based on the influence of each feature in the learning model M1 for evaluation (S108). In S108, the background server 20 acquires the influence of each of the n types of features, and selects k types of features in descending order of influence.
  • the background server 20 creates teacher data for production based on the k types of features selected in S108 (S109).
  • S109 the background server 20 inputs k types of feature amounts out of n types of feature amounts of the teacher data for each teacher data for evaluation, and outputs an invalid flag of the teacher data. Create data.
  • the background server 20 trains the production learning model M2 based on the production teacher data set DS2 (S110). In S110, the background server 20 adjusts the parameters of the production learning model M2 based on a known learning algorithm so that the input-output relationship indicated by the production teacher data set DS2 can be obtained.
  • the background server 20 applies the production learning model M2 to the real-time server 40 (S111).
  • the background server 20 transmits the production learning model M2 to the real-time server 40.
  • the real-time server 40 receives the production learning model M2
  • the real-time server 40 replaces the production learning model M2 that has been used up to that point with the newly received production learning model M2.
  • the background server 20 sets the preprocessing server 30 regarding the calculation of k types of features (S112), and this processing ends.
  • the background server 20 transmits a setting instruction including information for identifying each of the k types of features to the preprocessing server 30.
  • the preprocessing server 30 updates the value of the selection flag of the calculation setting data D.
  • FIG. 9 is a flow chart showing an example of real-time processing.
  • the real-time processing shown in FIG. 9 is executed by the control units 31, 41, 51, and 61 operating according to the programs stored in the storage units 32, 42, 52, and 62, respectively.
  • the process described below is an example of the process executed by the functional block shown in FIG.
  • the user terminal 60 accesses the website provided by the service providing server 50 (S200).
  • S200 when the user operates the operation unit 64 to input the URL of the website or specify the link containing the URL, the user terminal 60 accesses the website.
  • the user has already logged in to the service providing server 50, and the service providing server 50 can identify which user is accessing the service providing server 50.
  • the service provision process is executed between the service provision server 50 and the user terminal 60 (S201).
  • S201 news, moving images, and the like are provided to the user via the website according to the operation of the user.
  • the payment process is executed based on the payment information of the credit card or the like registered in advance in the service providing server 50.
  • the service providing server 50 receives the user's operation content or the like from the user terminal 60, the service providing server 50 records it as a user's action.
  • the service providing server 50 generates behavior data of a user who has accessed the website based on the processing result of S201, and transmits a behavior data analysis request to the real-time server 40 (S202).
  • the real-time server 40 When the real-time server 40 receives the analysis request, it transmits a feature amount calculation request to the preprocessing server 30 (S203).
  • the calculation request in S203 may be made by transmitting data in a predetermined format, and it is assumed that the action data received from the service providing server 50 is included, for example.
  • processing server 30 Before processing server 30 receives the calculation request from the real-time server 40, based on the calculated setting data D, for a given pre-processing components C m for calculating the k types of features, actions included in the calculation request Enter the data (S204).
  • the pre-processing server 30 to the preprocessing component C m for calculating the feature quantity of k kind, since the input action data as it is input to the preprocessing component C m behavior data of the same format with each other Will be done.
  • Pretreatment server 30 a calculation method defined in the calculation setting data D, a value output from the pre-processing component C m, based on, to calculate the k kinds of characteristic amounts (S205).
  • S205 before the processing server 30, for each feature quantity, by substituting the value output from the preprocessing component C m to a predetermined calculation formula to calculate the value of the characteristic quantity.
  • the pre-processing server 30 does not substitute the calculation formula and acquires the value output from the pre-processing component C m as it is as the feature amount. ..
  • the preprocessing server 30 transmits the k types of features calculated in S205 to the real-time server 40 (S206).
  • the background server 20 When the background server 20 receives the k types of feature quantities of the behavior data requested for calculation, it inputs them into the current learning model M2 for production and acquires the output from the learning model (S207). In S207, the background server 20 inputs k types of feature quantities as k-dimensional vectors into the production learning model M2. The production learning model M2 outputs a value indicating either an unauthorized user or a normal user based on the input k-dimensional vector.
  • the control unit 41 executes a predetermined process based on the output from the learning model M2 for production (S208), and the main process ends.
  • S208 when the output from the learning model M2 for production indicates an unauthorized user, the control unit 41 notifies the administrator to that effect or requests the user for additional authentication.
  • the service is not particularly limited.
  • the learning model application system S of the present embodiment at least one feature amount is selected and the production learning model M2 is applied based on the influence of each feature amount in the learning model, and the production learning model M2 is applied.
  • the learning model M2 for production can be quickly applied. For example, it is possible to save the trouble of having a data scientist analyze and set the feature amount, and to quickly respond to a change in the behavior of a malicious third party.
  • the features having a relatively small influence on the learning model are excluded from the learning target, the learning can be limited to the features having a relatively large influence on the learning model. As a result, the accuracy of the learning model can be improved.
  • the feature quantity having a relatively small influence on the learning model is not input to the learning model M2 for production, it can be excluded from the calculation target. As a result, it is not necessary to calculate unnecessary features, and the processing load of the preprocessing server 30 can be reduced. Further, the processing speed of the learning model can be increased by narrowing down the number of features input to the learning model.
  • learning model application system S among a plurality of pre-processing components C m, the pre-processing components C m used in the calculation of the selected feature quantity, the calculation of the feature quantity to be input to the trained learning model
  • the setting for calculating the required feature amount can be made accurately.
  • the unnecessary pre-processing components C m by setting so as not to execute the processing, prevents unnecessary process is performed, it is possible to reduce the processing load of the pre-processing server 30.
  • learning model application system S for each pre-processing components C m, by entering the data of the same form each other, it is possible to speed up the calculation of the feature amount. For example, for each pre-processing component C m, the format of the input data are different, it is necessary to execute a process for processing the data, learning model application system S, there is no need to perform such processing Therefore, the calculation of the feature amount can be speeded up.
  • the learning model application system S executes each of the feature quantity selection, the learning model application, and the feature quantity calculation setting as background processing without interfering with the real-time processing. Can be executed. As a result, for example, it is possible to create a learning model that matches the latest trends without stopping fraud detection executed in real-time processing, and improve the accuracy of real-time processing (accuracy of fraud detection).
  • the learning model application system S can prompt the administrator of the website to take measures by notifying the administrator of the information regarding the selected feature amount. For example, when the behavior of a malicious third party changes and the feature amount that has a large influence on the learning model changes, the content of the website can be changed or the service providing server can be changed by notifying the administrator of the change. It is possible to take measures such as changing the design of the program executed by 50.
  • FIG. 10 is a functional block diagram in a modified example. As shown in FIG. 10, in the modification described below, in addition to the functions described in the embodiment, the acquisition unit 205, the specific unit 206, the determination unit 207, and the additional unit 303 are realized.
  • a new preprocessing component for calculating a new feature amount may be added to the preprocessing server 30.
  • the preprocessing server 30 of the modification (1) includes the additional unit 303.
  • the additional unit 303 is mainly realized by the control unit 31.
  • the additional unit 303 adds a new preprocessing component for calculating a new feature quantity.
  • New feature quantity is a feature quantity can not be calculated in existing pre-processing components C m.
  • the new features are features that are not included in the n types of features.
  • New pre-processing component is created by the person who is responsible for fraud detection in the learning model application system S, is a component that performs different processing from existing pre-processing components C m.
  • the new preprocessing component may calculate the new feature amount itself, or may execute the aggregation process or the like necessary for calculating the new feature amount.
  • the additional unit 303 records a new preprocessing component in the data storage unit 300. Further, for example, the additional unit 303 sets the calculation setting data for calculating a new feature amount. The additional unit 303 stores a new feature amount calculation method in the calculation setting data.
  • the new preprocessing component and the new feature amount calculation method may be uploaded from the terminal or the like of the person in charge of fraud detection. Since the new feature amount is not input to the actual learning model M2 being applied, the selection flag is turned off.
  • the calculation unit 302 calculates a new feature amount based on the new preprocessing component.
  • the calculation of the feature amount itself is as described in the embodiment.
  • the calculation unit 302 calculates a new feature amount in the background processing.
  • the new feature amount calculated by the calculation unit 302 may be one type or a plurality of types. Assuming that the new features are p types (p: natural numbers), the background processing will calculate n + p types of features.
  • the setting unit 203 sets the new preprocessing component to be used in the calculation of the feature amount input to the learning model M2 for production.
  • the processing itself of the setting unit 203 is as described in the embodiment.
  • the setting unit 203 turns on the selection flag of the calculation setting data D when a new feature amount is selected by the selection unit 201. By doing so, the setting may be made.
  • the new preprocessing component when a new feature is selected, the new preprocessing component is set to be used in the calculation of the feature input to the trained learning model.
  • the accuracy of the learning model can be improved. For example, even if the behavior of a malicious third party changes and it becomes difficult to detect fraud with existing features, if you add a preprocessing component and set new feature calculation settings. , Since the magnitude of the influence is determined and selected by the background processing, a learning model corresponding to the change in behavior can be easily created.
  • the feature amount may be selected in consideration of not only the influence of the feature amount in the learning model but also the calculation time required for calculating the feature amount. For example, when there are many features having the same influence, the features with a short calculation time may be preferentially selected.
  • the background server 20 of the modification (2) includes the acquisition unit 205.
  • the acquisition unit 205 is mainly realized by the control unit 21.
  • the acquisition unit 205 acquires the calculation time of each feature amount.
  • the feature amount calculation time is the time from the start to the end of the feature amount calculation.
  • the acquisition unit 205 causes the preprocessing server 30 to measure the calculation time of each feature amount, and acquires the measurement result from the preprocessing server 30.
  • the preprocessing server 30 measures the calculation time of each feature amount by executing a timekeeping process using a real-time clock or the like. For example, pre-processing server 30 starts measuring when input action data before processing component C m. The preprocessing server 30 measures the time from the start of timing to the completion of the calculation of the feature amount for each feature amount, and transmits the calculation time of each feature amount to the background server 20.
  • the selection unit 201 of the plurality of feature amounts is based on the influence of each feature amount in the learning model and the calculation time of each feature amount. Select at least one. For example, the selection unit 201 calculates a score that comprehensively evaluates the influence and the calculation time in the learning model, and selects k types of features based on the score of each feature. The score may be calculated based on a predetermined formula. The greater the effect and the shorter the calculation time, the higher the score.
  • the selection unit 201 selects k types of features in descending order of score. Further, for example, the selection unit 201 may select all the feature amounts having a score equal to or higher than the threshold value. In this case, the number of features whose score is equal to or higher than the threshold value is the numerical value of k. Further, for example, the selection unit 201 may select a feature amount having a score of a higher predetermined percentage. In this case, the number of features whose score is the top predetermined percentage is the numerical value of k.
  • the method of selecting the feature amount by the selection unit 201 is not limited to the above example. For example, the selection unit 201 may acquire a predetermined number of features in ascending order of calculation time when a certain number of features having an influence degree equal to or higher than a threshold value in the learning model exist.
  • real-time processing is performed by selecting at least one of a plurality of features based on the influence of each feature on the learning model and the calculation time of each feature. It can be speeded up. It is also possible to reduce the processing load of the preprocessing server 30 in real-time processing.
  • the output result of the learning model may not be affected even if none of them is present. For example, there are a feature amount of "whether or not the distance from the average access place is less than 1 km" and a feature amount of "whether or not the distance from the average access place is less than 5 km". If so, the contents of these features are related to each other. Even if the influence of these two features seems to be large at first glance, in reality, it may be sufficient to select only one of the features related to each other. Therefore, in the modified example (3), only a part of the feature quantities related to each other is selected.
  • the background server 20 of the modification (3) includes the specific unit 206.
  • the specific unit 206 is mainly realized by the control unit 21.
  • the identification unit 206 identifies a combination of feature quantities related to each other from a plurality of feature quantities.
  • the features that are related to each other are that the contents indicated by the features are similar.
  • the features calculated using the same preprocessing component Cm can be said to be related features.
  • the specific unit 206 acquires not only the degree of influence for each feature amount but also the degree of influence for each combination of arbitrary feature amounts, and the feature amounts related to each other exist in the combinations having a relatively high degree of influence. Determine whether or not to do so.
  • the specific unit 206 treats an arbitrary feature amount as a missing value among combinations having a relatively high degree of influence, calculates the influence on the output, and sets the feature amounts having a small influence as a combination of feature amounts related to each other. Identify.
  • the selection unit 201 selects a part of the combinations. Assuming that there are q types of features (q: 2 or more natural numbers) related to each other, the selection unit 201 may select a number of features less than q from these q types of features. For example, the selection unit 201 selects a feature amount having a relatively high degree of influence from among q types of feature amounts. Further, for example, the selection unit 201 may randomly select a feature amount from q types of feature amounts.
  • a combination of feature quantities related to each other is specified from a plurality of feature quantities, and if a combination of feature quantities related to each other exists, a part of the combination is selected.
  • the feature amount to be calculated can be reduced, and the processing load of the preprocessing server 30 can be reduced.
  • the real-time processing may be hindered.
  • the processing speed of real-time processing is emphasized, the accuracy of fraud detection may decrease.
  • the feature quantity having a long calculation time may be treated as a missing value and the influence on the learning model may be evaluated.
  • the real-time processing if it took time to process a certain one pretreatment component C m, but may not be a fraud detection itself is timeout, the pre-processing components C m which took time It may be preferable in terms of fraud detection operation to interrupt the processing and use it as a missing value. Therefore, in this modification, the decrease in accuracy when the target feature amount is treated as a missing value is evaluated. That is, it is evaluated how much the accuracy is lowered when fraud detection is performed by regarding only the target feature amount as a missing value.
  • the background server 20 of the modification (4) includes the acquisition unit 205 and the determination unit 207.
  • the acquisition unit 205 is as described in the modified example (2).
  • the determination unit 207 is mainly realized by the control unit 21.
  • the determination unit 207 determines whether or not the calculation time of each feature amount is equal to or longer than a predetermined time.
  • the predetermined time may be any time that can be a threshold value, and may be, for example, about 0.5 seconds to several seconds, or about 10 seconds to 30 seconds. It is assumed that the numerical value of the predetermined time is recorded in advance in the data storage unit 200.
  • the selection unit 201 treats the feature amount as a missing value and evaluates the influence on the learning model. For example, the selection unit 201 considers that there is no feature amount whose calculation time is longer than a predetermined time, and evaluates the accuracy of the learning model. The selection unit 201 compares the accuracy when the feature amount is present and the accuracy when the feature amount is not present, and if the difference in accuracy is less than the threshold value, the selection unit 201 does not select the feature amount. On the other hand, if the difference in accuracy is equal to or greater than the threshold value, the selection unit 201 selects the feature amount.
  • the selection unit 201 can perform regular learning.
  • the prediction accuracy per case in the model and the prediction accuracy per case in the missing learning model are calculated, and the target feature quantity is determined by the timeout rate in the verification of the actual processing speed.
  • the prediction accuracy when input may be calculated.
  • the selection unit 201 sets the value of the target feature amount as a defect at regular intervals (for example, a constant multiple of the standard deviation).
  • the degree of influence on the prediction target is verified, the maximum or average error is calculated in the case of a defect, and the actual processing speed is calculated.
  • the prediction accuracy when the target feature amount is input may be calculated based on the timeout rate in the verification.
  • parameters may be assigned by Grid Search or the like for a combination of a plurality of feature quantities. For example, by including a missing value in the target of Grid Search, the decrease in accuracy caused by the missing value is correctly evaluated. In this respect, since the time required for the learning process increases in combination, it may be appropriately determined according to the resources of the background server 20, the calculation time, and the like.
  • the modification (4) when a feature amount having a calculation time of a predetermined time or longer exists, the feature amount is treated as a missing value and the influence on the learning model is evaluated, which hinders real-time processing. Such features with a long calculation time can be evaluated properly.
  • the format of data input to the pre-processing components C m may be different from each other.
  • programs and calculation formulas for calculating the feature quantity may be provided.
  • the learning model application system S can be applied when applying the newly created learning model, and is applicable to other situations. May be applied to.
  • the learning model application system S can be applied to situations other than the scene where user fraud is detected, and can also be applied when a learning model such as natural language processing, machine translation, sentence conversion, or chatbot is used. Is.
  • the learning model application system S may be applied to a scene where a fraudulent act when a user purchases a product on the Internet is detected.
  • the service providing server 50 provides the user with the website of the online shopping mall. It is assumed that the user has registered the use and registered the payment information such as the card number in the service providing server 50 in advance.
  • the payment information may include information such as the store ID of the store where the product was purchased, the store name, the product ID of the product, the product name, the quantity, the payment amount, and the card number.
  • the service providing server 50 generates behavior data including payment information of the user.
  • the learning model application system S calculates n types of features based on behavior data including payment information of the user, and selects k types of features that have a large influence on the learning model.
  • the learning model application system S may train and apply the selected k types of features to the learning model.
  • the learning model application system S may be used in a scene where a subject captured in image data is classified. Further, for example, the learning model application system S may be used in a scene where the weather is classified based on the temperature, humidity, or the like indicated by the weather data. Further, for example, the learning model application system S may be used on the screen for creating a summary of sentence data. In addition, the learning model application system S can be applied to the scene of classifying data having arbitrary contents.
  • the computer included in the learning model application system S is not limited to the example of FIG.
  • the learning model application system S may include at least one computer, and for example, background processing and real-time processing may be realized on the same computer.
  • the computer that calculates the features and the computer that creates the learning model may be the same.
  • the functions described with reference to FIGS. 3 and 10 may be realized by an arbitrary computer, each function may be realized by one computer, or each function may be realized by an arbitrary number of computers. It may be shared.
  • the data described in the embodiments and modifications may be stored by a computer outside the learning model application system S.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computer Hardware Design (AREA)
  • Medical Informatics (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Feedback Control In General (AREA)
  • Electrically Operated Instructional Devices (AREA)

Abstract

学習モデル適用システム(S)の計算手段(302)は、学習モデルの学習で用いられる学習用データに基づいて、複数の特徴量を計算する。選択手段(201)は、学習モデルにおける各特徴量の影響に基づいて、複数の特徴量のうちの少なくとも1つを選択する。適用手段(202)は、選択手段(201)により選択された特徴量に基づいて学習された学習済みの学習モデルを適用する。設定手段(203)は、選択手段(201)により選択された特徴量に基づいて、前記学習済みの学習モデルに入力される特徴量の計算に関する設定を行う。

Description

学習モデル適用システム、学習モデル適用方法、及びプログラム
 本発明は、学習モデル適用システム、学習モデル適用方法、及びプログラムに関する。
 従来、機械学習分野において、データの特徴量を計算して学習モデルに学習させる技術が知られている。例えば、特許文献1には、ウェブサイトにアクセスしたユーザの行動に関する行動データから抽出した特徴量を入力とし、当該ユーザの正当性の判定結果を出力とする教師データを学習モデルに学習させ、不正ユーザを検知する学習モデルを作成するシステムが記載されている。
国際公開第2019/049210号公報
 しかしながら、従来の技術では、悪意のある第三者の行動が変化したとしても、学習モデルに入力される特徴量の計算に関する設定は変わらないので、行動の変化に対応することができず、学習モデルの精度が低下する可能性がある。この点、データサイエンティストに行動の変化を分析させ、特徴量の計算に関する設定を変えることも考えられる。しかし、この場合には、データサイエンティストによる分析や設定の反映に非常に手間がかかるので、学習モデルの適用が遅れることが予想される。
 本発明は上記課題に鑑みてなされたものであって、その目的は、学習モデルを迅速に適用することが可能な学習モデル適用システム、学習モデル適用方法、及びプログラムを提供することである。
 上記課題を解決するために、本発明に係る学習モデル適用システムは、学習モデルの学習で用いられる学習用データに基づいて、複数の特徴量を計算する計算手段と、前記学習モデルにおける各特徴量の影響に基づいて、前記複数の特徴量のうちの少なくとも1つを選択する選択手段と、前記選択手段により選択された特徴量に基づいて学習された学習済みの学習モデルを適用する適用手段と、前記選択手段により選択された特徴量に基づいて、前記学習済みの学習モデルに入力される特徴量の計算に関する設定を行う設定手段と、を含むことを特徴とする。
 本発明に係る学習モデル適用方法は、学習モデルの学習で用いられる学習用データに基づいて、複数の特徴量を計算する計算ステップと、前記学習モデルにおける各特徴量の影響に基づいて、前記複数の特徴量のうちの少なくとも1つを選択する選択ステップと、前記選択ステップにより選択された特徴量に基づいて学習された学習済みの学習モデルを適用する適用ステップと、前記選択ステップにより選択された特徴量に基づいて、前記学習済みの学習モデルに入力される特徴量の計算に関する設定を行う設定ステップと、を含むことを特徴とする。
 本発明に係るプログラムは、学習モデルの学習で用いられる学習用データに基づいて、複数の特徴量を計算する計算手段、前記学習モデルにおける各特徴量の影響に基づいて、前記複数の特徴量のうちの少なくとも1つを選択する選択手段、前記選択手段により選択された特徴量に基づいて学習された学習済みの学習モデルを適用する適用手段、前記選択手段により選択された特徴量に基づいて、前記学習済みの学習モデルに入力される特徴量の計算に関する設定を行う設定手段、としてコンピュータを機能させる。
 本発明の一態様によれば、前記計算手段は、複数の前処理コンポーネントに基づいて、前記複数の特徴量を計算し、前記設定手段は、前記複数の前処理コンポーネントのうち、前記選択手段により選択された特徴量の計算で用いられる前処理コンポーネントを、前記学習済みの学習モデルに入力される特徴量の計算で用いるように設定する、ことを特徴とする。
 本発明の一態様によれば、前記学習モデル適用システムは、各前処理コンポーネントに対し、互いに同じ形式のデータを入力する入力手段を更に含み、各前処理コンポーネントは、他の前処理コンポーネントに入力されるデータと同じ形式のデータに基づいて、計算処理を実行する、ことを特徴とする。
 本発明の一態様によれば、前記学習モデル適用システムは、新たな特徴量を計算するための新たな前処理コンポーネントを追加する追加手段を更に含み、前記計算手段は、前記新たな前処理コンポーネントに基づいて、前記新たな特徴量を計算し、前記設定手段は、前記選択手段により前記新たな特徴量が選択された場合には、前記新たな前処理コンポーネントを、前記学習済みの学習モデルに入力される特徴量の計算で用いるように設定する、ことを特徴とする。
 本発明の一態様によれば、前記学習モデル適用システムは、各特徴量の計算時間を取得する取得手段を更に含み、前記選択手段は、前記学習モデルにおける各特徴量の影響と、各特徴量の計算時間と、に基づいて、前記複数の特徴量のうちの少なくとも1つを選択する、ことを特徴とする。
 本発明の一態様によれば、前記学習モデル適用システムは、前記複数の特徴量の中から、互いに関連する特徴量の組み合わせを特定する特定手段を更に含み、前記選択手段は、前記互いに関連する特徴量の組み合わせが存在する場合には、当該組み合わせのうちの一部を選択する、ことを特徴とする。
 本発明の一態様によれば、前記学習モデル適用システムは、各特徴量の計算時間を取得する取得手段と、各特徴量の計算時間が所定時間以上であるか否かを判定する判定手段と、を更に含み、前記選択手段は、計算時間が所定時間以上の特徴量が存在する場合には、当該特徴量を欠損値として扱い、前記学習モデルにおける影響を評価する、ことを特徴とする。
 本発明の一態様によれば、前記学習モデルは、ウェブサイトにおける不正を検知するためのモデルであり、前記学習モデル適用システムは、前記ウェブサイトにユーザがアクセスした場合に、前記学習済みの学習モデルと、前記設定手段により行われた設定と、に基づいて、当該ユーザの不正を推定する推定手段を更に含み、前記選択手段、前記適用手段、及び前記設定手段の各々の処理は、前記推定手段の処理とは異なるバックグラウンド処理として実行される、ことを特徴とする。
 本発明の一態様によれば、前記学習モデルは、ウェブサイトにおける不正を検知するためのモデルであり、前記学習モデル適用システムは、前記ウェブサイトの管理者に対し、前記選択手段により選択された特徴量に関する情報を通知する通知手段、を更に含むことを特徴とする。
 本発明によれば、学習モデルを迅速に適用することが可能となる。
学習モデル適用システムの全体構成を示す図である。 学習モデル適用システムの概要を示す図である。 学習モデル適用システムで実現される機能の一例を示す機能ブロック図である。 行動データベースのデータ格納例を示す図である。 評価用の教師データセットのデータ格納例を示す図である。 本番用の教師データセットのデータ格納例を示す図である。 計算設定データのデータ格納例を示す図である。 バックグラウンド処理の一例を示すフロー図である。 リアルタイム処理の一例を示すフロー図である。 変形例における機能ブロック図である。
[1.学習モデル適用システムの全体構成]
 以下、本発明の実施形態に係る学習モデル適用システムの例を説明する。図1は、学習モデル適用システムの全体構成を示す図である。図1に示すように、学習モデル適用システムSは、データベースサーバ10、バックグラウンドサーバ20、前処理サーバ30、リアルタイムサーバ40、サービス提供サーバ50、及びユーザ端末60を含み、これらは、インターネットなどのネットワークNに接続可能である。
 データベースサーバ10は、種々のデータを記憶するサーバコンピュータである。データベースサーバ10は、制御部11、記憶部12、及び通信部13を含む。制御部11は、少なくとも1つのプロセッサを含む。制御部11は、記憶部12に記憶されたプログラムやデータに従って処理を実行する。記憶部12は、主記憶部及び補助記憶部を含む。例えば、主記憶部はRAMなどの揮発性メモリであり、補助記憶部は、ROM、EEPROM、フラッシュメモリ、又はハードディスクなどの不揮発性メモリである。通信部13は、有線通信又は無線通信用の通信インタフェースであり、ネットワークNを介してデータ通信を行う。
 バックグラウンドサーバ20は、後述する特徴量を選択したり学習モデルを学習させたりするサーバコンピュータである。バックグラウンドサーバ20は、制御部21、記憶部22、及び通信部23を含む。制御部21、記憶部22、及び通信部23の物理的構成は、それぞれ制御部11、記憶部12、及び通信部13と同様であってよい。
 前処理サーバ30は、後述する特徴量を計算するサーバコンピュータである。前処理サーバ30は、制御部31、記憶部32、及び通信部33を含む。制御部31、記憶部32、及び通信部33の物理的構成は、それぞれ制御部11、記憶部12、及び通信部13と同様であってよい。
 リアルタイムサーバ40は、後述する学習モデルが適用されるサーバコンピュータである。リアルタイムサーバ40は、制御部41、記憶部42、及び通信部43を含む。制御部41、記憶部42、及び通信部43の物理的構成は、それぞれ制御部11、記憶部12、及び通信部13と同様であってよい。
 サービス提供サーバ50は、ウェブサイトを介して任意のサービスを提供するサーバコンピュータである。サービス提供サーバ50は、制御部51、記憶部52、及び通信部53を含む。制御部51、記憶部52、及び通信部53の物理的構成は、それぞれ制御部11、記憶部12、及び通信部13と同様であってよい。
 ユーザ端末60は、ユーザが操作するコンピュータである。例えば、ユーザ端末60は、携帯電話機(スマートフォンを含む)、携帯情報端末(タブレット型コンピュータを含む)、又はパーソナルコンピュータ等である。本実施形態では、ユーザ端末60は、制御部61、記憶部62、通信部63、操作部64、及び表示部65を含む。制御部61、記憶部62、及び通信部63の物理的構成は、それぞれ制御部11、記憶部12、及び通信部13と同様であってよい。
 操作部64は、入力デバイスであり、例えば、タッチパネルやマウス等のポインティングデバイス、キーボード、又はボタン等である。操作部64は、ユーザによる操作内容を制御部61に伝達する。表示部65は、例えば、液晶表示部又は有機EL表示部等である。表示部65は、制御部61の指示に従って画像を表示する。
 なお、記憶部12,22,32,42,52,62に記憶されるものとして説明するプログラム及びデータは、ネットワークNを介して供給されるようにしてもよい。また、上記説明した各コンピュータのハードウェア構成は、上記の例に限られず、種々のハードウェアを適用可能である。例えば、コンピュータ読み取り可能な情報記憶媒体を読み取る読取部(例えば、光ディスクドライブやメモリカードスロット)や外部機器とデータの入出力をするための入出力部(例えば、USBポート)が含まれていてもよい。例えば、情報記憶媒体に記憶されたプログラムやデータが読取部や入出力部を介して、各コンピュータに供給されるようにしてもよい。
[2.学習モデル適用システムの概要]
 図2は、学習モデル適用システムSの概要を示す図である。本実施形態では、サービス提供サーバ50が、ニュースや動画などのウェブサイトをユーザに提供し、ウェブサイトにアクセスしたユーザの行動を分析する場面を例に挙げて、学習モデル適用システムSの処理を説明する。例えば、学習モデル適用システムSは、ユーザがウェブサイトにアクセスした場合に行動データを生成し、学習モデルを利用して行動データを分析し、正常ユーザ又は不正ユーザの何れかに分類する。
 行動データは、ユーザの行動に関するデータである。行動データは、少なくとも1つの項目を含み、ユーザの行動内容が格納される。ウェブサイトにアクセスしたユーザ全員について行動データが生成されてもよいし、一部のユーザについてのみ行動データが生成されてもよい。行動データには、ある一時点における行動が示されてもよいし、一定の期間における行動の履歴が示されてもよい。例えば、行動データは、ウェブサイトにアクセスした時間、ウェブサイトにアクセスしたときのユーザの場所、又はウェブサイトにおけるユーザの操作内容などを示す。
 正常ユーザは、正常な行動をしたユーザであり、不正ユーザではないユーザである。不正ユーザは、不正な行動をしたユーザであり、正常ユーザではないユーザである。不正な行動とは、サービス提供者又は他のユーザなどに不利益となる行動であり、例えば、ハッキング、クラッキング、悪意のある投稿、意図的に多量のアクセスを行うこと、他のユーザへの迷惑行為、サービス規約に反する行為、又は法律違反となる行為などである。
 例えば、正常ユーザに対するサービスは制限されず、不正ユーザに対するサービスは制限される。ただし、不正ユーザに分類された場合に、直ちにサービスが制限される必要はなく、管理者の審査が行われた後にサービスが制限されてもよいし、ユーザに対する追加の認証が行われた後にサービスが制限されてもよい。
 学習モデルは、機械学習を利用したモデルである。学習モデルは、学習器、分類器、又は分類学習器と呼ばれることもある。本実施形態では、不正ユーザであるか否かを分類するための学習モデルが用いられる。機械学習自体は、公知の種々の手法を利用可能であり、例えば、ニューラルネットワーク、強化学習、又は深層学習といった手法を利用可能である。機械学習は、教師有り学習に限られず、半教師有り学習が用いられてもよいし、教師なし学習に基づく学習モデルが用いられてもよい。
 学習モデルには、行動データがそのまま入力されてもよいが、本実施形態では、行動データに基づいて計算された複数の特徴量が学習モデルに入力される。学習モデルは、入力された複数の特徴量に基づいて、ユーザを正常ユーザ又は不正ユーザの何れかに分類する。
 特徴量は、学習モデルの処理対象となるデータの特徴を示す情報である。本実施形態では、行動データが処理対象となるので、特徴量は、ユーザの行動の特徴を示す情報ということができる。特徴量は、数値で示されてもよいし、文字などの他の情報で示されてもよい。特徴量は、行動データから計算可能な特徴であればよく、例えば、ユーザの平均的なアクセス場所からの距離、ユーザの前回のアクセスからの経過時間、ユーザのアクセス頻度、又はユーザによるサービスの利用状況(例えば、決済金額や決済頻度)などである。他にも例えば、特徴量は、国外からのアクセスであるか否か、又は、サービスに利用登録してから一定期間が経過しているか否か、といったような2値で表現される情報であってもよい。
 図2に示すように、前処理サーバ30には、特徴量の計算で用いられるm個(m:自然数)の前処理コンポーネントCが用意されている。前処理コンポーネントCは、バックグラウンドサーバ20だけでなく、リアルタイムサーバ40でも用いられる。本実施形態では、リアルタイムサーバ40の方が、バックグラウンドサーバ20よりも迅速な処理が求められるので、リアルタイムサーバ40の処理では間に合わないような特徴量計算は行われないものとする。即ち、リアルタイムサーバ40の処理の限界は、バックグラウンドサーバ20の処理の限界となっている。
 本実施形態では、m個の前処理コンポーネントCで計算可能な特徴量をn種類(n:自然数)とする。n種類の特徴量の全てが学習で用いられてもよいが、n種類の特徴量の中には、学習モデルにおける影響が小さい(不正検知の際に重要ではない)特徴量も存在する。このような特徴量が学習されると、学習モデルの精度が低下したり、処理に時間を要したりすることがある。そこで、本実施形態では、影響が相対的に大きいk種類(k:n以下の自然数)の特徴量が選択され、学習モデルに学習される。
 本実施形態では、データベースサーバ10は、過去にウェブサイトにアクセスした種々のユーザの行動データの履歴と、当該ユーザが不正ユーザであるか否かの診断結果と、を蓄積している。バックグラウンドサーバ20は、リアルタイムサーバ40に適用する学習モデルを作成するために、データベースサーバ10から、直近の一定期間の行動データを取得する。バックグラウンドサーバ20は、データベースサーバ10から取得した行動データを前処理サーバ30に送信する。バックグラウンドサーバ20は、前処理サーバ30に総当たり的に特徴量を計算させ、n種類の特徴量を取得する(S1)。
 バックグラウンドサーバ20は、学習モデルにおける特徴量の影響を評価し、n種類の特徴量の中からk種類の特徴量を選択する(S2)。特徴量の選択自体は、公知の特徴量選択手法を適用可能であり、例えば、学習モデルを使用せずにデータセットのみで完結するFilter-Method、学習モデルを使用して最適な特徴量の組み合わせを探索するWrapper-Method、又は、学習時に特徴量選択を行うEmbedded-Methodを利用可能である。
 本実施形態では、n種類の特徴量の各々の影響度(重要度)に基づいて、k種類の特徴量が選択される場合について説明する。特徴量の影響度は、公知の手法(例えば、評価対象の特徴量のみを変化させたときに、予測された結果に対してどれだけの違いをもたらすかを評価する手法、いわゆるPermutation Importance)を利用する場合を例に挙げる。この手法によれば、特徴量ごとに、学習モデルにおける影響度を示す数値が出力される。例えば、バックグラウンドサーバ20は、n種類の特徴量の中から、影響度の高い順にk種類の特徴量を選択する。
 バックグラウンドサーバ20は、選択されたk種類の特徴量に基づいて学習モデルを学習させる(S3)。n種類の特徴量のうち、選択されたk種類の特徴量以外の特徴量は、学習モデルにおける影響が小さい。このため、本実施形態では、影響が小さい特徴量は、学習で用いられないものとするが、影響が小さい特徴量は、全く学習で用いられないのではなく、学習係数を下げる等して多少は学習させてもよい。
 バックグラウンドサーバ20は、リアルタイムサーバ40に対し、学習済みの学習モデルを送信して適用する(S4)。学習済みの学習モデルには、k種類の特徴量が入力されるので、不正検知の際には、n種類の特徴の全てを計算する必要はない。このため、バックグラウンドサーバ20は、前処理サーバ30に対し、n種類の全ての特徴量を計算するのではなく、k種類の特徴量だけを計算するように、前処理サーバ30に対し、特徴量の計算に関する設定を行う(S5)。学習モデルの適用と特徴量の計算に関する設定は、同時に行われてもよいし、何れか一方が先に行われてもよい。
 以上の処理により、リアルタイムサーバ40は、適用された学習モデルを利用して不正検知をすることができるようになる。例えば、ユーザがサービス提供サーバ50のウェブサイトにアクセスすると、サービス提供サーバ50は、ウェブサイトにおけるユーザの行動に基づいて行動データを生成する。リアルタイムサーバ40は、生成された行動データを収集して前処理サーバ30に送信する。リアルタイムサーバ40は、前処理サーバ30にk種類の特徴量を計算させて取得する(S6)。前処理サーバ30は、バックグラウンドサーバ20から計算を依頼された場合とは異なり、n種類の特徴量の全てを計算せず、k種類の特徴だけを計算することになる。図2の例では、n種類の特徴量の計算で利用された前処理コンポーネントcやcは、k種類の特徴量の計算では利用されない。このような特徴量計算の設定は、S5において行われている。
 リアルタイムサーバ40は、適用された学習モデルに対し、前処理サーバ30から受信したk種類の特徴量を入力して不正検知を行う(S7)。リアルタイムサーバ40は、学習モデルから不正ユーザである旨の出力を取得した場合には、ユーザに対して追加認証を求めたり、サービスの提供を制限したりする。
 上記のような不正検知では、悪意のある第三者の行動は日々変化するので、学習モデルにおける影響が大きい特徴量の種類が変わることがある。例えば、ある時期における不正検知で重要な特徴量が、「平均的なアクセス場所からの距離」であったとしても、悪意のある第三者の行動が変わると、不正検知で重要な特徴量が、「前回のアクセスからの経過時間」に変わることがある。この場合、古い学習モデルでは行動の変化に対応することができず、ユーザの不正を検知できなくなるので、「平均的なアクセス場所からの距離」の特徴量は、学習モデルに学習させないようにして、その代わりに、「前回のアクセスからの経過時間」の特徴量を学習させる方が好ましい。
 そこで、学習モデル適用システムSは、定期的に、学習モデルにおける特徴量の影響を評価し、学習モデルに学習させる特徴量を選択しなおすようにしている。バックグラウンドサーバ20が選択する特徴量の種類が変わった場合には、それに応じて前処理サーバ30の特徴量計算の設定も変える必要がある。このため、バックグラウンドサーバ20は、最新の特徴量を計算するように、前処理サーバ30の設定を変更することになる。
 例えば、ある時期tにおいて選択されたk種類の特徴量を計算するために、前処理コンポーネントc,c,cが必要だったとする。この場合、時期tにおける前処理サーバ30の設定は、前処理コンポーネントc,c,cを利用して、k種類の特徴量を計算するように設定される。時期tにおいて適用される学習モデルには、前処理コンポーネントc,c,cを利用して計算されたk種類の特徴量が入力される。
 その後の時期tにおいて、悪意のある第三者の行動が変化し、k種類の特徴量の影響が大きくなったとする。この場合、k種類の特徴量の組み合わせと、k種類の特徴量の組み合わせと、が完全一致せず、k種類の特徴量の計算のために、前処理コンポーネントc,c,cが必要だったとする。時期tにおける前処理サーバ30の設定は、前処理コンポーネントc,c,cを利用して、k種類の特徴量を計算するように設定が変更される。時期tにおいて適用される学習モデルには、前処理コンポーネントc,c,cを利用して計算されたk種類の特徴量が入力されることになる。
 以上のように、本実施形態の学習モデル適用システムSは、悪意のある第三者の行動が変化したとしても、それに応じた特徴量を選択して学習モデルを学習し、行動の変化に対応するようにしている。更に、学習モデル適用システムSは、学習済みの学習モデルを適用するとともに、最新の学習モデルに必要な特徴量を計算できるように設定を行うことで、学習モデルの適用を迅速に行うようにしている。以降、この技術の詳細を説明する。
[3.学習モデル適用システムにおいて実現される機能]
 図3は、学習モデル適用システムSで実現される機能の一例を示す機能ブロック図である。ここでは、データベースサーバ10、バックグラウンドサーバ20、前処理サーバ30、及びリアルタイムサーバ40の各々で実現される機能について説明する。
[3-1.データベースサーバにおいて実現される機能]
 図3に示すように、データベースサーバ10では、データ記憶部100が実現される。データ記憶部100は、記憶部12を主として実現される。データ記憶部100は、学習に必要なデータを記憶する。本実施形態では、データ記憶部100が記憶するデータの一例として、行動データベースDBについて説明する。
 図4は、行動データベースDBのデータ格納例を示す図である。図4に示すように、行動データベースDBは、過去に行われた行動の履歴が蓄積されたデータベースである。例えば、行動データベースDBには、過去に生成された行動データと、不正ユーザであるか否かを示す不正フラグと、が関連付けられて格納される。
 なお、図4に示す「No」は、行動データベースDBの個々のレコードを識別するレコード番号である。本実施形態では、レコード番号によって、データベース内のデータが一意に識別されるものとする。また、本実施形態では、行動データベースDBの中に不正フラグが格納されている場合を説明するが、行動データベースDBには不正フラグが格納されていなくてもよい。この場合、後述する評価用の教師データセットDS1が作成されるときに、不正フラグが付与されるようにすればよい。
 行動データには、任意の情報が格納されてよく、例えば、ユーザID、ユーザ名、IPアドレス、アクセスしたウェブサイトのURL、アクセス場所、アクセス日時、決済金額、又は決済日時等が格納される。先述したように、行動データは、これらの履歴が格納されていてもよい。行動データに行動の履歴が格納される場合には、1つの行動データによって、ユーザの平均的なアクセス場所からの距離、ユーザの前回のアクセスからの経過時間、又はユーザのアクセス頻度といった統計的な特徴量を計算可能となる。行動データに行動の履歴が格納されない場合には、複数の行動データによって、これらの統計的な特徴量が計算される。なお、行動データに含まれる情報は、これらに限られず、操作部64からの入力内容などの他の情報を含んでもよい。
 ユーザIDは、ユーザを一意に識別する情報である。ユーザ名は、ユーザが利用登録時に入力した名前である。IPアドレスは、ユーザがサービス提供サーバ50にアクセスした時に使用したユーザ端末60のIPアドレスである。アクセス場所は、ユーザがサービス提供サーバ50にアクセスした時に使用したユーザ端末60の場所に関する情報である。アクセス場所は、IPアドレス、GPS情報(緯度経度情報又は座標情報)、無線基地局情報、又はアクセスポイント情報などを利用して推定される。アクセス日時は、ユーザがサービス提供サーバ50にアクセスした時の日時である。決済金額は、ユーザの支払額であり、例えば、有料サービスを利用したり、商品を購入したりしたときの金額である。決済日時は、決済が行われた日時であり、例えば、サービスの利用日時、又は、商品の購入日時である。
 不正フラグは、不正ユーザであるか否かを示す情報である。不正フラグが第1の値(オン)であれば、不正ユーザであることを意味し、不正フラグが第2の値(オフ)であれば、正当ユーザである(不正ユーザではない)ことを意味する。不正フラグの値は、学習モデルにとっての正解となる情報であり、例えば、管理者によって指定される。管理者は、全ての行動データに対し、不正フラグの値を入力してもよいし、学習モデルの判定結果を閲覧し、間違っている値だけを修正してもよい。
 例えば、データベースサーバ10は、リアルタイムサーバ40又はサービス提供サーバ50から行動データを取得し、新たなレコード番号を発行して行動データベースDBに格納する。管理者は、行動データベースDBに格納された行動データの内容を閲覧し、不正フラグの値を指定する。データベースサーバ10は、サービス提供サーバに対するアクセスが発生した場合に、行動データを取得し、管理者が指定した不正フラグとともに行動データベースDBに格納する。行動データベースDBの内容は、バックグラウンドサーバ20に対して提供される。
[3-2.バックグラウンドサーバにおいて実現される機能]
 図3に示すように、バックグラウンドサーバ20では、データ記憶部200、選択部201、適用部202、設定部203、及び通知部204が実現される。選択部201、適用部202、及び設定部203の各々の処理は、リアルタイムサーバ40における推定部401の処理とは異なるバックグラウンド処理として実行される。
 本実施形態では、バックグラウンド処理は、本番用の学習モデルM2が適用されるコンピュータとは異なるコンピュータで実行される処理である。即ち、バックグラウンド処理とリアルタイム処理とは、互いに異なるコンピュータで実行される。なお、バックグラウンド処理は、リアルタイム処理と同じコンピュータで実行されてもよいが、この場合、リアルタイム処理は、バックグラウンド処理よりも優先的に実行される。例えば、バックグラウンド処理は、リアルタイム処理が実行される頻度が相対的に低い時間帯等に実行される。
[データ記憶部]
 データ記憶部200は、記憶部22を主として実現される。データ記憶部200は、特徴量を選択して学習モデルを適用するために必要なデータを記憶する。本実施形態では、データ記憶部200が記憶するデータの一例として、評価用の学習モデルM1、評価用の教師データセットDS1、本番用の学習モデルM2、及び本番用の教師データセットDS2について説明する。
 評価用の学習モデルM1は、n種類の特徴量の各々を評価するために用いられるモデルである。別の言い方をすれば、評価用の学習モデルM1は、n種類の特徴量の中から、影響が相対的に大きいk種類の特徴量を選択するために用いられるモデルである。本実施形態では、評価用の学習モデルM1は、あくまで特徴量の選択のために用いられるので、リアルタイムサーバ40には適用されない。なお、Filter-Methodのように、特徴量の影響を評価するために学習モデルを利用しない場合には、評価用の学習モデルM1は、データ記憶部200に記憶されないものとする。
 データ記憶部200は、評価用の学習モデルM1のプログラム(アルゴリズム)やパラメータを記憶する。評価用の学習モデルM1には、評価用の教師データセットDS1が学習され、例えば、評価用の学習モデルM1のパラメータは、評価用の教師データセットDS1によって調整される。学習方法自体は、公知の手法を利用可能であり、例えば、ニューラルネットワークの学習手法を利用可能である。評価用の学習モデルM1は、後述する評価用の教師データの入力と出力の関係が得られるように学習される。
 図5は、評価用の教師データセットDS1のデータ格納例を示す図である。図5に示すように、評価用の教師データセットDS1には、評価用の学習モデルM1に学習させる教師データが格納される。教師データの数は、任意であってよく、例えば、十個~数百個程度であってもよいし、千個以上であってもよい。本実施形態では、評価用の教師データセットDS1に格納される個々の教師データを、評価用の教師データと記載する。評価用の教師データは、図5の個々のレコードであり、評価用の教師データセットDS1は、評価用の教師データの集まりである。
 評価用の教師データには、評価用の学習モデルM1における入力と出力の関係が示されている。本実施形態では、評価用の教師データには、n種類の全ての特徴量と、不正フラグと、の関係が示されている。本実施形態では、評価用の教師データは、行動データベースDBに格納された行動データごとに作成されるものとする。このため、行動データベースDBに格納された行動データと、評価用の教師データセットDS1に格納された教師データと、は1対1で対応する。
 例えば、図4の行動データベースDBにおける「No」が「1」の行動データからn種類の特徴量が計算され、図5の評価用データベースにおける「No」が「1」の教師データの特徴量として格納される。行動データに格納された不正フラグは、そのまま教師データの不正フラグとして格納される。このようにして、行動データベースDBのうち、直近の一定期間における行動データについて、n種類の特徴量と不正フラグの関係を示す評価用の教師データが作成される。
 なお、本実施形態では、行動データベースDBのうち直近の一定期間における行動データについて、評価用の教師データが作成される場合を説明するが、行動データベースDBの全て行動データについて、評価用の教師データが作成されてもよい。他にも例えば、行動データベースDBの中からランダムに選択された一部の行動データについてのみ、評価用の教師データが作成されてもよいし、特定のユーザの行動を示す行動データについてのみ、評価用の教師データが作成されてもよい。
 本番用の学習モデルM2は、選択部201により選択されたk種類の特徴量によって学習された学習モデルである。別の言い方をすれば、本番用の学習モデルM2は、これからリアルタイムサーバ40に適用される学習モデル、又は、既にリアルタイムサーバ40に適用された学習モデルである。本番用の学習モデルM2は、最新の学習モデルということもできる。
 データ記憶部200は、本番用の学習モデルM2のプログラム(アルゴリズム)やパラメータを記憶する。本番用の学習モデルM2は、本番用の教師データセットDS2が学習され、例えば、本番用の学習モデルM2のパラメータは、本番用の教師データセットDS2によって調整される。学習方法自体は、公知の手法を利用可能であり、例えば、ニューラルネットワークの学習手法を利用可能である。本番用の学習モデルM2は、後述する本番用の教師データの入力と出力の関係が得られるように学習される。
 図6は、本番用の教師データセットDS2のデータ格納例を示す図である。図6に示すように、本番用の教師データセットDS2には、本番用の学習モデルM2に学習させる教師データが格納される。教師データの数は、任意であってよく、例えば、十個~数百個程度であってもよいし、千個以上であってもよい。本実施形態では、本番用の教師データセットDS2に格納される個々のレコードを、本番用の教師データと記載する。本番用の教師データは、図6の個々のレコードであり、本番用の教師データセットDS2は、本番用の教師データの集まりである。
 本番用の教師データには、本番用の学習モデルM2における入力と出力の関係が示されている。本実施形態では、本番用の教師データには、k種類の特徴量と、不正フラグと、の関係が示されている。本実施形態では、本番用の教師データは、評価用の教師データセットDS1に格納された評価用の教師データごとに作成されるものとする。このため、本番用の教師データと評価用の教師データとは、1対1で対応する。
 例えば、図5の評価用の教師データセットDS1における「No」が「1」の教師データのn種類の特徴量のうち、k種類の特徴量が本番用の教師データの特徴量として格納される。評価用の教師データに格納された不正フラグは、そのまま本番用の教師データの不正フラグとして格納される。このようにして、評価用の教師データセットDS1に格納された全ての教師データについて、k種類の特徴量と不正フラグの関係を示す本番用の教師データが作成される。
 なお、本実施形態では、評価用の教師データセットDS1に格納された全ての評価用の教師データについて、本番用の教師データが作成される場合を説明するが、評価用の教師データセットDS1の一部についてのみ、本番用の教師データが作成されてもよい。他にも例えば、評価用の教師データセットDS1に含まれていない行動データに基づいて、本番用の教師データが作成されてもよい。例えば、数十個程度の評価用の教師データに基づいて、k種類の特徴量が選択されたうえで、数百個~数千個程度の行動データから本番用の評価データが作成されてもよい。
[選択部]
 選択部201は、制御部21を主として実現される。選択部201は、学習モデルにおける各特徴量の影響に基づいて、複数の特徴量のうちの少なくとも1つを選択する。本実施形態では、評価用の学習モデルM1が用意されているので、選択部201は、評価用の学習モデルM1に基づいて、各特徴量の影響を評価する。
 特徴量の影響は、学習モデルの出力に対する影響である。別の言い方をすれば、特徴量の影響は、学習モデルが着目している度合、学習モデルの出力における重要性、又は、学習モデルが出力内容を決定する際の根拠ということもできる。例えば、特徴量の影響は、Permutation Importance又はGini Importance等の公知の特徴量選択手法によって計算される影響度によって示される。本実施形態では、影響度が数値によって示される場合を説明するが、特徴量の影響は、文字等の他の情報によって示されてもよい。影響度が示す数値が大きくなるほど影響が大きいことを意味する。例えば、特徴量の値を変化させたときに出力にどの程度影響を与えるかを計算することによって、特徴量の影響度が計算される。出力への影響が大きいほど影響度が示す数値が大きくなる。
 選択部201は、任意の数の特徴量を選択可能であり、例えば、特徴量を1つだけ選択してもよいし、複数の特徴量を選択してもよい。更に、選択部201は、n種類の特徴量の全てを選択してもよいし(この場合、nの数値はkの数値と同じとなる)、n種類の特徴量の一部だけを選択してもよい(この場合、kの数値はnの数値よりも小さくなる)。
 選択部201は、n種類の特徴量の中で、学習モデルにおける影響が相対的に高いk種類の特徴量を選択する。例えば、選択部201は、評価用の教師データセットDS1に格納されたn種類の特徴量の各々の影響度を取得し、取得した影響度に基づいて、k種類の特徴量を選択する。例えば、選択部201は、影響度が高い順にk種類の特徴量を選択する。また例えば、選択部201は、影響度が閾値以上の特徴量を全て選択してもよい。この場合、影響度が閾値以上の特徴量の数がkの数値となる。また例えば、選択部201は、影響度が上位所定パーセントの特徴量を選択してもよい。この場合、影響度が上位所定パーセントの特徴量の数がkの数値となる。
[適用部]
 適用部202は、制御部21を主として実現される。適用部202は、選択部201により選択された特徴量に基づいて学習された学習済みの学習モデルを適用する。学習済みの学習モデルは、選択部201により選択されたk種類の特徴量を含む教師データに基づいて学習されたモデルである。本実施形態では、本番用の学習モデルM2が学習済みの学習モデルに相当する。このため、本実施形態で本番用の学習モデルM2と記載した箇所は、学習済みの学習モデルと読み替えることができる。
 適用とは、学習モデルを差し替えることである。このため、適用は、エクスポート、切り替え、上書き、又は有効化ということもできる。本実施形態では、本番用の学習モデルM2は、リアルタイムサーバ40に適用されるので、適用部202は、本番用の教師データセットDS2が学習された本番用の学習モデルM2を、リアルタイムサーバ40に送信することによって、本番用の学習モデルM2を適用する。
[設定部]
 設定部203は、制御部21を主として実現される。設定部203は、選択部201により選択された特徴量に基づいて、本番用の学習モデルM2に入力される特徴量の計算に関する設定を行う。
 特徴量の計算に関する設定とは、特徴量を計算するか否かを設定することである。別の言い方をすれば、特徴量の計算に関する設定は、選択部201により選択された特徴量を計算し、選択部201により選択されなかった特徴量は計算しないようにすることである。本実施形態では、n種類の特徴量のうちのk種類が選択されるので、設定部203は、k種類以外の特徴量については、計算の対象から除外するように設定する。各特徴量を計算するか否かを識別する情報は、後述する計算設定データDに示されている。このため、設定部203は、計算設定データDに格納された情報を設定することによって、特徴量を計算するか否かの設定を行うことになる。
 本実施形態では、前処理コンポーネントCを利用して特徴量が計算されるので、設定部203は、複数の前処理コンポーネントCのうち、選択部201により選択された特徴量の計算で用いられる前処理コンポーネントCを、学習済みの学習モデルに入力される特徴量の計算で用いるように設定する。前処理コンポーネントCを利用するか否かを示す情報は、後述する計算設定データDに示されている。このため、設定部203は、計算設定データDに格納された情報を設定することによって、利用する前処理コンポーネントCを設定する。設定部203は、選択部201により選択された特徴量の計算に必要な前処理コンポーネントCは利用するものとして設定し、それ以外の前処理コンポーネントCは利用しないものとして設定する。
[通知部]
 通知部204は、制御部21を主として実現される。本実施形態の学習モデルは、ウェブサイトにおける不正を検知するためのモデルなので、通知部204は、ウェブサイトの管理者に対し、選択部201により選択された特徴量に関する情報を通知する。ウェブサイトの管理者は、サービスの提供者であり、例えば、学習モデルの分析を行うデータサイエンティストではなく、ビジネス側の担当者である。通知は、任意の媒体を利用可能であり、例えば、電子メール、メッセージアプリ、SNS、SMS、チャット、又は電子掲示板等を利用すればよい。
 特徴量に関する情報とは、選択部201により選択された特徴量の内容を示す情報である。例えば、「平均的なアクセス場所からの距離」の特徴量が選択された場合には、通知部204は、「平均的なアクセス場所からの距離」が選択されたことを通知し、「前回のアクセスからの経過時間」の特徴量が選択された場合には、通知部204は、「前回のアクセスからの経過時間」が選択されたことを通知する。ウェブサイトの管理者は、通知された特徴量の内容を見てウェブサイトのデザインを変更したり、サービスを提供する際の仕様変更をしたりする。
[3-3.前処理サーバにおいて実現される機能]
 図3に示すように、前処理サーバ30では、データ記憶部300、入力部301、及び計算部302が実現される。
[データ記憶部]
 データ記憶部300は、記憶部32を主として実現される。データ記憶部300は、特徴量の計算に必要なデータを記憶する。本実施形態では、データ記憶部300が記憶するデータの一例として、計算設定データDと前処理コンポーネントCについて説明する。なお、図3では、前処理コンポーネントCを1つだけ示しているが、実際には、m個の前処理コンポーネントCが記憶される。データ記憶部300は、前処理コンポーネントCに含まれるプログラムや計算式などを記憶する。
 図7は、計算設定データDのデータ格納例を示す図である。図7に示すように、計算設定データDには、前処理サーバ30が計算可能な特徴量ごとに、その計算方法と、選択フラグと、が格納される。別の言い方をすれば、計算設定データDには、n種類の特徴量の各々について、計算方法と選択フラグとが格納される。
 例えば、計算方法としては、特徴量の計算で用いられる前処理コンポーネントCを識別する情報が格納される。本実施形態では、前処理コンポーネントCは、特徴量の計算に必要な前処理を実行するので、計算方法としては、前処理コンポーネントCから出力された値から特徴量を計算するための計算式が格納される。前処理コンポーネントCが特徴量そのものを計算する場合には、前処理コンポーネントCから出力された特徴量を取得すればよいので、特に計算式は計算設定データDに示されない。
 選択フラグは、選択部201により選択されたか否かを示す情報である。別の言い方をすれば、選択フラグは、k種類の特徴量に含まれるか否かを示す情報である。選択フラグが第1の値(オン)であれば、選択部201により選択されたことを意味し、選択フラグが第2の値(オフ)であれば、選択部201により選択されていないことを意味する。選択フラグの値は、後述する設定部203によって設定される。
[入力部]
 入力部301は、制御部31を主として実現される。入力部301は、前処理コンポーネントCに対し、特徴量の計算に必要なデータを入力する。本実施形態では、各行動データが同じ形式であり、入力部301は、各前処理コンポーネントCに対し、互いに同じ形式のデータを入力する。例えば、入力部301は、処理対象の行動データをそのままの形式で各前処理コンポーネントCに入力する。また例えば、行動データを加工する場合には、入力部301は、同じ加工が施された行動データを、各前処理コンポーネントCに入力する。
 各前処理コンポーネントCは、他の前処理コンポーネントCに入力されるデータと同じ形式のデータに基づいて、計算処理を実行する。前処理コンポーネントCは、予め自身に定められた計算式に基づいて計算処理を実行すればよく、例えば、集計処理、平均値の算出処理、標準偏差の算出処理、確率分布の作成処理、又はその他統計値の算出処理などを実行する。前処理コンポーネントCが特徴量そのものを計算する場合には、前処理コンポーネントCは、特徴量の計算処理を実行する。
[計算部]
 計算部302は、制御部31を主として実現される。計算部302は、学習モデルの学習で用いられる学習用データに基づいて、複数の特徴量を計算する。学習用データは、学習モデルを学習させるために用いられるデータであればよく、教師データそのものを意味してもよいし、教師データを作成する元となるデータを意味してもよい。本実施形態では、行動データが学習用データに相当する。このため、本実施形態で行動データと記載した箇所は、学習用データと読み替えることができる。
 計算部302は、予め定められた計算式に基づいて、特徴量を計算すればよい。本実施形態では、計算設定データDに特徴量の計算方法が定められているので、計算部302は、計算設定データDに示された計算方法に基づいて、特徴量を計算する。本実施形態では、複数の前処理コンポーネントCが用意されているので、計算部302は、複数の前処理コンポーネントCに基づいて、複数の特徴量を計算することになる。
 例えば、計算部302は、バックグラウンドサーバ20から計算の要求を受け付けた場合には、n種類の特徴量の全てを計算する。即ち、計算部302は、前処理コンポーネントCを利用して計算可能な特徴量を総当たり的に計算する。一方、計算部302は、リアルタイムサーバ40から計算の要求を受け付けた場合には、k種類の特徴量を計算し、それ以外の特徴量は計算しない。どの特徴量を計算すべきかは、計算設定データDに示されているので、計算部302は、計算設定データDを参照して計算すべき特徴量を特定し、当該特定した特徴量を計算する。
[3-4.リアルタイムサーバにおいて実現される機能]
 図3に示すように、リアルタイムサーバ40では、データ記憶部400及び推定部401が実現される。
[データ記憶部]
 データ記憶部400は、記憶部42を主として実現される。データ記憶部400は、本番用の学習モデルM2を記憶する。データ記憶部400に記憶される本番用の学習モデルM2は、データ記憶部200に記憶される本番用の学習モデルM2と同様のため、説明を省略する。適用部203により新たな本番用の学習モデルM2が適用されると、データ記憶部400に記憶された本番用の学習モデルM2が差し替えられることになる。
[推定部]
 推定部401は、制御部41を主として実現される。本実施形態の学習モデルは、ウェブサイトにおける不正を検知するためのモデルであり、推定部401は、ウェブサイトにユーザがアクセスした場合に、学習済みの学習モデルと、設定部203により行われた設定と、に基づいて、当該ユーザの不正を推定する。例えば、サービス提供サーバ50は、ウェブサイトにアクセスしたユーザの行動データを生成し、リアルタイムサーバ40に送信する。推定部401は、ウェブサイトにアクセスしたユーザの行動データの特徴量の計算を、前処理サーバ30に依頼する。推定部401は、前処理サーバ30から受信したk種類の特徴量を、本番用の学習モデルM2に入力する。本番用の学習モデルM2は、入力された特徴量に基づいて、ユーザを不正ユーザ又は正常ユーザの何れかに分類する。推定部401は、本番用の学習モデルM2から出力された分類結果を取得し、ユーザの不正を推定する。
[4.本実施形態において実行される処理]
 次に、学習モデル適用システムSにおいて実行される処理について説明する。本実施形態では、特徴量を選択して本番用の学習モデルM2を適用するバックグラウンド処理と、ウェブサイトにアクセスしたユーザの不正を検知するリアルタイム処理と、について説明する。
[4-1.バックグラウンド処理]
 図8は、バックグラウンド処理の一例を示すフロー図である。図8に示すバックグラウンド処理は、制御部21,31が、それぞれ記憶部22,32に記憶されたプログラムに従って動作することによって実行される。下記に説明する処理は、図3に示す機能ブロックにより実行される処理の一例である。なお、バックグラウンド処理が実行されるのは、任意のタイミングであればよく、所定の日時が訪れた場合に実行されてもよいし、現状の本番用の学習モデルM2の精度が低下した場合に実行されてもよい。
 図8に示すように、まず、バックグラウンドサーバ20は、データベースサーバ10から、行動データベースDBに格納された行動データを取得する(S100)。S100においては、バックグラウンドサーバ20は、データベースサーバ10に対し、行動データの取得要求を送信する。データベースサーバ10は、取得要求を受信すると、行動データベースDBのうち、直近の所定期間の行動データを取得し、バックグラウンドサーバ20に対して送信する。
 バックグラウンドサーバ20は、S100で取得した行動データに基づいて、前処理サーバ30に対し、特徴量の計算依頼を送信する(S101)。S101における計算依頼は、所定形式のデータが送信されることによって行われるようにすればよく、例えば、S100で取得した行動データが含まれているものとする。
 前処理サーバ30は、バックグラウンドサーバ20から計算依頼を受信すると、全ての前処理コンポーネントCに対し、計算依頼に含まれる複数の行動データの各々を入力する(S102)。S102においては、前処理サーバ30は、全ての前処理コンポーネントCに対し、行動データをそのまま入力するので、互いに同じ形式の行動データが全ての前処理コンポーネントCに入力されることになる。
 前処理サーバ30は、計算設定データDに定義された計算方法と、前処理コンポーネントCから出力された値と、に基づいて、n種類の全ての特徴量を計算する(S103)。S103においては、前処理サーバ30は、特徴量ごとに、前処理コンポーネントCから出力された値を所定の計算式に代入することによって、特徴量の値を計算する。なお、前処理コンポーネントCが特徴量そのものを計算する場合には、前処理サーバ30は、計算式の代入は行わず、前処理コンポーネントCから出力された値を、そのまま特徴量として取得する。
 前処理サーバ30は、バックグラウンドサーバ20に対し、S103で計算したn種類の特徴量を送信する(S104)。
 バックグラウンドサーバ20は、n種類の特徴量を受信すると、評価用の教師データを作成し、評価用の教師データセットDS1に追加する(S105)。S105においては、バックグラウンドサーバ20は、前処理サーバ30から受信したn種類の特徴量を入力とし、行動データの不正フラグを出力とする教師データを作成する。
 バックグラウンドサーバ20は、S100で取得した全ての行動データについて、n種類の特徴量を取得したか否かを判定する(S106)。まだ特徴量を取得していない行動データが存在すると判定された場合(S106;N)、S101の処理に戻り、次の行動データの特徴量が計算される。
 一方、全ての行動データの特徴量が取得されたと判定された場合(S106;Y)、バックグラウンドサーバ20は、評価用の教師データセットDS1に基づいて、評価用の学習モデルM1を学習させる(S107)。S107においては、バックグラウンドサーバ20は、公知の学習アルゴリズムに基づいて、評価用の教師データセットDS1が示す入力と出力の関係が得られるように、評価用の学習モデルM1のパラメータを調整する。
 バックグラウンドサーバ20は、評価用の学習モデルM1における各特徴量の影響に基づいて、n種類の特徴量の中からk種類の特徴量を選択する(S108)。S108においては、バックグラウンドサーバ20は、n種類の特徴量の各々の影響度を取得し、影響度が高い順にk種類の特徴量を選択する。
 バックグラウンドサーバ20は、S108で選択したk種類の特徴量に基づいて、本番用の教師データを作成する(S109)。S109においては、バックグラウンドサーバ20は、評価用の教師データごとに、当該教師データのn種類の特徴量のうちのk種類の特徴量を入力とし、当該教師データの不正フラグを出力とする教師データを作成する。
 バックグラウンドサーバ20は、本番用の教師データセットDS2に基づいて、本番用の学習モデルM2を学習させる(S110)。S110においては、バックグラウンドサーバ20は、公知の学習アルゴリズムに基づいて、本番用の教師データセットDS2が示す入力と出力の関係が得られるように、本番用の学習モデルM2のパラメータを調整する。
 バックグラウンドサーバ20は、リアルタイムサーバ40に対し、本番用の学習モデルM2を適用する(S111)。S111においては、バックグラウンドサーバ20は、リアルタイムサーバ40に対し、本番用の学習モデルM2を送信する。リアルタイムサーバ40は、本番用の学習モデルM2を受信すると、それまで使用していた本番用の学習モデルM2を、新たに受信した本番用の学習モデルM2に差し替える。
 バックグラウンドサーバ20は、前処理サーバ30に対し、k種類の特徴量の計算に関する設定を行い(S112)、本処理は終了する。S112においては、バックグラウンドサーバ20は、前処理サーバ30に対し、k種類の特徴量の各々を識別する情報を含む設定指示を送信する。前処理サーバ30は、設定指示を受信すると、計算設定データDの選択フラグの値を更新する。これにより、リアルタイムサーバ40から計算要求を受信した際に、k種類の特徴量が計算されるようになる。
[4-2.リアルタイム処理]
 図9は、リアルタイム処理の一例を示すフロー図である。図9に示すリアルタイム処理は、制御部31,41,51,61が、それぞれ記憶部32,42,52,62に記憶されたプログラムに従って動作することによって実行される。下記に説明する処理は、図3に示す機能ブロックにより実行される処理の一例である。
 図9に示すように、まず、ユーザ端末60は、サービス提供サーバ50が提供するウェブサイトにアクセスする(S200)。S200においては、ユーザが操作部64を操作してウェブサイトのURLを入力したり、URL入りのリンクを指定したりすると、ユーザ端末60は、ウェブサイトにアクセスする。なお、ユーザは、サービス提供サーバ50に対してログイン済みであり、サービス提供サーバ50は、どのユーザがアクセスしているかを特定できるようになっている。
 以降、サービス提供サーバ50とユーザ端末60との間で、サービスの提供処理が実行される(S201)。S201においては、ユーザの操作に応じて、ウェブサイトを介してニュースや動画などがユーザに提供される。ユーザが有料サービスの購入操作をした場合には、予めサービス提供サーバ50に登録されたクレジットカード等の決済情報に基づいて、決済処理が実行される。サービス提供サーバ50は、ユーザ端末60からユーザの操作内容等を受信すると、ユーザの行動として記録する。
 サービス提供サーバ50は、S201の処理結果に基づいて、ウェブサイトにアクセスしたユーザの行動データを生成し、リアルタイムサーバ40に対し、行動データの解析要求を送信する(S202)。
 リアルタイムサーバ40は、解析要求を受信すると、前処理サーバ30に対し、特徴量の計算依頼を送信する(S203)。S203における計算依頼は、所定形式のデータが送信されることによって行われるようにすればよく、例えば、サービス提供サーバ50から受信した行動データが含まれているものとする。
 前処理サーバ30は、リアルタイムサーバ40から計算依頼を受信すると、計算設定データDに基づいて、k種類の特徴量を計算するための所定の前処理コンポーネントCに対し、計算依頼に含まれる行動データを入力する(S204)。S204においては、前処理サーバ30は、k種類の特徴量を計算するための前処理コンポーネントCに対し、行動データをそのまま入力するので、互いに同じ形式の行動データが前処理コンポーネントCに入力されることになる。
 前処理サーバ30は、計算設定データDに定義された計算方法と、前処理コンポーネントCから出力された値と、に基づいて、k種類の特徴量を計算する(S205)。S205においては、前処理サーバ30は、特徴量ごとに、前処理コンポーネントCから出力された値を所定の計算式に代入することによって、特徴量の値を計算する。なお、前処理コンポーネントCが特徴量そのものを計算する場合には、前処理サーバ30は、計算式の代入は行わず、前処理コンポーネントCから出力された値を、そのまま特徴量として取得する。
 前処理サーバ30は、リアルタイムサーバ40に対し、S205で計算したk種類の特徴量を送信する(S206)。
 バックグラウンドサーバ20は、計算依頼した行動データのk種類の特徴量を受信すると、現状の本番用の学習モデルM2に入力し、学習モデルからの出力を取得する(S207)。S207においては、バックグラウンドサーバ20は、k種類の特徴量をk次元のベクトルとして、本番用の学習モデルM2に入力する。本番用の学習モデルM2は、入力されたk次元のベクトルに基づいて、不正ユーザ又は正常ユーザの何れかを示す値を出力する。
 制御部41は、本番用の学習モデルM2からの出力に基づいて、所定の処理を実行し(S208)、本処理は終了する。S208においては、制御部41は、本番用の学習モデルM2からの出力が不正ユーザを示す場合に、管理者にその旨を通知したり、ユーザに対して追加認証を求めたりする。一方、本番用の学習モデルM2からの出力が正常ユーザを示す場合には、特にサービスの制限等は行われない。
 本実施形態の学習モデル適用システムSによれば、学習モデルにおける各特徴量の影響に基づいて、少なくとも1つの特徴量を選択して本番用の学習モデルM2を適用し、本番用の学習モデルM2に入力される特徴量の計算に関する設定を行うことによって、本番用の学習モデルM2を迅速に適用することができる。例えば、データサイエンティストに特徴量の分析や設定作業をさせる手間を省くことができ、悪意のある第三者の行動の変化等に迅速に対応することができる。また、学習モデルにおける影響が相対的に小さい特徴量を、学習の対象から除外する場合には、学習モデルにおける影響が相対的に大きい特徴量に絞って学習させることができる。その結果、学習モデルの精度を高めることができる。更に、学習モデルにおける影響が相対的に小さい特徴量は、本番用の学習モデルM2には入力されないので、計算対象から除外することができる。その結果、不要な特徴量の計算をする必要がなくなり、前処理サーバ30の処理負荷を軽減させることができる。また、学習モデルに入力される特徴量の数を絞ることにより、学習モデルの処理速度を高速化することもできる。
 また、学習モデル適用システムSは、複数の前処理コンポーネントCのうち、選択された特徴量の計算で用いられる前処理コンポーネントCを、学習済みの学習モデルに入力される特徴量の計算で用いるように設定することによって、必要な特徴量を計算するための設定を正確に行うことができる。また、不要な前処理コンポーネントCについては、処理を実行させないように設定することによって、不要な処理が実行されることを防止し、前処理サーバ30の処理負荷を軽減させることができる。
 また、学習モデル適用システムSは、各前処理コンポーネントCに対し、互いに同じ形式のデータを入力することによって、特徴量の計算を高速化することができる。例えば、前処理コンポーネントCごとに、入力されるデータの形式が異なると、データを加工する処理を実行する必要があるが、学習モデル適用システムSは、そのような処理を実行する必要がないので、特徴量の計算を高速化することができる。
 また、学習モデル適用システムSは、特徴量の選択、学習モデルの適用、及び特徴量計算の設定の各々を、バックグラウンド処理として実行することによって、リアルタイム処理に支障をきたすことなく、これらの処理を実行することができる。その結果、例えば、リアルタイム処理で実行される不正検知を止めることなく、最新の傾向に合った学習モデルを作成し、リアルタイム処理の精度(不正検知の精度)を高めることができる。
 また、学習モデル適用システムSは、ウェブサイトの管理者に対し、選択された特徴量に関する情報を通知することにより、管理者による対策を促すことができる。例えば、悪意のある第三者の行動が変化し、学習モデルにおける影響が大きい特徴量が変化した場合に、その変化を管理者に伝えることにより、ウェブサイトの内容を変更させたり、サービス提供サーバ50が実行するプログラムの設計変更をさせたりするなどの対策を講じさせることができる。
[5.変形例]
 なお、本発明は、以上に説明した実施の形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で、適宜変更可能である。
 図10は、変形例における機能ブロック図である。図10に示すように、以降説明する変形例では、実施形態で説明した機能に加えて、取得部205、特定部206、判定部207、及び追加部303が実現される。
 (1)例えば、悪意のある第三者の行動が変化した場合に、既存の特徴量では、精度の高い不正検知を実現できないことがある。この場合、既存の前処理コンポーネントCでは計算できない新たな特徴量を計算し、悪意のある第三者の行動の変化に対応する必要がある。そこで、新たな特徴量を計算するための新たな前処理コンポーネントが前処理サーバ30に追加されるようにしてもよい。
 変形例(1)の前処理サーバ30は、追加部303を含む。追加部303は、制御部31を主として実現される。追加部303は、新たな特徴量を計算するための新たな前処理コンポーネントを追加する。
 新たな特徴量は、既存の前処理コンポーネントCでは計算できない特徴量である。別の言い方をすれば、新たな特徴量は、n種類の特徴量には含まれない特徴量である。新たな前処理コンポーネントは、学習モデル適用システムSにおける不正検知を担当する担当者によって作成され、既存の前処理コンポーネントCとは異なる処理を実行するコンポーネントである。新たな前処理コンポーネントは、新たな特徴量そのものを計算してもよいし、新たな特徴量を計算するために必要な集計処理等を実行してもよい。
 例えば、追加部303は、データ記憶部300に、新たな前処理コンポーネントを記録する。また例えば、追加部303は、計算設定データに対し、新たな特徴量を計算するための設定を行う。追加部303は、新たな特徴量の計算方法を計算設定データに格納する。新たな前処理コンポーネント及び新たな特徴量の計算方法は、不正検知の担当者の端末等からアップロードされるようにすればよい。なお、新たな特徴量は、適用中の本番用の学習モデルM2には入力されないので、選択フラグは、オフとなる。
 追加部303による設定が完了すると、新たな前処理コンポーネントを利用して新たな特徴量を計算することができるようになる。計算部302は、新たな前処理コンポーネントに基づいて、新たな特徴量を計算する。特徴量の計算自体は、実施形態で説明した通りである。計算部302は、バックグラウンド処理において、新たな特徴量を計算する。計算部302が計算する新たな特徴量は、1種類であってもよいし、複数種類であってもよい。新たな特徴量をp種類(p:自然数)とすると、バックグラウンド処理では、n+p種類の特徴量が計算されるようになる。
 設定部203は、選択部201により新たな特徴量が選択された場合には、新たな前処理コンポーネントを、本番用の学習モデルM2に入力される特徴量の計算で用いるように設定する。設定部203の処理自体は、実施形態で説明した通りであり、例えば、設定部203は、選択部201により新たな特徴量が選択された場合に、計算設定データDの選択フラグをオンにすることによって、設定を行うようにすればよい。
 変形例(1)によれば、新たな特徴量が選択された場合には、新たな前処理コンポーネントを、学習済みの学習モデルに入力される特徴量の計算で用いるように設定することにより、学習モデルの精度を高めることができる。例えば、悪意のある第三者の行動が変化し、既存の特徴量では不正検知をすることが難しくなったとしても、前処理コンポーネントを追加して新たな特徴量の計算設定をしておけば、バックグラウンド処理で影響の大きさが判定されて選択されるので、行動の変化に対応した学習モデルを容易に作成することができる。
 (2)また例えば、リアルタイム処理では、迅速な処理が求められるので、特徴量の計算に時間がかかると、リアルタイム処理に支障をきたすことがある。このため、学習モデルにおける特徴量の影響だけでなく、特徴量の計算のために必要な計算時間も考慮して、特徴量が選択されるようにしてもよい。例えば、影響が同程度の特徴量が多数存在した場合には、計算時間が短い特徴量が優先的に選択されるようにしてもよい。
 変形例(2)のバックグラウンドサーバ20は、取得部205を含む。取得部205は、制御部21を主として実現される。取得部205は、各特徴量の計算時間を取得する。特徴量の計算時間は、特徴量の計算を開始してから終了するまでの時間である。例えば、取得部205は、前処理サーバ30に各特徴量の計算時間を計測させ、前処理サーバ30から計測結果を取得する。
 前処理サーバ30は、リアルタイムクロック等を利用して計時処理を実行することによって、各特徴量の計算時間を計測する。例えば、前処理サーバ30は、前処理コンポーネントCに行動データを入力した場合に計時を開始する。前処理サーバ30は、特徴量ごとに、計時を開始してから特徴量の計算が完了するまでの時間を計測し、バックグラウンドサーバ20に各特徴量の計算時間を送信する。
 取得部205により各特徴量の計算時間が取得されると、選択部201は、学習モデルにおける各特徴量の影響と、各特徴量の計算時間と、に基づいて、複数の特徴量のうちの少なくとも1つを選択する。例えば、選択部201は、学習モデルにおける影響と計算時間を総合的に評価したスコアを計算し、各特徴量のスコアに基づいて、k種類の特徴量を選択する。スコアは、所定の計算式に基づいて計算されるようにすればよく。影響が大きく計算時間が短いほどスコアが高くなる。
 例えば、選択部201は、スコアが高い順にk種類の特徴量を選択する。また例えば、選択部201は、スコアが閾値以上の特徴量を全て選択してもよい。この場合、スコアが閾値以上の特徴量の数がkの数値となる。また例えば、選択部201は、スコアが上位所定パーセントの特徴量を選択してもよい。この場合、スコアが上位所定パーセントの特徴量の数がkの数値となる。なお、選択部201による特徴量の選択方法は、上記の例に限られない。例えば、選択部201は、学習モデルにおける影響度が閾値以上の特徴量が一定数存在する場合に、計算時間が短い順に所定個数の特徴量を取得してもよい。
 変形例(2)によれば、学習モデルにおける各特徴量の影響と、各特徴量の計算時間と、に基づいて、複数の特徴量のうちの少なくとも1つを選択することにより、リアルタイム処理を高速化することができる。また、リアルタイム処理における前処理サーバ30の処理負荷を軽減することもできる。
 (3)また例えば、複数の特徴量の各々の内容が互いに関連していると、何れかが無くても学習モデルの出力結果に対して影響を与えないことがある。例えば、「平均的なアクセス場所からの距離が1km未満であるか否か」の特徴量と、「平均的なアクセス場所からの距離が5km未満であるか否か」の特徴量と、が存在していた場合には、これらの特徴量の内容は、互いに関連している。一見するとこれら2つの特徴量の影響が大きいように見えたとしても、実際には、互いに関連している特徴量については、何れか一方だけを選択すれば十分なこともある。そこで、変形例(3)では、互いに関連する特徴量については、その一部だけを選択するようにしている。
 変形例(3)のバックグラウンドサーバ20は、特定部206を含む。特定部206は、制御部21を主として実現される。特定部206は、複数の特徴量の中から、互いに関連する特徴量の組み合わせを特定する。互いに関連する特徴量とは、特徴量が示す内容が似ていることである。同じ前処理コンポーネントCを利用して計算される特徴量は、互いに関連する特徴量といえる。例えば、特定部206は、特徴量ごとの影響度だけでなく、任意の特徴量の組み合わせごとの影響度を取得し、影響度が相対的に高い組み合わせの中に、互いに関連する特徴量が存在するか否かを判定する。例えば、特定部206は、影響度が相対的に高い組み合わせのうち、任意の特徴量を欠損値として扱って出力における影響を計算し、影響が小さい特徴量同士を互いに関連する特徴量の組み合わせとして特定する。
 選択部201は、互いに関連する特徴量の組み合わせが存在する場合には、当該組み合わせのうちの一部を選択する。互いに関連する特徴量がq種類(q:2以上の自然数)存在したとすると、選択部201は、これらq種類の特徴量の中から、q未満の個数の特徴量を選択すればよい。例えば、選択部201は、q種類の特徴量の中から、影響度が相対的に高い特徴量を選択する。また例えば、選択部201は、q種類の特徴量の中からランダムに特徴量を選択してもよい。
 変形例(3)によれば、複数の特徴量の中から、互いに関連する特徴量の組み合わせを特定し、互いに関連する特徴量の組み合わせが存在する場合には、当該組み合わせのうちの一部を選択することにより、計算する特徴量の減らすことができ、前処理サーバ30の処理負荷を軽減することもできる。
 (4)また例えば、特徴量の計算時間が長すぎると、リアルタイム処理に支障をきたすことがある。一方、リアルタイム処理の処理速度を重視すると、不正検知の精度が低下することがある。不正検知の精度と処理速度の間のトレードオフを評価するために、計算時間が長い特徴量については、欠損値として扱い、学習モデルにおける影響を評価してもよい。
 例えば、リアルタイム処理において、ある1つの前処理コンポーネントCの処理に時間を要した場合に、タイムアウトさせて不正検知自体をしないようにしてもよいが、時間を要した前処理コンポーネントCについては処理を中断して欠損値とした方が、不正検知の運用上好ましいことがある。このため、本変形例では、対象となる特徴量が欠損値として扱われた場合の精度低下が評価される。即ち、対象となる特徴量のみを欠損値とみなして不正検知が行われた場合に、どの程度の精度低下となるのかが評価される。
 変形例(4)のバックグラウンドサーバ20は、取得部205と判定部207を含む。取得部205については、変形例(2)で説明した通りである。判定部207は、制御部21を主として実現される。判定部207は、各特徴量の計算時間が所定時間以上であるか否かを判定する。所定時間は、閾値となりうる任意の時間であればよく、例えば、0.5秒~数秒程度であってもよいし、10秒~30秒程度は許容してもよい。所定時間の数値は、データ記憶部200に予め記録されているものとする。
 選択部201は、計算時間が所定時間以上の特徴量が存在する場合には、当該特徴量を欠損値として扱い、学習モデルにおける影響を評価する。例えば、選択部201は、計算時間が所定時間以上の特徴量は無いものとみなし、学習モデルの精度を評価する。選択部201は、当該特徴量がある場合の精度と無い場合の精度とを比較し、精度の差が閾値未満であれば、当該特徴量については選択しない。一方、選択部201は、精度の差が閾値以上であれば、当該特徴量を選択する。
 例えば、TP(True Positive)、TN(True Negative)、FP(False Positive)、及びFN(False Negative)に対しての精度の変換に関する情報を得られる場合には、選択部201は、正規の学習モデルにおける1件当たりの予測精度と、欠損となった学習モデルにおける1件当たりの予測精度と、を算出し、実際の処理速度の検証におけるタイムアウトの割合を以って、対象となる特徴量を入力した場合の予測精度を算出してもよい。
 また例えば、予測精度の誤差に対しての精度低下の情報が得られる場合には、選択部201は、対象となる特徴量の値を一定間隔(例えば、標準偏差の定数倍など)で欠損としてパラメータを振った場合に、予測対象に対してどの程度の影響度を有しているかを検証し、欠損の場合に最大又は平均でどの程度の誤差を生み出すかを算出し、実際の処理速度の検証におけるタイムアウトの割合を以って、対象となる特徴量を入力した場合の予測精度を算出してもよい。
 なお、上記の例においては、複数の特徴量が互いに依存していることも考えられる。このため、複数の特徴量の組み合わせに対して、Grid Serch等によってパラメータが振られるようにしてもよい。例えば、Grid Serchの対象には、欠損値を含めることによって、欠損によってもたらされる精度低下が正しく評価される。この点、学習プロセスに要する時間が組み合わせ的に増大するので、バックグラウンドサーバ20のリソースや計算時間等によって適宜定めるようにすればよい。
 変形例(4)によれば、計算時間が所定時間以上の特徴量が存在する場合には、当該特徴量を欠損値として扱い、学習モデルにおける影響を評価することにより、リアルタイム処理に支障をきたすような計算時間の長い特徴量を正当に評価することができる。
 (5)また例えば、上記変形例を組み合わせてもよい。
 また例えば、前処理コンポーネントCに入力されるデータの形式は互いに異なっていてもよい。また例えば、特に前処理コンポーネントCを用意せずに、特徴量ごとに、当該特徴量を計算するプログラムや計算式が用意されていてもよい。また例えば、実施形態では、ウェブサイトにアクセスしたユーザの不正を検知する場合について説明したが、学習モデル適用システムSは、新たに作成した学習モデルを適用する場合に適用可能であり、他の場面に適用してもよい。例えば、ユーザの不正を検知する場面以外の場面にも学習モデル適用システムSを適用可能であり、自然言語処理、機械翻訳、文章変換、又はチャットボットなどの学習モデルが用いられる場合にも適用可能である。
 また例えば、ユーザがインターネット上で商品を購入する場合の不正行為を検出する場面に学習モデル適用システムSを適用してもよい。この場合、サービス提供サーバ50は、オンラインショッピングモールのウェブサイトをユーザに提供する。ユーザは、利用登録を行い、カード番号などの決済情報を予めサービス提供サーバ50に登録しているものとする。決済情報としては、商品を購入した店舗の店舗ID、店舗名、商品の商品ID、商品名、数量、決済金額、及びカード番号といった情報が含まれるようにしてもよい。例えば、ユーザが商品を購入すると、サービス提供サーバ50は、ユーザの決済情報などを含む行動データを生成する。学習モデル適用システムSは、ユーザの決済情報などを含む行動データに基づいて、n種類の特徴量を計算し、学習モデルにおける影響が大きいk種類の特徴量を選択する。学習モデル適用システムSは、選択したk種類の特徴量を学習モデルに学習させて適用すればよい。
 また例えば、行動データに関する分類が行われる場合を説明したが、ユーザの行動以外のデータに関する分類が行われてもよい。例えば、画像データに撮影された被写体を分類する場面に学習モデル適用システムSを用いてもよい。また例えば、気象データが示す温度や湿度などに基づいて天候を分類する場面に学習モデル適用システムSを用いてもよい。また例えば、文章データの要約を作成する画面に学習モデル適用システムSを用いてもよい。他にも、任意の内容のデータに関する分類をする場面に学習モデル適用システムSを適用可能である。
 また例えば、学習モデル適用システムSに含まれるコンピュータは、図1の例に限られない。学習モデル適用システムSには、少なくとも1つのコンピュータが含まれるようにすればよく、例えば、バックグラウンド処理とリアルタイム処理とが同じコンピュータで実現されてもよい。同様に、特徴量を計算するコンピュータと、学習モデルを作成するコンピュータと、が同じであってもよい。また例えば、図3及び図10で説明した機能は、任意のコンピュータで実現されるようにすればよく、各機能が1つのコンピュータで実現されてもよいし、任意の数のコンピュータで各機能が分担されてもよい。また例えば、実施形態及び変形例で説明したデータは、学習モデル適用システムS外のコンピュータによって記憶されてもよい。

Claims (11)

  1.  学習モデルの学習で用いられる学習用データに基づいて、複数の特徴量を計算する計算手段と、
     前記学習モデルにおける各特徴量の影響に基づいて、前記複数の特徴量のうちの少なくとも1つを選択する選択手段と、
     前記選択手段により選択された特徴量に基づいて学習された学習済みの学習モデルを適用する適用手段と、
     前記選択手段により選択された特徴量に基づいて、前記学習済みの学習モデルに入力される特徴量の計算に関する設定を行う設定手段と、
     を含むことを特徴とする学習モデル適用システム。
  2.  前記計算手段は、複数の前処理コンポーネントに基づいて、前記複数の特徴量を計算し、
     前記設定手段は、前記複数の前処理コンポーネントのうち、前記選択手段により選択された特徴量の計算で用いられる前処理コンポーネントを、前記学習済みの学習モデルに入力される特徴量の計算で用いるように設定する、
     ことを特徴とする請求項1に記載の学習モデル適用システム。
  3.  前記学習モデル適用システムは、各前処理コンポーネントに対し、互いに同じ形式のデータを入力する入力手段を更に含み、
     各前処理コンポーネントは、他の前処理コンポーネントに入力されるデータと同じ形式のデータに基づいて、計算処理を実行する、
     ことを特徴とする請求項2に記載の学習モデル適用システム。
  4.  前記学習モデル適用システムは、新たな特徴量を計算するための新たな前処理コンポーネントを追加する追加手段を更に含み、
     前記計算手段は、前記新たな前処理コンポーネントに基づいて、前記新たな特徴量を計算し、
     前記設定手段は、前記選択手段により前記新たな特徴量が選択された場合には、前記新たな前処理コンポーネントを、前記学習済みの学習モデルに入力される特徴量の計算で用いるように設定する、
     ことを特徴とする請求項2又は3に記載の学習モデル適用システム。
  5.  前記学習モデル適用システムは、各特徴量の計算時間を取得する取得手段を更に含み、
     前記選択手段は、前記学習モデルにおける各特徴量の影響と、各特徴量の計算時間と、に基づいて、前記複数の特徴量のうちの少なくとも1つを選択する、
     ことを特徴とする請求項1~4の何れかに記載の学習モデル適用システム。
  6.  前記学習モデル適用システムは、前記複数の特徴量の中から、互いに関連する特徴量の組み合わせを特定する特定手段を更に含み、
     前記選択手段は、前記互いに関連する特徴量の組み合わせが存在する場合には、当該組み合わせのうちの一部を選択する、
     ことを特徴とする請求項1~5の何れかに記載の学習モデル適用システム。
  7.  前記学習モデル適用システムは、
     各特徴量の計算時間を取得する取得手段と、
     各特徴量の計算時間が所定時間以上であるか否かを判定する判定手段と、
     を更に含み
     前記選択手段は、計算時間が所定時間以上の特徴量が存在する場合には、当該特徴量を欠損値として扱い、前記学習モデルにおける影響を評価する、
     ことを特徴とする請求項1~6の何れかに記載の学習モデル適用システム。
  8.  前記学習モデルは、ウェブサイトにおける不正を検知するためのモデルであり、
     前記学習モデル適用システムは、前記ウェブサイトにユーザがアクセスした場合に、前記学習済みの学習モデルと、前記設定手段により行われた設定と、に基づいて、当該ユーザの不正を推定する推定手段を更に含み、
     前記選択手段、前記適用手段、及び前記設定手段の各々の処理は、前記推定手段の処理とは異なるバックグラウンド処理として実行される、
     ことを特徴とする請求項1~7の何れかに記載の学習モデル適用システム。
  9.  前記学習モデルは、ウェブサイトにおける不正を検知するためのモデルであり、
     前記学習モデル適用システムは、前記ウェブサイトの管理者に対し、前記選択手段により選択された特徴量に関する情報を通知する通知手段、
     を更に含むことを特徴とする請求項1~8の何れかに記載の学習モデル適用システム。
  10.  学習モデルの学習で用いられる学習用データに基づいて、複数の特徴量を計算する計算ステップと、
     前記学習モデルにおける各特徴量の影響に基づいて、前記複数の特徴量のうちの少なくとも1つを選択する選択ステップと、
     前記選択ステップにより選択された特徴量に基づいて学習された学習済みの学習モデルを適用する適用ステップと、
     前記選択ステップにより選択された特徴量に基づいて、前記学習済みの学習モデルに入力される特徴量の計算に関する設定を行う設定ステップと、
     を含むことを特徴とする学習モデル適用方法。
  11.  学習モデルの学習で用いられる学習用データに基づいて、複数の特徴量を計算する計算手段、
     前記学習モデルにおける各特徴量の影響に基づいて、前記複数の特徴量のうちの少なくとも1つを選択する選択手段、
     前記選択手段により選択された特徴量に基づいて学習された学習済みの学習モデルを適用する適用手段、
     前記選択手段により選択された特徴量に基づいて、前記学習済みの学習モデルに入力される特徴量の計算に関する設定を行う設定手段、
     としてコンピュータを機能させるためのプログラム。
PCT/JP2019/035376 2019-09-09 2019-09-09 学習モデル適用システム、学習モデル適用方法、及びプログラム WO2021048902A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
EP19944677.4A EP3882825A4 (en) 2019-09-09 2019-09-09 LEARNING MODEL APPLICATION SYSTEM, LEARNING MODEL APPLICATION PROCEDURE AND PROGRAM
US17/415,742 US20220083910A1 (en) 2019-09-09 2019-09-09 Learning model applying system, a learning model applying method, and a program
JP2020539117A JP7015927B2 (ja) 2019-09-09 2019-09-09 学習モデル適用システム、学習モデル適用方法、及びプログラム
PCT/JP2019/035376 WO2021048902A1 (ja) 2019-09-09 2019-09-09 学習モデル適用システム、学習モデル適用方法、及びプログラム
TW109130412A TWI778411B (zh) 2019-09-09 2020-09-04 學習模型應用系統、學習模型應用方法及程式產品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/035376 WO2021048902A1 (ja) 2019-09-09 2019-09-09 学習モデル適用システム、学習モデル適用方法、及びプログラム

Publications (1)

Publication Number Publication Date
WO2021048902A1 true WO2021048902A1 (ja) 2021-03-18

Family

ID=74866230

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/035376 WO2021048902A1 (ja) 2019-09-09 2019-09-09 学習モデル適用システム、学習モデル適用方法、及びプログラム

Country Status (5)

Country Link
US (1) US20220083910A1 (ja)
EP (1) EP3882825A4 (ja)
JP (1) JP7015927B2 (ja)
TW (1) TWI778411B (ja)
WO (1) WO2021048902A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7273942B1 (ja) 2021-12-28 2023-05-15 尚承科技股▲フン▼有限公司 ネットワーク行為特徴を学習するネットワーク機器、処理システムおよび方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11588830B1 (en) * 2020-06-30 2023-02-21 Sequoia Benefits and Insurance Services, LLC Using machine learning to detect malicious upload activity

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019036865A (ja) * 2017-08-17 2019-03-07 沖電気工業株式会社 通信解析装置、通信解析プログラム、及び通信解析方法
WO2019049210A1 (ja) 2017-09-05 2019-03-14 楽天株式会社 推定システム、推定方法及びプログラム
JP2019102960A (ja) * 2017-12-01 2019-06-24 日本電信電話株式会社 サイバー攻撃検知システム、特徴量選定システム、サイバー攻撃検知方法、及びプログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015041317A (ja) * 2013-08-23 2015-03-02 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 電子機器の操作についてのユーザの習熟度を推定するためのモデルを構築する方法、当該ユーザの習熟度を推定する方法、及び、当該ユーザの習熟度に応じたユーザ支援をする方法、並びに、それらのコンピュータ及びコンピュータ・プログラム
US20150213376A1 (en) * 2014-01-30 2015-07-30 Shine Security Ltd. Methods and systems for generating classifiers for software applications
US10366346B2 (en) * 2014-05-23 2019-07-30 DataRobot, Inc. Systems and techniques for determining the predictive value of a feature
JP6680714B2 (ja) * 2017-03-30 2020-04-15 ファナック株式会社 ワイヤ放電加工機の制御装置及び機械学習装置
JP6969177B2 (ja) * 2017-06-28 2021-11-24 富士通株式会社 特定行動検知プログラム、特定行動検知方法及び特定行動検知システム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019036865A (ja) * 2017-08-17 2019-03-07 沖電気工業株式会社 通信解析装置、通信解析プログラム、及び通信解析方法
WO2019049210A1 (ja) 2017-09-05 2019-03-14 楽天株式会社 推定システム、推定方法及びプログラム
JP2019102960A (ja) * 2017-12-01 2019-06-24 日本電信電話株式会社 サイバー攻撃検知システム、特徴量選定システム、サイバー攻撃検知方法、及びプログラム

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
HIROTA KAORU: "Fuzzy robot vision", JOURNAL OF THE ROBOTICS SOCIETY OF JAPAN, vol. 6, no. 6, 15 December 1988 (1988-12-15), JP, pages 89 - 94, XP009528215, ISSN: 0289-1824, DOI: 10.7210/jrsj.6.6_557 *
See also references of EP3882825A4
SUMIYA MARI, HAMADA NOZOMU: "Rotation robust shape detection using local self similarities", JOURNAL OF SIGNAL PROCESSING, vol. 16, no. 5, 16 September 2012 (2012-09-16), pages 399 - 407, XP055815815, ISSN: 1342-6230 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7273942B1 (ja) 2021-12-28 2023-05-15 尚承科技股▲フン▼有限公司 ネットワーク行為特徴を学習するネットワーク機器、処理システムおよび方法
JP2023097531A (ja) * 2021-12-28 2023-07-10 尚承科技股▲フン▼有限公司 ネットワーク行為特徴を学習するネットワーク機器、処理システムおよび方法

Also Published As

Publication number Publication date
JPWO2021048902A1 (ja) 2021-09-27
EP3882825A1 (en) 2021-09-22
US20220083910A1 (en) 2022-03-17
TW202111592A (zh) 2021-03-16
EP3882825A4 (en) 2022-01-05
JP7015927B2 (ja) 2022-02-03
TWI778411B (zh) 2022-09-21

Similar Documents

Publication Publication Date Title
CN112417439B (zh) 账号检测方法、装置、服务器及存储介质
CN110399925B (zh) 账号的风险识别方法、装置及存储介质
US10938927B2 (en) Machine learning techniques for processing tag-based representations of sequential interaction events
CA2985028C (en) Gating decision system and methods for determining whether to allow material implications to result from online activities
US8583471B1 (en) Inferring household income for users of a social networking system
JP6501855B1 (ja) 抽出装置、抽出方法、抽出プログラム及びモデル
CN111522724B (zh) 异常账号的确定方法、装置、服务器及存储介质
CN112508638B (zh) 数据处理的方法、装置及计算机设备
TW202105303A (zh) 違規推定系統、違規推定方法及程式產品
JP7015927B2 (ja) 学習モデル適用システム、学習モデル適用方法、及びプログラム
WO2023000491A1 (zh) 一种应用推荐方法、装置、设备及计算机可读存储介质
CN111611519B (zh) 一种个人异常行为检测方法及装置
CN111340540B (zh) 广告推荐模型的监控方法、推荐方法及装置
JP5209089B2 (ja) 投稿情報評価装置及び投稿情報評価方法
EP3783543A1 (en) Learning system, learning method, and program
US20220327186A1 (en) Fraud detection system, fraud detection method, and program
JP7238214B1 (ja) 不正検知システム、不正検知方法、及びプログラム
TWI798719B (zh) 違規檢知系統、違規檢知方法及程式產品
CN110245990B (zh) 广告推荐方法、装置、电子设备及存储介质
JP2022147013A (ja) 情報処理装置、制御方法、及びプログラム
CN116915893A (zh) 信息展示方法、装置、计算机设备和存储介质
CN113393261A (zh) 认知途径确定方法、电子设备及相关产品
CN116204243A (zh) 一种用于电子商务的页面加载方法与系统
CN116522146A (zh) 客户流失检测模型训练方法、客户流失检测方法及装置
CN117194779A (zh) 基于人工智能的营销系统优化方法、装置及设备

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2020539117

Country of ref document: JP

Kind code of ref document: A

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19944677

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2019944677

Country of ref document: EP

Effective date: 20210617

NENP Non-entry into the national phase

Ref country code: DE