Huỳnh Thanh Quan
2026 Expert Data Scientist · Techcombank
Lead Data Scientist at Techcombank

Data science for marketing optimization, at scale.

I lead Next Best Action (NBA) at Techcombank: recommendation, bandit-based delivery, and causal measurement for roughly 6 million retail customers. Impact is independently validated by Business Finance.

66B VND attributable TOI
~6M customers reached
7pp absolute CTR lift
Sequential recommendation Bandits under constraints Multi-treatment uplift Reinforcement Learning
Based in Ho Chi Minh · GMT+7
Specialty Marketing Optimization
Status Open to advise
01 / Techcombank

Today's focal project: Next Best Action.

Techcombank logo
Techcombank
Top-tier retail bank · Vietnam
Now Since 2025

Expert Data Scientist · Next Best Action Lead

Next Best Action (NBA) is the bank-wide decisioning layer: for each customer, pick the single most valuable next action — the right offer, on the right surface, at the right moment, within budget. It runs as business-as-usual across a retail customer base of roughly 6 million, spanning credit-card spending, cross-sell, upsell, and Next Best Offer campaigns.

What is NBA?

NBA is the recommendation platform behind personalization across the bank. It answers the questions the business actually asks:

  • Which offer will move this customer's spending?
  • Which vouchers should surface first in the loyalty app?
  • How should content be tailored to lift cross-sell and upsell?
  • When to send, and on which channel?
  • What journey moves someone from new-to-bank to primary-bank?

Four short stories about personalized recommendation.

01 / 04
Digital channel marketing, with and without data science.

Without it, a campaign goes to everyone on a fixed schedule. Reach is the only lever, most of the budget lands on people who were never going to respond, and the fatigue that creates stays invisible until opt-outs start climbing. With it, the same budget is allocated per customer — who to contact, on which channel, at what moment — so open rate, click-through and conversion move together rather than trading off. Same spend, roughly 5× the revenue, and the customers who were never going to convert are simply left alone.

NBA architecture

Four layers of decision intelligence.

From predictive targeting → causal measurement → self-optimization → agentic orchestration.

0B VND
TOI attributable, validated by Business Finance
0M users
NBA scale — from 1.2M to 6M in a few quarters
0+ campaigns
Architected, instrumented and shipped end-to-end through the NBA system
Sequential Transformer Bayesian MMM · Meridian Multi-treatment Uplift Contextual Bandits A/B/n + CUPED Databricks MLRun
NBA architecture

Watch the system build itself.

  1. Layer 1 — Recommendation
    Rank the next action from the sequence, not the segment.

    Every customer arrives as an ordered history — app opens, FX, a savings top-up, a card swipe. A sequential transformer reads that order and ranks what should happen next, together with the channel and the hour it should happen in. Segments cannot express order; this is why they were dropped.

  2. Layer 2 — Causal measurement
    Ask what the campaign caused, not what it correlated with.

    A ranked list is a hypothesis until it is measured against a holdout. Treated and control are drawn at random, conversion is compared, and the gap — not the treated rate — is the result. The number that leaves this layer is validated independently by Business Finance.

  3. Layer 3 — Self-optimisation
    Let the system reallocate itself, under a guardrail.

    Each arm carries a posterior belief rather than a point estimate, so a thin-evidence arm keeps earning exploration instead of being buried by an early loss. A fatigue cap stops traffic collapsing onto one winner. The hard part is not the bandit — it is that feedback lands days late.

  4. Layer 4 — Agentic orchestration
    Close the loop so it runs without a human in it.

    Decide, deliver, measure, learn — then decide again on what was learned. Once that circuit is instrumented end to end, campaign cadence stops being limited by how fast a team can read a dashboard and start a new brief.

02 / Curious Machine

Founder of a community for the curious.

Founder & Curator · Since 2022

Curious Machine

Mission: education & inspiration. Curious Machine isn't about memorising frameworks — it's where I share design patterns, trade-offs, and "why this and not that" from nearly a decade in banking and fintech DS. Each cohort leaves with a new mental model for using data to drive business decisions, not just a checklist of techniques.

8000+Members
6Courses
100+1:1 mentees
Vi · EnLanguages
Mentees now at Grab Techcombank MoMo Zalo Sacombank VPBank Shopee and more
Courses
01

Recommendation Systems

You'll learn Sequential transformer, two-tower, MMOE, content + collaborative; offline / online metrics; cold-start; multi-objective ranking.

Solves "What should this user see next?" — for banking, fintech, e-commerce, content platforms.

