본문 바로가기
Study/개발자 블로그

[개발자 블로그 탐독] 배달의민족의 리뷰 관리 비법

by 22 송정현 2023. 12. 4.

안녕하세요 CODE 1기 송정현입니다. 제가 탐독한 개발자 블로그 글을 소개해드릴게요!

허위 리뷰를 관리하지 않으면 어떻게 될까요? 좀 과장해서 치킨 대신, 치킨으로 장난질한 녀석을 받게 되겠죠? 다들 이런 경험은 한 번씩 있을 것 같구요. 배달을 자주 이용하는 저는 이런 경험이 좀 많았어서, 처음 개발자 블로그 글을 탐색할 때 이 주제가 바로 눈에 들어오더라구요!

배민 앱 리뷰 품질을 향상시킨 방법은? 머신 러닝 X 네트워크 탐지 모델 도입

 

본문의 제목은 이러합니다. 강성욱 개발자 님의 글이구요, 저는 이를 요약, 보충해서 소개해드리겠습니다.

위 그림에서 알 수 있듯, 이상 탐지는 크게 '룰 기반 탐지'와 '머신러닝 기반 탐지'로 나뉩니다.

룰 기반 탐지는 이름 그대로 기존의 '규칙'에 따라 이상 행동을 탐지하는 방법입니다. 예를 들어 기존에 룰을 '10분 내 주문 100건 이면 이상 행동'으로 지정했다면, 이런 행동이 발생할 경우 이상 행동으로 탐지할 수 있겠죠.
머신러닝 기반 탐지는 데이터 형태, 즉 라벨의 유무에 따라 지도 학습, 비지도 학습, 준지도 학습으로 나뉘게 됩니다.
여기서 라벨 데이터는 하나 이상의 레이블이 지정된 그룹을 뜻합니다.

 

 

쉽게 설명하기 위해 이미지 분류의 예시를 들어보겠습니다.

수 많은 사진들을 데이터라고 할 때, "사진A = 개, 사진B = 고양이" 이런 식으로 데이터에 레이블을 지정하는 것을 라벨링이라고 하고, 이렇게 라벨링된 사진을 라벨 데이터라고 합니다.

 

 

머신러닝의 각 학습 방식에 대해 간단히 정리해보았습니다.

  지도 학습 비지도 학습 준지도 학습
활용 데이터 라벨(O) 데이터 라벨(X) 데이터 라벨(O), 라벨(X) 데이터 모두
학습 방식 입력 데이터로부터 모델이 라벨을 예측하도록 학습 데이터의 숨겨진 구조나 패턴을 찾도록 학습 라벨이 있는 데이터로 학습을 시작, 레이블이 없는 데이터를 사용하여 모델 개선
출력 결과 분류(Classification)
회귀(Regression) 
군집화(Clustering)
차원 축소(Dimensionality Reduction)
분류 또는 군집화

 

지도 학습과 비지도 학습은 장단점이 정확히 대비되는데요, 두 방식의 장점을 조화롭게 활용한 것이 바로

"준지도 학습"이라고 할 수 있겠습니다.

그렇다면 배달의민족은 어떤 방식으로 이상 탐지를 할까요?


1. 룰 기반 탐지모델

배달의민족은 초기에 룰 기반 탐지 모델을 활용하였습니다. 앞서 말씀드린 것처럼 조건을 직접 설정하여 이상행동을 탐지하는 방법이죠. 하지만 리뷰 조작 행위가 점점 고도화됨에 따라 단순 조건 조작만으로는 이를 탐지하지 못하게 됩니다.

 

하지만 이 모델에서 쌓아놓은 기록들은 아래 그림처럼 라벨 데이터로 축적되게 되고, 이는 머신러닝 기반 탐지모델에서 로 활용되게 됩니다.

허위 리뷰 데이터 베이스 예시


2. 머신러닝 기반 탐지모델

 

배달의 민족은 머신러닝 기반 모델, 그 중에서도 준지도 학습 알고리즘을 사용합니다. 발전 순서는 다음과 같습니다.

SVDD -> Deep SVDD -> Deep SAD


1) SVDD

이를 이해하기 전에 SVM(Support Vector Machine) 에 대한 이해가 필요합니다. SVM은 입력 데이터를 커널 함수로 매핑하여 새로운 고차원 공간에 데이터를 나타내는 작업을 말합니다.(말이 어렵죠;;)

 

왼쪽 그림의 좌측 점은 1차원으로, 이 3개의 점을 구분할 수 없습니다. 하지만 이를 2차원 평면에 나타내면 우측 삼각형과 같이 삼각형의 높이로 구분이 가능하죠. 이처럼, 데이터의 차원을 높여서 데이터를 구분될 수 있도록 하는 작업이 바로 SVM입니다.

 

SVDD는 SVM을 통해 새롭게 매핑 한 공간에서 정상 데이터는 최대한 구 안에 포함하도록 하는 구의 중심과 반지름을 찾는 알고리즘입니다. 결과적으로 구의 경계 면을 기반으로 데이터가 안쪽에 위치하면 정상이고, 밖에 위치하면 비정상으로 판단하게 되는 것이죠.

SVDD 알고리즘
SVDD 목적 함수

위 수식에서 R은 반지름, C는 중심, ξ는 페널티입니다. 수식에서 페널티 들어간 식은 일단 무시하고, "min R^2 "은 '반지름 제곱을 최소화한다'이죠. 또한 아래 s.t에서 " ||ϕ(xi) - c||^2_Fk ≤ R^2 " 이런 식이 보입니다.  ||ϕ(xi) - c||^2 이 수식은 정상 데이터와 중심 사이의 거리를 나타냅니다. SVDD는 이렇게 정리할 수 있겠습니다.

