View
2.846
Download
1
Category
Preview:
DESCRIPTION
DEVIEW 2013 발표 내용입니다 - http://deview.kr/2013/detail.nhn?topicSeq=36 링크드인 플랫폼 상의 다양한 Recommendation Product들, 이 제품들의 키워드는 바로 'Relevance(연관성)' 입니다. 가장 관련있는 데이터들을 제공함으로써 사용자의 삶을 더 쉽고 편하게 만들어 주는것이 링크드인 데이터 팀의 목표라 할 수 있겠습니다. 그렇다면 어떻게 해야 사용자에게 가장 연관성 높은 데이터를 제공 할 수 있을까요? 이에 대한 답을 한문장으로 요약하자면 '어제의 데이터를 분석하여 내일의 사용자의 행동을 예측한다' 가 될 것 같습니다. 본 발표에서는 이 한 문장을 좀 더 길게 풀어보려 합니다. 링크드인에서는 Hadoop, Key-Value Storage, Machine Learning등의 기술을 어떤 식으로 활용하여 연관성 높은 Recommendation Product를 만들고 있는지에 대해 소개해보겠습니다.
Citation preview
링크드인의 Big Data Recommendation Products- 어제의 데이터를 통해 내일을 예측한다 -
김형진 (Evion Kim), Senior Software Engineer
+
+추천 (Recommendation) 이란 ?
내가 좋아하는 음식 ,내가 보고싶어하는 영화 ,내가 읽고 싶어하는 책 ,내가 알만한 사람 ,내가 데이트 하고싶은 여자 ( 남자 ),
를 알려주세요 .
… 그걸 어떻게 알아 ?
+추천 (Recommendation) 이란 ?
점쟁이의 돗자리다 . 마녀의 수정구슬이다
= 예언 or 예측 !
+추천 (Recommendation) 이란 ?
예측 (Prediction) 이다 .
사용자에게 x1, x2, x3… 로 구성되는 정보를 보여주었을 때 , 과연 어떤 반응을 보일 것인가 예측
예측을 바탕으로 사용자에게 더 관련성 높은 정보를 제공
+예측은 어떻게 ?
여자 손님은 스파게티를 좋아하시더라 20 대 남자는 액션이 많고 플롯이 탄탄한 영화를 많이 보더라개발자 남자에게는 개발자 여자를 소개팅 시켜주면 좋아하더라 .
그러니까 이 메뉴 / 이 영화 / 이 개발자 를 추천해주자 .
=> 과거의 데이터를 기반으로 미래의 사용자의 행동을 예측
+미리보는 결론 - 그래서 , 링크드인에게 추천이란 ?
추천은 예측이다 .
예측 Algorithm어제의 데이터를 분석하여 내일의 사용자의 행동을 예측하는 머신 러닝 알고리즘
예측 InfrastructureHadoop, 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. Encapsulation3. Offline vs. Online
2. Supervised Machine Learning 기반의 추천3. Recommendation Product 만들기 – Step By Step
1. Intuition2. Feature Extraction3. Model training4. Data Generation5. Application & Evaluation
4. 분석 example5. 결론
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 을 만들고 싶다면 ?
데이터 모델링 , 분석 레벨의 지식과인프라스트럭쳐 레벨의 지식이 분리됨 .
R, Linkedin’s Azkaban(Hadoop workflow management), Apache Pig, LinkedIn’s DataFu
Hadoop, LinkedIn’s Voldemort(Key/Value storage)
Analytics/Modeling Layer
Infrastructure Layer
+특징 3. Online VS. Offline
Massive Scale Machine Learning 및 Data generation 은 Offline에서 ,
Filtering, 최종 Business Logic 적용 등은 Online 에서
장점 사용자에게 최신의 정보를 제공 가능
더 빠른 개발과 iterationScale 쉬움Failure toleration
단점 더 긴 개발시간Scale 어려움Failure handling 에 더 신경써야함
최신의 정보를 제공 할 수 없음
Online Offline
2.Supervised Machine Learning 기반의 추천
+머신 러닝 기반의 추천
Supervised 머신 러닝과거의 데이터를 통해 모델을 traintrain 된 모델을 사용하여 실제로 예측
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
Data Generation
Serving Data
Hadoop Infrastructure
+
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 를 계산
2. Co-count 를 바탕으로 조건부 확률을 계산
Software Engineer 1,000,000
Software Engineer & Java 100,000
Software Engineer & C++ 88,000
…
+Skills Score
3. Bayes Theorem 을 통해 각 프로필별 스킬에 대한 확률 계산이 가능
Apple 에 다니고 , Software Engineer 라면 , “iPhone development” 란 스킬을 알 확률이 높을 것이다 .
+
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
Pig Job: ValidationJava Job: Model Based Scoring
+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스케쥴링모니터링로그 관리VisualizationConfigurationFailure 시 재시작리소스 locking 관리
+
Intuition Feature Extraction
Model Building
Data Generation
Serving Data
+5. Data Push - Solution
Problem: HDFS 에 생성된 추천 데이터를 실제로 유저에게 보여주기 위해선 어떻게 해야할까 ?
Solution:Voldemort
Linkedin 의 Key Value StorageAmazon’s Dynamo 바탕으로 구현
Distributed and ElasticHorizontally ScalableBulk load pipeline from Hadoop
Hadoop
Voldemort
Suggested Endorsements
Service
Batch load
getRecommendations(memberId)
4. Analytics Examples
+Data Scientist 가 되고 싶다면 ?
+유행하는 스킬 ?
+지역별 스킬의 차이
+
San Francisco
Mountain View
San Jose
Redwood City
San Francisco
San Jose
Redwood City
Mountain View
Application
Network &Transport
Presentation
Data Link &Physical
5. 결론
+결론 – 링크드인에게 추천이란 ?
추천은 예측이다 .
예측 Algorithm어제의 데이터를 분석하여 내일의 사용자의 행동을 예측하는 머신 러닝 알고리즘
예측 InfrastructureHadoop, Key-Value Store, 각종 오픈 소스 프로덕트를 활용한 링크드인의 빅데이터 에코시스템
data.linkedin.com
Recommended