Deep Neural Networks for YouTube Recommendations

HanJu Han·2024년 12월 29일
0

추천 시스템

목록 보기
36/49

넷플릭스 시청 데이터를 통한 예시

1. 시간 기반 데이터 분할 예시:

사용자 A의 넷플릭스 시청 기록

  • Training 데이터 (1월~11월):
    • 1월: "킹덤", "D.P"
    • 5월: "종이의 집", "마블 시리즈"
    • 8월: "오징어 게임", "수리남"
  • Test 데이터 (12월):
    • "더 글로리", "환혼"

2. Highly Active 유저 제한 예시:

일반 사용자 김철수:

  • 월 평균 5편 시청
  • 전체 데이터 60편
  • Training에 모든 데이터 사용 가능

초활동적 사용자 이영희:

  • 월 평균 100편 시청
  • 전체 데이터 1,200편
  • Training에는 60편만 사용 (나머지 1,140편은 제외)
    → 이를 통해 이영희의 데이터가 전체 모델을 지배하는 것을 방지

3. 다양한 경로의 시청 기록 예시:

사용자 박민수의 "오징어 게임" 시청 경로들:

  • 넷플릭스 추천을 통한 시청
  • 친구가 보낸 링크로 시청
  • 검색해서 시청
  • SNS 광고를 통한 시청
    → 모든 경로의 시청 기록을 포함하여 추천 시스템이 특정 경로에 과도하게 의존하지 않도록 함

4. 검색 컨텍스트 완화 예시:

사용자가 "IU" 검색 후 홈페이지 추천:

  • 잘못된 추천:
    • IU의 모든 드라마
    • IU의 모든 예능
    • IU의 모든 뮤직비디오
  • 개선된 추천:
    • IU 출연 드라마 "호텔 델루나" (관련 컨텐츠)
    • 비슷한 장르 드라마 "도깨비" (장르 연관)
    • 인기 예능 "런닝맨" (사용자 일반 관심사)
    • 새로 나온 영화 "서울의 봄" (시의성)

이런 방식으로 데이터셋을 구성하면:

  • 시간의 흐름에 따른 사용자 취향 변화 반영
  • 특정 사용자의 과도한 영향력 방지
  • 다양한 경로를 통한 자연스러운 콘텐츠 발견
  • 단순 연관성을 넘어선 풍부한 추천 제공

이를 통해 사용자는 더 다양하고 균형 잡힌 추천을 받을 수 있습니다.


피쳐

넷플릭스와 유튜브를 예시로 들어 Feature 분류에 대해 상세히 설명해드리겠습니다.

1. Categorical Feature의 크기에 따른 분류:

작은 Categorical Feature:

  • 로그인 상태: {로그인, 비로그인} - 2가지 값
  • 디바이스 종류: {모바일, 태블릿, PC, TV} - 4가지 값
  • 화질 설정: {HD, FHD, 4K} - 3가지 값

큰 Categorical Feature:

  • 검색어: {"아이유", "손흥민", "오징어게임"...} - 수백만 가지 값
  • 시청 영상 ID: {"vid_001", "vid_002"...} - 수억 가지 값
  • 채널명: {"Music Bank", "KBS News"...} - 수십만 가지 값

2. Univalent vs Multivalent:

Univalent(단일값) 예시:

  • 영상 길이: 10분
  • 업로드 날짜: 2024-01-01
  • 시청 연령 제한: 15세

Multivalent(다중값) 예시:

  • 영상 태그: [음악, K-POP, 댄스, 공연]
  • 선호 장르: [액션, SF, 코미디]
  • 구독 채널: [MBCNEWS, 백종원, 침착맨]

3. Item vs Customer/Context Feature:

Item Feature (콘텐츠 자체 특성):

  • 동영상 제목: "2024 신년 카운트다운"
  • 채널명: "KBS Entertainment"
  • 재생 시간: 3시간 12분
  • 영상 해상도: 4K
  • 자막 제공 언어: [한국어, 영어, 일본어]

Customer/Context Feature (사용자/상황 특성):

  • 시청 시간대: 저녁 8시
  • 위치: 서울
  • 사용 기기: 아이폰
  • 네트워크 상태: 5G
  • 최근 검색어: "연말 시상식"

