SlideShare une entreprise Scribd logo
1  sur  46
+
링크드인의 Big Data Recommendation Products
-어제의 데이터를 통해 내일을 예측한다-

김형진(Evion Kim), Senior Software Engineer
추천(Recommendation)이란?
내가 좋아하는 음식,
내가 보고싶어하는 영화,
내가 읽고 싶어하는 책,
내가 알만한 사람,
내가 데이트 하고싶은 여자(남자),
를 알려주세요.

…그걸 어떻게 알아?

+
+

추천(Recommendation)이란?

점쟁이의 돗자리다.

마녀의 수정구슬이다

= 예언 or
예측!
추천(Recommendation)이란?

+

예측(Prediction) 이다.
사용자에게 x1, x2, x3…로 구성되는 정보를 보여주었을 때, 과연 어떤 반응을
보일 것인가 예측

예측을 바탕으로 사용자에게 더 관련성 높은 정보를 제공
예측은 어떻게?

여자 손님은 스파게티를 좋아하시더라
20대 남자는 액션이 많고 플롯이 탄탄한 영화를 많이 보더라
개발자 남자에게는 개발자 여자를 소개팅 시켜주면 좋아하더라.
그러니까 이 메뉴/이 영화/이 개발자 를 추천해주자.
=>과거의 데이터를 기반으로 미래의 사용자의 행동을 예측

+
미리보는 결론 - 그래서, 링크드인에게 추천이란?

+

추천은 예측이다.

예측 Algorithm
어제의 데이터를 분석하여 내일의 사용자의 행동을 예측하는 머신 러닝
알고리즘

예측 Infrastructure
Hadoop, Key-Value Store, 각종 오픈 소스 프로덕트를 활용한
링크드인의 빅데이터 에코시스템

본 발표의 내용은, Sam Shah(Principal Software Engineer, LinkedIn)의
“Building Data Products With Hadoop”,
“LinkedIn Endorsements: Reputation, Virality, and Social Tagging”,
“The ‘Big Data’ Ecosystem at Linkedin”
등을 참고 하였습니다.
발표자 - 김형진

Software Engineer/Data Scientist

+
오늘의 발표
1. 링크드인의 빅데이터
1.
2.
3.

빅데이터 에코시스템
Encapsulation
Offline vs. Online

2. Supervised Machine Learning 기반의 추천
3. Recommendation Product 만들기 – Step By Step
1.
2.
3.
4.
5.

Intuition
Feature Extraction
Model training
Data Generation
Application & Evaluation

4. 분석 example
5. 결론

+
1. Big Data @ LinkedIn
LinkedIn: 프로페셔널 소셜 네트워크

+

2억 3천 8백만 사용자
링크드인의 추천 프로덕트들

+

People You May Know – 친구 추천
Skills and Endorsements – 누구의 어떤 스킬을 승인(like)할 것인가?
Jobs You May be Interested In – 어떤 새 직장에 관심이 있을 것인가?
News Recommendation – 어떤 뉴스를 읽고 싶은가?
Skill Endorsements

+
+

특징 1. Big Data Ecosystem

하둡 클러스터

유저 인터랙션 데이터

Key/Value Store
특징 2. Encapsulation

+

시스템에 대해 잘 모르는 데이터 사이언티스트가 Recommendation
Algorithm을 만들고 싶다면?
Analytics/Modeling Layer
R, Linkedin’s Azkaban(Hadoop workflow management),
Apache Pig, LinkedIn’s DataFu
Infrastructure Layer
Hadoop, LinkedIn’s Voldemort(Key/Value storage)

데이터 모델링, 분석 레벨의 지식과
인프라스트럭쳐 레벨의 지식이 분리됨.
+

특징 3. Online VS. Offline

장점

사용자에게 최신의 정보를 제공
가능

더 빠른 개발과 iteration
Scale 쉬움
Failure toleration

단점

더 긴 개발시간
Scale 어려움
Failure handling에 더 신경써야함

최신의 정보를 제공 할 수 없음

Online

Offline

Massive Scale Machine Learning및 Data generation은 Offline에서,
Filtering, 최종 Business Logic 적용 등은 Online에서
2.Supervised Machine
Learning 기반의 추천
머신 러닝 기반의 추천

+

Supervised 머신 러닝
과거의 데이터를 통해 모델을 train
train 된 모델을 사용하여 실제로 예측
Binary Classification
결과가 1/0으로 나오는 supervised 머신 러닝 문제
다양한 Binary Classification 알고리즘들
Decision Tree, Support Vector Machine, Logistic Regression, …
머신 러닝 기반의 추천
과거
주어진 상황(feature f1, f2,~ fn) 하에서, 유저 x의 행동을 관찰
유저가 클릭: Score = 1
유저가 무시: Score = 0
현재
데이터를 바탕으로 모델을 training 시킬 수 있음
주어진 과거 데이터의 오류를 최소화 하는 모델을 만듬
미래
조건부 확률 P(Click y | user x views y with f1, f2, .. fn) 을 계산
만들어진 모델을 통해 미래의 유저 반응을 예측

+
3.Big Data Recommendation
Product 만들기 – Step By Step
+

Recommendation Product 만들기
머신 러닝 모델링을 바탕으로 한 추천

하둡 인프라 스트럭쳐 기반,
1. Intuition: 프로덕트 아이디어와 유저의 행동에 대한 가정.
2. Feature Extraction: 모델에 사용할 feature들을 선택하고 수집
3. Model Training: 선택된 feature를 이용하여 모델을 train.
4. Data Generation: Train 된 모델을 적용하여 데이터 생성
5. Serving Data: 추천 데이터 서빙

Intuition

Feature
Extraction

Model
Building

Hadoop Infrastructure

Data
Generation

Serving
Data
+

Intuition

Feature
Extraction

Model
Building

Data
Generation

Serving
Data
Recommendation Product - 1. Intuition

+

프로덕트 아이디어와, 그 아이디어에 대한 가정에서 부터 시작
프로덕트 아이디어: Suggested Endorsements
어떤 사람의 어떤 스킬을 Endorse(승인) 할 것인지 추천하여 주자
가정
1. Overlap: 상호간에 학교, 회사등을 함께 다닌 기간이 길수록
2. Similarity: Industry, Title등이 유사할수록
3. Skill score: 해당 스킬에 대해 더 잘 알 수록

Endorse 버튼을 클릭 할 가능성이 높을 것!
1.Intuition – Problem & Solution

+