For Mid–senior DS / ML engineers in Personalisation, Growth, Marketing Science teams. Level 4–6/10. Career path: RecSys specialist, NBA / NBO lead.

02

Experiment Design & Causal

You'll learn A/B/n, CUPED, sequential testing, PSM, DiD, Synthetic Control, IV; handle SUTVA, multi-treatment, spillover, contamination in the wild.

Solves "Did this actually work?" — the question every CFO / Product Lead asks after each launch.

For DS / Analyst / PM in banking, fintech, marketplace, SaaS. Level 3–5/10. Career path: Experimentation lead, Product Analyst, Marketing Scientist.

03

Reinforcement Learning

You'll learn Multi-armed & contextual bandits (Thompson, LinUCB), offline RL, off-policy evaluation (IPS, DR, FQE); when RL is — and isn't — the right tool.

Solves "How do I explore vs exploit at scale?" — campaign optimization, content slotting, dynamic pricing, recommendation re-ranking.

For Senior DS / ML engineer in banking, fintech, ad-tech, e-commerce. Level 5–7/10. Career path: Marketing Optimization / NBA architect.

04

Bayesian MMM

You'll learn Adstock, saturation, hierarchical priors; PyMC + Google Meridian; validation with holdouts, calibration via A/B lift, scenario planning.

Solves "How do I allocate 500M – 10B VND across push / SMS / call / paid media?" — with explicit uncertainty, not a point estimate.

For Senior DS / Marketing Analytics Lead / CMO office. Level 5–8/10. Career path: Marketing Mix Lead, Head of Marketing Science, Growth strategy.

05

Business Communication for DS

You'll learn Translating model output into stakeholder language; storytelling for execs; defensible writeups for Finance / Risk / Legal; framing trade-offs.

Solves "Why does my great model never get adopted?" — bridging data → decisions, DS → business trust.

For Any DS aiming for Senior / Lead / Manager. Useful at level 3–8/10. Career path: Tech Lead, DS Manager, Head of DS.

06

Foundation: DS & Deep Learning

You'll learn Math foundations · classical ML · neural nets · CNN · transformer · core MLOps — taught from first principles, not framework-of-the-week.

Solves "I'm switching into DS — what should I learn first?" — avoid scattered learning, build a coherent foundation.

For Juniors / career-switchers / final-year students. Level 1–3/10. Career path: entry-level DS in banking, fintech, e-commerce, healthcare.

✦ Labs · Marketing Science

Five small labs, five ML techniques actually running inside NBA — and one you can play.

Each lab is a standalone slice peeled out of the NBA stack — Thompson Sampling for the explore-vs-exploit piece, two-tower retrieval for the match-the-right-action-to-the-right-person piece, and uplift quadrants for the did-we-actually-cause-this piece, and sequence attention for the why-did-it-pick-that piece. The fifth is a game: allocate a budget against the policy and find out where your intuition leaks. All five run live in your browser. No backend, no login. Every click updates a real model parameter.

Lab 01 Live

Thompson Sampling

Multi-armed bandits · explore vs exploit

Three arms with hidden win-rates. Each pull updates a Beta posterior; the algorithm self-balances exploit and explore. A fatigue cap lets you feel a real-world policy guardrail.

  • Beta posteriors update per pull
  • Regret plateaus instead of growing linearly
  • Fatigue-cap slider simulates a real policy guardrail
Open lab
Lab 02 Live

Two-tower retrieval

Recommendation · user × item embedding

Toggle behaviours to build a customer embedding u ∈ ℝ⁶. The NBA-action catalog re-ranks live by cosine(u, item) — the same mechanic that runs in production retrieval.

  • 6-dim user tower · sample personas included
  • Item tower hand-crafted, live re-ranking
  • Scores below are real cosine, not staged
Open lab
Lab 03 Live

Uplift quadrants

Causal · predicting vs causing

Every dot is a customer, placed by conversion probability with and without treatment. Switch between a response model and an uplift model and watch the targeted audience move from Sure Things to Persuadables.

  • Four quadrants from real τ = P(y|treat) − P(y|control)
  • Budget slider · incremental conversions, head to head
  • Drop heterogeneity to zero and the advantage vanishes
Open lab
Lab 04 Live

Sequence attention

Behavior Sequence Transformer · interpretability

A synthetic transaction history with a single attention head reading it. Click a transaction to change its theme and watch the weights and the next-theme forecast move; hover one to see what it attends to.

  • Real softmax(QKᵀ/√d)V, not a canned animation
  • Recency prior slider — position vs content
  • Full self-attention matrix, one row per token