1. 원의 반지름을 최소화한다.
2. 원의 반지름은 정상 데이터와 원의 중심 사이 거리보다는 커야 한다. 
정상 데이터를 모두 포함하되, 크기가 최소인 원 찾기

2) Deep SVDD

이름에서 유추할 수 있듯 Deep Learning이 사용되는, SVDD와 유사한 알고리즘입니다.

차이점은 SVDD처럼 커널 함수를 사용하지 않고 딥러닝 기반으로 학습한 피처 공간에서 정상 데이터를 최대한 중심에 가까워지게 매핑하는 것을 학습한다는 점입니다.

즉, SVM대신 딥러닝이 데이터의 차원을 조정해주는 역할을 하는 것이죠

Deep SVDD 알고리즘

신경망 가중치 학습은 그림과 같이  정상 데이터들이 중심점으로 몰리도록 데이터를 조정합니다.

Deep SVDD 목적함수

위 수식에서 ϕ(xi​ ;W)는 인공 신경망에 의해 변환된 정상 데이터, c는 정상 데이터의 중심을 나타내며, 정리하면, 모든 정상 데이터와 데이터 중심 사이의 거리를 최소화하는 알고리즘이라고 할 수 있겠습니다. ( λ​/2로 시작하는 수식은 과적합 방지를 위한 식으로 자세한 설명은 건너 뛰도록 하겠습니다.)

 

신경망을 학습시킬수록 정상 데이터들은 중심으로 몰리게 되고, 이에 따라 중심에서 먼 데이터를 이상 데이터로 판별하게 됩니다.

정상 데이터를 데이터의 중심으로 몰리게 학습하기
SVDD가 정상 데이터를 포집하기 위한 원을 직접 그리고 원을 기준으로 이상 데이터를 판별하는 방식이라면, Deep SVDD는 데이터들이 알아서 모여들도록 가중치를 조절하여 중심에서의 거리를 기준으로 이상 데이터를 판별합니다. 이렇듯 두 알고리즘은 이상치 구분 방식에서도 차이점을 나타냅니다.

3) Deep SAD

Deep SVDD에 라벨 데이터를 처리할 수 있는 부분을 추가한 알고리즘입니다.

Deep SAD 목적함수

y˜ 는 라벨 데이터가 정상인 경우에 1이고, 이상인 경우에 -1로 설정합니다. 이상 데이터인 경우 인 경우 y˜=-1, 즉 역수이기 때문에 해당 항목이 역수가 되어 결과적으로 중심에서 멀어지게 학습하게 됩니다.

m은 라벨 데이터의 수이며, 라벨 데이터가 없으면 m=0, y˜=0으로 설정되어 기존 Deep SVDD 목적 함수와 동일하게 동작합니다.

라벨 데이터 처리를 위한 부분 설명

Depp SAD를 통한 이상 탐지 과정


3. 네트워크 분석

 

리뷰 조작이 단순히 개인에서 끝난다면 큰 문제가 아니겠죠, 하지만 리뷰 조작은 그룹단위로 수행되는 경우가 많습니다.

이러한 "조작 그룹"을 탐지하는데 사용되는 것이 바로 네트워크 분석입니다.

네트워크 분석 절차

1. 탐지 대상 필터 : 준지도 학습 이상 탐지로 이상 회원들을 탐지합니다.

2. 유사도 계산 :  이상 회원이 리뷰를 작성한 가게들이 얼마나 유사한지를 자카드 유사도(Jaccard similarity)로 측정합니다. 회원 쌍에 대해 모두 계산하기에는 자카드 유사도 계산량이 많아 Spark에서 제공하는 MinHash LSH 방법을 사용하여 근삿값을 계산합니다.

3. 네트워크 그래프 생성 : 회원을 노드로 보고, 리뷰 작성 가게 간 유사도가 높은 경우만 에지로 연결해주는 네트워크를 구성합니다.

4. K-core 분해 : 해당 네트워크에서 커뮤니티 탐지 알고리즘 보다 더 강한 조건인 K-core 분해(decomposition)를 적용하여 그래프내 응집도가 높은 그룹만 추출합니다. 이를 통해 추출된 그룹을 리뷰 조작 그룹으로 판별하게 됩니다.

위 모든 절차를 요약하면 이러합니다.

허위 리뷰 탐지 모델 구조도

배민은 리뷰 조작 업체에 리뷰 작업이 어렵다는 이미지를 확실히 심어준 것 같네요!

 

 

지금까지 배달의민족이 리뷰 관리에 활용하는 알고리즘에 대해 알아보았습니다. 블로그 글도 충분히 친절하게 설명하고 있기 때문에, 직접 해당 글을 살펴보시는 것도 좋을 것 같습니다!

 

배민 앱 리뷰 품질을 향상시킨 방법은? 머신 러닝 X 네트워크 탐지 모델 도입
 

배민 앱 리뷰 품질을 향상시킨 방법은? 머신 러닝 X 네트워크 탐지 모델 도입 | 우아한형제들 기

{{item.name}} 배경 배민 앱에서는 많은 음식점 중 선택을 해야 하는 사용자들의 고민을 덜어 주고자 리뷰 서비스를 제공합니다. 사용자들은 작성된 리뷰 내용 및 평점을 참고하여 메뉴를 선택하는

techblog.woowahan.com