Skip to main content
Version: 2.3

Create PoC

To create a proof of concept (PoC), a developer team implements a separate provider that receives the Data Store name and prepared hits in the table format.

There are three main scenarios:

  • Create PoC using a pre-trained ML model.
  • Create proof of concept by training the ML model on customer historical data.
  • Train the model on the customer historical data and validate the model quality on a test dataset.

The following schema shows regular training of the ML model.

  1. Environment preparation:

  2. Data preparation:

  3. ML Model rules:

  4. PoC execution and evaluation:

The following guide implies that you have prepared the environment, as specified in step 1.

Data preparation

Data formats

Data formats for training and test datasets are almost similar to the entire Name Screening Business Process. The difference is in the search_id field, while some fields are mandatory.

Input data format
FieldDescriptionTypeMandatoryExamples
search_idThe parameter to connect hits with inputs. Each input must have unique search_id.StringYes1
input_idCustomer service ID. For example, end-user's account_id in the bank database.StringNo1111
input_record_typeRecord (search) type: individual, business, aircraft, vessel, and so on.StringNoPerson
input_first_nameFirst name of the person.StringNoMustafa
input_last_nameLast name of the person.StringNoMohamed
input_middle_nameMiddle name of the person.StringNoFadhil
input_name_titleTitle of the person: Dr., Mr., and so on.StringNoDr.
input_full_nameFull name of the person or name or title of a screened organization.StringYesMustafa Mohamed Fadhil
input_genderGender of the input entity data in case it is an Individual.StringNoMale
input_address_[1..99]_streetEntity's address split into separate values. You can specify only Country and leave other fields empty. State is optional but increases the model quality.

If the address is a post office box, specify it in the _street variable.

You can specify several addresses; they are compared with all addresses in a found hit. If the address is a PO Box, specify it in the first variable of the address massive: input_address_1_street.
StringNo6 S. Marconi Street
input_address_[1..99]_citySee the description of input_address_[1..99]_street earlier.StringNoBronx
input_address_[1..99]_stateSee the description of input_address_[1..99]_street earlier.StringNoNY
input_address_[1..99]_countrySee the description of input_address_[1..99]_street earlier.StringNoUnited States of America
input_address_[1..99]_postal_codeSee the description of input_address_[1..99]_street earlier.StringNo10463
input_date_[1..99]Date of birth, business registration, or foundation, and so on. You can specify several dates; they are compared with all dates in a found hit.DateNo10/26/1981 (MM/DD/YYYY)
input_date_type_[1..99]Type of date: DOB, DOR, and so on.StringNo
  • DOB
  • DOR
note

To add custom fields to a hit, add a new column to the Data Store with the hit_ prefix. It is not taken into account during the decision making but will be processed and transferred to output results.

Example file: example_input.csv

Hit data format
FieldDescriptionTypeMandatoryExamples
search_idThe parameter to connect hits with inputs. Each input must have unique search_id. Each hit has a value to connect to the particular input (only values that exist in the inputs).StringYes1
hit_idThe hit ID of the sanctioned, high-risk, or politically exposed individual, business, or another type of an entity according to the connected sanction screening system.StringYes1111
hit_record_typeThe record type of the sanctioned, high risk, or politically exposed individual. Values depend on the connected screening system. Example: Individual/Person, Business/Entity, Vessel, AircraftStringNoPerson
hit_matched_nameThe name from sanctions or Public Exposed Persons (PEP) list detected as a potential match by the screening software.StringYesMustafa Mohamed Fadhil
hit_matched_name_scoreThe score [0..1] shows a degree of similarity of compared names: from the input and hit. The used sanctions screening system provides the data.StringNo0.86
hit_genderThe gender of the hit entity data in case it is an Individual.StringNoMale
hit_address_[1..99]_streetEntity's address split into separated values. The address can be incomplete: only Country, or Country + State.

You can specify several addresses. The PO Box type of address is not supported for the hit data.

