딥러닝 추천 모델 심층 분석

김동준·2025년 12월 5일

Recommend System

목록 보기
8/14

딥러닝 추천 모델 심층 분석 및 실전 예제

딥러닝 기반 추천 시스템은 현대 인터넷 서비스의 핵심 기술로 자리잡았습니다. 각 모델의 작동 원리와 실제 적용 사례를 구체적인 예제와 함께 살펴보겠습니다.

1. 뉴럴 협업 필터링 (Neural Collaborative Filtering, NCF)

기본 개념과 동기

전통적인 Matrix Factorization(MF)은 사용자와 아이템을 저차원 벡터로 표현하고, 이들의 내적(inner product)으로 선호도를 예측합니다. 하지만 내적은 선형 연산이므로 복잡한 사용자-아이템 상호작용을 충분히 표현하지 못합니다.

NCF는 이 한계를 극복하기 위해 신경망을 도입했습니다. 사용자와 아이템 임베딩을 다층 퍼셉트론(MLP)에 입력하여 비선형 관계를 학습합니다.

구체적인 예제: 영화 추천 시스템

시나리오: 넷플릭스와 같은 영화 스트리밍 서비스에서 사용자에게 영화를 추천합니다.

데이터 구조:

  • 사용자 ID: 1~10,000명
  • 영화 ID: 1~5,000편
  • 평점 데이터: 사용자가 본 영화에 대한 암묵적 피드백(시청 여부)

모델 구조:

  1. 임베딩 레이어: 사용자 ID와 영화 ID를 각각 64차원 벡터로 변환

  2. 결합 방식: 두 임베딩을 concatenate → [128차원 벡터]

  3. MLP 레이어:

    • Layer 1: 128 → 64 (ReLU)
    • Layer 2: 64 → 32 (ReLU)
    • Layer 3: 32 → 16 (ReLU)
    • Output: 16 → 1 (Sigmoid)

학습 과정:

긍정 샘플: (사용자 1, 영화 100) → 라벨 1 (시청함)
부정 샘플: (사용자 1, 영화 523) → 라벨 0 (시청 안 함)

손실 함수: Binary Cross-Entropy

실제 적용:

  • 사용자 1이 액션 영화(영화 10, 25, 67)를 주로 시청
  • 사용자 2도 비슷한 액션 영화를 시청
  • NCF는 두 사용자의 임베딩이 유사함을 학습
  • 사용자 1이 보지 않았지만 사용자 2가 본 영화를 추천

장점: 복잡한 패턴 학습 (예: "마블 영화를 좋아하지만 액션 장르는 싫어하는" 사용자)

단점: Cold start 문제 (새 사용자/새 영화에 대한 임베딩 없음)

2. 딥러닝 추천 모델 (Deep Learning Recommendation Model, DLRM)

기본 개념

DLRM은 Meta(Facebook)에서 개발한 모델로, 대규모 추천 시스템에서 다양한 피처 타입을 효율적으로 처리하도록 설계되었습니다. 범주형 피처(카테고리, ID)와 연속형 피처(나이, 가격)를 동시에 다룹니다.

구체적인 예제: 광고 클릭률(CTR) 예측

시나리오: 페이스북 피드에서 사용자가 광고를 클릭할 확률을 예측합니다.

입력 피처:

범주형 피처:

  • 사용자 ID: 50억 개의 가능한 값
  • 광고주 ID: 100만 개
  • 광고 카테고리: 1,000개
  • 기기 타입: 10개 (iOS, Android 등)
  • 요일: 7개

연속형 피처:

  • 사용자 나이: 18~80
  • 광고 노출 시간: 0~24시간
  • 과거 클릭률: 0~1
  • 광고 예산 잔여율: 0~1

