SlideShare uma empresa Scribd logo
1 de 129
Baixar para ler offline
Live
 Broadcasting
 
  
추천
 시스템 
최규민
 |
 2014.9.30
저(최규민)는
저(최규민)는 아프리카TV에서
저(최규민)는 아프리카TV에서 추천 방송을
저(최규민)는 아프리카TV에서 추천 방송을 만들고 있습니다.
오늘은 이 추천 방송을 대하여 
이야기해 보겠습니다.
아프리카TV는? 
BJ 방송 
시청자
아프리카TV는?
  
SNS
 플랫폼
 
 
 
 
 
 
 
 
 
 
 
아프리카TV 
100 
75 
50 
25 
0 
하루에
 100
 K
 방송이
 만들어지고
  
하루에
 3
 M
 명의
 시청자가
 방문하고
  
하루에
 20
 M
 번의
 방송이
 시청되고
  
하루에
 20
 M
 건의
 채팅이
 이루어
 지고
 
  
하루에
 평균
 120분
 시청합니다
오늘
 할
 이야기는
  
추천이란? 
아프리카TV 
방송 추천하기 Touch 
the void 
효과 최규민의 
하루 
아마존 
추천 
관심도 
와 연관도 
구 
현 시스템 
유사도 
이야기 
AB 
테스트 
아키텍쳐 
실대처 
추천 
적용
추천이란 뭘까요?
최규민씨의 하루생활
출근을 할 때 안막히는 도로를 ! 
추천 받고
출근 후 뉴스를 보면 ! 
관련 기사를 또 보여 주고
이 메일을 확인하면 ! 
볼만한 동영상이 수신되어 있고
점심 시간에 모바일 게임을 접속하면! 
형태기반 띠 광고를 보게 되고
주말에 볼 영화를 찾기위해 ! 
Watcha에 접속하면 영화가 추천되고 
http://watch.net
이렇게 우리의 모든 행위는 기록되고! 
필요할 때 적절히 추천 됩니다.
그럼 왜 이렇게 추천할까요?
“Touching the void 책” 이야기 
출처: http://www.elhablador.com/blog/wp-content/uploads/2012/
1988년 출간 
산악인의 생존 실화를 
다룬 책 
! 
“Touching the 
void” 
평가 좋지만 판매는 그 
닥!!! 
그리고 절판됨
10년 뒤 
“Into Thin Air” 
산악소설이 붐!!! 
! 
이 책과 유사한 
“Touching the 
void” 
가 독자에 의해 
책 서평 등록 
출처: www.amazon.com
100 
75 
50 
25 
0 
절판된 책이 판매량 증가
서점에서는 다시 프로모션을 하고
1000 
750 
500 
250 
0 
판매량의 급증
추천의
 힘!!
