Bci's first recommender system
- Industry
- Banking
- Type of work
- Recommender systems
- Period
- 2016
Confidential project: code and data are not public.
Architecture
- Consumers assistantbenefitssearch
- Serving internal REST APItop Nre-rankinggeolocator
- Store precomputed recommendations
- Models Spark ALSimplicit feedbackcategoriesmerchants within top N categoriesdaily batch
- Scoring purchases normalized by customer and category
- Data Teradatacard purchases
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.