Problem: 머신 러닝 모델을 만들기 위해서는, Training Data Set이
필요하다.
„최초‟ 의 training 데이터를 어떻게 구할 수 있을까?
Possible Solutions:
Crowd Sourcing
이미 존재하는 데이터로부터 유추
Our Solution: Cold-Start 모델
Intuition에 따라 매뉴얼하게 만든 모델을 일단 활용 하여 데이터를 수집
Example) 유저간의 overlap, similarity에 따라 Sorting. 유저와 스킬사이의 skill
score에 따라 Sorting.
+

Intuition

Feature
Extraction

Model
Building

Data
Generation

Serving
Data
Recommendation Product - 2. Feature Extraction

+

모델의 input이 될 feature의 set을 결정하고(feature selection), 해당
데이터를 실제 유저 데이터로부터 가져오는(feature extraction) 과정.
Feature 의 예시:
Overlap: 상호간에 학교를 함께 다닌 개월 수
Similarity: 같은 IT 인더스트리인가?
Skill score: 해당 유저가 스킬을 알 확률을 점수로 나타낸다면
Feature Selection: 실제로 모델에 유용한 feature를 선정
example) Overlap 과 Skill Score가 유용함
Feature Extraction: feature을 모델에 사용가능한 형태로 가져옴
Kafka – 링크드인의 Open Source Distributed Messaging System.
Recommendation Product - 2. Feature Extraction

+

Problem:
한 유저가 얼마나 스킬을 잘 아는지를 feature 로 쓰고 싶다. 어떻게 해야
할까?
Solution:
Skills Score 라는 다른 프로덕트의 output을 Suggested Endorsement의
input으로 활용.
+

Skills Score
한 유저가 어떤 스킬을 가지고 있을 „확률‟을 계산

1. 각각의 프로필의 feature(타이틀, 회사, 인더스트리)와 스킬에 대해
프로필에서의 co-counts 를 계산
Software Engineer
Software Engineer & Java
Software Engineer & C++
…

1,000,000
100,000
88,000

1. Co-count 를 바탕으로 조건부 확률을 계산

P(Java | SoftwareEngineer) =

100, 000
= 0.1
1, 000, 000
Skills Score

+

3. Bayes Theorem을 통해 각 프로필별 스킬에 대한 확률 계산이 가능

Apple 에 다니고, Software Engineer라면, “iPhone development”란
스킬을 알 확률이 높을 것이다.
P(iPhoneDevelopment | Apple, SoftwareEngineer) =

p(iPhoneDevelopment)p(Apple, SoftwareEngineer | Java)
p(Apple, SoftwreEnginer)
+

Intuition

Feature
Extraction

Model
Building

Data
Generation

Serving
Data
Model Building

+

Binary Classification 문제로써의 Suggested Endorsements
유저 X가 (유저 Y, 스킬 Z)의 추천을 보았을때
실제로 endorse를 클릭한다면 -> 1
클릭하지 않는다면 -> 0
모델을 통해 P(User X endorses (User Y, Skill Z) | feature 1, feature
2, …)를 계산.

Evion 이 DJ Patti의 Data Mining을
endorse 할 확률 = 0.7
3. Model Building – Problem & Solution

+

Problem: Hadoop하에서 머신 러닝 모델링을 하기 위한 방법?
Solution:
1.Sampling 후 R 등의 통계 패키지를 이용한 모델 러닝
- Feature의 숫자가 적고, 빠른 iteration이 필요한 경우
2.ADMM framework
- Feature의 숫자가 많을 경우, 모델 러닝 자체를 분산 시스템 하에서
실행하고싶은 경우
- 여러 다른 머신에서 각자 learning후, 각각의 결과를 합산
- 합산된 결과를 바탕으로 다시 iterate
+

Intuition

Feature
Extraction

Model
Building

Data
Generation

Serving
Data
+

Data Generation
Build 된 모델을 바탕으로 실제 추천 데이터를 만들어 내는 과정
다양한 Java/Pig/Hive Hadoop job 의 조합
각각의 job은 1분 미만 ~ 6시간 이상의 running time을 가짐

Pig Job: Feature 1

Java Job: Feature 2

Pig Job: Join Features

Java Job: Model Based Scoring

Pig Job: Validation
4. Data Generation – Problem
실제 한 데이터 프로덕트의
Workflow
Feature Generation, Join,
실제 모델 적용 등
다양한 Hadoop Job들 간의
dependency
Managing 할 Solution이 필요

+
4. Data Generation – Solution: Azkaban
Azkaban: Linkedin‟s open source project
Dependency 관리
다양한 Job type:
Pig, Hive, Java
스케쥴링
모니터링
로그 관리
Visualization
Configuration
Failure시 재시작
리소스 locking 관리

+
+

Intuition

Feature
Extraction

Model
Building

Data
Generation

Serving
Data
+

5. Data Push - Solution

Problem: HDFS에 생성된 추천 데이터를 실제로 유저에게 보여주기
위해선 어떻게 해야할까?
Solution:
Voldemort
Linkedin의 Key Value Storage
Amazon‟s Dynamo 바탕으로 구현
Distributed and Elastic
Horizontally Scalable
Bulk load pipeline from Hadoop

Suggested
Endorsements
Service

getRecommendations(memberId)

Voldemort

Batch load

Hadoop
4. Analytics Examples
Data Scientist가 되고 싶다면?

+
유행하는 스킬?

+
지역별 스킬의 차이

+
+
San Francisco

Redwood City

Mountain View

San Jose
San Francisco

Application

Presentation
Redwood City

Network &
Transport

Mountain View

San Jose

Data Link &
Physical
5. 결론
결론 – 링크드인에게 추천이란?

+

추천은 예측이다.

예측 Algorithm
어제의 데이터를 분석하여 내일의 사용자의 행동을 예측하는 머신 러닝
알고리즘

예측 Infrastructure
Hadoop, Key-Value Store, 각종 오픈 소스 프로덕트를 활용한
링크드인의 빅데이터 에코시스템
data.linkedin.com

Contenu connexe

Tendances

리소스 중심의 서든어택2 실시간 메모리 프로파일링 시스템 개발기
리소스 중심의 서든어택2 실시간 메모리 프로파일링 시스템 개발기리소스 중심의 서든어택2 실시간 메모리 프로파일링 시스템 개발기
리소스 중심의 서든어택2 실시간 메모리 프로파일링 시스템 개발기Wonha Ryu
 
노기태, 김대우, 모바일 게임 데이터에 입각한 머신러닝 예측 분석 도입 및 삽질 후기, NDC2017
노기태, 김대우, 모바일 게임 데이터에 입각한 머신러닝 예측 분석 도입 및 삽질 후기, NDC2017노기태, 김대우, 모바일 게임 데이터에 입각한 머신러닝 예측 분석 도입 및 삽질 후기, NDC2017
노기태, 김대우, 모바일 게임 데이터에 입각한 머신러닝 예측 분석 도입 및 삽질 후기, NDC2017devCAT Studio, NEXON
 
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기Wonha Ryu
 
