BLOG

인사이트/블로그

Pitney Bowes, 머신러닝 예측모델을 통해 사기주문을 적발하다(상)

루이
2022-03-08

오랜 명성을 자랑하는 기업들도 시간이 갈수록 빠르게 변화하는 세상에 발맞출 필요가 있습니다. 인류 역사상 최초의 핸드폰을 개발하며 한 때 트렌디함을 대표했던 Motorola를 기억하시나요? 

아이폰 등장전까지만 해도 판매량 1위를 자랑했었지....추억의 모토로라 플립폰


 마케팅을 조금이라도 접해보셨다면 대표적인 기업실패 사례의 3인자 '모토로라', '노키아', 그리고 '블랙베리' 를 들어보신 적이 있으실 겁니다. 한 산업분야내 최고의 인기를 구가하던 기업들도 정보통신기술(ICT)의 흐름을 읽어내지 못할시 결국 도태된다는 교훈을 안기고 사라진 기업들이 있는가하면, 반대로 100년 가까이도 승승장구하는 기업도 있습니다. 

미국의 커머스 테크놀로지 회사, 피트니 보우스


 미국의 피트니 보우스는 1920년에 만들어져 지금까지도 높은 명성을 유지하는 미국의 대표적 이커머스 기술 기업입니다. 우편요금계산기 판매로 시작하여 지금은 500개가 넘는 기업에게 상업 솔루션과 비즈니스 커머스 기술을 제공하고 있습니다. 한 세기라는 긴 세월동안 도태되지 않고 꾸준히 성장할 수 있었던 건 다양한 변화에 빠르게 적응하고 발전하려는 노력 덕분이겠죠. 


이런 피트니 보우스가 머신러닝을 적용해 당면한 문제를 풀어낸 좋은 사례가 있습니다. 고객으로 위장한 사람의 사기 주문을 적발하기 위해 구글의 자동 기계학습 서비스를 활용한 것인데요. 피트니 보우스가 머신러닝 모델로 해외배송의 이상을 감지해 재정 출혈을 막은 사례, 함께 살펴보시죠. 

피트니 보우스는 유통, 물류 관련 기업들에게 최적화 솔루션을 제공합니다. 복합적인 고객 데이터를 많이 다룰 수 밖에 없죠.


배송에서 가장 중요한 것, '정확히' 그리고 '빠르게'!

자칭 타칭 빨리빨리의 민족 아닙니까


네이버 쇼핑에서 많이 보셨죠? 배송정보 제공의 중요성을 유통업계도 인지하고 있어요. 


 온라인으로 물건을 주문한 동시에 "내가 방금 결제한 물건이 언제 도착할까"를 수시로 확인한 경험, 다들 한 번씩 있으시죠?(저는 일주일 전에 직구한 운동화 배송 현황을 호시탐탐 체크하는 중입니다만) 눈 빠지게 배송 정보 업데이트를 기다리는 고객들에게 빠르고 정확하게 정보를 제공하기에 유통기업들은 기술적 한계가 있습니다. 이때 피트니 보우스의 솔루션이 빛을 발합니다. 구글 오토ML Tables와 손을 잡고요. 


 피트니 보우스는 전자상거래, 배송, 우편, 금융 서비스쪽 상거래 솔루션을 제공하는 글로벌 기술 기업입니다. 유통, 물류업체들을 대신해 창고에서 물품을 분류하는 과정부터 시작해 마지막 배송까지를 담당하는 과정을 아우릅니다. 해외 배송으로 서비스를 확장하면서 처리해야할 정보량은 더욱 늘게 되는데요, 사업의 규모가 커질수록 취약해지는 대상이 '사기주문'입니다.100개 중 하나의 변이보다 10만개 중 10의 변이를 찾는 게 어렵잖아요. 이 과정에 규칙을 부여하고 제대로 물품이 배송되도록 돕는 것이 피트니 보우스의 역할이었어요. 해외배송에서의 사기주문을 모조리 잡아내겠다는 포부로 시작한 프로젝트였습니다. 