Open lab
Lab 05 Playable

Bandit duel

You vs Thompson Sampling · same world, same budget

Forty-eight sends, three offers, hidden rates. You allocate by hand while the policy allocates in parallel — with feedback arriving three rounds late and a 60% fatigue cap, the two constraints that make this the production problem rather than a quiz.

  • Common random numbers — a loss is a decision, not luck
  • Post-mortem names the failure: under-explored or over-committed
  • Runs on the Thompson lab's engine, unchanged
Play the lab

Five live playgrounds live on the Labs page. For reproducible comparisons across RL, causal inference, MMM, MLOps and more, explore the 11-experiment evidence library ↗. These educational experiments use synthetic data, not client results.

03 / Stack

How I think — and what I use.

Marketing Optimization isn't about "which model is best" — it's about "which decision system is defensible". When the business puts 1B VND on the table, they don't want a higher AUC; they want a chain of reasoning: here is the population, here is the treatment, here is the counterfactual, here is why the lift isn't an artefact. I build every system in that order: measurement first, decisions next, model last. The tooling below is just instrumentation for the same story.

Modeling Uplift / T / X / DR-learner Causal Inference Bayesian MMM Google Meridian Sequential Transformer Two-tower
RL / Bandit Thompson Sampling LinUCB Contextual Bandits Offline RL IPS / DR / FQE
Experimentation A/B/n CUPED Sequential testing PSM Diff-in-Diff Synthetic Control Multi-treatment uplift
Deep Learning PyTorch Transformer CNN / Detection LLM Engineering RAG LangGraph / Agentic
MLOps & Data Databricks MLRun Airflow Spark AWS GCP Postgres Docker
Network Visa Google IBM Oracle FPT HCMUS VGU
04 / Research directions

Where I'm reading next.

The pattern I keep returning to: most recommendation problems are not really ranking problems. They are decision problems under constraints, with feedback that arrives late, partially, or not at all. Ranking accuracy is the easy half.

Research directions by problem: what I currently work with, and what I'm exploring
Problem Currently working with Exploring
Sequential recommendation Behavior Sequence Transformer DIN / DIEN, SASRec, TiSASRec, HSTU and generative recommenders, long-sequence retrieval (SIM / ETA)
Retrieval Two-tower, FAISS ScaNN, embedding-based retrieval, TIGER-style generative retrieval with semantic IDs
Exploration under uncertainty Thompson Sampling, Neural TS LinUCB / NeuralUCB, combinatorial bandits for slate selection, budgeted bandits, delayed-feedback bandits
Causal measurement Matching, T-learner uplift, quasi-experimental X-learner / R-learner, causal forests, synthetic control, interference-aware experiment design, modern MMM (Meridian, Robyn)
Constrained allocation Rule-based caps Lagrangian relaxation with dual descent, multi-knapsack, slate optimization
Sequential decision-making Markov chain path modeling Semi-Markov / CTMC, offline RL (CQL, IQL, BCQ), constrained MDP, SlateQ
Off-policy evaluation — IPS / SNIPS / Doubly Robust, DR for slates, propensity logging as infrastructure
LLMs in recsys Feature extraction from unstructured text Semantic IDs via RQ-VAE, LLM re-ranking, instruction-tuned recommendation
05 / Experience