NDC 2015 비정형데이터분석 & 온라인게임운영
NDC 2015 비정형데이터분석 & 온라인게임운영NDC 2015 비정형데이터분석 & 온라인게임운영
NDC 2015 비정형데이터분석 & 온라인게임운영Paul Jung
 
[NDC2014]쉽게 따라 할 수있는 "꽤" 훌륭한 유저 동향 분석 시스템
[NDC2014]쉽게 따라 할 수있는 "꽤" 훌륭한 유저 동향 분석 시스템[NDC2014]쉽게 따라 할 수있는 "꽤" 훌륭한 유저 동향 분석 시스템
[NDC2014]쉽게 따라 할 수있는 "꽤" 훌륭한 유저 동향 분석 시스템Hoyeon Kim
 
Apache Mahout 맛보기 - 30분만에 추천시스템 만들기 for 네이버 TV 서비스
Apache Mahout 맛보기 - 30분만에 추천시스템 만들기 for 네이버 TV 서비스Apache Mahout 맛보기 - 30분만에 추천시스템 만들기 for 네이버 TV 서비스
Apache Mahout 맛보기 - 30분만에 추천시스템 만들기 for 네이버 TV 서비스Minkyu Cho
 
[125] 머신러닝으로 쏟아지는 유저 cs 답변하기
[125] 머신러닝으로 쏟아지는 유저 cs 답변하기[125] 머신러닝으로 쏟아지는 유저 cs 답변하기
[125] 머신러닝으로 쏟아지는 유저 cs 답변하기NAVER D2
 
Data analysis for game fraud detection
Data analysis for game fraud detectionData analysis for game fraud detection
Data analysis for game fraud detectionEun-Jo Lee
 
GA로 게임 로그 분석하기
GA로 게임 로그 분석하기GA로 게임 로그 분석하기
GA로 게임 로그 분석하기Alan Kang
 
[FAST CAMPUS] 1강 data science overview
[FAST CAMPUS] 1강 data science overview [FAST CAMPUS] 1강 data science overview
[FAST CAMPUS] 1강 data science overview chanyoonkim
 
Neural stream
Neural streamNeural stream
Neural streamMk Kim
 
효율적 데이터 과학을 위한 7가지 팁
효율적 데이터 과학을 위한 7가지 팁효율적 데이터 과학을 위한 7가지 팁
효율적 데이터 과학을 위한 7가지 팁Jaimie Kwon (권재명)
 
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가NAVER D2
 
[264] large scale deep-learning_on_spark
[264] large scale deep-learning_on_spark[264] large scale deep-learning_on_spark
[264] large scale deep-learning_on_sparkNAVER D2
 
파이썬(Python) 으로 나만의 딥러닝 API 만들기 강좌 (Feat. AutoAI )
파이썬(Python) 으로 나만의 딥러닝 API 만들기 강좌 (Feat. AutoAI ) 파이썬(Python) 으로 나만의 딥러닝 API 만들기 강좌 (Feat. AutoAI )
파이썬(Python) 으로 나만의 딥러닝 API 만들기 강좌 (Feat. AutoAI ) Yunho Maeng
 
머신러닝의 개념과 실습
머신러닝의 개념과 실습머신러닝의 개념과 실습
머신러닝의 개념과 실습Byoung-Hee Kim
 
T ka kr_4th
T ka kr_4thT ka kr_4th
T ka kr_4thSubin An
 
[NDC 2011] 게임 개발자를 위한 데이터분석의 도입
[NDC 2011] 게임 개발자를 위한 데이터분석의 도입[NDC 2011] 게임 개발자를 위한 데이터분석의 도입
[NDC 2011] 게임 개발자를 위한 데이터분석의 도입Hoon Park
 
Spark & Zeppelin을 활용한 머신러닝 실전 적용기
Spark & Zeppelin을 활용한 머신러닝 실전 적용기Spark & Zeppelin을 활용한 머신러닝 실전 적용기
Spark & Zeppelin을 활용한 머신러닝 실전 적용기Taejun Kim
 
[222]딥러닝을 활용한 이미지 검색 포토요약과 타임라인 최종 20161024
[222]딥러닝을 활용한 이미지 검색 포토요약과 타임라인 최종 20161024[222]딥러닝을 활용한 이미지 검색 포토요약과 타임라인 최종 20161024
[222]딥러닝을 활용한 이미지 검색 포토요약과 타임라인 최종 20161024NAVER D2
 

Tendances (20)

리소스 중심의 서든어택2 실시간 메모리 프로파일링 시스템 개발기
리소스 중심의 서든어택2 실시간 메모리 프로파일링 시스템 개발기리소스 중심의 서든어택2 실시간 메모리 프로파일링 시스템 개발기
리소스 중심의 서든어택2 실시간 메모리 프로파일링 시스템 개발기
 
노기태, 김대우, 모바일 게임 데이터에 입각한 머신러닝 예측 분석 도입 및 삽질 후기, NDC2017
노기태, 김대우, 모바일 게임 데이터에 입각한 머신러닝 예측 분석 도입 및 삽질 후기, NDC2017노기태, 김대우, 모바일 게임 데이터에 입각한 머신러닝 예측 분석 도입 및 삽질 후기, NDC2017
노기태, 김대우, 모바일 게임 데이터에 입각한 머신러닝 예측 분석 도입 및 삽질 후기, NDC2017
 
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
 
NDC 2015 비정형데이터분석 & 온라인게임운영
NDC 2015 비정형데이터분석 & 온라인게임운영NDC 2015 비정형데이터분석 & 온라인게임운영
NDC 2015 비정형데이터분석 & 온라인게임운영
 
[NDC2014]쉽게 따라 할 수있는 "꽤" 훌륭한 유저 동향 분석 시스템
[NDC2014]쉽게 따라 할 수있는 "꽤" 훌륭한 유저 동향 분석 시스템[NDC2014]쉽게 따라 할 수있는 "꽤" 훌륭한 유저 동향 분석 시스템
[NDC2014]쉽게 따라 할 수있는 "꽤" 훌륭한 유저 동향 분석 시스템
 
Apache Mahout 맛보기 - 30분만에 추천시스템 만들기 for 네이버 TV 서비스
Apache Mahout 맛보기 - 30분만에 추천시스템 만들기 for 네이버 TV 서비스Apache Mahout 맛보기 - 30분만에 추천시스템 만들기 for 네이버 TV 서비스
Apache Mahout 맛보기 - 30분만에 추천시스템 만들기 for 네이버 TV 서비스
 
