규제 대응과 예측 정확도를 잡는 NBP 추천 시스템의 구성

은행 규제 당국이 요구하는 모델 설명 가능성 제약은 딥러닝 모델의 현장 도입을 가로막는 주요 요인이지만, 멀티타워 신경망 구조와 학습된 어텐션 메커니즘을 결합하면 SHAP나 LIME 같은 사후 해석 도구 없이도 고객별 추천 근거를 즉시 산출할 수 있다. 이 방식은 신용카드, 예금, 보험, 대출, 담보대출 등 성격이 서로 다른 다양한 상품 카테고리를 예측하는 NBP(Next-Best-Product, 차세대 최적 상품) 추천 시스템의 핵심 설계다. 전체 시스템은 Amazon SageMaker AI, PyTorch, AWS Glue, Amazon S3를 기반으로 구축한다. PyTorch는 SageMaker AI의 학습 작업 및 추론 컨테이너와 기본적으로 통합되어 여러 아키텍처 단계에서 빠른 반복 실험을 지원한다.

모델 학습 단계에서는 고성능 연산을 위해 `ml.g5.12xlarge` GPU 인스턴스를 사용한다. 실무자는 SageMaker AI 학습 작업, 추론 엔드포인트, Amazon S3 저장소, AWS Glue 작업 등 생성된 AWS 리소스를 작업 완료 후 즉시 정리하여 지속적인 과금을 방지해야 한다. 금융권의 복잡한 고객 데이터를 처리하면서 규제 기관의 설명 요구사항을 충족하기 위해 인프라 수준에서 연산 효율과 데이터 접근 속도를 최적화한다.

데이터 저장 및 관리에는 Amazon S3에 Snappy 압축 방식의 Parquet 포맷을 적용한다. Parquet는 기존 CSV 대비 3~5배의 압축률을 제공하며, 데이터를 읽을 때 타입을 다시 파싱할 필요가 없어 처리 시간을 단축한다. 특히 필요한 일부 열만 읽어오는 컬럼 프루닝(Column Pruning)과 불필요한 행 그룹을 건너뛰는 프레디케이트 푸시다운(Predicate Pushdown) 기능을 통해 I/O 부하를 줄여 전체 모델 개발 주기를 단축한다.

Glue와 SageMaker Processing을 이용한 이종 데이터 파이프라인

데이터 파이프라인은 AWS Glue를 통한 데이터 통합과 SageMaker Processing을 이용한 ML 피처 엔지니어링 두 단계로 구성된다. AWS Glue는 서버리스 환경에서 PySpark를 실행해 데이터 규모에 따라 자원을 자동으로 조절한다. 특히 스키마가 일관되지 않은 은행 데이터의 경우 DynamicFrame API를 사용해 정규화를 수행하고 거래 유형을 서비스 카테고리로 매핑한다. 고객별 기록을 연대기적 순서로 통합할 때는 Job Bookmarks를 적용해 중복 계산을 막고 DPU 기반의 비용 효율을 최적화한다.

정제된 통합 이력은 SageMaker Processing 단계에서 고객별 상품 채택 시퀀스로 변환된다. 7일, 30일, 60일, 180일, 365일의 다섯 가지 시간 윈도우를 설정해 거래 집계 데이터를 생성하며 고객의 단기적 반응과 장기적 충성도를 수치화한다. 가변 길이의 시퀀스를 고정 길이로 패딩(Padding) 처리하여 모델 입력 규격을 맞추며, 시간 흐름에 따른 상품 이용 패턴을 추출해 다음 행동 예측의 기반을 만든다.

가용 메모리를 초과하는 대규모 데이터셋 처리를 위해 Dask 기반의 병렬 청크 처리 전략을 사용한다. PyArrow로 메타데이터를 먼저 검사하고 ProcessPoolExecutor를 통해 데이터를 작은 단위인 청크로 나누어 병렬 처리한다. 메모리 급증을 막기 위해 배치 작업 사이마다 명시적인 가비지 컬렉션을 수행하고 증분 병합 기법을 적용해 대량의 시퀀스 피처를 안정적으로 생성한다. 이렇게 생성된 시퀀스 피처와 집계 데이터는 데이터 특성에 맞게 분리된 멀티타워 구조로 입력된다.

데이터 특성에 최적화된 4개 타워와 GRU 시퀀스 모델링

전체 모델은 데이터 타입별로 특화된 4개의 신경망 타워를 독립적으로 운영한다. 상품 채택 이력을 처리하는 Sequence 타워, 수치 집계 데이터를 다루는 Transaction 타워, 인구통계 정보를 처리하는 Customer 타워, 행동 세그먼트를 분류하는 Segment 타워로 구성한다. 수치, 범주형, 시퀀스 데이터를 분리해 처리함으로써 특정 데이터 타입에 의한 모델 편향을 막고 학습 효율을 극대화한다.

