넷플릭스 시청 데이터를 통한 예시
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
→ 모두 같은 임베딩 레이어 사용
실제 추천 과정 예시:
- 사용자가 "Korean Street Food" 영상을 시청할 때:
- 과거 음식 관련 시청: 50회
- 한식 채널 구독: 3개
- 평균 시청 시간: 12분
- 최근 검색어: "김치 레시피"
- 시스템의 추천 결정:
- 연관 채널 분석
- 최근 시청 패턴 확인
- 노출 이력 체크
- 각 후보 영상의 점수 계산
- 최종 추천:
- 새로운 한식 레시피
- 인기 있는 식당 리뷰
- 조리법 튜토리얼
→ 다양하고 신선한 추천 제공
이러한 Feature Engineering을 통해:
- 더 정확한 사용자 취향 파악
- 적절한 노출 빈도 조절
- 효율적인 시스템 운영이 가능해집니다.