[125] 머신러닝으로 쏟아지는 유저 cs 답변하기
[125] 머신러닝으로 쏟아지는 유저 cs 답변하기[125] 머신러닝으로 쏟아지는 유저 cs 답변하기
[125] 머신러닝으로 쏟아지는 유저 cs 답변하기
 
Data analysis for game fraud detection
Data analysis for game fraud detectionData analysis for game fraud detection
Data analysis for game fraud detection
 
GA로 게임 로그 분석하기
GA로 게임 로그 분석하기GA로 게임 로그 분석하기
GA로 게임 로그 분석하기
 
[FAST CAMPUS] 1강 data science overview
[FAST CAMPUS] 1강 data science overview [FAST CAMPUS] 1강 data science overview
[FAST CAMPUS] 1강 data science overview
 
Neural stream
Neural streamNeural stream
Neural stream
 
효율적 데이터 과학을 위한 7가지 팁
효율적 데이터 과학을 위한 7가지 팁효율적 데이터 과학을 위한 7가지 팁
효율적 데이터 과학을 위한 7가지 팁
 
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
 
[264] large scale deep-learning_on_spark
[264] large scale deep-learning_on_spark[264] large scale deep-learning_on_spark
[264] large scale deep-learning_on_spark
 
파이썬(Python) 으로 나만의 딥러닝 API 만들기 강좌 (Feat. AutoAI )
파이썬(Python) 으로 나만의 딥러닝 API 만들기 강좌 (Feat. AutoAI ) 파이썬(Python) 으로 나만의 딥러닝 API 만들기 강좌 (Feat. AutoAI )
파이썬(Python) 으로 나만의 딥러닝 API 만들기 강좌 (Feat. AutoAI )
 
머신러닝의 개념과 실습
머신러닝의 개념과 실습머신러닝의 개념과 실습
머신러닝의 개념과 실습
 
T ka kr_4th
T ka kr_4thT ka kr_4th
T ka kr_4th
 
[NDC 2011] 게임 개발자를 위한 데이터분석의 도입
[NDC 2011] 게임 개발자를 위한 데이터분석의 도입[NDC 2011] 게임 개발자를 위한 데이터분석의 도입
[NDC 2011] 게임 개발자를 위한 데이터분석의 도입
 
Spark & Zeppelin을 활용한 머신러닝 실전 적용기
Spark & Zeppelin을 활용한 머신러닝 실전 적용기Spark & Zeppelin을 활용한 머신러닝 실전 적용기
Spark & Zeppelin을 활용한 머신러닝 실전 적용기
 
[222]딥러닝을 활용한 이미지 검색 포토요약과 타임라인 최종 20161024
[222]딥러닝을 활용한 이미지 검색 포토요약과 타임라인 최종 20161024[222]딥러닝을 활용한 이미지 검색 포토요약과 타임라인 최종 20161024
[222]딥러닝을 활용한 이미지 검색 포토요약과 타임라인 최종 20161024
 

En vedette

[데이터를 부탁해] 비전공자가 데이터 분석가로 거듭나기 by 황준식
[데이터를 부탁해] 비전공자가 데이터 분석가로 거듭나기 by 황준식 [데이터를 부탁해] 비전공자가 데이터 분석가로 거듭나기 by 황준식
[데이터를 부탁해] 비전공자가 데이터 분석가로 거듭나기 by 황준식 FAST CAMPUS
 
Data By The Bay 2016 - Black Magic: How to apply Machine Learning to real-wor...
Data By The Bay 2016 - Black Magic: How to apply Machine Learning to real-wor...Data By The Bay 2016 - Black Magic: How to apply Machine Learning to real-wor...
Data By The Bay 2016 - Black Magic: How to apply Machine Learning to real-wor...Evion Kim
 
예측 분석이 발견한 이상하고 놀라운 인간 행동들
예측 분석이 발견한 이상하고 놀라운 인간 행동들예측 분석이 발견한 이상하고 놀라운 인간 행동들
예측 분석이 발견한 이상하고 놀라운 인간 행동들eungjin cho
 
예측 분석 산업별 사례 147
예측 분석 산업별 사례 147예측 분석 산업별 사례 147
예측 분석 산업별 사례 147eungjin cho
 
[2A7]Linkedin'sDataScienceWhyIsItScience
[2A7]Linkedin'sDataScienceWhyIsItScience[2A7]Linkedin'sDataScienceWhyIsItScience
[2A7]Linkedin'sDataScienceWhyIsItScienceNAVER D2
 
보안 위협의 상승 요인과 대응 방안 20120228
보안 위협의 상승 요인과 대응 방안 20120228보안 위협의 상승 요인과 대응 방안 20120228
보안 위협의 상승 요인과 대응 방안 20120228eungjin cho
 
정보보호 캠페인 - 악성코드 예방
정보보호 캠페인 - 악성코드 예방정보보호 캠페인 - 악성코드 예방
정보보호 캠페인 - 악성코드 예방Sihyoung Jurn
 
2013년 금융권 it 보안 핵심 트렌드-Dhan-kim-2013-12-20
2013년 금융권 it 보안 핵심 트렌드-Dhan-kim-2013-12-202013년 금융권 it 보안 핵심 트렌드-Dhan-kim-2013-12-20
2013년 금융권 it 보안 핵심 트렌드-Dhan-kim-2013-12-20Donghan Kim
 
판매정보 빅데이터 분석을 통한 판매 예측 시스템
판매정보 빅데이터 분석을 통한 판매 예측 시스템판매정보 빅데이터 분석을 통한 판매 예측 시스템
판매정보 빅데이터 분석을 통한 판매 예측 시스템Dongsam Byun
 
130308 디지털컨버젼스i 2교시
130308 디지털컨버젼스i 2교시130308 디지털컨버젼스i 2교시
130308 디지털컨버젼스i 2교시skccsocial
 
데이터에서 의미 추출하기
데이터에서 의미 추출하기데이터에서 의미 추출하기
데이터에서 의미 추출하기Nam-young Lee
 
보안 위협 동향과 대응 방안
보안 위협 동향과 대응 방안보안 위협 동향과 대응 방안
보안 위협 동향과 대응 방안Youngjun Chang
 
빅 데이터 추진방안
빅 데이터 추진방안빅 데이터 추진방안
빅 데이터 추진방안Sihyoung Jurn
 
로보 어드바이저가 이끌 자산관리 시장의 변화 유진20160608증권
로보 어드바이저가 이끌 자산관리 시장의 변화 유진20160608증권로보 어드바이저가 이끌 자산관리 시장의 변화 유진20160608증권
로보 어드바이저가 이끌 자산관리 시장의 변화 유진20160608증권eungjin cho
 
