Santander Bank Product Recommendation System

Our goal is to implement a product recommendation system based on user personalization and item-similarity, to help banks improve customer acquisition and revenue on products by better marketing techniques.

Dataset

For this, we utilized the Santander Product Recommendation dataset which is available on Kaggle.

Link - https://www.kaggle.com/c/santander-product-recommendation/data

The dataset contains 1.5 years of Spain customers behavior data from Santander bank to predict what new products customers will purchase. The data starts at 2015-01-28 and has monthly records of products a customer has, such as "credit card", "savings account", etc. Our goal is to recommend products based on customer interactions. The dataset contains around 200K rows and 49 columns.

The dataset description is as follows:

S no.

Column Name

Description

1

data_date

The table is partitioned for this column

2

ncodpers

Customer code

3

ind_empleado

Employee index: A active, B ex employed, F filial, N not employee, P passive

4

country_residence

Customer's Country residence

5

sex

Customer's sex

6

age

Age

7

high_date

The date in which the customer became as the first holder of a contract in the bank

8

ind_new

New customer Index. 1 if the customer registered in the last 6 months.

9

antiquity

Customer seniority (in months)

10

indrel

1 (First/Primary), 99 (Primary customer during the month but not at the end of the month)

11

ult_fec_cli_1t

Last date as primary customer (if he isn't at the end of the month)

12

indrel_1mes

Customer type at the beginning of the month ,1 (First/Primary customer), 2 (co-owner ),P (Potential),3 (former primary), 4(former co-owner)

13

tiprel_1mes

Customer relation type at the beginning of the month, A (active), I (inactive), P (former customer),R (Potential)

14

indresi

Residence index (S (Yes) or N (No) if the residence country is the same than the bank country)

15

index

Foreigner index (S (Yes) or N (No) if the customer's birth country is different than the bank country)

16

conyuemp

Spouse index. 1 if the customer is spouse of an employee

17

channel_in

channel used by the customer to join

18

indfall

Deceased index. N/S

19

typo dom

Addres type. 1, primary address

20

cod_prov

Province code (customer's address)

21

nomprov

Province name

22

ind_actividad_cliente

Activity index (1, active customer; 0, inactive customer)

23

renta

Gross income of the household

24

segmento

segmentation: 01 - VIP, 02 - Individuals 03 - college graduated

25

ind_ahor_fin_ult1

Saving Account

26

ind_aval_fin_ult1

Guarantees

27

ind_cco_fin_ult1

Current Accounts

28

ind_cder_fin_ult1

Derivada Account

29

ind_cno_fin_ult1

Payroll Account

30

ind_ctju_fin_ult1

Junior Account

31

ind_ctma_fin_ult1

Más particular Account

32

ind_ctop_fin_ult1

particular Account

33

ind_ctpp_fin_ult1

particular Plus Account

34

ind_deco_fin_ult1

Short-term deposits

35

ind_deme_fin_ult1

Medium-term deposits

36

ind_dela_fin_ult1

Long-term deposits

37

ind_ecue_fin_ult1

e-account

38

ind_fond_fin_ult1

Funds

39

ind_hip_fin_ult1

Mortgage

40

ind_plan_fin_ult1

Pensions

41

ind_pres_fin_ult1

Loans

42

ind_reca_fin_ult1

Taxes

43

ind_tjcr_fin_ult1

Credit Card

44

ind_valo_fin_ult1

Securities

45

ind_viv_fin_ult1

Home Account

46

ind_nomina_ult1

Payroll

47

ind_nom_pens_ult1

Pensions

49

ind_recibo_ult1

Direct Debit

RF segmentation

RFM factors illustrate these facts:

User-Personalization recipe

Predicts items a user will interact with and performs exploration on cold items. Based on Hierarchical Recurrent Neural Networks which model the temporal order of user-item interactions.

Item-to-item similarities (SIMS)

Computes items similar to a given item based on co-occurrence of items in the user-item interactions dataset.

Sign-in Page:

Product recommendation based on user-item interaction dataset using user personalization algorithm on AWS Personalize:

Product recommendation based on user-item interaction dataset using Item-to-item similarities (SIMS) algorithm on AWS Personalize:

Note: We added a filter on our recommendation engine to show only those products which are not owned by the user

Product recommendation (Cold start) with a new user login:

Used Smtplib python library to push recommendations to the users via email:

Email:

https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-sims.html

https://docs.aws.amazon.com/personalize/latest/dg/native-recipe-new-item-USER_PERSONALIZATION.html

https://databricks-prod-cloudfront.cloud.databricks.com/public/4027ec902e239c93eaaa8714f17

3bcfc/2885002711960994/97004730824646/7533496735645217/latest.html