의류, 화장품, 향수, 주얼리 및 전자제품 부문 사기주문이 1년새 이렇게나 많이 늘었답니다. (16-17년)

그림 출처 https://www.cronj.com/blog/artificial-intelligence-series-ai-in-retail-industry/ 



고도의 눈속임도 잡아낸다!

Google AutoML Tables를 통해 주문 사기를 탐지


코로나(COVID-19) 사태 장기화로 인해 인터넷 쇼핑이 과부하 수준으로 부쩍 늘었음은 모두가 아는 바입니다. 어도비(Adobe)에 따르면 2020년 4월 1~23일 미국의 일평균 온라인 판매액은 3월 1~11일에 비해 49% 증가, 식료품의 온라인 판매액은 110% 증가하는 등 온라인 시장이 나날이 팽창 중입니다.


 온라인 상거래 시장이 확장되는 가운데, 피트니 보우스가 Google의 인공지능 머신러닝 모델을 도입해 배송을 원활하게 한 시도는 선구안에 가까웠다고 볼 수 있겠죠. 실제로 피트니 보우스는 이 AutoML Tables 서비스를 도입한 후 몇 달이 걸렸을 배송 모델을 2주만에 완성할 수 있었다고 해요. 비용뿐만 아니라 시간도 엄청나게 절감한 셈이죠. 투자가치가 충분했다고 볼 수 있겠죠?


구글의 오토ML Tables 서비스, 뭔가 익숙한 광경이죠? 다빈치랩스 세팅과 비슷합니다.


테이블 데이터란?

잉글리쉬로는 Tabular Data


말그대로 이렇게 테이블 (표) 형식으로 정리된 것을 테이블 데이터라고 부릅니다. 참 쉽죠잉 


Google AutoML Tables는 테이블 형태로 정리된 데이터를 활용해 머신러닝 모델을 돌릴 수 있도록 서비스를 제공합니다. 테이블 데이터란 쉽게 말해 표 형식으로 정리된 데이터를 말합니다. CSV 형식의 스프레드시트를 가장 흔한 예로 들 수 있고요, HTML 테이블, SQL dump 등 여러 포맷을 가집니다. 


아일리스는 이러한 테이블 데이터를 통한 예측 모델을 제공합니다. 이 시대 검색엔진의 최강자, 구글의 예시를 통해 머신러닝이 어떻게 실제 유통 및 물류 기업에서 활용되는지 본 후, 공공데이터를 다빈치랩스에 돌려보며 더 현장감있게 이해해볼게요. 


사기 거래를 잡아내는 머신러닝 모델

어쩐지 카드 거래가 불규칙했다 이거야


피트니 보우스는 수백개의 회사와 협업을 하는 대기업이었던만큼 하루빨리 더 양질의 배송시스템을 구축하고 싶어했는데요, 사기주문을 잡아내기 위해 고안한 첫 방법은 XG Boost라는 통계학적 알고리즘을 적용한 모델을 개발하는 것이었습니다(예...어렵죠...다양한 기계학습법 중 하나라는 것만 알고 갑시다). 깔끔하지 않은 스프레드시트 정도로 관리하던 고객정보를 통계적으로 활용하고 업그레이드시킨 것은 이미 훌륭한 움직임이었습니다. XG Boost 알고리즘을 적용해 사기주문을 감지한 결과 그 양이 거의 절반으로 줄었고(49%) 투입 인력 및 소요 비용도 14%가량 감소했습니다. 


pitney bowes fraud detection

Pitney Bowes의 사기적발 시스템의 발전과정. 험난했다 AutoML Tables에 정착하기까지..

사진 출처: https://www.cronj.com/blog/artificial-intelligence-series-ai-in-retail-industry/


