머신러닝 적용사례 제 4장. 의사결정 트리 및 MLflow를 사용한 대규모 금융 사기 탐지

인공지능을 사용하여 대규모 사기 패턴을 탐지하는 것은 적용 사례에 관계없이 어려운 일입니다. 걸러내야 방대한 양의 과거 데이터, 끊임없이 진화하는 머신러닝 러닝 기술의 복잡성, 사기 행위의 극소수 실제 사례는 바늘이 어떻게 생겼는지 모른 건초 더미에서 바늘을 찾는 것과 비슷합니다. 금융 서비스 산업에서 보안에 대한 늘어난 우려와 어떻게 사기 행위가 확인되었는지를 설명하는 것은 작업의 복잡성을 더욱 증가시킵니다.


 

이러한 탐지 패턴을 구축하기 위해 도메인 전문가 팀은 사기범이 일반적으로 행동하는 방식에 따라 일련의 규칙을 제시합니다. 워크플로에는 특정 행동에 대한 일련의 요구 사항을 결합하는 금융 사기 탐지 분야의 전문가가 포함될 있습니다. 그런 다음 데이터 과학자는 사용 가능한 데이터의 하위 샘플을 선택하고 이러한 요구 사항과 알려진 사기 사례를 사용하여 일련의 러닝 또는 머신러닝 알고리즘을 선택할 있습니다. 패턴을 프로덕션에 적용하기 위해 데이터 엔지니어는 결과 모델을 임계값이 있는 규칙 집합으로 변환할 있으며 종종 SQL 사용하여 구현됩니다.

접근 방식을 통해 금융 기관은 GDPR(일반 데이터 보호 규정) 준수하는 사기 거래를 식별하는 명확한 특성 집합을 제시할 있습니다. 그러나 접근 방식은 또한 많은 어려움을 낳습니다. 하드코딩된 규칙 세트를 사용하는 사기 탐지 시스템의 구현은 매우 취약합니다. 사기 패턴에 대한 변경 사항은 업데이트하는 매우 오랜 시간이 걸립니다. 이는 결과적으로 현재 시장에서 일어나고 있는 사기 행위의 변화를 따라잡고 적응하기 어렵게 만듭니다.


 

또한 위에서 설명한 워크플로의 시스템은 도메인 전문가, 데이터 과학자 데이터 엔지니어가 모두 구획화되어 있는 경우가 많습니다. 데이터 엔지니어는 방대한 양의 데이터를 유지 관리하고 도메인 전문가 데이터 과학자의 작업을 프로덕션 수준 코드로 변환하는 일을 담당합니다. 공통 플랫폼이 없기 때문에 도메인 전문가와 데이터 과학자는 분석을 위해 단일 시스템에 맞는 샘플링된 데이터에 의존해야 합니다. 이는 의사소통의 어려움을 초래하고 궁극적으로 협업의 부족으로 이어집니다.


 

블로그에서는 이러한 여러 규칙 기반 탐지 사용 사례를 Databricks 플랫폼에서 머신러닝 사용 사례로 변환하여 사기 탐지의 핵심 참여자인 도메인 전문가, 데이터 과학자 데이터 엔지니어를 통합하는 방법을 보여줍니다. 대규모 데이터 세트에서 모듈식 기능을 구축하기 위한 프레임워크를 활용하여 머신러닝 사기 탐지 데이터 파이프라인을 만들고 데이터를 실시간으로 시각화하는 방법을 배웁니다. 또한 의사결정 트리와 Apache Spark™ MLlib 사용하여 사기를 감지하는 방법도 배웁니다. 그런 다음 MLflow 사용하여 정확도를 개선하기 위해 모델을 반복하고 수정합니다.

 

머신러닝으로 문제 해결

