5. • 메타/로그 집계 현황 (18년9월기준)
• 로그 하루 40~50GB, 1억건 정도
• 클릭,재생,에러 3개의 type으로 구분, 클릭 3300만건, 시청 6600만건, 에러 100만건
• 2개의 하둡 저장소에 저장 (클릭/재생로그 1개, 에러로그 1개)
• 로그들은 제플린(HIVE쿼리)를 통해 조회 가능
• 서비스 제공 알고리즘
• DeepLearning(홈추천), Ranking, CF (Co-occurrence) ,MF (Matrix Factorization), NLP(Keyword, Content-based), 단순이력 (ex. 자
주본 시리즈의 다음회차)
• 전체 재생 중 25.8% 재생카운트가 추천시스템의 전시메뉴에서 발생 (18년 9월 기준)
• 성능 평가
• Metrics: 일별 성과분석툴
• A/B testing
Oksusu 추천 서비스
7. 홈 딥러닝 추천
Bi-LSTM Bi-LSTM Bi-LSTM Bi-LSTM
Bi-LSTM Bi-LSTM Bi-LSTM Bi-LSTM
Softmax
Fully Connected Layer
Sequence
Embdding
Average
Emedding
Em
Contents Metadata
genre
actors
title
synopsis
keywords
Contents Metadata
genre
actors
title
synopsis
keywords
Contents Metadata
genre
actors
title
synopsis
keywords
Doc2Vec
Contents Metadata
actors
title
synopsis
keywords
genre
actors
title
synopsis
keywords
Incremental Doc2Vec
Newly incoming
contents Extract similar contents based on Cosine Similarity
...
Embedding Vectors
...
• 딥러닝 추천 엔진
• 하이브리드 모델로 정확성&최신성을 높이고자 함
• 일단위 배치(RNN) + 시간단위 배치(Doc2Vec CBF)
• 정확도 (MAP: Mean Average Precision)
• 영화 11%, 예능/드라마: 13%, 클립: 22%
• 추천 플랫폼과는 elasticsearch, kafka를 통해 실시간 입출
력 데이터 연동 (메타데이터, 로그, 추천결과)
• 오픈소스 활용
• Tensorflow LSTM, Gensim Doc2Vec, Spark/하둡 로그처리, Airflow
워크플로우관리, Kibana 모니터링
8. • 추천 서비스 현황
• 하루당 220만명 유저의 개인화 리스트 제공가능 (유저당 50개)
• 개인별 하루 최대 12개의 다른 리스트 출력
• 현재는 전체 사용자의 5%만 제공중
• 기존편성과 성능비교를 통해 확대목표
• 엔진과 API 서빙시스템간 연동을 위해 Elasticsearch 도입
• 콘텐츠 메타 제공
• 트레이닝 결과 저장
• 추천엔진 출력에 대한 후보정 로직
• 개인별 선호 실시간채널을 홈추천에 추가 (최대3개)
• 시리즈들을 최신 회차로 변환 (배치주기 5분)
• 영상 타입에 맞춰 카드 타이틀을 생성
Redis
NCMS
Redis Cluster
ES
DL MF
CM
meta
DL + new title,
MF prediction
ranking
홈 딥러닝 추천
9. 홈 딥러닝 추천
• AB 테스트 성능평가
• 홈딥러닝추천 A(실험군)그룹 5% 적용, 기존편성 B(대조군)그룹 5% 적용
• 시청전환률 기준 A : B = 3.44(%) : 2.69(%)로 우세한 성능 보임
10. • 주요 메뉴(최신/무료/프리미어)에 MF 개인화 카드 추가 (2018년내 실서비스 제공예정)
• 엔진내 메타 필터를 추가 구현
• Elasticsearch 연동
• 메타데이터 및 추천 결과 저장을 위해 사용
• 기존 파일 I/F를 대체
• 성능 개선 및 오픈소스 버전 업데이트
• Predictionio 및 spark2.x 버전 업데이트
• predict function의 all scan 코드를 predict 대상 콘텐츠로 한정하여 prediction 시간 단축
MF 영화 As-is
User: 130만 명
Item: 1만개
To-be
User: 230만 명
Item: 1만개
Meta Collect 1h 1h
Train 40m 1h
Predict - I2I 5m 5m
Predict - U2I 2h 1h 20m
MF 추천 2018
11. • 오픈소스 PredictionIO 기반, SparkML ALS function 활용 MF 구현
• 입력: 평점 및 View 로그 (5점 scale)
• RMSE 1.04 (rank = 20, lambda = 10.0, alpha = 40.0)
• Item2Item 추천
• SparkML ALS function을 통해 item의 features를 추출
• consine 유사도를 활용하여 유사한 item 추천
MF 추천 엔진
12. 키워드 2.0 추천 (개요)
• 오픈소스 기반 High-end 키워드 추천 시스템 개발
• 영화/인물/댓글 정보 크롤링
• 영화 크롤링 데이터 저장/관리
• CMS 메타 정보 저장/관리
• BM25알고리즘 기반 키워드 스코어 정규화
• Rest API 제공
• 어드민 웹 페이지 제공
13. 키워드 2.0 추천 (구조)
• Java Spring 기반 크롤러/어드민 개발
• Elasticsearch 기반 데이터 저장/검색
• 은전한닢 기반 형태소분석
• RabbitMQ/Fluentd 기반 크롤링 데이터 적재
• Batch/Quartz 기반 스케줄링
15. • 동시시청 제어
• 동일계정으로 여러 단말으로부터의 동시시청 제한 기능
• LOGàFileBeatsàKafkaàSparkàRedisà동시 시청 여부 판단
• 랭킹
• LOGàFileBeatsà Kafkaà Spark StreamingàMySQLà 랭킹리스트서빙
• 실시간 채널 1분, 영화/방송/클립 15분 (N시간 sliding window 방식으로 동작)
• 통합 Top 100, 주간 인기, 가격대별, 요일별 등 세부랭킹 제공
• 뷰카운트 (2017년 기구축)
• 5초단위 주기
• LOGàFileBeatsàRedis QueueàLogstashàElasticsSearch집계à뷰카운트 서빙
랭킹 및 통계
동시 시청 제어
Near-실시간 랭킹
Beats
16. • 서빙 저장소 용량확장
• 총 저장용량 128GBà384GB로 확장
• 기존 Replication Farm 128GB 유지 + 레디스 클
러스터(서버4대) 256GB 추가
• Redis replication 적재 데이터
• 안정성이 필요한 데이터
• 랭킹, 시청이력 등
• Redis cluster 적재 데이터
• 개인화 관련 데이터들
• 딥러닝/MF 개인별 추천 리스트들
• 기타
• API 서버가 실시간성 비즈니스 로직을 처리
할 수 있도록 함
• 예) 시리즈의 회차를 최신 회차로 변경등
API 서빙 개선
A master
C slave
B master
D slave
C master
A slave
D master
B slave
성수 노드1
성수 노드2
수유 노드1
수유 노드2
17. • 실시간 성과 분석 기능 (5분단위)
• 로그 처리 주기를 일단위(하둡Hive기반) 에서 5분단위(kafka기반)로 단축
• 메뉴나 카드 배치 후 성과(사용자 반응)에 대해 실시간 모니터링 가능
• 콘텐츠레벨 분석 기능
• 성과를 발생시키는 주요 메뉴 분석
성과분석시스템(Metrics) 2018
18. • 성과 시각화 분석 시스템
• 시놉페이지, 시청, 구매, 전시 4개 지표 집계
• 4단계 계층 분석 구조 (3단메뉴 + 메뉴내카드)
• 메뉴 전시 대비 성과 수치를 %로 계산 및 시각화
• 오픈소스 적용
• 대시보드(Apache superset), Time-series datastore (Druid)
성과분석시스템(Metrics) 개요
19. • 사용성 개선
• 편성자 친화적인 어드민 툴 및 시뮬레이션 제공
• 다양한 AB 테스팅 실험기능 제공
• 딥러닝 및 MF 추천 개선
• 배치주기를 시간단위에서 수분단위로 줄여 Freshness 제공
• MAB 적용을 통해 온라인 파라미터 튜닝 및 성능 최적화
• 자연어처리(NLP) 추천 개선 방향
• 연관 검색어 제공, 키워드 랭킹, 개인별 선호키워드 뭉치 제공
• 지식 그래프 구축
• 비디오/이미지 분석 기반 추천 서비스 상용화
• Btv 서비스로의 연동
앞으로는?