3. 1.추천 모델링이란?
2. 추천 모델 종류와 특징
3. 추천 품질 평가 방법
4. 대규모 추천 시스템 구축의 실제
5. 맺음말
4. 1.1 추천 모델링 정의
유저 정보
추천 모델링
로그 데이터 아이템 정보
특정 시점에 유저가 좋아할 만한 아이템의 리스트를 찾는 것
5. 5
1.2 추천 모델링 고려사항
Key Factors
1. 유저수
2. 아이템수
3. 업데이트 양/주기
4. 모델 복잡도
5. 시스템 성능
vs.
*우도할계(牛刀割鷄)
소 잡는 칼로 닭을 잡는다는 뜻
6. 6
1.3 추천 모델링 난제
아이템수
유저수
서비스 중흥기
서비스 초창기
Sparsity Problem
유저와 아이템 개수가 급증할수록
유저가 실제 소비한 아이템의
비율은 점점 줄어듦
즉, 추천 피드백 정보가 희박해짐
머신러닝/딥러닝 기술로 극복
7. 7
1.4 추천 모델링 프로세스
로그 분석
모델 선정
품질 평가모델 학습
AB테스트
서비스 적용1
2
3
5
6
44
8. 1. 추천 모델링이란?
2.추천 모델 종류와 특징
3. 추천 품질 평가 방법
4. 대규모 추천 시스템 구축의 실제
5. 맺음말
9. 9
2. 추천 모델의 종류
Question. 유저가 좋아할 만한 아이템의 정의가 뭐지?
Answer. 추천 모델마다 정의가 달라요
Statistics
based
Collaborative
Filtering
Deep
Learning
추천이란? 특정 시점에 유저가 좋아할 만한 아이템의 리스트를 찾는 것
10. 10
2.1 Statistics-based
좋아할 만한 = 통계적으로 유의미한 아이템
세대별 뮤직추천
Chi-Squared
Cross-Entropy
(KL-divergence)
예상보다 많이 본
분포가 많이 다른
Categorical
Continuous
12. 12
2.1 Statistics-based
Cross-Entropy 개념과 활용
KL-Divergence 란?
관측치
Continuous Variable
보통 ML에서 loss function으로 사용
(c.f., 관측 엔트로피를 추가하면 KLD를 쓰는 것과 동일)예측치
분포가 많이 다른
유의미한 추천 아이템으로 활용가
능
경우
관측 엔트로피
13. 13
2.2 Collaborative Filtering
좋아할 만한 = 나와 비슷한 유저가 좋아한 아이템
User-based Item-based
U1
U2
U3
D1
D2
D3
Neighborhood models
유저-유저, 아이템-아이템간의
Similarity (유사도) 구하는 문제
{U2:1}
{U3:2, U1:1}
{U2:2}
{D3:2}
{D2:2, D1:1}
{D2:1, D3:1}함께 본 문서수
함께 본 유저수
U1
D2U2
U3
D1
D3
14. 14
2.2 Collaborative Filtering
Co-occurrence 동시에 발생하는 이벤트에 주목하라
PMI (Pointwise Mutual Information)
함께 발생한 빈도와 함께 각 이벤트가 발생할
확률을 함께 고려한 정보량 (부록1 참고)
Cosine similarity Jaccard index
교집합벡터의 내적
기존 방법
15. 15
2.2 Collaborative Filtering
V W
H
X
≈
D1 D2 D3 D4 D5 D1 D2 D3 D4 D5
U1
U2
U3
U4
U5
U6
U1
U2
U3
U4
U5
U6
Latent factor
유저와 아이템간의 상호작용 데이
터기반으로 은닉인자를 추정
Matrix factorization models
16. 16
2.2 Collaborative Filtering
Matrix factorization models
Loss function
Prediction
오차=(관측치-예측치)
L2
regularization
- 계산량이 많고 학습 속도가 느림
- missing data를 negative 샘플로 사용
wALS
ALS: Alternating Least Squares
속도, 정확도
ALS + Weighting scheme
Limitations
17. 2.3 Deep Learning
좋아할 만한 = 나의 컨텍스트 벡터와 가까운 아이템
Non-linear models
U1={0.5, -2.0, 3.1, 0.42, …} D1={-1.2, 0.1, 0.9, -0.2, …}
Neural
Networks
인공신경망을 통한 유저-아이템 관계 추론
18. 2.3 Deep Learning
RNN for News Recommendation
유저가 본 문서 시퀀스
1. 신규 뉴스의 경우 유저 로그가 없는 상태임
2. RNN을 통해 학습된 유저 임베딩 정보를 활용
3. 유저-문서간 벡터연산을 통해 뉴스를 추천
Document
Sequence
Doc2Vec
LSTM
Layer
RecVec 유저가 볼 문서를 예측
유저의 문서 소비 패턴을 보고 추천
20. 2.3 Deep Learning
Word Embeddings d1
d2
d3
인공지능
추천
시스템
AiRS
개발기
모델링
시스템
최재호
DEVIEW2017
Convolutional Layer Max
pooling
FC layer
(dropout + softmax)
unanimity
check
유저가 본 문서
어떤 토픽인지 판별
문서내 단어들의 배열을 보고 주제를 추론CNN for Deep Topic Tagger
(부록2 참고)
22. 22
2.4 추천 모델 특징 비교
Statistics
based
Collaborative
Filtering
Deep
Learning
Similarity
Missing data
Categorica
Continuou
Non-linearity
Neural Nets + CF
Chi-squared
KL-Divergence
Neighborhood
Matrix Factorization
RNN/CNN
Deep CF
통계-확률 선형-비선형
23. 1. 추천 모델링이란?
2. 추천 모델 종류와 특징
3.추천 품질 평가 방법
4. 대규모 추천 시스템 구축의 실제
5. 맺음말
24. 24
3.1 추천 품질 평가 요소
Accuracy : 유저가 실제 소비한 아이템이 상위에 추천되는지
Diversity : 다양한 주제/유형의 아이템이 잘 추천되는지
Novelty : 새로 나온 최신의 아이템이 잘 추천되는지
추천의 만족도
Accuracy Diversity Novelty
추천모델의 성능
Starvation 문제 해결
25. 25
3.2 추천 모델 평가 방법
오프라인과 온라인 테스트를 병행하여 장기적인 관점에서 평가
오프라인 정량평가 온라인 A/B 테스트
비용이 적게 든다 (low cost) 비용이 많이 든다 (high cost)
특정 모델간 비교 평가 (specific)
유저 관심사 고정 (static) 유저 관심사 변화 (dynamic)
전체 모델간 비교 평가 (general)
실서비스 적용 여부 결정온라인 테스트 모델 선정
26. 26
3.3 추천 모델 평가 지표
추천모델의 기대효과에 따라 지표를 선정하고 시간별 추이를 관찰
추천모델 정확도 평가지표 실서비스 만족도 평가지표
Precision/Recall@N 유저별 클릭수/CTR
신규 아이템 회전율
F-score/AUROC 유저별 총 체류시간
nDCG/MRR
추천 후보를
잘 찾는가?
상단에 잘
랭킹하는가?
유저가 얼마나
소비하는가?
아이템이 골고
루
nDCG : normalized Discounted Cumulative Gain
AUROC : Area Under the Receiver Operating Characteristic curve
MRR : Mean Reciprocal Rank
CTR : Click-Though Rate
28. 1. 추천 모델링이란?
2. 추천 모델 종류와 특징
3. 추천 품질 평가 방법
4.대규모 추천 시스템 구축의 실제
5. 맺음말
29. 4.1 추천 시스템 구축 요구사항
얼마나 많은 데이터를 얼마나 빠르게 업데이트 할 것인가
Throughput
추천 시스템
ScalabilityLatency
1. 네이버 메인 트래픽 10,000 TPS 이상
2. 네이버 액티브 유저 수천만명 개인화 서빙
3. 다양한 추천 서비스에 지속적인 확대 적용
30. 4.2 추천 시스템 아키텍쳐
Data
Warehouse
Cuve
kafka /
Processing Cluster(C3, Brew-K)
H
B
A
S
E
slider
A
M
B
A
R
I
Airflow
HDFS
HIVE
spark
H
B
A
S
E
C
A
N
A
C
A
N
A
S
T
O
R
M
DDK
D
O
T
Z
E
P
P
E
L
I
N
slider
A
M
B
A
R
I
HDFS
H
B
A
S
E
C
A
N
A
Yarn
D
O
T
O
P
E
N
T
S
D
B
G
R
A
F
A
N
A
Serving Cluster(Brew-C)
Yarn
대규모 데이터를 실시간 처리 가능한 클러스터들의 조합
Cluster View
31. 4.2 추천 시스템 아키텍쳐
오픈소스와 네이버 솔루션의 오케스트레이션
log
feedbac
Cuve
HBase
Kafka
CANA
DDK
nBase-ARC
...
storm
HBase
batch
stream
Airflow
hive
spark
tez M/R spark
Scheduling
Realtime
update
Batch
update
All containers, All instances
C3 / C3 DL Monitor
grafana
OpenTSDB
TCollector
HBase
coll
DOT
RAS
Data Flow
G
G
A
T
E
W
A
Y
https://deview.kr/2016/schedule/135
검색엔진 Dot의 내부
https://deview.kr/2017/schedule/193
멀티테넌트 하둡 클러스터 운영 경험기
https://deview.kr/2017/schedule/188
HBase 기반 검색 데이터 저장소
https://www.slideshare.net/deview/244-52781290
분산 환경에서 스트림과 배치 처리 통합 모델
*Cuve
*C3
*DOT
*DDK
32. 32
4.3 추천 시스템 구축 노하우
Keywords
ContainerizationResearch+DevOps
유저 데이터를 분석하고
추천모델을 선정 및 학습하는 과정과
실서비스 개발 및 운영하는 과정을 통합
정제 및 서빙에 필요한
서버들을 컨테이너화 함으로써
확장성과 장애대처에 용이하도록 설계
Productivity Scalability
33. 33
4.3.1 Agile Development
Language & Tool 통합
데이터 분석 및 추천 모델링에 사용하는 언어와 도구를 실서비스 투입이 가능하도록 통합
Airflow (scheduler), Hive (data warehouse), Spark (big data processing engine)
Hadoop YARN (distributed cluster resource manager)
Slider (an application to deploy existing distributed applications on Yarn cluster)
OpenTSDB/Grafana (a scalable, distributed monitoring system)
DOT (distributed incremental search engine)
DDK/Cana (event-driven near-realtime severless compute solution)
C3 (PaaS, Hadoop cluster), Cuve (PaaS, HBase, Kafka), nBase-ARC (PaaS, Redis Cluster)
Airflow Hive Spark
Hadoop YARN
Slider
OpenTSDB/Grafana
DOT
DDK/Cana
C3 Cuve nBase-ARC
35. 35
4.3.3 Data Catalog & Reusability
Hive (Meta store) 카탈로그 기반 데이터 뷰
column type desc value
id string encrypted id 1234
bcookie string browser cookie CG7GYVQMI4TFQ
gdid string document id 98155edc_7b4148fe13c83f2
url string document url blog.naver.com/bbbananas/
referrer string
referrer url search.naver.com
demo string demographic group M40_44
query string search query
a3 2016
time int access time 1486996936
duration int duration time 3230
TABLE gdid_histogram.lcs_point
(PARTITIONED BY (ds STRING, ts STRING)
36. 36
4.3.4 효율적인 Task Scheduling
Airflow DAGs 기반 관리
여러 추천서비스에서 공유가능
Sensor 활용
37. 37
4.3.5 Batch Job Latency Trade-off
Spark vs Hive (on MR)
약 10분 소요 약 1시간 50분 소요
Low latency batch job
Spark를 이용하자
1. shuffle job
2. resource 할당
3. disk I/O
단, 중간데이터 남음
38. 4.3.6 컨테이너화를 통한 Ops 효율화
서버 장애 등의 상황에 자동 failover 및 급증하는 트래픽에 대한 scailability 확보
Airflow scheduler / web 서버는 Slider를 통해 실행
Yarn Airflow Scheduler
내년 오픈소스화 예정
39. 1. 추천 모델링이란?
2. 추천 모델 종류와 특징
3. 추천 품질 평가 방법
4. 대규모 추천 시스템 구축의 실제
5.맺음말
40. 정리하면...
내 서비스에 딱 맞는 추천을 만들기 위해선,
충분한 데이터 탐색을 통한 유저와 아이템 분석
다양한 추천 모델을 비교하고 제대로 평가하기 위해선,
확률통계 및 머신/딥러닝 기술 적용과 올바른 평가지표 활용
Throughput, Latency, Scalability 라는 3마리 토끼를 잡기 위해선,
대규모 정제/서빙 시스템에 대한 깊은 이해와 협업정신