금융권에서는 머신러닝 모델을 쓰기 주저하는 경향이 있습니다. 머신러닝 모델이 제공하는 블랙 박스솔루션이 금융 사기로 확인된 케이스를 정당화할 방법이 없기 때문입니다. 또한, GDPR(유럽연합 개인정보 보호법) 요구사항과 금융 규제로 인해 데이터 과학의 힘을 활용하는 것은 불가능해 보이기도 합니다. 그러나 머신러닝을 활용함으로써 위에 언급한 여러 문제들을 해결한 성공적인 사례들이 있습니다.


 

사기 행위로 밝혀진 실제 사례가 적기 때문에 머신러닝 모델을 지도 학습(supervised training) 하는 것은 매우 어렵습니다. 그러나 특정 유형의 사기를 식별하는 규칙이 있으면 합성 레이블과 기초 기능을 만드는 도움이 있습니다. 해당 분야의 도메인 전문가가 개발한 탐지 패턴의 결과물은 실제 운영을 위한 적절한 승인 과정을 거쳤을 가능성이 높습니다.

이는 예상되는 사기 행위 플래그를 생성하므로 머신러닝 모델을 학습하기 위한 시작점으로 사용할 있습니다. 이는 동시에 가지 문제를 완화합니다.

1. 학습 레이블의 부족

2. 어떤 기능을 사용할지 결정

3. 모델에 대한 적절한 벤치마크 확보

 

규칙 기반 사기 행위 플래그를 인식하도록 머신러닝 모델을 학습하면 오차 행렬 통해 예상 산출물과 직접 비교할 있습니다. 결과가 규칙 기반 탐지 패턴과 밀접하게 일치한다면 접근 방식은 머신러닝 기반 사기 방지에 대한 확신을 심어주는 도움이 됩니다. 모델의 산출물은 해석하기가 매우 쉬우며 기존의 탐지 패턴과 비교할 예상되는 거짓 음성 거짓 양성 대한 기초적인 논의의 토대가 것입니다. 또한, 초기 머신러닝 모델로 의사결정 트리 모델을 사용하면 머신러닝 모델이 해석하기 어렵다는 우려가 더욱 완화될 있습니다.  모델이 일련의 규칙에 따라 학습되기 때문에 의사결정 트리는 다른 머신러닝 모델보다 성능이 뛰어날 있습니다. 물론 추가적인 이점은 모델이 가진 최고의 투명성으로, 이는 본질적으로 사기의 의사결정 프로세스를 보여주지만 사람의 개입하거나 규칙 임계값을 하드 코딩할 필요가 없습니다. 물론, 추후 모델을 반복할 때는 최대 정확도를 달성하기 위해 완전히 다른 알고리즘을 사용하게 수도 있습니다. 모델의 투명성을 궁극적으로 달성하기 위해서는 알고리즘에 포함된 기능을 이해해야 합니다. 해석 가능한 기능이 있으면 해석 가능하고 방어 가능한 모델 결과를 얻을 있습니다.

머신러닝 접근 방식의 가장 이점은 초기 모델링 작업 향후 반복이 모듈식이며 레이블, 기능 또는 모델 유형 세트를 매우 쉽고 원활하게 업데이트하여 실제 운영에 필요한 시간을 단축한다는 것입니다. 이는 도메인 전문가, 데이터 과학자 데이터 엔지니어가 동일한 데이터 세트를 대규모로 작업하고 노트북 환경에서 직접 협업할 있는 Databricks Collaborative Notebooks에서 더욱 촉진됩니다.

 

데이터 수집 탐색

예에서는 합성 데이터 세트를 사용합니다. 데이터 세트를 직접 로드하려면 Kaggle에서 로컬 머신으로 다운로드한 다음 데이터 가져오기(Azure AWS) 통해 데이터를 가져오세요.

PaySim 데이터는 아프리카 국가에서 운영된 모바일 머니 서비스의 1개월간 금융 기록에서 추출한 실제 거래 샘플을 기반으로 모바일 머니 거래를 시뮬레이션합니다. 아래 표는 데이터 세트가 제공하는 정보를 보여줍니다.


 

데이터 탐색

DataFrames 만들기: 이제 Databricks File System(DBFS) 데이터를 업로드했으므로 Spark SQL 사용하여 DataFrames 빠르고 쉽게 만들 있습니다.