[데이터를 부탁해] 항공기상 데이터 분석으로 운항 스케줄 예측하기 by 신진환
[데이터를 부탁해] 항공기상 데이터 분석으로 운항 스케줄 예측하기 by 신진환[데이터를 부탁해] 항공기상 데이터 분석으로 운항 스케줄 예측하기 by 신진환
[데이터를 부탁해] 항공기상 데이터 분석으로 운항 스케줄 예측하기 by 신진환FAST CAMPUS
 
링크드인(Linked in) 가이드북
링크드인(Linked in) 가이드북링크드인(Linked in) 가이드북
링크드인(Linked in) 가이드북승지 김
 

En vedette (20)

[데이터를 부탁해] 비전공자가 데이터 분석가로 거듭나기 by 황준식
[데이터를 부탁해] 비전공자가 데이터 분석가로 거듭나기 by 황준식 [데이터를 부탁해] 비전공자가 데이터 분석가로 거듭나기 by 황준식
[데이터를 부탁해] 비전공자가 데이터 분석가로 거듭나기 by 황준식
 
Data By The Bay 2016 - Black Magic: How to apply Machine Learning to real-wor...
Data By The Bay 2016 - Black Magic: How to apply Machine Learning to real-wor...Data By The Bay 2016 - Black Magic: How to apply Machine Learning to real-wor...
Data By The Bay 2016 - Black Magic: How to apply Machine Learning to real-wor...
 
예측 분석이 발견한 이상하고 놀라운 인간 행동들
예측 분석이 발견한 이상하고 놀라운 인간 행동들예측 분석이 발견한 이상하고 놀라운 인간 행동들
예측 분석이 발견한 이상하고 놀라운 인간 행동들
 
예측 분석 산업별 사례 147
예측 분석 산업별 사례 147예측 분석 산업별 사례 147
예측 분석 산업별 사례 147
 
[2A7]Linkedin'sDataScienceWhyIsItScience
[2A7]Linkedin'sDataScienceWhyIsItScience[2A7]Linkedin'sDataScienceWhyIsItScience
[2A7]Linkedin'sDataScienceWhyIsItScience
 
보안 위협의 상승 요인과 대응 방안 20120228
보안 위협의 상승 요인과 대응 방안 20120228보안 위협의 상승 요인과 대응 방안 20120228
보안 위협의 상승 요인과 대응 방안 20120228
 
정보보호 캠페인 - 악성코드 예방
정보보호 캠페인 - 악성코드 예방정보보호 캠페인 - 악성코드 예방
정보보호 캠페인 - 악성코드 예방
 
2013년 금융권 it 보안 핵심 트렌드-Dhan-kim-2013-12-20
2013년 금융권 it 보안 핵심 트렌드-Dhan-kim-2013-12-202013년 금융권 it 보안 핵심 트렌드-Dhan-kim-2013-12-20
2013년 금융권 it 보안 핵심 트렌드-Dhan-kim-2013-12-20
 
판매정보 빅데이터 분석을 통한 판매 예측 시스템
판매정보 빅데이터 분석을 통한 판매 예측 시스템판매정보 빅데이터 분석을 통한 판매 예측 시스템
판매정보 빅데이터 분석을 통한 판매 예측 시스템
 
130308 디지털컨버젼스i 2교시
130308 디지털컨버젼스i 2교시130308 디지털컨버젼스i 2교시
130308 디지털컨버젼스i 2교시
 
데이터에서 의미 추출하기
데이터에서 의미 추출하기데이터에서 의미 추출하기
데이터에서 의미 추출하기
 
InfiniFlux vs RDBMS
InfiniFlux vs RDBMSInfiniFlux vs RDBMS
InfiniFlux vs RDBMS
 
보안 위협 동향과 대응 방안
보안 위협 동향과 대응 방안보안 위협 동향과 대응 방안
보안 위협 동향과 대응 방안
 
빅 데이터 추진방안
빅 데이터 추진방안빅 데이터 추진방안
빅 데이터 추진방안
 
[4차]페이스북 알고리즘 분석(151106)
[4차]페이스북 알고리즘 분석(151106)[4차]페이스북 알고리즘 분석(151106)
[4차]페이스북 알고리즘 분석(151106)
 
[4차]구글 알고리즘 분석(151106)
[4차]구글 알고리즘 분석(151106)[4차]구글 알고리즘 분석(151106)
[4차]구글 알고리즘 분석(151106)
 
Infiniflux introduction
Infiniflux introductionInfiniflux introduction
Infiniflux introduction
 
로보 어드바이저가 이끌 자산관리 시장의 변화 유진20160608증권
로보 어드바이저가 이끌 자산관리 시장의 변화 유진20160608증권로보 어드바이저가 이끌 자산관리 시장의 변화 유진20160608증권
로보 어드바이저가 이끌 자산관리 시장의 변화 유진20160608증권
 
[데이터를 부탁해] 항공기상 데이터 분석으로 운항 스케줄 예측하기 by 신진환
[데이터를 부탁해] 항공기상 데이터 분석으로 운항 스케줄 예측하기 by 신진환[데이터를 부탁해] 항공기상 데이터 분석으로 운항 스케줄 예측하기 by 신진환
[데이터를 부탁해] 항공기상 데이터 분석으로 운항 스케줄 예측하기 by 신진환
 
링크드인(Linked in) 가이드북
링크드인(Linked in) 가이드북링크드인(Linked in) 가이드북
링크드인(Linked in) 가이드북
 

Similaire à 링크드인의 Big Data Recommendation Products - 어제의 데이터를 통해 내일을 예측한다

딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투Ubuntu Korea Community
 
머신러닝(딥러닝 요약)
머신러닝(딥러닝 요약)머신러닝(딥러닝 요약)
머신러닝(딥러닝 요약)Byung-han Lee
 
예비 개발자를 위한 소프트웨어 세상 이야기
예비 개발자를 위한 소프트웨어 세상 이야기예비 개발자를 위한 소프트웨어 세상 이야기
예비 개발자를 위한 소프트웨어 세상 이야기수보 김
 
Transfer learning usage
Transfer learning usageTransfer learning usage
Transfer learning usageTae Young Lee
 
Display Ads Platform에 대한 약간 그럴싸한 안내와 잡담
Display Ads Platform에 대한 약간 그럴싸한 안내와 잡담Display Ads Platform에 대한 약간 그럴싸한 안내와 잡담
Display Ads Platform에 대한 약간 그럴싸한 안내와 잡담Juseok Kim
 
