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

4,714 views

Published on

DEVIEW 2013 발표 내용입니다 - http://deview.kr/2013/detail.nhn?topicSeq=36

링크드인 플랫폼 상의 다양한 Recommendation Product들, 이 제품들의 키워드는 바로 'Relevance(연관성)' 입니다. 가장 관련있는 데이터들을 제공함으로써 사용자의 삶을 더 쉽고 편하게 만들어 주는것이 링크드인 데이터 팀의 목표라 할 수 있겠습니다. 그렇다면 어떻게 해야 사용자에게 가장 연관성 높은 데이터를 제공 할 수 있을까요? 이에 대한 답을 한문장으로 요약하자면 '어제의 데이터를 분석하여 내일의 사용자의 행동을 예측한다' 가 될 것 같습니다.

본 발표에서는 이 한 문장을 좀 더 길게 풀어보려 합니다. 링크드인에서는 Hadoop, Key-Value Storage, Machine Learning등의 기술을 어떤 식으로 활용하여 연관성 높은 Recommendation Product를 만들고 있는지에 대해 소개해보겠습니다.

Published in: Technology
0 Comments
36 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,714
On SlideShare
0
From Embeds
0
Number of Embeds
2,230
Actions
Shares
0
Downloads
160
Comments
0
Likes
36
Embeds 0
No embeds