DataFrame 생성했으므로 이제 스키마와 데이터를 검토하기 위한 처음 1,000개의 행을 살펴보겠습니다.


 

거래 유형

데이터를 시각화하여 데이터가 캡처하는 거래 유형과 전체 거래량에 대한 기여도를 이해해 보겠습니다.

 


우리가 말하는 돈이 얼마나 되는지 알아보기 위해 거래 유형과 이체된 현금 금액(, 합계(금액)) 대한 기여도를 기반으로 데이터를 시각화해 보겠습니다.


 

규칙 기반 모델

이미 알려진 방대한 사기 사례의 데이터 세트로 모델 학습을 시작하지는 않을 것입니다. 대부분의 실제 응용 프로그램에서 사기 탐지 패턴은 도메인 전문가가 설정한 일련의 규칙으로 식별됩니다. 여기에서는 이러한 규칙을 기반으로 “label”이라는 열을 만듭니다.


 

규칙에 의해 플래그가 표시된 데이터 시각화

이러한 규칙은 종종 상당히 많은 사기 사례에 플래그를 표시합니다. 플래그가 표시된 거래의 수를 시각화해 보겠습니다. 규칙에 따르면 사례의 4% 금액의 11% 사기로 표시됩니다.


 

적절한 머신러닝 모델 선택

많은 경우 사기 탐지에 대해 블랙박스 접근 방식을 사용할 없습니다. 첫째, 도메인 전문가는 거래가 사기로 식별된 이유를 이해할 있어야 합니다. 그런 다음 조치를 취하려면 증거를 법원에 제출해야 합니다. 의사결정 트리는 쉽게 해석할 있는 모델이며 사용 사례의 훌륭한 출발점입니다.

 

 

학습 세트 만들기

ML 모델을 빌드하고 검증하기 위해 .randomSplit 사용하여 80/20 분할을 수행합니다. 이것은 학습을 위해 무작위로 선택된 80% 데이터와 결과를 검증하기 위해 나머지 20% 분리할 것입니다.


 

ML 모델 파이프라인 만들기

모델에 대한 데이터를 준비하려면 먼저 .StringIndexer 사용하여 범주형 변수를 숫자로 변환해야 합니다. 그런 다음 모델에서 사용할 모든 기능을 조합해야 합니다. 다른 데이터 세트에서 이러한 단계를 반복할 있도록 의사결정 트리 모델 뿐만 아니라 이러한 기능 준비 단계를 포함하는 파이프라인을 만듭니다. 파이프라인을 먼저 학습 데이터에 맞춘 다음 이후 단계에서 테스트 데이터를 변환하는 사용할 것입니다.


 

모델 시각화

의사결정 트리 모델인 파이프라인의 마지막 단계에서 display() 호출하면 노드에서 선택한 의사결정으로 초기 적합 모델을 있습니다. 이것은 알고리즘이 결과 예측에 도달한 방법을 이해하는 도움이 됩니다.


 

모델 튜닝

가장 적합한 트리 모델을 확보하기 위해 여러 매개변수 변형으로 모델을 교차 검증합니다. 우리의 데이터가 96% 부정 사례와 4% 긍정 사례로 구성되어 있다는 점을 감안할 우리는 불균형 분포를 설명하기 위해 Precision-Recall(PR) 평가 지표를 사용할 것입니다.


 

모델 성능

학습 테스트 세트에 대한 PR(Precision-Recall) ROC 곡선 아래 면적(AUC) 메트릭을 비교하여 모델을 평가합니다. PR AUC 모두 매우 높은 것으로 보입니다.


 

모델이 결과를 어떻게 잘못 분류했는지 보기 위해 Matplotlib pandas 사용하여 오차 행렬을 시각화해 보겠습니다.


 

클래스 균형 잡기