시퀀스 타워는 고객이 상품을 채택한 순서를 학습하는 2레이어 GRU(Gated Recurrent Unit) 구조로 설계했다. GRU는 LSTM보다 게이트 수가 하나 적어 파라미터 수를 약 33% 줄이면서도 20개 이하의 짧은 시퀀스에서 동등한 성능을 내며 학습 속도가 빠르다. 리셋 게이트는 과거의 불필요한 정보를 삭제하고 업데이트 게이트는 현재 상태의 유지 여부를 결정한다. 이 보간 메커니즘은 기울기 소실 문제를 완화하고 학습 속도를 높인다.

실제 고객 데이터의 가변 길이 특성을 처리하기 위해 `pack_padded_sequence`를 사용하여 패딩 토큰을 무시하도록 설정한다. 데이터 길이를 맞추기 위해 채워 넣은 0 값인 패딩 토큰을 모델이 실제 데이터로 인식하면 학습 결과에 노이즈가 섞이기 때문이다. `pack_padded_sequence`는 유효한 데이터 영역만 계산에 포함시켜 불필요한 연산량을 줄이고 추론 속도를 개선한다.

학습된 어텐션(Learned Attention)을 통한 실시간 설명 가능성 구현

단순 결합(Concatenation) 방식 대신 학습된 어텐션(Learned Attention) 메커니즘을 사용하여 각 타워의 기여도를 수치화한다. 어텐션 구조는 고객 특성에 따라 특정 타워에 가중치를 동적으로 부여한다. 예를 들어 최근 거래 이력이 급증한 고객은 Transaction 타워의 가중치를 높이고, 인구통계 정보가 중요한 고객은 Customer 타워의 비중을 높여 최적의 추천 조합을 찾아낸다.

실시간 설명력을 확보하기 위해 모델 내부에 Feature Importance Module을 배치하고 순전파(Forward Pass) 단계에서 중요도 점수를 산출한다. 이 모듈은 각 타워의 가중치 합계가 1.0이 되도록 계산하여 고객별 기여도를 비율로 보여준다. 이는 예측 후 입력값을 변경하며 결과를 관찰해야 하는 SHAP나 LIME 같은 사후 해석 도구와 달리, 예측과 동시에 근거를 출력한다. 이를 통해 RM(Relationship Manager)에게 "상품 시퀀스 40%, 거래 패턴 30% 영향"과 같은 구체적인 근거를 즉시 제공할 수 있다.

가중치가 적용된 타워 출력값은 잔차 연결(Residual Connections)이 포함된 퓨전 네트워크를 통과한다. 잔차 연결은 오차 역전파 시 기울기 흐름을 개선하여 네트워크 층이 깊어져도 안정적으로 학습되게 돕는다. 또한 추가 깊이가 필요 없는 구간에서는 항등 매핑(Identity Mapping)을 학습하여 모델의 불필요한 복잡도를 방지한다. 별도의 해석 라이브러리를 추가하는 것보다 모델 구조 자체에서 설명력을 확보하는 멀티타워-어텐션 구조가 유지보수와 성능 면에서 유리하다.

금융 실무 관점의 도입 가치와 판단 기준

추천 결과와 함께 산출된 타워별 기여도 수치는 추천의 투명성을 확보하는 장치가 된다. 관계 관리자(RM)는 고객의 최근 거래 성향이 강하게 반영되었는지 혹은 기존 보유 상품의 가입 순서가 중요했는지를 파악하여, 고객별 맞춤형 상담 멘트를 구성하고 제안 품질을 높일 수 있다.

이종 데이터(Heterogeneous Data) 환경에서는 각 데이터 타입에 최적화된 전용 타워를 배치하고 어텐션 기법으로 가중치를 조절하는 구조가 효율적이다. 상품 채택 이력(이산 ID 리스트), 거래 내역(수치 집계), 인구통계 정보(범주/수치 혼재), 행동 세그먼트(범주형 코드)처럼 구조가 완전히 다른 데이터를 하나의 레이어에 입력하면 학습 용량이 낭비되고 성능이 저하되기 때문이다.

실제 고객 데이터를 처리할 때는 개인정보(PII) 처리 방침과 데이터 거버넌스 규정을 엄격히 준수한다. 재현성 확보를 위해 PyTorch, NumPy, CUDA의 모든 랜덤 시드를 고정하며, 배포 전에는 pip-audit 같은 도구로 설치된 패키지의 취약점을 전수 조사하고 독립된 가상 환경에서 의존성을 관리한다.

데이터 타입이 다양하고 규제 기관의 설명 요구가 강한 금융 환경에서는 추천 결과와 함께 각 데이터 타워의 기여도를 수치로 산출하여 상담 근거로 활용하는 멀티타워 아키텍처 도입이 가장 실무적인 선택이다.