모델 구조:

  1. 범주형 피처 처리:

    • 각 범주형 피처를 별도의 임베딩 테이블로 변환
    • 사용자 ID → 128차원 임베딩
    • 광고주 ID → 64차원 임베딩
    • 광고 카테고리 → 32차원 임베딩
    • 기기 타입 → 16차원 임베딩
  2. 연속형 피처 처리:

    • 4개의 연속형 피처를 MLP에 입력
    • MLP: 4 → 32 → 64 → 128 (연속형 피처 임베딩)
  3. Feature Interaction:

    • 모든 임베딩 벡터 간 dot product 계산
    • 예: 사용자 임베딩 · 광고주 임베딩 = 스칼라 값
    • 총 C(n,2) 개의 상호작용 특성 생성 (n = 임베딩 개수)
  4. 최종 MLP:

    • 상호작용 특성들을 concatenate
    • MLP: → 256 → 128 → 1 (클릭 확률)

실제 예시:

입력:
- 사용자: ID=123456789 (게임 앱을 자주 사용하는 25세 남성)
- 광고: 모바일 게임 광고 (광고주 ID=7890, 카테고리=게임)
- 기기: iPhone 14 Pro
- 시간: 금요일 저녁 8시
- 연속형: 나이=25, 시간=20, 과거CTR=0.05

처리 과정:
1. 사용자 ID → [0.5, -0.2, ..., 0.8] (128차원)
2. 광고주 ID → [0.3, 0.6, ..., -0.1] (64차원)
3. [나이, 시간, 과거CTR, 예산] → MLP → [0.1, 0.4, ..., 0.7] (128차원)
4. 사용자·광고주 = 0.82 (높은 친화도)
5. 사용자·시간 = 0.65 (적절한 타이밍)
6. 최종 예측: 클릭 확률 = 0.12 (12%)

성능 최적화:

  • 병렬 처리: 임베딩 테이블을 여러 GPU에 분산
  • 양자화: FP32 대신 INT8 사용으로 메모리 절약
  • 캐싱: 인기 있는 임베딩을 메모리에 상주

실제 결과: Meta는 DLRM으로 기존 모델 대비 CTR 예측 정확도 3-5% 향상, 추론 속도 2배 개선을 달성했습니다.

3. 시퀀스 기반 모델

기본 개념

사용자의 행동은 시간에 따라 변화합니다. 시퀀스 모델은 과거 행동의 순서를 학습하여 다음 행동을 예측합니다.

구체적인 예제: BERT4Rec을 이용한 이커머스 추천

시나리오: 쿠팡에서 사용자의 최근 구매/클릭 이력을 바탕으로 다음 구매 아이템을 추천합니다.

사용자 행동 시퀀스:

사용자 A의 최근 30일 행동:
[노트북 가방] → [무선 마우스] → [USB 허브] → [모니터 암] → [키보드] → [?]

BERT4Rec 작동 방식:

  1. 입력 준비:
    • 각 아이템을 임베딩으로 변환
    • 위치 임베딩 추가 (시간 순서 정보)
    • 일부 아이템을 [MASK]로 치환
원본: [가방, 마우스, 허브, 암, 키보드]
마스킹: [가방, [MASK], 허브, [MASK], 키보드]
  1. Transformer 인코더:

    • Self-Attention으로 모든 아이템 간 관계 학습
    • "노트북 가방"과 "무선 마우스"가 함께 나타날 때의 패턴
    • "모니터 암"을 산 사람이 "키보드"를 살 확률
  2. 마스크 예측:

    • [MASK] 위치의 아이템 예측
    • 정답: 마우스, 모니터 암
  3. 추천 생성:

    • 학습된 모델로 시퀀스 끝의 다음 아이템 예측
    • 예측: 웹캠(0.3), 노트북 스탠드(0.25), HDMI 케이블(0.2)

실제 적용 사례:

사용자 B의 시퀀스:

1월: [운동화]
2월: [운동복]
3월: [요가 매트]
3월: [헬스 보충제]
4월: [?]

모델의 학습 내용:

  • "운동화 → 운동복" 패턴은 피트니스 관심사
  • "요가 매트"는 홈트레이닝 선호
  • 시간 간격이 짧아지는 것은 관심도 증가

추천 결과:
1. 덤벨 세트 (0.35) - 홈트레이닝 용품
2. 프로틴 쉐이커 (0.28) - 보충제와 연관
3. 운동 장갑 (0.22) - 웨이트 트레이닝 용품

장점:

  • 계절성 포착 (여름에 수영복, 겨울에 패딩)
  • 단기 vs 장기 관심사 구분
  • 갑작스러운 선호 변화 감지