No notes for slide

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

  1. 1. + 링크드인의 Big Data Recommendation Products -어제의 데이터를 통해 내일을 예측한다- 김형진(Evion Kim), Senior Software Engineer
  2. 2. 추천(Recommendation)이란? 내가 좋아하는 음식, 내가 보고싶어하는 영화, 내가 읽고 싶어하는 책, 내가 알만한 사람, 내가 데이트 하고싶은 여자(남자), 를 알려주세요. …그걸 어떻게 알아? +
  3. 3. + 추천(Recommendation)이란? 점쟁이의 돗자리다. 마녀의 수정구슬이다 = 예언 or 예측!
  4. 4. 추천(Recommendation)이란? + 예측(Prediction) 이다. 사용자에게 x1, x2, x3…로 구성되는 정보를 보여주었을 때, 과연 어떤 반응을 보일 것인가 예측 예측을 바탕으로 사용자에게 더 관련성 높은 정보를 제공
  5. 5. 예측은 어떻게? 여자 손님은 스파게티를 좋아하시더라 20대 남자는 액션이 많고 플롯이 탄탄한 영화를 많이 보더라 개발자 남자에게는 개발자 여자를 소개팅 시켜주면 좋아하더라. 그러니까 이 메뉴/이 영화/이 개발자 를 추천해주자. =>과거의 데이터를 기반으로 미래의 사용자의 행동을 예측 +
  6. 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. 7. 발표자 - 김형진 Software Engineer/Data Scientist +
  8. 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. 9. 1. Big Data @ LinkedIn
  10. 10. LinkedIn: 프로페셔널 소셜 네트워크 + 2억 3천 8백만 사용자
  11. 11. 링크드인의 추천 프로덕트들 + People You May Know – 친구 추천 Skills and Endorsements – 누구의 어떤 스킬을 승인(like)할 것인가? Jobs You May be Interested In – 어떤 새 직장에 관심이 있을 것인가? News Recommendation – 어떤 뉴스를 읽고 싶은가?
  12. 12. Skill Endorsements +
  13. 13. + 특징 1. Big Data Ecosystem 하둡 클러스터 유저 인터랙션 데이터 Key/Value Store
  14. 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. 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에서
  16. 16. 2.Supervised Machine Learning 기반의 추천
  17. 17. 머신 러닝 기반의 추천 + Supervised 머신 러닝 과거의 데이터를 통해 모델을 train train 된 모델을 사용하여 실제로 예측 Binary Classification 결과가 1/0으로 나오는 supervised 머신 러닝 문제 다양한 Binary Classification 알고리즘들 Decision Tree, Support Vector Machine, Logistic Regression, …
  18. 18. 머신 러닝 기반의 추천 과거 주어진 상황(feature f1, f2,~ fn) 하에서, 유저 x의 행동을 관찰 유저가 클릭: Score = 1 유저가 무시: Score = 0 현재 데이터를 바탕으로 모델을 training 시킬 수 있음 주어진 과거 데이터의 오류를 최소화 하는 모델을 만듬 미래 조건부 확률 P(Click y | user x views y with f1, f2, .. fn) 을 계산 만들어진 모델을 통해 미래의 유저 반응을 예측 +
  19. 19. 3.Big Data Recommendation Product 만들기 – Step By Step
  20. 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
  21. 21. + Intuition Feature Extraction Model Building Data Generation Serving Data
  22. 22. Recommendation Product - 1. Intuition + 프로덕트 아이디어와, 그 아이디어에 대한 가정에서 부터 시작 프로덕트 아이디어: Suggested Endorsements 어떤 사람의 어떤 스킬을 Endorse(승인) 할 것인지 추천하여 주자 가정 1. Overlap: 상호간에 학교, 회사등을 함께 다닌 기간이 길수록 2. Similarity: Industry, Title등이 유사할수록 3. Skill score: 해당 스킬에 대해 더 잘 알 수록 Endorse 버튼을 클릭 할 가능성이 높을 것!
  23. 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.
  24. 24. + Intuition Feature Extraction Model Building Data Generation Serving Data
  25. 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. 26. Recommendation Product - 2. Feature Extraction + Problem: 한 유저가 얼마나 스킬을 잘 아는지를 feature 로 쓰고 싶다. 어떻게 해야 할까? Solution: Skills Score 라는 다른 프로덕트의 output을 Suggested Endorsement의 input으로 활용.
  27. 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. 28. Skills Score + 3. Bayes Theorem을 통해 각 프로필별 스킬에 대한 확률 계산이 가능 Apple 에 다니고, Software Engineer라면, “iPhone development”란 스킬을 알 확률이 높을 것이다. P(iPhoneDevelopment | Apple, SoftwareEngineer) = p(iPhoneDevelopment)p(Apple, SoftwareEngineer | Java) p(Apple, SoftwreEnginer)
  29. 29. + Intuition Feature Extraction Model Building Data Generation Serving Data
  30. 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. 31. 3. Model Building – Problem & Solution + Problem: Hadoop하에서 머신 러닝 모델링을 하기 위한 방법? Solution: 1.Sampling 후 R 등의 통계 패키지를 이용한 모델 러닝 - Feature의 숫자가 적고, 빠른 iteration이 필요한 경우 2.ADMM framework - Feature의 숫자가 많을 경우, 모델 러닝 자체를 분산 시스템 하에서 실행하고싶은 경우 - 여러 다른 머신에서 각자 learning후, 각각의 결과를 합산 - 합산된 결과를 바탕으로 다시 iterate
  32. 32. + Intuition Feature Extraction Model Building Data Generation Serving Data
  33. 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. 34. 4. Data Generation – Problem 실제 한 데이터 프로덕트의 Workflow Feature Generation, Join, 실제 모델 적용 등 다양한 Hadoop Job들 간의 dependency Managing 할 Solution이 필요 +
  35. 35. 4. Data Generation – Solution: Azkaban Azkaban: Linkedin‟s open source project Dependency 관리 다양한 Job type: Pig, Hive, Java 스케쥴링 모니터링 로그 관리 Visualization Configuration Failure시 재시작 리소스 locking 관리 +
  36. 36. + Intuition Feature Extraction Model Building Data Generation Serving Data
  37. 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
  38. 38. 4. Analytics Examples
  39. 39. Data Scientist가 되고 싶다면? +
  40. 40. 유행하는 스킬? +
  41. 41. 지역별 스킬의 차이 +
  42. 42. + San Francisco Redwood City Mountain View San Jose
  43. 43. San Francisco Application Presentation Redwood City Network & Transport Mountain View San Jose Data Link & Physical
  44. 44. 5. 결론
  45. 45. 결론 – 링크드인에게 추천이란? + 추천은 예측이다. 예측 Algorithm 어제의 데이터를 분석하여 내일의 사용자의 행동을 예측하는 머신 러닝 알고리즘 예측 Infrastructure Hadoop, Key-Value Store, 각종 오픈 소스 프로덕트를 활용한 링크드인의 빅데이터 에코시스템
  46. 46. data.linkedin.com

×