4. 개념 모델과 계산 효율성:

Item Feature 계산 (각 아이템마다 계산):
예시) 새로운 영상 "2024 아이돌 시상식" 업로드 시

  • 영상 길이 계산: 2시간 30분
  • 해상도 확인: 1080p
  • 카테고리 분류: 엔터테인먼트
  • 언어 감지: 한국어
  • 썸네일 생성: 대표 장면 추출

Query Feature 계산 (한 번만 계산):
예시) 사용자가 "2024 시상식" 검색 시

  • 검색 시간: 오후 9시
  • 사용자 위치: 부산
  • 디바이스: 갤럭시 태블릿
  • 선호 장르: 예능
  • 구독 채널 목록

이러한 분류를 통한 장점:
1. 계산 효율성 향상
2. 저장 공간 최적화
3. 실시간 추천 속도 개선
4. 시스템 확장성 확보

예를 들어, "2024 시상식" 검색 결과 추천 시:

  • Item Feature: 미리 계산된 각 시상식 영상의 특성 사용
  • Query Feature: 현재 사용자의 상황만 1회 계산
    → 빠른 추천 결과 제공 가능

피쳐 엔지니어링

넷플릭스와 유튜브 사례로 Feature Engineering을 자세히 설명해드리겠습니다.

1. 과거 인터랙션의 중요성:

사용자 A의 "BTS" 채널 시청 기록:

  • 과거 30일간 시청한 영상 수: 25개
  • 평균 시청 시간: 15분
  • 좋아요 수: 15개
  • 구독 여부: Yes
    → 이런 정보들이 추천 시스템의 핵심 피처가 됨

2. 채널 기반 시청 행동:

"가전제품 리뷰" 채널에서:

  • 총 영상 수: 100개
  • 사용자 시청 수: 30개
  • 완주율: 80%
  • 최근 시청: 2일 전
    → 해당 채널에 대한 사용자의 관심도를 수치화

3. 토픽별 최근 시청 정보:

"요리" 토픽:

  • 마지막 시청: 3시간 전
  • 최근 1주일 시청 횟수: 12회
  • 평균 시청 시간: 8분
    → 현재 사용자의 관심사를 파악

4. Candidate Generation 정보:

영상 "신년 요리 레시피" 추천 경로:

  • 추천 소스:
    • 홈피드: 추천 점수 0.85
    • 검색결과: 추천 점수 0.92
    • 관련 동영상: 추천 점수 0.78
  • 과거 노출 횟수: 3회
  • 클릭률: 15%

5. 노출 이력 관리:

영상 "2024 트렌드 분석":

  • 지난주 노출 횟수: 5회
  • 클릭 여부: No
  • 스킵 횟수: 3회
    → 과도한 반복 노출 방지를 위한 정보

6. 통합 임베딩 레이어 사용:

예시) "아이유 콘서트" 영상:

  • 영상 ID: vid_12345
  • 관련 ID들:
    • 노출된 비디오: exp_12345
    • 시청한 비디오: watch_12345
    • 추천된 비디오: rec_12345
      → 모두 같은 임베딩 레이어 사용

실제 추천 과정 예시:

  1. 사용자가 "Korean Street Food" 영상을 시청할 때:
  • 과거 음식 관련 시청: 50회
  • 한식 채널 구독: 3개
  • 평균 시청 시간: 12분
  • 최근 검색어: "김치 레시피"
  1. 시스템의 추천 결정:
  • 연관 채널 분석
  • 최근 시청 패턴 확인
  • 노출 이력 체크
  • 각 후보 영상의 점수 계산
  1. 최종 추천:
  • 새로운 한식 레시피
  • 인기 있는 식당 리뷰
  • 조리법 튜토리얼
    → 다양하고 신선한 추천 제공

이러한 Feature Engineering을 통해:

  • 더 정확한 사용자 취향 파악
  • 적절한 노출 빈도 조절
  • 효율적인 시스템 운영이 가능해집니다.
profile
시리즈를 기반으로 작성하였습니다.

0개의 댓글