100% Serverless big data scale production Deep Learning System
100% Serverless big data scale production Deep Learning System100% Serverless big data scale production Deep Learning System
100% Serverless big data scale production Deep Learning Systemhoondong kim
 
PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)
PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)
PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)Haezoom Inc.
 
안.전.제.일. 강화학습!
안.전.제.일. 강화학습!안.전.제.일. 강화학습!
안.전.제.일. 강화학습!Dongmin Lee
 
Things Data Scientists Should Keep in Mind
Things Data Scientists Should Keep in MindThings Data Scientists Should Keep in Mind
Things Data Scientists Should Keep in MindDataya Nolja
 
Ruby on Rails와 함께 하는 애자일 웹 개발
Ruby on Rails와 함께 하는 애자일 웹 개발Ruby on Rails와 함께 하는 애자일 웹 개발
Ruby on Rails와 함께 하는 애자일 웹 개발Sukjoon Kim
 
그래프에서 대시보드까지, 서비스를 위한 데이터 시각화
그래프에서 대시보드까지, 서비스를 위한 데이터 시각화그래프에서 대시보드까지, 서비스를 위한 데이터 시각화
그래프에서 대시보드까지, 서비스를 위한 데이터 시각화Minho Lee
 
실리콘 밸리 데이터 사이언티스트의 하루
실리콘 밸리 데이터 사이언티스트의 하루실리콘 밸리 데이터 사이언티스트의 하루
실리콘 밸리 데이터 사이언티스트의 하루Jaimie Kwon (권재명)
 
E-commerce BigData Scale AI Journey
E-commerce BigData Scale AI JourneyE-commerce BigData Scale AI Journey
E-commerce BigData Scale AI Journeyhoondong kim
 
Deep learning framework 제작
Deep learning framework 제작Deep learning framework 제작
Deep learning framework 제작Tae Young Lee
 
Recommendation System History
Recommendation System HistoryRecommendation System History
Recommendation System HistoryTae Young Lee
 
학교에서는 배울 수 없는 스타트업 엔지니어링 (연세대 특강)
학교에서는 배울 수 없는 스타트업 엔지니어링 (연세대 특강)학교에서는 배울 수 없는 스타트업 엔지니어링 (연세대 특강)
학교에서는 배울 수 없는 스타트업 엔지니어링 (연세대 특강)Lab80
 
글로벌 사례로 보는 데이터로 돈 버는 법 - 트레저데이터 (Treasure Data)
글로벌 사례로 보는 데이터로 돈 버는 법 - 트레저데이터 (Treasure Data)글로벌 사례로 보는 데이터로 돈 버는 법 - 트레저데이터 (Treasure Data)
글로벌 사례로 보는 데이터로 돈 버는 법 - 트레저데이터 (Treasure Data)Treasure Data, Inc.
 
Realtime Big data Anaytics and Exampes of Daum (2013)
Realtime Big data Anaytics and Exampes of Daum (2013)Realtime Big data Anaytics and Exampes of Daum (2013)
Realtime Big data Anaytics and Exampes of Daum (2013)Channy Yun
 
The bleeding edge of machine learning stream in 2017 - APAC ML/DS Community ...
The bleeding edge of  machine learning stream in 2017 - APAC ML/DS Community ...The bleeding edge of  machine learning stream in 2017 - APAC ML/DS Community ...
The bleeding edge of machine learning stream in 2017 - APAC ML/DS Community ...Jeongkyu Shin
 
전혀 새로운 방법의 데이터 탐색 - 김민수 (Tableau)
전혀 새로운 방법의 데이터 탐색 - 김민수 (Tableau)전혀 새로운 방법의 데이터 탐색 - 김민수 (Tableau)
전혀 새로운 방법의 데이터 탐색 - 김민수 (Tableau)Yan So
 

Similaire à 링크드인의 Big Data Recommendation Products - 어제의 데이터를 통해 내일을 예측한다 (20)

딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투
 
머신러닝(딥러닝 요약)
머신러닝(딥러닝 요약)머신러닝(딥러닝 요약)
머신러닝(딥러닝 요약)
 
예비 개발자를 위한 소프트웨어 세상 이야기
예비 개발자를 위한 소프트웨어 세상 이야기예비 개발자를 위한 소프트웨어 세상 이야기
예비 개발자를 위한 소프트웨어 세상 이야기
 
Transfer learning usage
Transfer learning usageTransfer learning usage
Transfer learning usage
 
Display Ads Platform에 대한 약간 그럴싸한 안내와 잡담
Display Ads Platform에 대한 약간 그럴싸한 안내와 잡담Display Ads Platform에 대한 약간 그럴싸한 안내와 잡담
Display Ads Platform에 대한 약간 그럴싸한 안내와 잡담
 
100% Serverless big data scale production Deep Learning System
100% Serverless big data scale production Deep Learning System100% Serverless big data scale production Deep Learning System
100% Serverless big data scale production Deep Learning System
 
PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)
PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)
PYCON KR 2017 - 구름이 하늘의 일이라면 (윤상웅)
 
안.전.제.일. 강화학습!
안.전.제.일. 강화학습!안.전.제.일. 강화학습!
안.전.제.일. 강화학습!
 
Things Data Scientists Should Keep in Mind
Things Data Scientists Should Keep in MindThings Data Scientists Should Keep in Mind
Things Data Scientists Should Keep in Mind
 
Ruby on Rails와 함께 하는 애자일 웹 개발
Ruby on Rails와 함께 하는 애자일 웹 개발Ruby on Rails와 함께 하는 애자일 웹 개발
Ruby on Rails와 함께 하는 애자일 웹 개발
 
그래프에서 대시보드까지, 서비스를 위한 데이터 시각화
그래프에서 대시보드까지, 서비스를 위한 데이터 시각화그래프에서 대시보드까지, 서비스를 위한 데이터 시각화
그래프에서 대시보드까지, 서비스를 위한 데이터 시각화
 
실리콘 밸리 데이터 사이언티스트의 하루
실리콘 밸리 데이터 사이언티스트의 하루실리콘 밸리 데이터 사이언티스트의 하루
실리콘 밸리 데이터 사이언티스트의 하루
 
E-commerce BigData Scale AI Journey
E-commerce BigData Scale AI JourneyE-commerce BigData Scale AI Journey
E-commerce BigData Scale AI Journey
 
Deep learning framework 제작
Deep learning framework 제작Deep learning framework 제작
Deep learning framework 제작
 
Recommendation System History
Recommendation System HistoryRecommendation System History
Recommendation System History
 
학교에서는 배울 수 없는 스타트업 엔지니어링 (연세대 특강)
학교에서는 배울 수 없는 스타트업 엔지니어링 (연세대 특강)학교에서는 배울 수 없는 스타트업 엔지니어링 (연세대 특강)
학교에서는 배울 수 없는 스타트업 엔지니어링 (연세대 특강)
 