단점:

  • 긴 시퀀스 처리 시 계산 비용 증가
  • 새로운 아이템은 시퀀스에 없어 추천 어려움

4. 그래프 신경망 (GNN)

기본 개념

추천 시스템의 데이터는 본질적으로 그래프 구조입니다. 사용자와 아이템, 사용자와 사용자, 아이템과 아이템이 모두 연결되어 있습니다. GNN은 이 그래프 구조를 직접 학습합니다.

구체적인 예제: LightGCN을 이용한 음악 추천

시나리오: 스포티파이에서 사용자의 청취 이력과 소셜 관계를 바탕으로 음악을 추천합니다.

그래프 구조:

사용자 노드: U1, U2, U3, ...
음악 노드: S1, S2, S3, ... (Song)
엣지: 사용자가 노래를 들었으면 연결

U1 --- S1 (Shape of You)
 |      |
 |      U2
 |      |
S2 --- S3 (Blinding Lights)

실제 데이터 예시:

사용자 1 (팝 음악 애호가):

  • Shape of You (Ed Sheeran) ✓
  • Blinding Lights (The Weeknd) ✓
  • Levitating (Dua Lipa) ✓

사용자 2 (사용자 1의 친구):

  • Shape of You ✓
  • Dynamite (BTS) ✓
  • Butter (BTS) ✓

LightGCN 작동 방식:

  1. 초기화:

    • 각 사용자와 노래에 랜덤 임베딩 할당
    • U1: [0.1, 0.5, -0.3, 0.8]
    • S1: [-0.2, 0.6, 0.4, -0.1]
  2. 그래프 합성곱 (Layer 1):

    • 각 노드는 이웃 노드의 임베딩을 평균
    • U1의 새 임베딩 = (S1 + S2 + S3의 임베딩) / 3
    • S1의 새 임베딩 = (U1 + U2의 임베딩) / 2
  3. 다층 전파 (Layer 2, 3):

    • 2-hop 이웃까지 정보 전달
    • U1 → S1 → U2 → S2 경로로 정보 흐름
    • "내 친구가 좋아하는 노래"의 정보 획득
  4. 최종 임베딩:

    • 모든 레이어의 임베딩을 평균
    • Final_U1 = (초기_U1 + Layer1_U1 + Layer2_U1 + Layer3_U1) / 4
  5. 추천 생성:

    • U1의 최종 임베딩과 모든 노래의 임베딩 내적 계산
    • 가장 높은 점수의 노래 추천

구체적인 추천 과정:

U1이 들은 노래: S1, S2, S3
U2가 들은 노래: S1, S4, S5
U3가 들은 노래: S2, S4, S6

그래프 전파 후:
- U1의 임베딩에는 S1, S2, S3의 정보가 직접 반영
- 1-hop 전파: S1을 통해 U2의 정보도 간접 반영
- 2-hop 전파: U2를 통해 S4, S5의 정보도 약하게 반영

최종 추천 점수:
S4 (Dynamite): 0.85 (U2와의 유사성)
S6 (다른 장르): 0.45 (U3과의 약한 연결)
S7 (신곡): 0.12 (연결 없음)

추천: S4 (Dynamite by BTS)

실제 효과:

  • 협업 필터링 강화: "비슷한 취향의 친구" 정보 활용
  • 롱테일 해결: 인기 없는 노래도 적절한 연결이 있으면 추천
  • 설명 가능성: "당신의 친구 10명이 이 노래를 좋아합니다"

PinSage (Pinterest의 GNN):

Pinterest는 그래프 합성곱으로 핀(이미지) 추천:

사용자가 "북유럽 인테리어" 핀 저장
→ 비슷한 핀을 저장한 다른 사용자 탐색
→ 그들이 저장한 "미니멀 가구" 핀 발견
→ "미니멀 가구" 추천

5. 하이브리드 모델

기본 개념

단일 접근법의 한계를 극복하기 위해 여러 모델과 데이터 소스를 결합합니다.

구체적인 예제: Wide & Deep을 이용한 Google Play 앱 추천

시나리오: Google Play 스토어에서 사용자에게 앱을 추천하고 설치를 유도합니다.