아마존 책 매출의 57%는 ! 
서점에서 팔지 않는 책에서 ! 
발생합니다.
이런 추천 시스템은 ?
이러한 추천 시스템은 대부분 협업 필터링과 
같은 알고리즘을 사용합니다. ! 
! 
협업 필터링은 ! 
유저 기반 추천, 아이템 기반 추천 ! 
분류됩니다.
유저 기반 추천! 
- 나와 유사한 유저가 본 아이템을 추천 
나 유사한 유저 그들이 본 아이템
아이템 기반 추천! 
- 내가 본 아이템과 유사한 아이템을 추천하는 방식 
나 내가 본 아이템 유사한 아이템
아프리카TV 은! 
큰 틀에서 아이템 기반 추천
아프리카TV의 방송 추천 
에 대하여 알아 보겠습니다.
큰 그림
BJ 관심도 BJ 연관도 
` 
오래 시청한 
자주 추천한 
많이 선물한 
내가 관심BJ와 유사한 
연관BJ의 
방송추천
BJ
 관심도
 측정
1.0 (관심도) 0.0 
평준화 
[0.0 , 1.0] 
시간 
가중치 
항목 
가중치
0.0 
평준화 
[0.0 , 1.0] 
시간 
가중치 
항목 
가중치 
방송 시청 이력 
uno 
! 
BJID 시청시간 평균 
10001 rani0224 10’ 9’ 
10001 afkbo1 120’ 95’ 
10001 afmlb1 32’ 93 
추천이력 
uno 
! 
BJID Y/N 
10001 rani0224 T 
10001 afkbo1 T 
아이템 사용이력 
uno 
! 
BJID 개수 
10001 rani0224 50 
10001 afkbo1 10 
방송 시청 이력 
uno 
! 
BJID 시청시간 
10001 rani0224 0.57 
10001 afkbo1 0.73 
10001 afmlb1 0.21 
추천이력 
uno 
! 
BJID Y/N 
10001 rani0224 1.0 
10001 afkbo1 1.0 
아이템 사용이력 
uno 
! 
BJID 개수 
10001 rani0224 0.5 
10001 afkbo1 0.1 
평균 평준화 
Boolean Value 
! 
[ F, T ] → [ 0 , 1] 
Scale 
! 
[0 , 100] → [0.0 1.0] 
1.0 (관심도)
0.0 
1.0 (관심도) 
평준화 
[0.0 , 1.0] 
시간 
가중치 
항목 
가중치 
30 
22.5 
15 
7.5 
0 
D D -2 D -4 D -6 D -8 D -10 D -12 D -14 D -16 D -18 D -20 D -22 D -24 D -26 D -28
0.0 
1.0 (관심도) 
평준화 
[0.0 , 1.0] 
시간 
가중치 
항목 
가중치 
30 
22.5 
15 
7.5 
0 
[ Tips. 시간 가중치 간단하게 처리 하는 법] 
= 데이터값 ÷ (경과일) = D/1 + D/2 + D/3 … D/30 
= 데이터값 ÷( (경과일) 
= 데이터값 ÷( log(경과일) ) 
D D -2 D -4 D -6 D -8 D -10 D -12 D -14 D -16 D -18 D -20 D -22 D -24 D -26 D -28
0.0 
1.0 (관심도) 
평준화 
[0.0 , 1.0] 
시간 
가중치 
항목 
가중치 
0.5 
0.375 
0.25 
0.125 
0 
0.1 
0.2 0.2 
0.5 
시청데이터 추천데이터 별풍선 스티커 
항목 가중치의 합은 = 1.0
0.0 
0.623573 0.57521 0.34565 0.21736 
1.0 (관심도) 
세부
 구현은?
0.0 
0.623573 0.57521 0.34565 0.21736 
1.0 (관심도) 
방송 시청 
이벤트 
추천 
이벤트 
아이템선물 
이벤트 
HDFS 방송시청 
평준화 
HQL 
Redis 
Cluster 
Sorted 
Set 
Hive 
External 
Table 
시간 
가중치 
HQL 
BJ 
관심도 
계산 
HQL 
(항목 
가중치) 
Redis 
Save 
(UDF) 
HQL 
추천 
평준화 
HQL 
아이템 
평준화 
HQL 
시간 
가중치 
HQL 
시간 
가중치 
HQL
0.0 
0.623573 0.57521 0.34565 0.21736 
1.0 (관심도) 
방송 시청 
이벤트 
추천 
이벤트 
아이템선물 
이벤트 
HDFS 방송시청 
평준화 
HQL 
Redis 
Cluster 
Sorted 
Set 
HIVE 
External 
Table 
시간 
가중치 
HQL 
Redis 
Save 
(UDF) 
HQL 
추천 
평준화 
HQL 
아이템 
평준화 
HQL 
시간 
가중치 
HQL 
시간 
가중치 
HQL 
MR-Hive 
Compati 
ble 
BJ 
관심도 
계산 
HQL 
(항목 
가중치)
0.0 
0.623573 0.57521 0.34565 0.21736 
1.0 (관심도) 
방송 시청 
이벤트 
추천 
이벤트 
아이템선물 
이벤트 
HDFS 방송시청 
평균화 
HQL 
Redis 
Cluster 
Sorted 
Set 
HIVE 
External 
Table 
시간 
가중치 
HQL 
Merge 
HQL 
Redis 
Save 
(UDF) 
HQL 
평균화 
추천 
HQL 
아이템 
평균화 
HQL 
시간 
가중치 
HQL 
시간 
가중치 
HQL 
MR-Hive 
Compati 
ble 
Query Base Processing
0.0 
0.623573 0.57521 0.34565 0.21736 
1.0 (관심도) 
방송 시청 
이벤트 
추천 
이벤트 
아이템선물 
이벤트 
HDFS 방송시청 
평균화 
HQL 
Redis 
Cluster 
Sorted 
Set 
HIVE 
External 
Table 
시간 
가중치 
HQL 
Merge 
HQL 
Redis 
Save 
(UDF) 
HQL 
평균화 
추천 
HQL 
아이템 
평균화 
HQL 
시간 
가중치 
HQL 
시간 
가중치 
HQL 
MR-Hive 
Compati 
ble 
Query Base Processing 
In 
Memory 
Store
BJ
 연관도
 측정
1.0 
0.0 
연관도 
Clustering BJ 유사도 
Matrix 
유사할것 같은 
BJ 끼리 묶음 
묶인 BJ간에 
유사도 측정
1.0 
0.0 
연관도 
Clustering BJ 유사도 
Matrix 
목적 : 
n=bj수, m=cluster 크기
Clustering 
Graph Clustering 
BJ 유사도 
Matrix
Clustering BJ 유사도 
Matrix 
클러스터링 결과
Clustering BJ간 
Similarity
 클러스터
 내
 
  
BJ간
 유사도
 계산
  
0.0 
연관도
잠깐!!
  
유사도(또는
 거리)
 알고리즘에
  
대하여
 알아
 보자
 ?
  
! 
Euclidean
 Distance
  
Cosine
 Similarity
  
Jaccard
 coefficient

Mais conteúdo relacionado

Mais procurados

눈으로 듣는 음악 추천 시스템
눈으로 듣는 음악 추천 시스템눈으로 듣는 음악 추천 시스템
눈으로 듣는 음악 추천 시스템if kakao
 
데이터는 차트가 아니라 돈이 되어야 한다.
데이터는 차트가 아니라 돈이 되어야 한다.데이터는 차트가 아니라 돈이 되어야 한다.
데이터는 차트가 아니라 돈이 되어야 한다.Yongho Ha
 
제1화 추천 시스템 이란.ppt
제1화 추천 시스템 이란.ppt제1화 추천 시스템 이란.ppt
제1화 추천 시스템 이란.pptchoi kyumin
 
[Causal Inference KR] 스타트업에서의 인과추론
[Causal Inference KR] 스타트업에서의 인과추론[Causal Inference KR] 스타트업에서의 인과추론
[Causal Inference KR] 스타트업에서의 인과추론Bokyung Choi
 
개발자를 위한 (블로그) 글쓰기 intro
개발자를 위한 (블로그) 글쓰기 intro개발자를 위한 (블로그) 글쓰기 intro
개발자를 위한 (블로그) 글쓰기 introSeongyun Byeon
 
[우리가 데이터를 쓰는 법] 좋다는 건 알겠는데 좀 써보고 싶소. 데이터! - 넘버웍스 하용호 대표
[우리가 데이터를 쓰는 법] 좋다는 건 알겠는데 좀 써보고 싶소. 데이터! - 넘버웍스 하용호 대표[우리가 데이터를 쓰는 법] 좋다는 건 알겠는데 좀 써보고 싶소. 데이터! - 넘버웍스 하용호 대표
[우리가 데이터를 쓰는 법] 좋다는 건 알겠는데 좀 써보고 싶소. 데이터! - 넘버웍스 하용호 대표Dylan Ko
 
성장을 좋아하는 사람이, 성장하고 싶은 사람에게
성장을 좋아하는 사람이, 성장하고 싶은 사람에게성장을 좋아하는 사람이, 성장하고 싶은 사람에게
성장을 좋아하는 사람이, 성장하고 싶은 사람에게Seongyun Byeon
 
로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법Jeongsang Baek
 
실전 스타트업 데이터분석: 소셜데이팅 이음은 이렇게 한다
실전 스타트업 데이터분석: 소셜데이팅 이음은 이렇게 한다실전 스타트업 데이터분석: 소셜데이팅 이음은 이렇게 한다
실전 스타트업 데이터분석: 소셜데이팅 이음은 이렇게 한다승화 양
 
신뢰할 수 있는 A/B 테스트를 위해 알아야 할 것들
신뢰할 수 있는 A/B 테스트를 위해 알아야 할 것들신뢰할 수 있는 A/B 테스트를 위해 알아야 할 것들
신뢰할 수 있는 A/B 테스트를 위해 알아야 할 것들Minho Lee
 
MOBILITY X DATA : 모빌리티 산업의 도전 과제
MOBILITY X DATA : 모빌리티 산업의 도전 과제MOBILITY X DATA : 모빌리티 산업의 도전 과제
MOBILITY X DATA : 모빌리티 산업의 도전 과제Seongyun Byeon
 
BigQuery의 모든 것(기획자, 마케터, 신입 데이터 분석가를 위한) 입문편
BigQuery의 모든 것(기획자, 마케터, 신입 데이터 분석가를 위한) 입문편BigQuery의 모든 것(기획자, 마케터, 신입 데이터 분석가를 위한) 입문편
BigQuery의 모든 것(기획자, 마케터, 신입 데이터 분석가를 위한) 입문편Seongyun Byeon
 
서비스 기획자를 위한 데이터분석 시작하기
서비스 기획자를 위한 데이터분석 시작하기서비스 기획자를 위한 데이터분석 시작하기
서비스 기획자를 위한 데이터분석 시작하기승화 양
 
데이터가 흐르는 조직 만들기 - 마이리얼트립
데이터가 흐르는 조직 만들기 - 마이리얼트립데이터가 흐르는 조직 만들기 - 마이리얼트립
데이터가 흐르는 조직 만들기 - 마이리얼트립승화 양
 
오늘 밤부터 쓰는 google analytics (구글 애널리틱스, GA)
오늘 밤부터 쓰는 google analytics (구글 애널리틱스, GA) 오늘 밤부터 쓰는 google analytics (구글 애널리틱스, GA)
오늘 밤부터 쓰는 google analytics (구글 애널리틱스, GA) Yongho Ha
 
Random Thoughts on Paper Implementations [KAIST 2018]
Random Thoughts on Paper Implementations [KAIST 2018]Random Thoughts on Paper Implementations [KAIST 2018]
Random Thoughts on Paper Implementations [KAIST 2018]Taehoon Kim
 
Data Engineering 101
Data Engineering 101Data Engineering 101
Data Engineering 101DaeMyung Kang
 
실무에서 활용하는 A/B테스트
실무에서 활용하는 A/B테스트실무에서 활용하는 A/B테스트
실무에서 활용하는 A/B테스트JeongMin Kwon
 
스타트업 데이터분석 - 퍼널분석과 코호트분석
스타트업 데이터분석 - 퍼널분석과 코호트분석스타트업 데이터분석 - 퍼널분석과 코호트분석
스타트업 데이터분석 - 퍼널분석과 코호트분석Seonggwan Lee
 

Mais procurados (20)

눈으로 듣는 음악 추천 시스템
눈으로 듣는 음악 추천 시스템눈으로 듣는 음악 추천 시스템
눈으로 듣는 음악 추천 시스템
 
데이터는 차트가 아니라 돈이 되어야 한다.
데이터는 차트가 아니라 돈이 되어야 한다.데이터는 차트가 아니라 돈이 되어야 한다.
데이터는 차트가 아니라 돈이 되어야 한다.
 
제1화 추천 시스템 이란.ppt
제1화 추천 시스템 이란.ppt제1화 추천 시스템 이란.ppt
제1화 추천 시스템 이란.ppt
 
[Causal Inference KR] 스타트업에서의 인과추론
[Causal Inference KR] 스타트업에서의 인과추론[Causal Inference KR] 스타트업에서의 인과추론
[Causal Inference KR] 스타트업에서의 인과추론
 
개발자를 위한 (블로그) 글쓰기 intro
개발자를 위한 (블로그) 글쓰기 intro개발자를 위한 (블로그) 글쓰기 intro
개발자를 위한 (블로그) 글쓰기 intro
 
[우리가 데이터를 쓰는 법] 좋다는 건 알겠는데 좀 써보고 싶소. 데이터! - 넘버웍스 하용호 대표
[우리가 데이터를 쓰는 법] 좋다는 건 알겠는데 좀 써보고 싶소. 데이터! - 넘버웍스 하용호 대표[우리가 데이터를 쓰는 법] 좋다는 건 알겠는데 좀 써보고 싶소. 데이터! - 넘버웍스 하용호 대표
[우리가 데이터를 쓰는 법] 좋다는 건 알겠는데 좀 써보고 싶소. 데이터! - 넘버웍스 하용호 대표
 
성장을 좋아하는 사람이, 성장하고 싶은 사람에게
성장을 좋아하는 사람이, 성장하고 싶은 사람에게성장을 좋아하는 사람이, 성장하고 싶은 사람에게
성장을 좋아하는 사람이, 성장하고 싶은 사람에게
 
로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법
 
실전 스타트업 데이터분석: 소셜데이팅 이음은 이렇게 한다
실전 스타트업 데이터분석: 소셜데이팅 이음은 이렇게 한다실전 스타트업 데이터분석: 소셜데이팅 이음은 이렇게 한다
실전 스타트업 데이터분석: 소셜데이팅 이음은 이렇게 한다
 
신뢰할 수 있는 A/B 테스트를 위해 알아야 할 것들
신뢰할 수 있는 A/B 테스트를 위해 알아야 할 것들신뢰할 수 있는 A/B 테스트를 위해 알아야 할 것들
신뢰할 수 있는 A/B 테스트를 위해 알아야 할 것들
 
MOBILITY X DATA : 모빌리티 산업의 도전 과제
MOBILITY X DATA : 모빌리티 산업의 도전 과제MOBILITY X DATA : 모빌리티 산업의 도전 과제
MOBILITY X DATA : 모빌리티 산업의 도전 과제
 
Data Science. Intro
Data Science. IntroData Science. Intro
Data Science. Intro
 
BigQuery의 모든 것(기획자, 마케터, 신입 데이터 분석가를 위한) 입문편
BigQuery의 모든 것(기획자, 마케터, 신입 데이터 분석가를 위한) 입문편BigQuery의 모든 것(기획자, 마케터, 신입 데이터 분석가를 위한) 입문편
BigQuery의 모든 것(기획자, 마케터, 신입 데이터 분석가를 위한) 입문편
 
서비스 기획자를 위한 데이터분석 시작하기
서비스 기획자를 위한 데이터분석 시작하기서비스 기획자를 위한 데이터분석 시작하기
서비스 기획자를 위한 데이터분석 시작하기
 
데이터가 흐르는 조직 만들기 - 마이리얼트립
데이터가 흐르는 조직 만들기 - 마이리얼트립데이터가 흐르는 조직 만들기 - 마이리얼트립
데이터가 흐르는 조직 만들기 - 마이리얼트립
 
오늘 밤부터 쓰는 google analytics (구글 애널리틱스, GA)
오늘 밤부터 쓰는 google analytics (구글 애널리틱스, GA) 오늘 밤부터 쓰는 google analytics (구글 애널리틱스, GA)
오늘 밤부터 쓰는 google analytics (구글 애널리틱스, GA)
 
Random Thoughts on Paper Implementations [KAIST 2018]
Random Thoughts on Paper Implementations [KAIST 2018]Random Thoughts on Paper Implementations [KAIST 2018]
Random Thoughts on Paper Implementations [KAIST 2018]
 
Data Engineering 101
Data Engineering 101Data Engineering 101
Data Engineering 101
 
실무에서 활용하는 A/B테스트
실무에서 활용하는 A/B테스트실무에서 활용하는 A/B테스트
실무에서 활용하는 A/B테스트
 
스타트업 데이터분석 - 퍼널분석과 코호트분석
스타트업 데이터분석 - 퍼널분석과 코호트분석스타트업 데이터분석 - 퍼널분석과 코호트분석
스타트업 데이터분석 - 퍼널분석과 코호트분석
 

Destaque

데이터를 얻으려는 노오오력
데이터를 얻으려는 노오오력데이터를 얻으려는 노오오력
데이터를 얻으려는 노오오력Youngjae Kim
 
Python 오픈소스의 네이밍 특징들-파이콘격월세미나
Python 오픈소스의 네이밍 특징들-파이콘격월세미나Python 오픈소스의 네이밍 특징들-파이콘격월세미나
Python 오픈소스의 네이밍 특징들-파이콘격월세미나choi kyumin
 
2016 PyCon APAC - 너의 사진은 내가 지난 과거에 한일을 알고 있다.
2016 PyCon APAC - 너의 사진은 내가 지난 과거에 한일을 알고 있다.2016 PyCon APAC - 너의 사진은 내가 지난 과거에 한일을 알고 있다.
2016 PyCon APAC - 너의 사진은 내가 지난 과거에 한일을 알고 있다.choi kyumin
 
추놀 3회 유사도 측정(우리아기는 누구와 더 닮았는가?)
추놀 3회 유사도 측정(우리아기는 누구와 더 닮았는가?)추놀 3회 유사도 측정(우리아기는 누구와 더 닮았는가?)
추놀 3회 유사도 측정(우리아기는 누구와 더 닮았는가?)choi kyumin
 
추놀 5회 무엇이든 분류해 보기
추놀 5회 무엇이든 분류해 보기추놀 5회 무엇이든 분류해 보기
추놀 5회 무엇이든 분류해 보기choi kyumin
 
2015 py con word2vec이 추천시스템을 만났을때
2015 py con word2vec이 추천시스템을 만났을때 2015 py con word2vec이 추천시스템을 만났을때
2015 py con word2vec이 추천시스템을 만났을때 choi kyumin
 

Destaque (6)

데이터를 얻으려는 노오오력
데이터를 얻으려는 노오오력데이터를 얻으려는 노오오력
데이터를 얻으려는 노오오력
 
Python 오픈소스의 네이밍 특징들-파이콘격월세미나
Python 오픈소스의 네이밍 특징들-파이콘격월세미나Python 오픈소스의 네이밍 특징들-파이콘격월세미나
Python 오픈소스의 네이밍 특징들-파이콘격월세미나
 
2016 PyCon APAC - 너의 사진은 내가 지난 과거에 한일을 알고 있다.
2016 PyCon APAC - 너의 사진은 내가 지난 과거에 한일을 알고 있다.2016 PyCon APAC - 너의 사진은 내가 지난 과거에 한일을 알고 있다.
2016 PyCon APAC - 너의 사진은 내가 지난 과거에 한일을 알고 있다.
 
추놀 3회 유사도 측정(우리아기는 누구와 더 닮았는가?)
추놀 3회 유사도 측정(우리아기는 누구와 더 닮았는가?)추놀 3회 유사도 측정(우리아기는 누구와 더 닮았는가?)
추놀 3회 유사도 측정(우리아기는 누구와 더 닮았는가?)
 
추놀 5회 무엇이든 분류해 보기
추놀 5회 무엇이든 분류해 보기추놀 5회 무엇이든 분류해 보기
추놀 5회 무엇이든 분류해 보기
 
2015 py con word2vec이 추천시스템을 만났을때
2015 py con word2vec이 추천시스템을 만났을때 2015 py con word2vec이 추천시스템을 만났을때
2015 py con word2vec이 추천시스템을 만났을때
 

Deview2014 Live Broadcasting 추천시스템 발표 자료