728x90

 

아래 글은 '우아한형제들'의 "요즘 우아한 개발(2023)"의 내용을 기반으로 작성되었습니다.


1. 이상 탐지

- 골자) '정상 패턴 vs 이상 패턴' 탐지

- 활용) 금융거래 사기 탐지, 제조공정 불량 탐지, 허위리뷰 탐지 등

 

2. 이상탐지의 두 유형

1) Rule-based: 쉽고 빠르게 서비스 적용, 탐지 근거 명확, unseen data나 아웃라이어에 robust하지 않음 

2) ML-based

- 지도 학습: SVM, LightGBM, ANN

- 비지도 학습: K-means, DBSCAN, AutoEncoder, Isolation Forest

- 준지도 학습: 적은 수의 라벨 데이터와 다수의 라벨링되지 않은 데이터를 모두 사용, 모델 성능 개선을 목적으로 라벨 데이터를 추가로 수집하여 업데이트 가능 (라벨 데이터가 너무 적은 경우 그것을 다량으로 확보하는 시간과 비용 vs 비지도에 따른 낮은 정확도)

 

3. 리뷰 조작 업체 탐지 모델 접근 방향

Step1) ML기반 Anomaly Detection (Anamoly ; 리뷰 조작 회원)

Step2) 소셜 네트워크 분석

Step3) 리뷰 조작 '업체' 탐지


Step1) ML기반 Anomaly Detection (리뷰 조작 '회원' 탐지)

SVDD → Deep SVDD → Deep SAD(준지도)

 

SVDD(Support Vector Data Description, with soft margin):

- 비지도 이상 탐지

- 흔히 아는 SVM과 유사

- 정상데이터와 이상데이터가 섞여 있을 때, 모든 입력 데이터를 커널 함수로 매핑하여 high dim에 매핑

- 새 mapping 공간에서, 정상 데이터가 최대한 구 안에 포함되도록 함 (이대 구의 중심과 반지름을 찾는 알고리즘)

이상 데이터는 최대한 구의 중심에서 멀리 떨어지도록 함 (soft margin: 구가 지나치게 커지는 것을 막음, 일반화)

- Detect 기준: 구의 경계면 내부에 있는지 외부에 있는지

 

Deep SVDD

- 비지도 이상 탐지 w/ DL

- SVDD의 커널 함수 대신, 딥러닝 기반으로 정상 데이터를 high dim space에서 최대한 중심으로 매핑시키도록 '학습' (특정 구를 정의하여 구의 중심과 반지름을 계산하는 것이 x, 정상 데이터들이 정상 데이터들의 대표 중심점에 최대한 가깝도록 매핑시킴)'

- DL for representation

- 정상 데이터들의 대표 중심점: Deep SVDD와 동일한 구조를 가진 AutoEncoder를 통해 미리 계산된 weight 사용

- weight regularization 적용

 

Deep SAD

- 준지도 학습 알고리즘

 

기본적으로 Deep SAD는 비정형 데이터인 이미지에서 이상을 탐지하는 CNN structure
리뷰조작 회원의 데이터는 일정 단위로 집계한 정형 데이터
- 정형 데이터 to image 대신, CNN to 정형데이터에 이용 가능한 일반적인 오토인코더 구조로의 변환!

 

 

태스크와 데이터의 유형, 성격, 양, 질에 따라
- 기존의 알고리즘(모델 구조)를 변환하거나
- 데이터를 변환하는 과정이 필요

 

Step2) 소셜 네트워크 분석

 

가설: "조작 업체 특징을 고려하였을 때, 다량의 허위 리뷰 작성을 위해 다수 계정으로 유사한 가게에 허위 리뷰를 작성할 것이다"

 

Step1에서, Deformed Deep SAD 기반으로 Anomaly Detection 이후

 

이상 회원(Anomaly)에 대해서만 네트워크 탐지 (이상리뷰가 작성된 가게 간 자카드 유사도 계산 - 두 집합 사이의 유사도 측정 가능)

이때 스파크의 MinHash LSH 방법을 통해, 모든 이상 회원 pairs이 아닌, 자카드 유사도가 높은 원소를 동일한 버킷에 넣는 해시 알고리즘 사용하여 근삿값을 계산 (비용 및 시간 줄임)

리뷰 작성 가게 간 자카드 유사도가 높은 경우에만 엣지로 연결하여 네트워크 찾음

 이렇게 형성된 네트워크에서 community detection 보다 더 강한 조건인 K-core decomposition 적용하여 그래프 내에서 응집도가 높은 그룹만 추출함 (오탐에 따른 문제 완화)

 

* K-core decomposition 주요 알고리즘: degree pruning, color-coding, and K-shell decomposition

refer to : https://www.baeldung.com/cs/graph-k-core

* 이상 스코어가 높을수록 약한 조건의 네트워크 탐지 / 낮을수록 강한 조건의 네트워크 탐지

 


Step3) 리뷰 조작 '업체' 탐지 → 검수 및 조치

위의 탐지 경과를 종합

조치를 통해 차단된 라벨 데이터를 저장하여 모델 재학습에 사용

 

 

 

728x90

'AI > Data Science' 카테고리의 다른 글

[Statistics] 연속 랜덤 변수 (Continuous Random Variable)  (0) 2024.03.25
[Statistics] Poisson Distribution / 포아송분포  (1) 2024.03.25
[모델성능지표] Precision, Recall, MAP  (0) 2023.12.10
[DL] BACKPROP  (0) 2023.12.02
SGD / MBGD  (0) 2023.12.01

+ Recent posts