← Portfolio
Proprietary

Bci's first recommender system

Industry
Banking
Type of work
Recommender systems
Period
2016

Architecture

Goal

Test whether purchase history was enough to recommend relevant categories and merchants to each customer, as a shared base for several possible uses: a customer assistant, benefits and search.

What I did

  • Designed and built the whole system. It was the bank's first recommender and reached pilot.
  • Pulled customer-category and customer-merchant tuples from Teradata, scoring purchases normalized by the total activity of the customer and the category.
  • Trained implicit-feedback collaborative filtering (ALS) on Spark as a daily batch, tuning regularization, iterations and alpha.
  • Recommended merchants only within each customer's top categories, to handle the high cardinality of stores.
  • Stored precomputed recommendations and served them through an internal REST API (top N, re-ranking a list and distance filtering), never querying Spark online.

Stack

SparkPySparkALSTeradataPythonREST