StringNo6 S. Marconi Street
hit_address_[1..99]_citySee the description of input_address_[1..99]_street earlier.StringNoBronx
hit_address_[1..99]_stateSee the description of input_address_[1..99]_street earlier.StringNoNY
hit_address_[1..99]_countrySee the description of input_address_[1..99]_street earlier.StringNoUnited States of America
hit_address_[1..99]_postal_codeSee the description of input_address_[1..99]_street earlier.StringNo10463
hit_date_[1..99]Date of birth, date of business registration or foundation, and so on. There are possibly several dates.DateNo10/26/1981 (MM/DD/YYYY)
hit_date_type_[1..99]Type of date: DOB, DOR, and so on.StringNo
  • DOB
  • DOR
hit_matched_countryCountry from the hit data that has the biggest comparison score. The used sanction screening system provides the data.StringNoCanada
hit_matched_country_scoreScore value of the best-matched country from the hit data. The used sanction screening system provides the data.StringNo0.76
hit_IDs_matchParameter (0 or 1) shows whether there is a match of Document IDs from the input and hit. The used sanction screening system provides the data.StringNo0

Example: nss_datastore_provider.csv

Name Matcher data format
FieldDescriptionTypeMandatoryExamples
name1The Individual/Person, Business/Entity, or Vessel/Aircraft name to compare with name2.StringYesDoe Jones
name2The Individual/Person, Business/Entity, or Vessel/Aircraft name to compare with name1.StringYesDoe Jones
goldThe value represents the result whether name1 and name2 match or not. Possible values:
  • 1: names match.
  • 0: names do not match.
StringYes1

Example: name_matcher_data.csv

Convert data from customer's format

Customers can provide data in different formats: structured data in CSV, XML, JSON, scanned documents, emails, reports, and so on. For each case, you need to follow the optimal way to convert the data from the original format to the table one.

For example:

  • Use OCR or RPA to recognize data from scanned documents and convert them to CSV.
  • Convert JSON or XML to CSV with any suitable tool.

Any conversion should take no more than two working days.

As a result, you need names for screening with additional data, hits for these names with other data, and evaluation (False Positive, Need more information) for each name-hit pair.

info

The recommended way is to form a single table with all input-hit pairs. Then, it will be easier for you to validate that you have all the required data in the required input-output data format.

Prepare training dataset

note

The step is optional because it is not always necessary to train the model on customer data for PoC purposes. Any PoC can be built on an out-of-the-box pre-trained model, which shows excellent results.

We recommend training a new model based on customer data when the data is significantly different from our training data. For example, the out-of-the-box model has been trained on US, Canada, and Arabic names. But if a customer has the most names for screening from one specific region (CIS, APAC, China, and so on), it is better to train the model on customer-specific data. It should improve the model quality using only the customer data, without the model tuning.

The test dataset consists of CSV files (see examples earlier) with:

Prepare test dataset

Test dataset consists of CSV files (see prior examples) with:

ML Model Train

Fill required Data Stores with training data

We recommend creating a separate Data Store for training an ML Model.

To create a custom Data Store based on an input CSV file, do the following:

  1. Log in to Control Tower, and, in the menu, click Advanced > Data Stores > Create Data Store.

  2. In the Create Data Store window, enter the new Data Store name, select the Upload File checkbox, and click Upload data.

  3. In the window, click Add, select the input CSV file that you prepared earlier, click Open, and then click Upload.

  4. Click Save.

  5. Execute steps 1-4 for the hit and the name matcher CSV file of the dataset.

Execute training BP

To start the ML Model Train BP, do the following:

  1. In Control Tower, go to the NSS Model Re-train Business Process, and in the Workflow tab, click the NSS Model Training Settings step. In the Design tab below, fill in Data Store names.

    The Hypermodel Version parameter is responsible for taking the Hyper Model's correct version to train the process. We recommend using the latest version of the hyper model.

    To find the version in S3, follow the nss-classification-model link, for example, example-minio-lb1.workfusion.com/minio/vds-models/nss-classification-model/

  2. On the BP's Run tab, run the Business Process and wait for results to appear on the Results tab.

Get new Model_ID

The BP's result is model_id is a trained version of the hyper model provided in the Results tab of BP. This model_id can be used for running the main BP.

To use the trained model in the core BP, change the value of model_id in Profiles DS or create a profile. For more information, see step 3 in Create POC with custom Data Store.

PoC execution and evaluation

Execute core BP

For complete information, see the Run screening guide.

Analyze execution via Analytics dashboard

For complete information, see the Analyze effectiveness guide.