XG Boost의 바탕개념은 가중치를 반영한 데이터를 쌓아가며 나무가지를 뻗치듯Boosting한다는 것이라고 감만 잡고 갑시다~

그림 출처: https://analyticsindiamag.com/xgboost-internal-working-to-make-decision-trees-and-deduce-predictions/


그러나 모델도 나이를 먹는다고, 곧 모델 성능 업데이트가 느려 시간이 들었고, 중간중간 오류가 나타나면서 모델 정확도에도 의문이 제기됩니다. False positive(거짓 양성), 그러니까 멀쩡한 정상 주문을 사기라고 판단하는 오류가 눈에 띄죠. 피트니 보우스는 이런 문제를 고쳐보고자 결국 대기업 구글과 손을 잡습니다. 이때 바로 머신러닝 모델 AutoML Tables가 등장하게 됩니다. 



자, 지금까지는 '예측모델을 통해 사기주문을 감지했다'는 겉핥기식 수준의 설명만 했었지요. 정확히 어떻게 사기가 포착되는지 구체적인 예시를 통해 파악해봅시다. 


간단하게 말하면, 고객의 신용카드 거래정보 및 위치정보를 사용해 사기여부를 탐지합니다.

신용카드 정보 중에는 ID, 일시, 금액, 카드 결제 위치 및 매장 등의 다양한 정보가 있어 고객의 결제활동을 확인할 수 있습니다. 만약 한 고객이 미국에서 거금을 결제했는데 몇 시간 후에 갑자기 한국에서 집을 구매한 내역이 뜬다? 수상한 냄새가 납니다. 이렇게 거리와 시간, 금액을 통계로 정리해 튀는 부분을 발견하면 그것을 사기주문으로 분류하게 됩니다. 


머신러닝 모델에 투입되는 데이터셋은 두 가지입니다. 

첫번째, Transaction(거래) 정보. 

사기 거래 데이터

▶거래 ID, 거래 시간(DT=Datetime (초 단위)), 거래 액수(Amt=Amount, $), 상품 코드, 그리고 카드 관련 정보들을 적어놓은 돈거래 위주의 데이터입니다.


두번째, Identity(신상) 정보.

사기 거래 데이터

▶거래 ID 외의 알 수 없는 다양한 변수들이 id란 이름으로 뜨네요. 아마 네트워크 관련 정보, IP 등이 포함되어있겠죠. 당연히 의미가 있는 변수들이지만, 회사 고객의 기밀 정보인지라 공개가 금지되어 변수명을 다 지웠다고 합니다. (그래서 데이터꿈나무들의 kaggle 토론장에서는 아직까지도 id_xx의 의미를 가지고 실랑이가 벌어진다는 슬픈 후문이....)


산출물은? 목표변수는 사기주문인지 아닌지를 알려주는 "isFraud"

▶이러한 두 데이터셋을 하나로 취합해 모델링을 한 후 고객이 사기주문을 한 것인지 아닌지를 결론냅니다.

사기주문일 확률을 0부터 1까지로 나타낸 값을 산출하는 게 목표였던 것이죠. 

fraud data

isFraud가 바로 목표변수! 그런데 이제 확률을 곁들인~


그림으로 정리해볼까요?

거래정보와 신상정보를 머신러닝에 적용하니 사기주문 여부가 도출된다


거래정보와 신상정보를 담은 데이터셋으로 취합 후 기계학습 예측 모델링을 하면 이상주문을 탐지합니다. 오늘 살펴본 내용은  'AutoML 모델을 통해 해외배송 사기감지를 성공적으로 할 수 있었다' 정도로 요약할 수 있겠습니다.


 다음 시간에는 우리의 다빈치랩스를 활용한 예측모델링을 통해 머신러닝 솔루션을 더 깊게 이해해봅시다! 다빈치랩스의 구현과정이 궁금하신 분들은 이전 포스트들을 참고해주세요.