-
data preprocess - 딥러닝 보이스피싱 탐지 앱 개발일지 (1) : 프로젝트 개요 및 차별점 검토CS - 딥러닝/Data Science 2023. 4. 5. 16:31
*** 본 블로그는 친절하게 설명을 해주기 위함이라기보단 제가 해당 개념들을 공부하면서 참고한 자료들과 방식, 그리고 헷갈렸던 point들을 시계열 순서로 메모와 함께 정리해놓음으로써 스스로 나중에 다시 참고하기 편하게 하기 위한 블로그입니다. 무지성 억까만 아니라면 피드백 대환영이에용~ >0< ^~^
Google Developers Solution Challenge 에 나가게 되었다.
구글의 17대 해결과제 중 'Reduced Enequalities(불평등 해소)'를 목표로, 금융사기에 취약한 노년층의 금융사기 예방을 돕기 위한 '딥러닝을 활용한 실시간 보이스피싱 탐지 앱' 을 개발하기로 하였다.
그리하여 딥러닝을 활용한 보이스피싱 탐지에 관한 선행연구가 있는지 먼저 탐색해보았다.
크게 두가지가 있었다.
1.
DBpia
논문, 학술저널 검색 플랫폼 서비스
www.dbpia.co.kr
https://koreascience.kr/article/CFKO202133649085984.view?orgId=anpor&hide=breadcrumb,journalinfo
Korean Voice Phishing Text Classification Performance Analysis Using Machine Learning Techniques -Proceedings of the Korea I
Abstract Text classification is one of the popular tasks in Natural Language Processing (NLP) used to classify text or document applications such as sentiment analysis and email filtering. Nowadays, state-of-the-art (SOTA) Machine Learning (ML) and Deep Le
koreascience.kr
https://kiss.kstudy.com/thesis/thesis-view.asp?key=3977223
한국어 언어 모델을 활용한 보이스피싱 탐지 기능 개선
보이스피싱 통화 내용을 탐지하고 분류하는데 핵심 엔진으로 최신 머신러닝(ML) 및 딥러닝(DL) 알고리즘과 결합된 자연어 처리(NLP)의 텍스트 분류 작업이 널리 사용된다. 비대면 금융거래의 증가
kiss.kstudy.com
숭실대학교의 Milandu Keith Moussavou Boussougou 씨를 비롯한 연구진이 진행한 위의 일련의 연구 3개가 있었다(위에서부터 시계열 순이다).
이 연구는 기본적으로 통환내용을 Speech-to-Text 변환을 통해 먼저 문자 데이터로 변환한 후, 이를 KoBERT 모델을 활용하여 처리하는 구조이다. pre-trained KoBERT에 본인들이 직접 가공하여 얻은 데이터로 classification을 위한 fine-tuning을 진행하였다.
2.
http://ecefair.ajou.ac.kr/works/works_application_view.asp?uid=106
2022 전자공학과 산학박람회
4차산업혁명혁신선도대학사업산학박람회, 4차산업혁명, 혁신선도대학사업, 산학박람회, 아주대학교, AJOU
ecefair.ajou.ac.kr
두번째 경우는, 아주대학교 전자공학과 학부생들이 진행한 프로젝트이다.
여기서는 음성신호의 Cepstral 분석을 통해 MFCC(Mel-Frequency Cepstral Coefficient) 신호를 추출하고, 이를 LSTM 모델에서 훈련하여 classification task를 수행하는 방식이다. 이 연구의 경우에는 pre-train된 모델을 가져왔단 얘기가 따로 있진 않지만 아마 weight가 다 optimize가 되어 있는 LSTM을 불러온 뒤 fine-tuning을 하지 않았을까? 라고 추측된다. 아무래도그게 더 낫지 않을까?
이 연구의 경우, 음성신호를 그대로 가지로 train에 활용하기 때문에, 단순 텍스트 데이터로 train하는 경우보다 통화 내용 안 여러 문자가 아닌 특성들을 반영하는 것이 가능하단 점이 장점이다. 하지만 train에 쓰인 음성 데이터들이 피해자의 목소리를 변조해놓은 경우가 많아 이것이 올바른 train에 방해가 될 수 있단 점도 주목할 만하다.
위 두 선행연구에서 모두, '보이스피싱 양성' trainset은 금융 감독원 보이스피싱 지킴이의 보이스피싱 체험관에 접속하면 사용가능한 '그놈 목소리'와 '바로 이 목소리'의 음성/영상 데이터들을 수집하여 진행되었다.
https://www.fss.or.kr/fss/bbs/B0000203/list.do?menuNo=200686
금융감독원 통합홈페이지
금융감독원 통합홈페이지.
www.fss.or.kr
또한 1번 연구를 참고하면, '보이스피싱 음성'에 해당하는 일상적인 대화 trainset은 국립국어원에서 제공하는 말뭉치 데이터셋을 활용하였다고 한다.
https://corpus.korean.go.kr/request/reausetMain.do
모두의 말뭉치
미래를 준비하는 소중한 우리말 자원
corpus.korean.go.kr
모두의 말뭉치에서 위와 같은 과정을 통해 데이터셋을 신청할 수 있다. 데이터 마련 자체는 우리 과제에서도 같은 데이터를 채택하기로 하였다.
다만, Milandu Keith Moussavou Boussougou et al이 연구 도중 사용한 코드는 본인의 깃허브 링크 (https://github.com/selfcontrol7/Korean_Voice_Phishing_Detection) 에서 확인 가능했지만 우리는 이것을 따로 참고하진 않고 스스로 과정을 밟아보기로 선택했다.
우리 과제가 선행연구로부터 구분되는 차별점은 무엇인가? 이는 크게 세가지로 분류할 수 있다.
1. data preprocessing 과정의 개선
위 두 선행 연구의 data preprocessing 과정 중 몇 가지 아쉬운 점들을 꼽아 개설할 수 있는 부분을 개선해볼 계획이다. 예를 들면, 보이스피싱 체험관의 '바로 이 목소리'는 영상으로 파일의 transcript를 제공하는데, 이걸 따로 추출해내기가 좀 어려워 이 부분도 Google Cloud Platform의 Speech-to-Text API를 사용하여 transcript를 추출한다. OCR이나 OpenCV를 활용해 영상에서 transcript를 추출할 수 있다면 좀 더 양질의 데이터를 획득할 수 있지 않을까 싶다.
또한 모델의 input으로 넣어주는 데이터의 형식도 변형 가능하다. 예를 들어, 대화 내용을 모두 활용해 사기범의 대사(?)와 피해자의 대사를 번갈아서 모델에 넣어주는 것도 가능하고, 사기범의 대사만 필터링 하여 인풋으로 넣어주는 것도 가능하다. 그럼 이제 classification task가 살짝 달라질 것이다(이 대화가 보이스 피싱 현장을 담고 있는가? 와 이 화자는 보이스피싱을 유도하는 중인가? 정도이지 않을까).
그 외에도 여러가지 개선점을 찾기 위한 노력이 가능할 것이다.
2. 두 방식의 ensemble
여러가지 모델의 결론을 적절히 평균 내 예측하는 앙상블(ensemble) 기법은 머신러닝 분야에서 굉장히 자주 쓰이고 효과적인 방법 중 하나이다. 우선 우리 과제는 1번 선행연구의 방식을 채택하지만, 여유가 될 경우 2번 방식도 구현하여 둘의 앙상블 시 더 좋은 classification accuracy를 얻은 것이 가능할 수 있다.
3. real-world application
우리 과제는 단순히 보이스피싱을 감지하는 딥러닝 모델을 만드는 것이 목표가 아니다. 실제로 금융사기 취약계층(예: 노년층 등)이 통화를 할 때 통화 정보를 실시간으로 분석해 보이스 피싱 위험이 높을 시 바로 사용자에게 경고하는 프로토타입 앱의 개발까지가 팀의 목표이다. 그렇기에 프론트엔드 앱(Flutter 사용)과 백엔드 서버(node js 사용)또한 프로젝트에서 요구되는 부분이다. 팀원은 4명으로 구성되고, 프론트엔드 1명, 백엔드 1명, 데이터 사이언스 2명(본인 포함)으로 역할 분배하였다. 본인은 보이스피싱 탐지 알고리즘 개발을 위한 양질의 데이타 마련과 전처리 (data preprocessing) 과정을 맡게 되었다.
과제는 2023.02.01에 시작하였고 2023.03.31까지 진행 예정이다. 열심히 해보자!
'CS - 딥러닝 > Data Science' 카테고리의 다른 글
data preprocess - 딥러닝 보이스피싱 탐지앱 개발일지(4) - mp3, mp4 to wav convert and trim with python (0) 2023.04.06 data preprocess - 딥러닝 보이스피싱 탐지 앱 개발일지(2) : 데이터 수집 및 가공 계획 검토 (0) 2023.04.06