1. Abstract
논문명
- Deep Entity Classification: Abusive Account Detection for Online Social Networks(USENIX Security 2021)
요약
- Facebook 에서의 다양한 Abuse를 탐지하기 위한 기계학습 탐지 시스템 설명
- 소셜 그래프 내에서의 인접노드 피쳐를 Aggregation하는 전략과 Human label과 Approximate label을 적절히 사용하는 모델링 프로세스를 통해 탐지 성능을 개선시킴
2. Introduction & Background
Online Social Network에서의 Abuse Detection 문제
- 매월 20억명이 넘는 활성 사용자가 콘텐츠를 공유하는 소셜 네트워크가 구성됨
- 이러한 방대한 규모로 인하여 경제적, 정치적, 개인적 이익을 위해 플랫폼을 악용하려는 적들이 존재함
- 이러한 적들은 가짜 계정(즉, 실제 사람을 대표하지 않는 계정)을 대량으로 생성해 가입
- 주어진 Online Social Network의 서면 정책 위반한 계정을 악성 계정으로 정의
- 악성 행위로는 스팸, 사기, 선정적인 사진, 폭력 및 테러를 비롯한 커뮤니티의 규범을 위반한 다양한 행위가 있음
- 따라서 확장 가능하고 정확도가 높은 방식으로 악성 계정을 탐지하는 것이 핵심 문제
- 확장성을 위해서는 수십억명의 사용자, 수십억 건의 일일 행동을 추적해 다양한 부정 행위를 감지할 수 있는 방식이 필요
- 악성 계정이 일반 고객에 비해 상대적으로 드물기 때문에 Precision을 우선시 하는 시스템이 필요 → 정밀도가 떨어지면 OSN상의 다수 계정에 잘못된 조치를 취하게 됨
기존 탐지 프로세스
Rule-based heurisitcs
- 일반적인 Attacker들이 사용하는 tool, 기술, 리소스를 식별하는 규칙 기반의 Heuristics을 사용
- 1차 방어선 역할
- 예를 들어, 특정 사용자 행동에 대한 Time interval을 측정
- 설계 및 평가가 쉬우나 임계값을 초과하는 경우 무용지물
- 오탐을 피하기 위해 보수적으로 세팅
- Precision이 높으나 Recall이 떨어짐
ML 시스템
- Recall이 개선되고 모델은 과거 레이블을 토대로 일반화가 가능함
- Ground truth 데이터가 많이 필요하고, 실제 일반 고객을 잘 흉내내는 고도화된 악성 계정이 여전히 존재함 → 실제 정상 유저와 활동 특성이 매우 유사한 유저
정리하면, 규칙 기반 휴리스틱 및 기존 ML 시스템은 대다수의 부정 행위를 탐지할 수 있지만, 분류가 어려운 나머지 계정(실제 사용자와 매우 유사하거나, 방어 시스템을 적극적으로 회피하는 계정)을 탐지하지는 못함
3. DEC System 소개
피쳐 추출 전략(DEC)
1. Direct Feature
- 연령, 그룹 구성원 수와 같이 특정 엔터티만의 특성을 나타낸 피쳐
- 다른 ML 분류기에서 효과적으로 활용되는 기능과 수동 조사 중에 유용한 것으로 확인된 기능을 사용
- 사용자, 그룹, 장치, 사진, 상태 업데이트 및 그룹 게시물 등 Entity type별 Feature
- 모델링에서는 Direct feature를 그대로 사용하지 않는데 두 가지 이유가 있음
- 특정 Direct feature의 값이 탐지 결과의 지배적인 역할을 하는 것을 관찰했기 때문
- 사용자가 글 작성 시 URL을 게시하는지 여부를 피쳐로 사용할 경우를 예시로 들 수 있음
- 스패머는 일반 사용자보다 게시물에 URL을 포함하는 경우가 많기 때문에 모델의 편향을 일으킴
- 이렇게 되면 URL을 게시하는 거의 모든 사용자를 악성 계정으로 분류하기 때문에 수많은 오탐이 발생
- Direct feature는 공격자의 우회가 쉬움
- 예를 들어, 공격자는 "게시된 URL"이 Feature임을 알게 되면 탐지를 피하기 위해 URL을 직접 게시하는 것에서 사진에 오버레이로 URL을 넣는 것으로 전환할 수 있음
2. Deep feature
Aggregation 방법
- 표 2와 같이 수치적 특징과 범주적 특징에 대해 서로 다른 집계 방법을 사용.
- 연령과 같은 수치적 특성을 집계하기 위해 평균 및 백분위수와 같은 분포에 대한 통계를 계산
- 반면에 국가와 같은 범주형 피처의 경우 비율, entrory, disinct 카테고리 수를 집계
- 세번째 피쳐 타입은 범주형 특성에 대한 수치적 특성의 분포를 집계
- 예를 들어, Feature는 장치가 Android 운영 체제를 사용하는 경우 대상 계정과 동일한 장치에서 로그인한 계정 수를 집계
- 계산 비용 이슈
- 이상적으로는 Facebook에서 사용자 작업이 발생할 때마다 새로운 feature 추출 및 분류를 트리거하는 것이지만, 10억 사용자 규모에서는 불가능한 계산이고. (재)분류는 프로덕션에서 실시간으로 트리거되지만 기능 추출 및 집계는 Facebook에서 계정의 경험을 방해하지 않고 비동기식으로 계산됨
- 특히 소셜 그래프에서 많은 연결이 있는 계정의 경우에는 사용할 인접 노드 수에 제한을 두고, 그 수가 제한 수(=50)를 넘으면 무작위로 샘플링 방법을 사용
라벨 확보 전략
두 가지 데이터 레이블 소스가 있음
Abuse 유형 선택
-
Fake, compromised, spam, scam(4가지 유형)의 Abuse 행위를 고려
-
두 가지 이유로 Abuse 유형을 이 네 가지 범주로 나눔
-
탐지된 계정은 Facebook의 정책에 따라 각각 고유한 항소 절차를 사용하는 별도의 집행 시스템에서 조치를 취하게 됨
-
둘째, 다양한 Abuse 유형의 Positive 샘플은 본질적으로 동질적이지 않음
예를 들어, 가짜 계정은 주로 스크립트 작성에 의해 구동되는 반면 compromised 계정은 일반적으로 맬웨어 또는 피싱으로 인해 발생
이러한 계정의 행동 패턴과 사회적 연결은 각 Abuse 유형에 따라 다르므로 서로 다른 "Task"에 적합하다고 판단
1. Approximate label data
-
사용자 신고
- Facebook의 사용자는 다른 사용자를 욕설로 신고할 수 있음
- 이 소스는 noise가 있지만 훈련의 첫 번째 단계에 대한 낮은 정밀도 레이블로 고려하기 적합
-
규칙 기반 시스템
- DEC 외에 Facebook에는 다른 기존의 Rule 패턴이 있음
- 이 Rule 의해 적발된 사용자는 악용 유형별로 분류되어 추가적인 Approximate 라벨 소스로 분류
- Rule에는 아래와 같은 예가 존재
- 친구 요청을 너무 빠른 속도로 보내는 사용자
- 스팸 탐지 시스템에 의해 삭제된 여러 콘텐츠 항목을 가진 사용자
- 알려진 피싱 도메인에 대한 링크를 배포하는 사용자
- 규칙 기반 시스템은 전체 악성 계정 레이블의 절반 이상을 차지
-
발견된 공격
- 맬웨어 또는 피싱 공격과 같이 OSN에 대한 스크립트 공격은 "wave"가 발생하는 것이 일반적임
- 이러한 "wave"를 감지하면 관련된 계정의 서명을 식별하고 서명을 첫 번째 단계의 대략적인 레이블로 사용할 수 있음
- 이 유형은 악성 계정 레이블의 약 10%를 차지
- 위 유형으로 식별된 계정은 대략적으로 악성 계정으로 분류된 것으로 간주. 각 계정의 abuse 유형에 따라 레이블을 또 여러 작업으로 나눕니다.
- 정상 샘플의 경우 검출되지 않은 계정을 무작위로 샘플링
- 접근 방식의 신뢰도 검증을 위해 2번을 통해 얻은 무작위 샘플을 수동 검수를(1번) 맡김 → 라벨링 정밀도는 90% ~ 95% 사이로 상당히 쓸만하다고 판단했음
- 샘플 수 3천만개 → 전체 유저 규모의 2% 미만
2. Human label data
- 1번 단계에서 검출되는 않은 유저를 대상으로 고용된 전문 레이블러가 수동으로 {악성, 정상}에 대한 레이블을 매김
- 이미 여러 단계의 Abuse detection 시스템을 통과한 유저 집합이기 때문에 분류하기에 가장 어려운 악성 계정이 포함되어 있음
- 각 계정에서 여러 신호를 보고 사람이 판단, 정확도는 높지만 비용이 많이 들기때문에 소량으로만 얻을 수 있음(Facebook 소셜 네트워크 계정 수에 비해)
- 샘플 수 24만개 → OSN 규모에 비해 매우 극소량
모델링 전략(MS-MTL)
악성 계정을 탐지 하기 위한 multi-stage 프레임워크를 사용
MS-MTL 프레임워크의 2단계 학습 흐름도
Stage 1: Low Precision Training
- 첫 단계의 목적은 집계된 raw deep feature 고차원 벡터를 저차원 임베딩 벡터로 줄이는 것
- 차원 축소는 approximate label data를 사용한 신경망 모델 학습을 통해 수행(512, 64, 32 hidden size를 갖는 뉴럴넷)
- 각 악성 계정의 하위 유형에 따라(task) 모델을 학습
- 훈련된 신경망의 마지막 은닉층의 출력을 학습된 저차원 임베딩로 사용
- Input
- 그래프 내의 인접노드(2-hop)에 대한 엔터티 별 Feature를 Aggregation 한 결과(Deep feature)
- Label
Stage 2: High Precision Training
- model : GBDT
- Input
- 첫 단계에서 얻은 hidden layer의 출력을
- Label
두 Step 으로 모델링 전략을 시도한 이유
- 다양한 악용 유형을 동시에 지원
- abuse 유형은 다양하고 각 유형마다의 모델 학습을 통해 모델에 인코딩된 정보의 양을 늘림
- 기본 가정은 악성 계정과 일반 계정을 구별하는 feature가 abuse 유형 간 상관 관계가 있다는 것을 전제
- 결과적으로, 한 유형을 나타내는 계정이 다른 악성 행동을 보일 가능성이 더 높기 때문에 한 악성 유형에 대해 학습된 지식은 다른 악성 유형을 결정하는 데 도움이 될 수 있음
- 학대 유형에 따라 레이블이 지정된 데이터를 분할하고 각 유형에 대해 별도의 모델을 훈련하는 것과 비교하여 다중 작업 훈련은 관련된 모든 학대 행위를 집합적으로 살펴봄으로써 계정에 대한 전체 그림을 제공합니다. 작업 전반에 걸친 이러한 지식 공유를 통해 특히 소규모 작업의 경우 다중 작업 학습을 사용하여 더 나은 예측 정확도를 달성할 수 있을 것으로 기대합니다.
- 고차원 특징 벡터를 활용
- 추출한 여러 Deep feature의 경우 차원의 크기가 매우 크므로 차원의 저주를 해결하기 위해 저차원으로 특징 벡터를 축소할 필요성이 있음
- 약 100개의 피쳐 사이즈로 줄였음
- 레이블의 부족을 극복
- 레이블링 비용이 너무 비싸기 때문에 모든 샘플에 대해 검수를 하는 것은 불가능
- noisy한 레이블도 모델링에 활용했고 실험 결과 유용한 것으로 입증
전체 모델 프로세스 요약
1. Offline Component
- 오프라인 구성 요소에는 Model Train과 Label 처리가 포함
- DEC는 사람의 레이블 지정과 사용자 피드백 처리하는 작업을 모델 학습, 정책 실행 프로세스에 통합
- Facebook에 고용된 레이블링 전담 팀을 꾸림
- 사전 라벨링(proactive labeling) 작업에서는 전문가들은 다양한 감지 신호에 의해 탐지된 계정을 확인하고 샘플을 확보
- 반응적 라벨링(reactive labeling) 작업에서는 사용자가 이의 제기할 때 프로세스가 시작되며 전문가가 해당 계정을 조사하고 항소를 수락하거나(DEC의 관점에서 False Positive) 항소를 거부함(True Positive)
- 두 레이블링 결과는 통합되어 DEC 모델 Trainset으로 제공
- 오프라인 모델 학습은 Online component에서 추출된 Feature와 Offline component에서 얻은 레이블 데이터를 통해 이루어짐
- 테스트 후 업데이트된 모델을 프로덕션에 배포되며 정기적으로 재학습 진행
2. Online Component
- 대상 노드 및 샘플링된 인접 노드에 대한 feature 추출을 진행
- Feature 추출 후 배포된 모델 기반으로 각 계정에 대한 분류 결과를 생성
- 계정이 악의적인 것으로 분류되면 해당 계정에 대해 제재 정책을 시행
4. Evaluation
제안한 방식의 평가를 위해 서로 다른 3가지 모델 시도
- 행동
- 유저 행동에 대한 Direct Feature 특성(예: 친구 수)만을 기반으로 계정을 분류(특정 Abuse 유형에 관계 없이)
- 행동 특징의 수가 상대적으로 적기 때문에 우리는 사람이 레이블을 붙인 데이터 세트로 모델을 훈련시킴
- DEC-SS
- Deep feature 추출하지만 MS-MTL 학습 접근 방식을 활용하지 않는 방식 → DEC만 사용
- 활용 라벨로는 Approximate label 중 Abuse 항목에 하나라도 태깅되면 Postive로 태깅후 사용
- DEC-MS-MTL
- 제안한 모든 절차를 다 사용한 방식 → DEC 전용 접근 방식과 MS-MTL을 결합
1. ROC Curves
- 곡선의 모든 지점에서 행동 Direct 피쳐만을 사용한 방식 보다 우수(최대 0.2)
- ROC 관점에서 두 DEC 모델은 유사하게 작동
- 악성 계정의 경우와 같이 데이터 세트가 불균형한 경우(악용 계정보다 양성 계정이 훨씬 더 많음) ROC 곡선은 분류 시스템의 실제 운영 성능, 특히 정밀도, 남용 액세스의 중요한 측정값을 포착하지 못할 수 있음 → 두번째 실험 진행
2. Precision and Recall
- 그림 5는 모델의 정밀도와 재현율을 비교
- 행동 모델은 0.95 이상의 정밀도를 얻을 수 없음
- MS-MTL이 포함된 DEC는 고정밀 작동 지점에서 단일 단계 DEC에 비해 Recall이 0.3 높음
3. Quantiative Assessment: Area Under the (AUC) Curve and Precision / Recall
- 표 5는 세 모델 간의 Precision을 고정한 뒤 Recall을 비교한 것
- 정밀도는 성능 평가를 위한 일반적인 작동 지점인 0.95로 고정
- 행동 모델은 어떤 Recall에서도 0.95의 정밀도를 달성할 수 없어 NA표기
- 단일 단계와 MS-MTL 모델 모두 비슷한 AUC 성능을 갖지만 Recall 두 배 이상 차이남(각각 0.22, 0.50)
4. Results In Production Environment
- DEC(MSMTL 포함)의 설계 및 평가를 기반으로 Facebook의 프로덕션에 모델을 배포
- 배포된 모델의 실제 영향과 수명을 평가하기 위해 시간 경과에 따른 Precision, Recall의 안정성을 살펴봄.
시간이 지남에 따른 Precision 측정
- 모델 Precision에 대한 3일 이동 평균을 측정
- 이전 평가와 마찬가지로 DEC에서 악성으로 분류된 임의의 계정 샘플에 수동으로 사람이 레이블을 지정하여 evaluation dataset을 만듬
- precision이 0.97 아래로 떨어지지 않는 안정적이 성능을 보임을 확인
시간이 지남에 따른 Recall 측정
- FNR = 1-recall 을 고려한 평가
- DEC를 포함한 모든 Abuse 탐지 시스템을 사용했을 때와 DEC가 없었을 경우의 지표를 비교
- 평가 기간 동안 DEC가 없는 FNR은 5.2%인 반면 DEC를 포함한 결과는 3.8%로 27% 개선됨
5. Discussion & Conclusion
모델 운영 후 얻은 교훈과 한계점
Reducing Computational & Human Load
- Facebook 에서 2년 이상 배포하며 사용한 경험에서 여러 교훈과 제한 사항을 확인
- Facebook 규모에서 모든 활성 사용자의 그래프 피쳐를 추출하는 것은 계산적으로 많은 비용이 듬
- 그래프의 대상 노드에서 2-hop 내에서 피쳐 추출과 집계를 위해, 각 사용자마다 수백 또는 수천 개의 인접 노드에 도달해야 함
- DEC의 계산 부하는 Facebook의 글로벌 CPU 리소스의 0.7%에 해당
- 이 문제를 완화하기 위해 이전 기능 추출 결과를 가능한 한 많이 재사용하는 캐싱 전략을 개발
- DEC를 배포한 뒤 많은 양의 악성 계정을 탐지하고 제거하여 글로벌 CPU 사용량은 전보다 개선
- 또한 DEC의 배포는 악의적인 계정 감지에 필요한 총 검토 리소스를 15%에서 20% 사이로 줄였음
Segmentation and Fairness
- 연령 세그먼트, 다른 문화권에 따라서 특정 세그먼트의 오탐율이 높은 모델의 불공정 이슈가 있었음
- 이러한 변동을 줄이기 위한 조치로 Train dataset의 편향을 줄이는 노력을 시도
- 예를 들어, 계정 소유자의 나이를 특성으로 사용하는데 악성 계정의 경우 평균적으로 정상 계정에 비해 나이대가 어리다고 한다면, 이 경우 Train set에서 서로 다른 연령대의 세그먼트 비율을 조절하지 않을 경우 분류기는 청소년이 소유한 계정이 abuse 확률이 높다는 결론을 내려버림
- 이러한 모델의 bias를 방지하기 위해 첫 번째 단계로 우리는 모델에서 연령, 성별 및 국가를 포함한 모든 "직접적인" 사용자 인구통계학적 특징을 제거.
- 다음으로는 전체 소셜 네트워크의 분포와 최대한 가깝게 Train set을 구성하도록 계층 표집 방법을 사용했음
- 특정 대규모 군집을 다운 샘플링하는 것을 기반으로 진행
- 마지막 접근 방식은 Facebook은 오탐 샘플에 대한 주요 세그먼트 정보를 모니터링하고 오탐을 줄이기 위한 모델 개선 전략을 취함
Measuring in an Adversarial Setting
- Abuse Detection 시스템은 본질적으로 악성 계정들의 적대적인 환경(탐지 시스템을 우회하고 속이려는 행위)에서 작동하기 때문에, 모델 변경에 따른 영향을 측정하는 것은 매우 어려움
- 일반적으로 Adversarial adaptation하는 과정은 아래와 같음
- 공격자는 Facebook을 악용하는 성공적인 방법을 찾습니다.
- Facebook은 탐지 시스템을 조정하고 공격을 완화합니다.
- 공격자는 (1)을 다시 달성하거나 리소스 비용이 너무 높아 중지될 때까지 반복합니다.
공격자와 Facebook의 지속적인 노력을 가정하면 위의 사이클은 결국 평형에 도달합니다.
-
공격자와 Facebook의 지속적인 노력을 가정하면 위의 사이클은 결국 평형에 도달합니다.
-
위 Cycle 때문에 배포 중 A/B 테스트를 사용하여 모델의 효과를 적절하게 측정하기가 어려움
- 예를 들어, 실험 그룹이 너무 작으면 공격자가 변경할 동기가 없기 때문에 3단계에 도달하지 못함. 이 경우 모델의 측정 지표가 실험 그룹에서 좋아 보일 수 있지만 실제 더 광범위하게 출시되고 성능이 저하되면 다시 3단계에 도달하게 됨
-
이 문제를 완화하는 한 가지 방법은 기능 출시에 "홀드아웃 그룹"을 추가하는 것
-
홀드아웃 그룹은 모델에서 Abuse 할 것으로 예측되는 임의의 사용자 샘플
-
탐지 즉시 이러한 계정을 차단하는 대신, 예상대로 악용이 발생했는지 확인
-
모델 평가에는 도움이 되지만 홀드아웃 그룹의 추가 Abuse 행위로 이어질 수 있으므로 이 그룹이 발생시키는 잠재적 영향에 대해 신중하게 평가해야 함. 이러한 이유로 홀드아웃은 모든 유형의 Abuse에 사용되지는 않음
Limitations
DEC는 실제로 악의적인 계정을 감지하는 데 매우 효과적이었지만 개선해야할 사항이 있음.
- 계산 비용 절감
- DEC는 특히 인접노드의 Aggregation 계산 비용이 많이듬. 계산 비용을 더 줄이는 것은 적어도 모델 품질을 향상시키는 것만큼 많은 관심을 받고 있는 작업 영역
- 신호가 약한 계정 탐지
- DEC의 분류는 Facebook 그래프 내에서 계정의 위치와 연결을 기반 작동하기 때문에, 낮은 수준의 활동 또는 연결을 나타내는 계정은 DEC가 추론을 위해 활용할 신호가 제한적임
- 그러나 이런 계정이 악용되더라도 본질적으로 Facebook과 사용자에게 미치는 영향은 적기 때문에 위험도는 적음
- 이러한 저신호 계정을 더 잘 포착하는 기능을 포함하는 접근 방식을 모색하고 있음
- 해석 가능성
- DEC의 기계 학습 모델은 DNN의 hidden layer를 이용한 저차원 임베딩 값을 사용하기 때문에 해석 가능성이 부족
- 이러한 특성으로 인해 DEC의 결정 이면에 있는 추론을 디버그하고 이해하기가 어렵고, 모델을 해석 가능하게 만드는 것을 연구
- 라벨링 프로세스
- DEC는 기계 학습 시스템과 마찬가지로 레이블의 품질에 크게 의존함.
- 대규모의 부정확한 인간 라벨링을 유도하는 공격자는 DEC의 분류를 조작하거나 방해할 수 있음
- 라벨링 프로세스를 개선하기 위해 지속적으로 노력하고 있음
결론
- Deep feature를 이용해 Adversarial Adaption에 대응이 되고 효과적인 피쳐를 얻음
- Human label, 근사 라벨을 2step으로 활용하는 모델 시스템으로 탐지 결과를 개선 시킴
- 실제 프로덕션 환경에서도 안정적인 성능을 보였으며 2년 동안 수억개의 악성 계정을 탐지, 전체 제재한 27%를 DEC로 탐지하여 제재