Skip to main content
Version: 1.0

Create PoC

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

There are three main scenarios:

  • Create PoC using a pre-trained ML model.
  • Create proof of concept (PoC) by training the ML model on customers' historical data.
  • Train the model on the customer's historical data and validate the model quality on a test data set.

The following schema shows regular training of the ML model.

  1. Environment preparation:

  2. Data preparation:

  3. ML Model rules Fill required Data Stores with training data

  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 data sets 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 a 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, etc.StringNoPerson
input_first_nameFirst name of the personStringNoMustafa
input_last_nameLast name of the personStringNoMohamed
input_middle_nameMiddle name of the personStringNoFadhil
input_name_titleTitle of the person: Dr., Mr., etc.StringNoDr.
input_full_nameFull name of the person or name/title of a screened organizationStringYesMustafa Mohamed Fadhil
input_genderGender of the Input entity data in case it is an IndividualStringNoMale
input_address_[1..99]_streetEntity's adress split into separate values. You can specify only Country and leave all other fields empty. State is optional, but increases the model quality.

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

You can specify several addresses, they will be compared with all addresses in a found hit. If the address is a PO Box, specify it in the 1st variable of the address massive: input_address_1_street.
StringNo6 S. Marconi Street
input_address_[1..99]_citySee description of input_address_[1..99]_street earlierStringNoBronx
input_address_[1..99]_stateSee description of input_address_[1..99]_street earlierStringNoNY
input_address_[1..99]_countrySee description of input_address_[1..99]_street earlierStringNoUnited States of America
input_address_[1..99]_postal_codeSee description of input_address_[1..99]_street earlierStringNo10463
input_date_[1..99]Date of birth or business registration / fundation, etc. You can specify several dates, they will be compared with all dates in a found hit.DateNo10/26/1981 (MM/DD/YYYY)
input_date_type_[1..99]Type of date: DOB, DOR, etc.StringNo
  • DOB
  • DOR
note

To add custom fields to a hit, add a new column to the Data Store with the "hit_" prefix. It will not be 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 a 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 sanctions 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 PEP list detected as a potential match by the screening softwareStringYesMustafa 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 this data.StringNo0.86
hit_genderThe gender of the Hit entity data in case it is an IndividualStringNoMale
hit_address_[1..99]_streetEntity's address split into separated values. The address may be incomplete: only Country, or Country + State.

You can specify several addresses. The 'PO Box' type of address isn't supported for hit's data.

StringNo6 S. Marconi Street
hit_address_[1..99]_citySee description of input_address_[1..99]_street earlierStringNoBronx
hit_address_[1..99]_stateSee description of input_address_[1..99]_street earlierStringNoNY
hit_address_[1..99]_countrySee description of input_address_[1..99]_street earlierStringNoUnited States of America
hit_address_[1..99]_postal_codeSee description of input_address_[1..99]_street earlierStringNo10463
hit_date_[1..99]Date of birth, date of business registration / foundation, etc. There are possibly several dates.DateNo10/26/1981 (MM/DD/YYYY)
hit_date_type_[1..99]Type of date: DOB, DOR, etc.StringNo
  • DOB
  • DOR
hit_matched_countryCountry from the Hit data that has the biggest comparison score. The used sanctions screening system provides this data.StringNoCanada
hit_matched_country_scoreScore value of the best-matched country from the Hit data. The used sanctions screening system provides this 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 sanctions screening system provides this 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 Jone
goldThe value represents the result whether name1 and name2 match or not. Possible values:
  • 1: names match.
  • 0:names don't 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, etc. For each case, you need to follow the optimal way to convert the data from the original format to table-wise 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 pairs 'input-hit'. 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 data set

Optional

This 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 OOTB 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 OOTB model has been trained on US/Canada/Arabic names. But if a customer has the most names for screening from one specific region (CIS / APAC / China, and so on), it's better to train the model on customer-specific data. It should improve the model quality using only the customer's data, without the model tuning.

The test data set consists of .csv files (see examples earlier) with:

Prepare test data set

Test data set 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 the ML Model.

To create a custom Data Store based on the 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

BP's result is model_id – 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 this trained model in the main BP, change the value of model_id in Profiles DS, or create a profile. For more information, see Create POC with custom Data Store, step 3.

PoC execution and evaluation

Execute main BP

For complete information, see the Run screening guide.

Analyze execution via Analytics dashboard

For complete information, see the Analyze effectiveness guide.