The story so far.

  1. 2025 — Present Now

    Lead Data Scientist — Personalization & Decisioning

    Techcombank

    Own the end-to-end decisioning stack — what to recommend, when to send it, and through which surface — across a retail customer base of roughly 6 million.

    Sequential recommendation foundation model

    • Behavior Sequence Transformer over longitudinal card-transaction histories. Sequence length 100; vocabulary of 89 level-2 spending themes, extensible to ~1,200 merchant identifiers.
    • Daily batch inference for ~5M customers. Registry and lineage through MLflow on Databricks with Unity Catalog.
    • Monthly retraining on automated rolling splits (6 months train / 1 validation / 1 test), gated by champion–challenger with a 3pp promotion threshold. Champion stability across successive retrains became the signal that the architecture had saturated — which is why the research agenda moved on rather than continuing to tune.

    Bandit-based delivery optimization

    • Thompson Sampling across three timing arms, priors seeded from historical open/click conversion, weekly posterior updates.
    • Neural Thompson Sampling for entry-point surfaces under combinatorial constraints: three placements and five carousel positions, plus business allocation rules. Delivered a 7pp absolute CTR lift from a baseline where treatment and control had been statistically indistinguishable.
    • Direct channels bound by a hard cap of two messages per customer per day — which turns message allocation into constrained assignment across competing campaigns rather than per-campaign optimization.
    • Observed heterogeneous feedback latency across channels: push converges within days, in-app and email lag substantially. A textbook delayed-feedback bandit problem hiding inside a system that looked stationary.

    Offer-level modeling

    • Two-tower retrieval with LLM-extracted features from unstructured offer text, mapping offers into theme space and estimating P(transaction | user, theme).
    • Full model portfolio — 10 to 12 models across development and production — operated on roughly $400/month of LLM spend, by matching model tier to task complexity rather than defaulting to premium APIs.

    Causal measurement under interference

    • Built the measurement framework for a setting where customers are concurrently exposed to overlapping campaigns: propensity matching, uplift modeling, quasi-experimental estimation.
    • Impact independently validated by the Finance function using synthetic control against a never-exposed cohort — not self-reported by the modeling team.
    Behavior Sequence TransformerNeural Thompson SamplingTwo-tower retrievalUpliftSynthetic control
  2. 2023 — 2025

    Lead Data Scientist → Data Science Manager

    HCL Tech Vietnam · Embedded at Sacombank

    At Sacombank I was caught between two problems: credit-card cross-sell for 2.2M non-credit-card customers, and reactivating drifting CASA users from a 9.5M pool. Cross-sell spanned four card lines — Visa Signature / Platinum / Mastercard Gold / UnionPay — each with its own persona. I built a T-learner uplift model to segment Persuadables / Sure Things / Lost Causes, then fed the segments into Thompson Sampling and LinUCB for real-time offer allocation. PSM under quasi-experimental constraints — overlapping treatments, SUTVA violations, outbound-call contamination — forced custom counterfactual designs instead of off-the-shelf matching. The reactivation campaign drove +40% uplift in conversion vs control and was presented to the CDP advisory board alongside Visa, Google, IBM, Oracle, FPT. Led a team of 4, built end-to-end ML pipelines on Spark + MLRun from raw → feature → model → orchestration.

    • Proposed the "policy gating" framework: bandits could only explore in the treatment region PSM had cleared of SUTVA violations — RL and Causal working in tandem.
    • Mentored 4 junior DS from tutorial-level baselines to owning end-to-end pipelines; two are now DS leads at other banks.
    T-learnerPSMThompson SamplingLinUCBSparkMLRun
  3. 2020 — 2023

    Senior Data Scientist

    One Mount · VinShop & VinID E-Wallet

    Two and a half years at One Mount I sat alongside financial services modeling for consumer lending (VinShop) and fraud detection for VinID E-Wallet. Credit scoring on ~50K applications/month — Logistic Regression + XGBoost + scorecard, hit Gini 40% baseline. Income prediction feeding credit-line assignment: Gini 76% with external data (Telco / VMG / Rate+), 55% with internal alone — that gap was the business case for the GCP CDP integration. Deployed PSI + IV + WoE monitoring, vintage / roll-rate analysis, KS-statistic to auto-trigger retraining. On the fraud side, modelled sequential transactions with device fingerprinting and network signals, contributing >35B VND cumulative revenue uplift. This was when I shifted from "model accuracy" to "model drift + business impact + decision lineage" — a stance I've kept ever since.

    • Built the team's first internal feature store — lineage, freshness SLA, point-in-time correctness — cutting new-feature deploy time from weeks to days.
    • Migrated the fraud team from rule-based to ML hybrid; designed an ops feedback loop for continuous retraining on hard cases.
    XGBoostScorecardPSI/IV/WoEFeature StoreGCPFraud
06 / Industry

Production systems with real customers and real revenue.

Techcombank · 2025+

NBA @ ~6M customers

Behavior Sequence Transformer·Neural Thompson Sampling·Synthetic control

Decisioning across action × timing × surface jointly. Bandit-driven delivery under a hard per-customer message cap, with impact independently validated by Finance using synthetic control against a never-exposed cohort.

TransformerMMMA/B/nUplift
Sacombank · 2023-25

NBO · cards cross-sell

2.2M customers·4 card lines

T-learner uplift segmenting Persuadables vs Sure Things, multi-armed bandits for real-time offer + channel optimization. PSM under quasi-experimental constraints with SUTVA violations.

T-learnerThompsonLinUCBPSM
Sacombank · 2024

CASA Reactivation Campaign

9.5M CASA users·+40% uplift