글로벌 사례로 보는 데이터로 돈 버는 법 - 트레저데이터 (Treasure Data)
글로벌 사례로 보는 데이터로 돈 버는 법 - 트레저데이터 (Treasure Data)글로벌 사례로 보는 데이터로 돈 버는 법 - 트레저데이터 (Treasure Data)
글로벌 사례로 보는 데이터로 돈 버는 법 - 트레저데이터 (Treasure Data)
 
Realtime Big data Anaytics and Exampes of Daum (2013)
Realtime Big data Anaytics and Exampes of Daum (2013)Realtime Big data Anaytics and Exampes of Daum (2013)
Realtime Big data Anaytics and Exampes of Daum (2013)
 
The bleeding edge of machine learning stream in 2017 - APAC ML/DS Community ...
The bleeding edge of  machine learning stream in 2017 - APAC ML/DS Community ...The bleeding edge of  machine learning stream in 2017 - APAC ML/DS Community ...
The bleeding edge of machine learning stream in 2017 - APAC ML/DS Community ...
 
전혀 새로운 방법의 데이터 탐색 - 김민수 (Tableau)
전혀 새로운 방법의 데이터 탐색 - 김민수 (Tableau)전혀 새로운 방법의 데이터 탐색 - 김민수 (Tableau)
전혀 새로운 방법의 데이터 탐색 - 김민수 (Tableau)
 