모델 구조:

Wide 부분 (선형 모델):

  • 명시적 규칙과 교차 특성 학습
  • 예: "사용자가 과거에 게임 앱 5개 이상 설치" AND "현재 게임 카테고리 탐색"
  • 특징: 암기(Memorization) 능력 우수

Deep 부분 (심층 신경망):

  • 일반화(Generalization) 능력 우수
  • 사용자와 앱의 저차원 임베딩 학습

실제 예시:

사용자 프로필:

  • 과거 설치: WhatsApp, Instagram, TikTok, Spotify, Uber
  • 최근 검색: "photo editor"
  • 기기: Galaxy S23
  • 위치: 서울, 대한민국

Wide 부분 처리:

교차 특성 1: [소셜 앱 3개 이상] × [20대] = 1 (활성화)
교차 특성 2: [사진 검색] × [크리에이터 도구 미설치] = 1
교차 특성 3: [한국] × [K-pop 관련 앱] = 1

Wide 출력: 0.6 (사진 편집 앱 추천 경향)

Deep 부분 처리:

사용자 임베딩: [소셜, 엔터, 사진] 차원에서 높은 값
앱 후보 임베딩:
- SNOW (사진 편집): [사진, 소셜, 뷰티] 높음
- Lightroom: [사진, 전문가] 높음
- Canva: [사진, 디자인, 크리에이터] 높음

유사도 계산:
사용자 · SNOW = 0.82
사용자 · Lightroom = 0.65
사용자 · Canva = 0.78

Deep 출력: 0.7 (SNOW 선호)

최종 결합:

최종 점수 = Wide(0.6) + Deep(0.7) = 1.3
→ SNOW 앱 추천 (사진 편집 + 소셜 기능)

설명:
- Wide: "사진 검색 후 크리에이터 도구 필요" 패턴 포착
- Deep: "소셜 앱 선호 사용자는 SNOW 좋아함" 일반화

DeepFM 예제: 전자상거래 구매 예측

시나리오: 11번가에서 사용자가 장바구니에 담은 상품을 구매할 확률 예측

입력 피처:

  • 사용자 나이: 32세
  • 상품 가격: 89,000원
  • 상품 카테고리: 전자제품 > 이어폰
  • 시간: 월급일 다음날
  • 장바구니 체류 시간: 3일

FM 부분 (Factorization Machine):

2차 교차 특성 학습:
- 나이 × 가격: 중년층은 고가 제품 구매 확률 높음
- 가격 × 카테고리: 이어폰 가격대 적절성
- 카테고리 × 시간: 월급일 후 전자제품 구매 증가

FM 출력: 0.55

DNN 부분:

모든 피처를 임베딩 후 MLP:
- 사용자 행동 패턴 학습 (과거 전자제품 구매 이력)
- 제품 인기도와 리뷰 점수 반영
- 계절성 고려 (연말 선물 시즌)

DNN 출력: 0.62

최종 예측:

구매 확률 = sigmoid(FM + DNN) = sigmoid(1.17) = 0.76 (76%)

→ 할인 쿠폰 푸시 알림 발송
"장바구니의 에어팟 프로, 지금 구매하면 10% 할인!"

실제 비즈니스 효과:

  • 구매 전환율 15% 향상
  • 장바구니 이탈률 20% 감소
  • 프로모션 ROI 30% 개선

모델 선택 가이드

NCF: 사용자-아이템 상호작용 데이터가 풍부하고, 복잡한 선호 패턴이 예상될 때

DLRM: 대규모 시스템, 다양한 피처 타입, 실시간 추론이 필요할 때

시퀀스 모델: 사용자 행동의 시간적 맥락이 중요할 때 (세션 기반, 장바구니)

GNN: 소셜 관계나 아이템 간 연결이 중요할 때 (소셜 네트워크, 지식 그래프)

하이브리드: Cold start 문제가 심각하거나, 여러 데이터 소스를 활용해야 할 때

현대 추천 시스템은 이러한 모델들을 조합하여 2단계 파이프라인(Retrieval → Ranking)으로 구성하며, A/B 테스트를 통해 지속적으로 최적화합니다.

profile
Story Engineer

0개의 댓글