End-to-end churn prevention + reactivation playbook: scoring at-risk customers, treatment selection by elasticity, channel arbitrage, post-campaign causal lift vs control. Presented to the CDP advisory board.

ChurnUpliftCausal
One Mount · 2020-23

Credit scoring & income prediction

~50K apps/month·35B+ VND uplift

XGBoost + scorecard credit risk, Gini 40%. External-data income prediction Gini 76% (Telco/VMG/Rate+), GCP CDP integration. Built the team's first internal feature store.

XGBoostScorecardPSI/IVGCP
One Mount · 2021-23

VinID E-Wallet Fraud Detection

Sequential transactions·Device + network signals

Fraud modelling on transaction sequences with device fingerprinting and network signals; migrated the team from rule-based to ML hybrid; ops feedback loop for retraining on hard cases.

SequentialFraudHybrid ML
Self-hosted · Live

Curious Machine Platform

Next.js · Caddy · Docker·DigitalOcean SGP

Self-hosted stack running fanpage automation (n8n + LLM + Telegram approval), landing site, tutorials, and this portfolio — all on a single $4 droplet.

Next.jsCaddyDockern8n
07 / Academic

Applied AI in healthcare and statistics.

Healthcare AI · Published · Funded

Skin Detective

Diagnostics 2022 · 12(8) · 1879·Q1, JCR · IF 3.9·AI Tech Matching grant

AI engine for a smartphone-based skin condition detector — Faster R-CNN object detection (5 lesion classes) + LightGBM severity grader. FastAPI inference service, Docker stack, CI tests; press: VnExpress, Tuổi Trẻ, CafeF.

Faster R-CNNLightGBMFastAPIPyTorch 2
Medical · Research

Thyroid Ultrasound Classifier

Master thesis track · HCMUS

Thyroid ultrasound classification pipeline — data cleaning, feature engineering, CNN classifier, evaluation framework supporting low-cost diagnosis.

UltrasoundCNNData Cleaning
Statistics · Replication

ABC-SMC via Random Forests

Replication of Dinh et al. (2025)·Statistics & Computing 35:219

Three-member team replication: hierarchical normal, Lotka-Volterra, Michaelis-Menten, branching processes — covering ABC, SMC, RF-augmented inference and variance studies.

ABCSMCRRandom Forests
08 / Papers

Peer-reviewed publications.

Q1 · IF 3.9 2022
Q1 Journal · MDPI

Automatic Acne Object Detection and Acne Severity Grading Using Smartphone Images and Artificial Intelligence

Diagnostics · 12(8), 1879 · JCR · Scopus IF 3.9
Conference 2020
International conference · Springer

Deep Learning-Based Automatic Detection of Defective Tablets in Pharmaceutical Manufacturing

BME8 2020 · IFMBE Proceedings, vol 85 · Springer
09 / Education

Foundation & credentials.

MSc
In progress · 2025 — 2027

Master of Data Science

HCMUS · University of Science
VNU-HCM · Ho Chi Minh, Vietnam
  • Focus: causal inference, recommendation, RL
  • Master thesis track: Thyroid Ultrasound
BEng
2017

Electrical Engineering & Information Technology

Vietnamese-German University · VGU
Vietnam – Germany joint programme · Bình Dương
  • Embedded systems · signal processing · automation
  • Foundation for the engineering → data science transition
10 / Contact

Need causal evidence for
your next campaign?

Email is fastest. I read & reply within 24 hours — happy to talk NBA, uplift, MMM, or anything around marketing optimization & experimentation.

hthquan28@gmail.com
11 / Book me

Services & booking.

★

Advisory

Strategic guidance for data team / CDP / marketing science roadmap. Monthly retainer.

From 30M VND / month
⚙

Consulting

Hands-on causal / uplift / MMM project — design, implementation, validation, handover.

Project-based
⚏

Coaching

1:1 mentoring for mid → senior DS levelling up on causal & recommendation.

3M VND / session · 60 min
▦

Workshop & Teaching

In-house workshops or cohorts — Causal, Uplift, MMM, NBA design. Vi/En.

From 50M VND / day
⌬

Networking & Connection

Intros to my network: banks, fintech, cloud partners (Visa / Google / IBM / Oracle / FPT), academia (HCMUS, VGU).

Free with mutual fit
✎

Speaking

Talks & panels: causal AI, recommendation in banking, building DS capability.

Negotiable
Booking

Pick a slot that works.

I block 30-min discovery calls and 60-min coaching slots weekly. For advisory / consulting, book here or email hthquan28@gmail.com.