모델이 원래 규칙이 식별한 케이스보다 2,421 많은 케이스를 식별하고 있음을 있습니다. 많은 잠재적 사기 사례를 탐지하는 것이 좋을 있기 때문에 이것은 놀라운 일이 아닙니다. 그러나 알고리즘에 의해 탐지되지 않았지만 식별된 58개의 사례가 있습니다. 우리는 언더샘플링을 사용하여 클래스의 균형을 조정함으로써 예측을 더욱 향상시키려고 합니다. , 모든 사기 사례를 유지한 다음 균형 잡힌 데이터 세트를 얻기 위해 해당 숫자와 일치하도록 사기가 아닌 사례를 다운샘플링합니다. 새로운 데이터 세트를 시각화할 예와 아니오의 경우가 50/50임을 있습니다.


 

파이프라인 업데이트

이제 ML 파이프라인을 업데이트하고 새로운 교차 유효성 검사기를 생성해 보겠습니다. ML 파이프라인을 사용하기 때문에 데이터 세트로 업데이트하기만 하면 동일한 파이프라인 단계를 빠르게 반복할 있습니다.


 

결과 검토

이제 새로운 오차 행렬의 결과를 살펴보겠습니다. 모델은 사기 사례를 하나만 잘못 식별했습니다. 클래스의 균형을 맞춰 주니 모델이 개선된 같습니다.

 

 

모델 피드백 MLflow 사용

실제 운영을 위한 모델이 선택되면 우리는 모델이 여전히 관심 행동을 식별하고 있는지 확인하기 위해 지속적으로 피드백을 수집하고 싶어합니다. 우리는 규칙 기반 레이블로 시작하기 때문에 인간의 피드백을 기반으로 검증된 실제 레이블을 미래의 모델에 제공하고자 합니다. 단계는 머신러닝 프로세스에 대한 신뢰를 유지하는 중요합니다. 분석가가 모든 사례를 검토할 없기 때문에 우리는 모델 산출물을 검증하기 위해 신중하게 선택한 사례를 제공해야 합니다. 예를 들어, 모델의 확실성이 낮은 예측은 분석가가 검토할 있는 좋은 후보입니다. 이러한 유형의 피드백을 추가하면 모델이 변화하는 환경에 따라 지속적으로 개선되고 발전할 것입니다.

MLflow 다양한 버전의 모델을 학습할 사이클 전반에 걸쳐 도움이 됩니다. 다양한 모델 구성 매개변수의 결과를 비교하여 실험을 추적할 있습니다. 예를 들어 여기에서 MLflow UI 사용하여 균형 불균형 데이터 세트에 대해 학습된 모델의 PR AUC 비교할 있습니다. 데이터 과학자는 MLflow 사용하여 다양한 모델 메트릭과 추가 시각화 아티팩트를 추적하여 프로덕션에 배포해야 하는 모델을 결정할 있습니다. 그러면 데이터 엔지니어는 교육에 사용되는 라이브러리 버전과 함께 선택한 모델을 프로덕션의 데이터에 배포할 .jar 파일로 쉽게 검색할 있습니다. 따라서 모델 결과를 검토하는 도메인 전문가, 모델을 업데이트하는 데이터 과학자, 프로덕션에 모델을 배포하는 데이터 엔지니어 간의 협업은 반복적인 프로세스를 통해 강화될 것입니다.

 

결론

규칙 기반 사기 탐지 레이블을 사용하고 Databricks with MLflow 사용하여 이를 머신러닝 모델로 변환하는 방법의 예를 검토했습니다. 접근 방식을 통해 끊임없이 변화하는 사기 행위 패턴을 따라잡는 도움이 되는 확장 가능한 모듈식 솔루션을 구축할 있습니다. 사기를 식별하는 머신러닝 모델을 구축하면 모델이 새로운 잠재적 사기 패턴을 발전시키고 식별할 있도록 하는 피드백 루프를 만들 있습니다. 우리는 특히 의사결정 트리 모델이 해석 가능성과 뛰어난 정확성으로 인해 사기 탐지 프로그램에 머신러닝을 도입하는 훌륭한 출발점이 있음을 살펴보았습니다.

네피리티
No Comments

Sorry, the comment form is closed at this time.