링크드인의 Big Data Recommendation Products - 어제의 데이터를 통해 내일을 예측한다

  • 1. + 링크드인의 Big Data Recommendation Products -어제의 데이터를 통해 내일을 예측한다- 김형진(Evion Kim), Senior Software Engineer
  • 2. 추천(Recommendation)이란? 내가 좋아하는 음식, 내가 보고싶어하는 영화, 내가 읽고 싶어하는 책, 내가 알만한 사람, 내가 데이트 하고싶은 여자(남자), 를 알려주세요. …그걸 어떻게 알아? +
  • 4. 추천(Recommendation)이란? + 예측(Prediction) 이다. 사용자에게 x1, x2, x3…로 구성되는 정보를 보여주었을 때, 과연 어떤 반응을 보일 것인가 예측 예측을 바탕으로 사용자에게 더 관련성 높은 정보를 제공
  • 5. 예측은 어떻게? 여자 손님은 스파게티를 좋아하시더라 20대 남자는 액션이 많고 플롯이 탄탄한 영화를 많이 보더라 개발자 남자에게는 개발자 여자를 소개팅 시켜주면 좋아하더라. 그러니까 이 메뉴/이 영화/이 개발자 를 추천해주자. =>과거의 데이터를 기반으로 미래의 사용자의 행동을 예측 +
  • 6. 미리보는 결론 - 그래서, 링크드인에게 추천이란? + 추천은 예측이다. 예측 Algorithm 어제의 데이터를 분석하여 내일의 사용자의 행동을 예측하는 머신 러닝 알고리즘 예측 Infrastructure Hadoop, Key-Value Store, 각종 오픈 소스 프로덕트를 활용한 링크드인의 빅데이터 에코시스템 본 발표의 내용은, Sam Shah(Principal Software Engineer, LinkedIn)의 “Building Data Products With Hadoop”, “LinkedIn Endorsements: Reputation, Virality, and Social Tagging”, “The ‘Big Data’ Ecosystem at Linkedin” 등을 참고 하였습니다.
  • 7. 발표자 - 김형진 Software Engineer/Data Scientist +
  • 8. 오늘의 발표 1. 링크드인의 빅데이터 1. 2. 3. 빅데이터 에코시스템 Encapsulation Offline vs. Online 2. Supervised Machine Learning 기반의 추천 3. Recommendation Product 만들기 – Step By Step 1. 2. 3. 4. 5. Intuition Feature Extraction Model training Data Generation Application & Evaluation 4. 분석 example 5. 결론 +
  • 9. 1. Big Data @ LinkedIn
  • 10. LinkedIn: 프로페셔널 소셜 네트워크 + 2억 3천 8백만 사용자
  • 11. 링크드인의 추천 프로덕트들 + People You May Know – 친구 추천 Skills and Endorsements – 누구의 어떤 스킬을 승인(like)할 것인가? Jobs You May be Interested In – 어떤 새 직장에 관심이 있을 것인가? News Recommendation – 어떤 뉴스를 읽고 싶은가?
  • 13. + 특징 1. Big Data Ecosystem 하둡 클러스터 유저 인터랙션 데이터 Key/Value Store
  • 14. 특징 2. Encapsulation + 시스템에 대해 잘 모르는 데이터 사이언티스트가 Recommendation Algorithm을 만들고 싶다면? Analytics/Modeling Layer R, Linkedin’s Azkaban(Hadoop workflow management), Apache Pig, LinkedIn’s DataFu Infrastructure Layer Hadoop, LinkedIn’s Voldemort(Key/Value storage) 데이터 모델링, 분석 레벨의 지식과 인프라스트럭쳐 레벨의 지식이 분리됨.
  • 15. + 특징 3. Online VS. Offline 장점 사용자에게 최신의 정보를 제공 가능 더 빠른 개발과 iteration Scale 쉬움 Failure toleration 단점 더 긴 개발시간 Scale 어려움 Failure handling에 더 신경써야함 최신의 정보를 제공 할 수 없음 Online Offline Massive Scale Machine Learning및 Data generation은 Offline에서, Filtering, 최종 Business Logic 적용 등은 Online에서
  • 17. 머신 러닝 기반의 추천 + Supervised 머신 러닝 과거의 데이터를 통해 모델을 train train 된 모델을 사용하여 실제로 예측 Binary Classification 결과가 1/0으로 나오는 supervised 머신 러닝 문제 다양한 Binary Classification 알고리즘들 Decision Tree, Support Vector Machine, Logistic Regression, …
  • 18. 머신 러닝 기반의 추천 과거 주어진 상황(feature f1, f2,~ fn) 하에서, 유저 x의 행동을 관찰 유저가 클릭: Score = 1 유저가 무시: Score = 0 현재 데이터를 바탕으로 모델을 training 시킬 수 있음 주어진 과거 데이터의 오류를 최소화 하는 모델을 만듬 미래 조건부 확률 P(Click y | user x views y with f1, f2, .. fn) 을 계산 만들어진 모델을 통해 미래의 유저 반응을 예측 +
  • 19. 3.Big Data Recommendation Product 만들기 – Step By Step
  • 20. + Recommendation Product 만들기 머신 러닝 모델링을 바탕으로 한 추천 하둡 인프라 스트럭쳐 기반, 1. Intuition: 프로덕트 아이디어와 유저의 행동에 대한 가정. 2. Feature Extraction: 모델에 사용할 feature들을 선택하고 수집 3. Model Training: 선택된 feature를 이용하여 모델을 train. 4. Data Generation: Train 된 모델을 적용하여 데이터 생성 5. Serving Data: 추천 데이터 서빙 Intuition Feature Extraction Model Building Hadoop Infrastructure Data Generation Serving Data
  • 22. Recommendation Product - 1. Intuition + 프로덕트 아이디어와, 그 아이디어에 대한 가정에서 부터 시작 프로덕트 아이디어: Suggested Endorsements 어떤 사람의 어떤 스킬을 Endorse(승인) 할 것인지 추천하여 주자 가정 1. Overlap: 상호간에 학교, 회사등을 함께 다닌 기간이 길수록 2. Similarity: Industry, Title등이 유사할수록 3. Skill score: 해당 스킬에 대해 더 잘 알 수록 Endorse 버튼을 클릭 할 가능성이 높을 것!
  • 23. 1.Intuition – Problem & Solution + Problem: 머신 러닝 모델을 만들기 위해서는, Training Data Set이 필요하다. „최초‟ 의 training 데이터를 어떻게 구할 수 있을까? Possible Solutions: Crowd Sourcing 이미 존재하는 데이터로부터 유추 Our Solution: Cold-Start 모델 Intuition에 따라 매뉴얼하게 만든 모델을 일단 활용 하여 데이터를 수집 Example) 유저간의 overlap, similarity에 따라 Sorting. 유저와 스킬사이의 skill score에 따라 Sorting.
  • 25. Recommendation Product - 2. Feature Extraction + 모델의 input이 될 feature의 set을 결정하고(feature selection), 해당 데이터를 실제 유저 데이터로부터 가져오는(feature extraction) 과정. Feature 의 예시: Overlap: 상호간에 학교를 함께 다닌 개월 수 Similarity: 같은 IT 인더스트리인가? Skill score: 해당 유저가 스킬을 알 확률을 점수로 나타낸다면 Feature Selection: 실제로 모델에 유용한 feature를 선정 example) Overlap 과 Skill Score가 유용함 Feature Extraction: feature을 모델에 사용가능한 형태로 가져옴 Kafka – 링크드인의 Open Source Distributed Messaging System.
  • 26. Recommendation Product - 2. Feature Extraction + Problem: 한 유저가 얼마나 스킬을 잘 아는지를 feature 로 쓰고 싶다. 어떻게 해야 할까? Solution: Skills Score 라는 다른 프로덕트의 output을 Suggested Endorsement의 input으로 활용.
  • 27. + Skills Score 한 유저가 어떤 스킬을 가지고 있을 „확률‟을 계산 1. 각각의 프로필의 feature(타이틀, 회사, 인더스트리)와 스킬에 대해 프로필에서의 co-counts 를 계산 Software Engineer Software Engineer & Java Software Engineer & C++ … 1,000,000 100,000 88,000 1. Co-count 를 바탕으로 조건부 확률을 계산 P(Java | SoftwareEngineer) = 100, 000 = 0.1 1, 000, 000
  • 28. Skills Score + 3. Bayes Theorem을 통해 각 프로필별 스킬에 대한 확률 계산이 가능 Apple 에 다니고, Software Engineer라면, “iPhone development”란 스킬을 알 확률이 높을 것이다. P(iPhoneDevelopment | Apple, SoftwareEngineer) = p(iPhoneDevelopment)p(Apple, SoftwareEngineer | Java) p(Apple, SoftwreEnginer)
  • 30. Model Building + Binary Classification 문제로써의 Suggested Endorsements 유저 X가 (유저 Y, 스킬 Z)의 추천을 보았을때 실제로 endorse를 클릭한다면 -> 1 클릭하지 않는다면 -> 0 모델을 통해 P(User X endorses (User Y, Skill Z) | feature 1, feature 2, …)를 계산. Evion 이 DJ Patti의 Data Mining을 endorse 할 확률 = 0.7
  • 31. 3. Model Building – Problem & Solution + Problem: Hadoop하에서 머신 러닝 모델링을 하기 위한 방법? Solution: 1.Sampling 후 R 등의 통계 패키지를 이용한 모델 러닝 - Feature의 숫자가 적고, 빠른 iteration이 필요한 경우 2.ADMM framework - Feature의 숫자가 많을 경우, 모델 러닝 자체를 분산 시스템 하에서 실행하고싶은 경우 - 여러 다른 머신에서 각자 learning후, 각각의 결과를 합산 - 합산된 결과를 바탕으로 다시 iterate
  • 33. + Data Generation Build 된 모델을 바탕으로 실제 추천 데이터를 만들어 내는 과정 다양한 Java/Pig/Hive Hadoop job 의 조합 각각의 job은 1분 미만 ~ 6시간 이상의 running time을 가짐 Pig Job: Feature 1 Java Job: Feature 2 Pig Job: Join Features Java Job: Model Based Scoring Pig Job: Validation
  • 34. 4. Data Generation – Problem 실제 한 데이터 프로덕트의 Workflow Feature Generation, Join, 실제 모델 적용 등 다양한 Hadoop Job들 간의 dependency Managing 할 Solution이 필요 +
  • 35. 4. Data Generation – Solution: Azkaban Azkaban: Linkedin‟s open source project Dependency 관리 다양한 Job type: Pig, Hive, Java 스케쥴링 모니터링 로그 관리 Visualization Configuration Failure시 재시작 리소스 locking 관리 +
  • 37. + 5. Data Push - Solution Problem: HDFS에 생성된 추천 데이터를 실제로 유저에게 보여주기 위해선 어떻게 해야할까? Solution: Voldemort Linkedin의 Key Value Storage Amazon‟s Dynamo 바탕으로 구현 Distributed and Elastic Horizontally Scalable Bulk load pipeline from Hadoop Suggested Endorsements Service getRecommendations(memberId) Voldemort Batch load Hadoop
  • 39. Data Scientist가 되고 싶다면? +
  • 43. San Francisco Application Presentation Redwood City Network & Transport Mountain View San Jose Data Link & Physical
  • 45. 결론 – 링크드인에게 추천이란? + 추천은 예측이다. 예측 Algorithm 어제의 데이터를 분석하여 내일의 사용자의 행동을 예측하는 머신 러닝 알고리즘 예측 Infrastructure Hadoop, Key-Value Store, 각종 오픈 소스 프로덕트를 활용한 링크드인의 빅데이터 에코시스템