SlideShare a Scribd company logo
Web & Health 2.0 회사에서의 
데이터 과학 (Data Science) 이란? 
Data Preparation의 
중요성 
이현철 
(Director of Data Engineering & Science)
DEVIEW 2014 MyFitnessPal, Inc. 
Before MyFitnessPal 
3억 이상의 사용자들 
Content Understanding & Personalization 
SNS 회사와 Health 2.0 회사에서 필요로 하는 데이터 과학은 흡사함
DEVIEW 2014 MyFitnessPal, Inc. 
데이터 과학(Data Science)이란?
데이터 과학(Data Science)을 논의할 때 쉽게 간과하는 부분들 
Engineering 적인 요소들 
Data Preparation or Data 
Munging 
DEVIEW 2014 MyFitnessPal, Inc. 
오늘의 주제
DEVIEW 2014 MyFitnessPal, Inc. 
Data Preparation 또는 Data Munging 란? 
A laborious process of manually extracting, mapping, 
converting or generally cleaning up data in raw form. Data 
wranglers use algorithms (a process or set of rules to be followed 
in calculations or other problem-solving operations, especially by a 
computer) to parse disparate types of data and fit it into defined 
structures. The ultimate goal is to prep the data for storage and 
future use. 
! 
출처: Data Science 101: Definitions You Need to Know at 7th Annual Media Technology Summit 
알고리즘 또는 데이터 서비스 개발의 전단계로, 확보한 데이터의 원형을 사용 
하기에 가장 적합한 모습으로 변환시켜 주고 최소한의 품질 보장을 위해 데이 
터를 깨끗하게 정리해 주는 단계
DEVIEW 2014 MyFitnessPal, Inc. 
데이터를 “준비”하는 과정의 필요성 1 
집단지성을 통해 축적된 빅데이터의 효율적인 이용을 위해 
사례: 건강/다이어트 관련 빅데이터
사례: 유사한 음식들과 철자법이 틀린 음식 이름들 
유사한 음식들 틀린 철자법 
DEVIEW 2014 MyFitnessPal, Inc. 
데이터를 “준비”하는 과정의 필요성 2 
비정형 데이터의 노이즈를 제거하기 위해 
음식: 자장면 
자장면 
짜장면 
간자짜장 
자장컵라면 
생짜장면 
직화 생짜장 & 짜장먼 면 
냉동짜장면 
채식 짜장면 
일품짜장면 
삼선짜장면 
… 
… 
실제 데이터
DEVIEW 2014 MyFitnessPal, Inc. 
데이터를 “준비”하지 않았을 때 일어날 수 있는 문제들 
• 데이터 분석 및 통계적인 접근이 원천적으로 어려워짐 
! 
• 데이터 서비스들의 품질 저하 및 개발의 문제 
• 검색, 추천엔진, Analytics등 
! 
• No Ground-Truth 
! 
• 불필요한 데이터를 처리할 때 발생할 수 있는 효율성의 저하와 
비용 문제 
! 
• 그 외의 수많은 문제들
DEVIEW 2014 MyFitnessPal, Inc. 
오늘 발표할 내용들 
• 비정형 데이터의 노이즈를 제거 하기 
• 데이터 Cleaning 사례 소개 
• 음식 데이터의 Cleaning, Standardization & De-duplication 
!!! 
• 집단지성을 통해 축적된 빅데이터의 효율적인 이용 
• Text Classification 사례 소개 
• 음식 데이터의 Classification 
! 
Joint work with Aadhar, Joohyun, Jiang, Stu, Serge and others 
SNS, Content, Web 2.0, Health 2.0등의 회사에서 보편적으로 다루어야 하는 데이터 과학 문제들
데이터 Cleaning 사례 소개 1 
음식 데이터의 Cleaning 과 Standardization
DEVIEW 2014 MyFitnessPal, Inc. 
MyFitnessPal에서의 음식 기록 방식 
검색 결과에 따라 
음식 일지 섭취한 음식을 기록
회사명: McDonald’s 
음식 이름: Cheese Burger 
국가명: USA 
DEVIEW 2014 MyFitnessPal, Inc. 
음식 데이터의 Cleaning과 Standardization의 예 
회사명: Non-Available 
음식 이름: My Mcdonnald’s Cheese 
Burger - USA 
국가명: Non-Available 
아직 정리 되지 않은 상태 정리된 상태 
음식 이름 관련: 
• Stop-words, punctuations, unnecessary 
de-limiters의 제거 
• 사용자들과 연관된 음식이름 제거/cleaning 
• 음식 이름에서 국가명 및 음식 이름과 관련이 없 
는 내용들은 삭제 
• 저속한 단어들 제거 
회사명 관련: 
•Standardize 
•Normalize 
•음식 이름에 포함되어 있는 회사명은 제거
음식 데이터의 Cleaning과 Standardization의 구현 방식 
1번째 단계 : Cleaning Library 개발 
Dictionary Based Heuristic 
DEVIEW 2014 MyFitnessPal, Inc. 
•기본적인 “Cleaning” 룰들과 Workflow를 디자인함 
•기획자들과의 긴밀한 대화는 필수 
•필요한 dictionary와 그에 필요한 자료 구조를 구현 
•필요한 regular expression이나 library를 구현 
•Parsing/Tokenize할때 자연어 처리 기술의 사용을 고려함 
2번째 단계 : 개발한 Cleaning Library를 서비스나 Offline flow 에 embed
고려해야 할 부분들 
• 데이터 인프라 (data infrastructure) 
• Streaming setting에서 on-line으로 처리할 지, 혹은 
off-line으로 처리할 지를 결정하는 것이 중요함 
• On-line일 경우: message passing을 이용한 infra 
(e.g. Kafka & Akka Service) 를 고려해 볼 수 있음 
! 
• Off-line일 경우: Hadoop+Pig 또는 Spark의 사용을 고려 
해 볼 수 있음 
! 
! 
• 처리 속도 (computation speed) 
• 대용량 데이터를 처리함에 있어 library의 속도 및 resource의 
DEVIEW 2014 MyFitnessPal, Inc. 
공유가 중요함 : dictionary, data model 등
고려해야 할 부분들 - Cont. 
• 버전 관리 및 Grand-fathering (version control) 
• 새로운 dictionary나 데이터 모델 그리고 library에 맞게 기존 
DEVIEW 2014 MyFitnessPal, Inc. 
의 데이터를 변환시켜 주어야 함 
! 
! 
• Internalization(i18n)/Localization(L10n): 
• 영어 vs 중국어 처리 기술
회사명을 Standardize & Normalize 하기 위한 기본적인 방법 
회사명: Mcdonald, Mc Donalds, McDonald 회사명:McDonald's 
회사명: Chipotle Restaurant, Chipotle 회사명: Chipotle 
아직 정리가 되지 않은 상태 정리된 상태 
DEVIEW 2014 MyFitnessPal, Inc. 
Standardize 
Normalize 
Approximation String Matching 문제와 밀접한 관계 
! 
A. String Similarity의 문제 : 주어진 2개의 다른 문자열(String)의 
similarity를 어떻게 찾을 것인가? 
! 
B. Approximate String Matching의 문제 : 문자열 A가 주어 졌을때 
가장 비슷한 문자열 B를 어떻게 찾을 수 있는가?
문자열(String)들을 비교할 때 사용될 수 있는 Similarity Measures 
DEVIEW 2014 MyFitnessPal, Inc. 
! 
•Jaccard Similarity 
! 
•Hamming Distance 
! 
•Edit Distance (Damerau­–Levenshtein 
distance) 
•Dynamic Programming방식을 사용함 
•가장 보편적인 방식 
! 
•Smith­–Waterman 
Distance 
•생명과학쪽에서 많이 사용함 
•바이오의 유명한 BLAST에 사용됨 
! 
•etc. 
!
DEVIEW 2014 MyFitnessPal, Inc. 
Approximate String Matching 문제 (NN-Search) 
사용 가능한 방식 1 
! 
•Tree/Trie를 사용하는 방식 
•Radix Tree를 사용 
•Time Complexity를 O(dnk)에서 
O(dn log(k))로 획기적으로 줄일 
수 있음 
! 
여기서 
! 
•n=대조해 보고자 하는 문자열(string) 수 
•d=주어진 문자열 (string) 의 글자 수 
•k=문자열(string) 길이의 평균 값
Approximate String Matching 문제 (NN-Search) - Cont. 
DEVIEW 2014 MyFitnessPal, Inc. 
사용 가능한 방식 2 
•Dimension Reduction 방식 
•Locality Sensitive Hashing 같은 방법들을 사용 
! 
•Time complexity를 constant time 즉 O(k+d)로 
줄일 수 있음 
•Text에 사용하기에는 한계가 있음 
•False positives의 가능성
DEVIEW 2014 MyFitnessPal, Inc. 
고려해야 할 부분들 
! 
• 사용되어질 다양한 자료 구조들의 concurrency 부분들에 대해서 
신경을 써야함. 
• 예: Google에서 개발한 concurrent tree library를 사용함 
! 
• Metric의 정의 
• Data Scientist가 되기 위한 필수 조건 
• Communication 스킬이 중요함
DEVIEW 2014 MyFitnessPal, Inc. 
음식 데이터 Cleaning 결과 
! 
•회사명 개수를 25%으로 줄이는 데 성공 
! 
•25%-35%의 음식 아이템들을 “적합” 
한 새로운 모습으로 변환 시킴 
성공!
DEVIEW 2014 MyFitnessPal, Inc. 
데이터 Cleaning 결과를 검색에 적용했을 때 1 
Brand Misspellings/Errors “mcdonals” 
Before After
Not so good Better 
DEVIEW 2014 MyFitnessPal, Inc. 
데이터 Cleaning 결과를 검색에 적용했을 때 2 
검색 성능 개선 
Before After
데이터 Cleaning 사례 소개 2 
음식 데이터의 De-duplication
DEVIEW 2014 MyFitnessPal, Inc. 
음식 데이터의 De-duplication이란? 
채식짜장면 
자장면 
짜장면 
생짜장면 
간짜장면 
짬뽕 잠뽕 
짬뽕면 
자장면 
짬뽕 
삼선짬뽕 
삼선짜장 
짜파게티 
De-duplication 과 Clustering는 다름 
(semantics 접근하고는 다름)
DEVIEW 2014 MyFitnessPal, Inc. 
Near De-duplication의 간략한 역사 
• 웹페이지, 전자 상거래 데이터, 의료 데이터, 주식시장 데이터, 기 
상 데이터 등에서 de-duplication문제를 해결하기 위해 다양한 
방법들이 동원 되어 왔음 
! 
• De-duplication을 풀기 위해 필요한 similarity를 정의 하는 방 
법중에 가장 쉽고 보편적으로 사용되는 방식은 k-shingling 방식 
! 
• De-duplication 하려는 아이템의 종류에 따른 접근 방식 
• 유럽권 언어를 기초로 한 텍스트를 다룰 때에는 spotsig을 사 
용하면 성능이 여러가지로 개선됨 
• 멀티미디어 데이터들에서는 다양한 dimension reduction 방 
법들 중 Locality Sensitive Hashing 접근들이 인기 
(SimHash,MinHash, etc)
DEVIEW 2014 MyFitnessPal, Inc. 
Shingling을 이용한 de-duplication 
문자열 A=McDonald Cheese Burger 
문자열 B=McDonald Cheese Burger with 
Onions 
! 
Fingerprints를 가지고 문자열들을 비교 할 수 있음 
! 
• K-Shingles 들을 문자열들로부터 만들기 
• K-bit (e.g. 64) fingerprints들을 만들기 
• 그렇게 해서 만들어진 fingerprints들을 가지고 문자열들의 similarity들을 계산할 수 있음 
! 
가장 보편적으로 사용할 수 있는 De-duplication algorithm 방식은 greedy algorithm을 
incrementally하게 적용 하는 방식. 
! 
• near real-time으로 구현하기 위해 적합 
K-Shingles(A)={McDonald Cheese, 
Cheese Burger} 
K-Shingles(B)={McDonald Cheese, 
Cheese Burger, Burger Onions} 
비교하고자 하는 2개의 문자열 비교하고자 하는 2개의 문자열의 K-Shingles
DEVIEW 2014 MyFitnessPal, Inc. 
De-duplication을 구현할 때 고려해야 할 부분들 
• 음식 아이템들은 짧은 텍스트이기에 shingle의 사이즈는 그렇게 중요하지 않음 
!! 
• 처리해야 할 데이터의 양이 늘어 날수록 shingling 방법이 충분하지 않을 수 있음. 
! 
• on-line greedy 방식으로 구현하게 되면 shingles, duplicate data info 데이 
터들을 색인하는 속도와 Look-up 속도가 급속도로 (exponentially) 느려짐. 
! 
• 1억 단위의 문자열들을 처리하기에는 확장성의 한계가 있음
De-duplication을 구현할 때 고려해야 할 부분들 - cont. 
DEVIEW 2014 MyFitnessPal, Inc. 
! 
• 최적화된 similarity 값을 찾는 것은 쉽지 않음. 
• 특별히 문자열에 관한 데이터만을 이용해서 Near duplicates을 가지고 찾을 때 
에는 한계가 분명이 있음. 
• 예: McDonald Cheese Burger vs McDonald Cheese Burger with 
Onions, Lettuce, Cheese, Pickles, Catchup 
! 
! 
• 그래서 생각해 볼 수 있는 것이 dimension reduction의 접근 
• Locality Sensitive Hashing
Locality Sensitive Hashing (LSH)의 기본적인 아이디어 
DEVIEW 2014 MyFitnessPal, Inc. 
• N개의 아이템들을 n차원 공간 속의 벡터들로 취급 
! 
• n차원 공간안에, k개의 hyper-plane들을 임의 
(randomly)로 만든다 
! 
• 모든 hyper-plane을 상대로: 
• 아이템이 hyper-plane의 상위에 존재하는지 
(1로 표현) 아니면 하위에 존재하는지 (0으로 
표현) 를 물어 본다. 
! 
! 
• 여기서 중요한 것은 어떻게 hyper-plane을 임의 
로 만들어 낼 수 있느냐 
아이템 1 
아이템 2 
h1 
h2 
h3 
n=2 , k =3 
Hash(아이템 1) = 011 
Hash(아이템 2) = 001
DEVIEW 2014 MyFitnessPal, Inc. 
LSH + Shingling 
• 음식 아이템의 “영양 정보”를 이용함 
• 음식의 영양 정보를 벡터로 취급함 
영양정보 벡터에 1차로 LSH 를 적용하여 비 
슷한 음식들끼리 1차로 분류함 
! 
1단계 
1차의 결과들을 shingling을 이용한 
de-duplication으로 다시 처리 
! 
2단계 
벡터의 Dimension이 Finite하기 때문에 가능
DEVIEW 2014 MyFitnessPal, Inc. 
De-duplication 결과를 검색에 적용 했을 때 
검색 결과 개선 
Before After
빅데이터의 효율적 이용 
음식 데이터의 Classification
음식 데이터의 classification (supervised learning 문제) 
Dairy Eggs and Cheese 
Bread, Cereal, Rice, and Pasta 
Meat, Poultry, Fish, Dry Bean, Eggs, Nuts 
DEVIEW 2014 MyFitnessPal, Inc. 
Beverages 
Snacks and Candy 
Fruits 
Vegetables 
음식 아이템을 다양한 음식 종류로 분류하기 
음식 종류에 따라 
분류 
Classify 
이런 문제를 Multi-Label Classification 이라고 함
DEVIEW 2014 MyFitnessPal, Inc. 
기계 학습(Machine Learning)의 기본 workflow 
학습 데이터 학습 모델 실제 데이터 분류 
Classification을 하는 기본적인 방식 
• 학습 데이터의 확보가 문제! 
• 학습 데이터 양의 문제 
• 학습 데이터 질의 문제 
• Clean한 데이터를 확보 하는 것이 중요함 
! 
• 데이터 => 성능
학습 데이터 학습 
DEVIEW 2014 MyFitnessPal, Inc. 
+ 
Naive Bayes 
SVM 
Decision Trees 
KNN 
Ensemble Methods 
… 
기본적인 접근 방식 
다양한 알고리즘 
사람이 직접 하기 
Crowd-Sourcing 
서비스 이용 
OR
400만개가 넘는 음식 DB! 
+ 
고려해 볼 수 있는 방법이 Semi-Supervised Learning 방식의 접근 또는 
Representation Learning의 접근 방식 (딥러닝이 가장 좋은 예) 
DEVIEW 2014 MyFitnessPal, Inc. 
대용량 기계 학습 
빅데이터 
기계 학습
DEVIEW 2014 MyFitnessPal, Inc. 
빅데이터를 가지고 학습 데이터 만들기 
•Word2Vec이라는 기술을 이용하여 문자열(string)들의 상호 관계성을 계산함 
•Deep learning적인 접근 방법 
! 
•문자열(string)들의 상호 관계성을 가지고 좀 더 rich한 feature vector를 만듬 
• Transductive SVM을 Big Data로 구현함 
•90% 이상의 accuracy를 자랑함 (20% 이상의 성능 개선) 
•Word2Vec이나 transductive SVM 기술을 이용할 때 데이터를 cleaning하고 
standardize 하는 것이 아주 중요함
DEVIEW 2014 MyFitnessPal, Inc. 
고려해야 할 부분들 
• 특화된 cleaning과 standardization 방식의 문제 
! 
! 
• 정화된 데이터를 feature로 전환하는 방식의 문제 
! 
! 
• 학습 데이터를 빅데이터에서 sampling 하는 부분 
! 
! 
• 학습 데이터의 양을 최적화 하는 부분
결론 
• 데이터 과학 (data science) 에서 중요한 영역 중 하나 
가 data preparation 분야 
! 
! 
• 알고리즘과 heuristic 방식들을 적절하게 섞어서 사용하 
는 것이 중요 (intuition이 중요) 
! 
! 
• Engineering 접근과 science 접근의 적절한 조화 
! 
! 
• 기획자들과의 소통이 중요함 
DEVIEW 2014 MyFitnessPal, Inc.
Q & A

More Related Content

PPTX
[2A7]Linkedin'sDataScienceWhyIsItScience
PDF
[FAST CAMPUS] 1강 data science overview
PDF
Neural stream
PDF
집단지성 프로그래밍 01-데이터마이닝 개요
PPTX
빅데이터
PPTX
빅데이터의 이해
PDF
시나리오로 알아보는 빅데이터 대응전략(배포용) Dh kim-2013-3-21
PDF
빅데이터 솔루션 소개서(2013년 05월)
[2A7]Linkedin'sDataScienceWhyIsItScience
[FAST CAMPUS] 1강 data science overview
Neural stream
집단지성 프로그래밍 01-데이터마이닝 개요
빅데이터
빅데이터의 이해
시나리오로 알아보는 빅데이터 대응전략(배포용) Dh kim-2013-3-21
빅데이터 솔루션 소개서(2013년 05월)

What's hot (20)

PDF
빅데이터미래전략세미나발표자료 빅데이터기술현황및전망-황승구-20120410
PPTX
Process for Big Data Analysis
PPT
빅데이터 기본개념
PDF
오픈 데이터와 인공지능
PDF
UNUS BEANs 소개서 20141015
PDF
빅데이터_ISP수업
PDF
분석 현장에서 요구되는 데이터과학자의 역량과 자질
PDF
Meetup history
PDF
빅데이터 기술 및 시장동향
PPTX
데이터 사이언스 소개 - 정준호
PDF
KCSE 2015 Tutorial 빅데이터 분석 기술의 소프트웨어 공학 분야 활용 (...
PDF
연관도 분석을 이용한 데이터마이닝
PDF
[코세나, kosena] 빅데이터 구축 및 제안 가이드
PDF
Big data infra core technology 빅데이터 전문인력-양성사업_분석과정-특강
PPTX
빅데이터 시대 새로운 신기술과 활용방향
PDF
Big Data 대충 알아보기
PPT
Pag 빅데이터-한국에도필요한가
PDF
Big data 20111203_배포판
PDF
2012 빅데이터 big data 발표자료
PDF
전문가토크릴레이 2탄 빅데이터와 빅데이터 분석 (이경일 대표)
빅데이터미래전략세미나발표자료 빅데이터기술현황및전망-황승구-20120410
Process for Big Data Analysis
빅데이터 기본개념
오픈 데이터와 인공지능
UNUS BEANs 소개서 20141015
빅데이터_ISP수업
분석 현장에서 요구되는 데이터과학자의 역량과 자질
Meetup history
빅데이터 기술 및 시장동향
데이터 사이언스 소개 - 정준호
KCSE 2015 Tutorial 빅데이터 분석 기술의 소프트웨어 공학 분야 활용 (...
연관도 분석을 이용한 데이터마이닝
[코세나, kosena] 빅데이터 구축 및 제안 가이드
Big data infra core technology 빅데이터 전문인력-양성사업_분석과정-특강
빅데이터 시대 새로운 신기술과 활용방향
Big Data 대충 알아보기
Pag 빅데이터-한국에도필요한가
Big data 20111203_배포판
2012 빅데이터 big data 발표자료
전문가토크릴레이 2탄 빅데이터와 빅데이터 분석 (이경일 대표)
Ad

Viewers also liked (20)

PDF
LSH for
 Prediction Problem in Recommendation
PDF
seoul.city.open government data.big data.strategy.consideration
PDF
Дмитрий Селиванов, OK.RU. Finding Similar Items in high-dimensional spaces: L...
PDF
Fashion product de-duplication with image similarity and LSH
PPTX
PDF
Samsung Bi Project Strategic Review(Summary)
PPT
덕성여자대학교 SAGE 이용자 가이드
PDF
5 efficient-matching.ppt
PDF
Pure Function and Rx
PDF
Akka Fault Tolerance
PDF
Finding needles in haystacks with deep neural networks
PDF
Doing data science chap11
PDF
NeowizOpenConference2013-CharacterPipeline_김태근
PDF
[week6] 데이터읽어주는남자
PDF
데이터 사이언티스트 키노트 Pt 20141008
PDF
데이터에서 의미 추출하기
PPTX
Akka라이브러리를 이용해 구현하는 결함 내성 (발렌타인 발표자료)
PDF
[2A3]Big Data Launching Episodes
PPTX
Hello+gentle flow (1)
LSH for
 Prediction Problem in Recommendation
seoul.city.open government data.big data.strategy.consideration
Дмитрий Селиванов, OK.RU. Finding Similar Items in high-dimensional spaces: L...
Fashion product de-duplication with image similarity and LSH
Samsung Bi Project Strategic Review(Summary)
덕성여자대학교 SAGE 이용자 가이드
5 efficient-matching.ppt
Pure Function and Rx
Akka Fault Tolerance
Finding needles in haystacks with deep neural networks
Doing data science chap11
NeowizOpenConference2013-CharacterPipeline_김태근
[week6] 데이터읽어주는남자
데이터 사이언티스트 키노트 Pt 20141008
데이터에서 의미 추출하기
Akka라이브러리를 이용해 구현하는 결함 내성 (발렌타인 발표자료)
[2A3]Big Data Launching Episodes
Hello+gentle flow (1)
Ad

Similar to [2A6]web & health 2.0. 회사에서의 data science란? (20)

PDF
Introduction to ankus(data mining and machine learning open source)
PDF
데이터를 비즈니스에 활용하기 왜 어려울까?
PDF
[팝콘 시즌1] 윤석진 : 조직의 데이터 드리븐 문화를 위해 극복해야하는 문제들
PPTX
헬로 데이터 과학: 삶과 업무를 개선하는 데이터 과학 이야기 (스타트업 얼라이언스 강연)
PDF
[2016 데이터 그랜드 컨퍼런스] 2 2(빅데이터). skt beyond big data
PPTX
데이터를 얻으려는 노오오력
PDF
[2016 데이터 그랜드 컨퍼런스] 5 4(보안,품질). 비투엔 4차산업혁명의성공 데이터품질
PPTX
빅데이터전문가교육 2학기
PDF
100% Serverless big data scale production Deep Learning System
KEY
빅데이터, 가치창출구조와 가능성
PPTX
2017 주요 기술 흐름 및 개요
PDF
Apache Hive: for business intelligence use and real-time I/O use (Korean)
PPT
Eleven units사업계획서
PDF
How to Make Money from Data - Global Cases
PDF
스타트업처럼 토이프로젝트하기
PDF
Learning dataanalyst 2020oct_yonsei
PDF
Lab Seminar - Reading Wikipedia to Answer Open-Domain Questions (DrQA)
 
PPT
Big Data Overview
PDF
데이터가 흐르는 조직 만들기 - 마이리얼트립
PDF
digital archiving
Introduction to ankus(data mining and machine learning open source)
데이터를 비즈니스에 활용하기 왜 어려울까?
[팝콘 시즌1] 윤석진 : 조직의 데이터 드리븐 문화를 위해 극복해야하는 문제들
헬로 데이터 과학: 삶과 업무를 개선하는 데이터 과학 이야기 (스타트업 얼라이언스 강연)
[2016 데이터 그랜드 컨퍼런스] 2 2(빅데이터). skt beyond big data
데이터를 얻으려는 노오오력
[2016 데이터 그랜드 컨퍼런스] 5 4(보안,품질). 비투엔 4차산업혁명의성공 데이터품질
빅데이터전문가교육 2학기
100% Serverless big data scale production Deep Learning System
빅데이터, 가치창출구조와 가능성
2017 주요 기술 흐름 및 개요
Apache Hive: for business intelligence use and real-time I/O use (Korean)
Eleven units사업계획서
How to Make Money from Data - Global Cases
스타트업처럼 토이프로젝트하기
Learning dataanalyst 2020oct_yonsei
Lab Seminar - Reading Wikipedia to Answer Open-Domain Questions (DrQA)
 
Big Data Overview
데이터가 흐르는 조직 만들기 - 마이리얼트립
digital archiving

More from NAVER D2 (20)

PDF
[211] 인공지능이 인공지능 챗봇을 만든다
PDF
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
PDF
[215] Druid로 쉽고 빠르게 데이터 분석하기
PDF
[245]Papago Internals: 모델분석과 응용기술 개발
PDF
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
PDF
[235]Wikipedia-scale Q&A
PDF
[244]로봇이 현실 세계에 대해 학습하도록 만들기
PDF
[243] Deep Learning to help student’s Deep Learning
PDF
[234]Fast & Accurate Data Annotation Pipeline for AI applications
PDF
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
PDF
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
PDF
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
PDF
[224]네이버 검색과 개인화
PDF
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
PDF
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
PDF
[213] Fashion Visual Search
PDF
[232] TensorRT를 활용한 딥러닝 Inference 최적화
PDF
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
PDF
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
PDF
[223]기계독해 QA: 검색인가, NLP인가?
[211] 인공지능이 인공지능 챗봇을 만든다
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[215] Druid로 쉽고 빠르게 데이터 분석하기
[245]Papago Internals: 모델분석과 응용기술 개발
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[235]Wikipedia-scale Q&A
[244]로봇이 현실 세계에 대해 학습하도록 만들기
[243] Deep Learning to help student’s Deep Learning
[234]Fast & Accurate Data Annotation Pipeline for AI applications
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[224]네이버 검색과 개인화
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[213] Fashion Visual Search
[232] TensorRT를 활용한 딥러닝 Inference 최적화
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[223]기계독해 QA: 검색인가, NLP인가?

[2A6]web & health 2.0. 회사에서의 data science란?

  • 1. Web & Health 2.0 회사에서의 데이터 과학 (Data Science) 이란? Data Preparation의 중요성 이현철 (Director of Data Engineering & Science)
  • 2. DEVIEW 2014 MyFitnessPal, Inc. Before MyFitnessPal 3억 이상의 사용자들 Content Understanding & Personalization SNS 회사와 Health 2.0 회사에서 필요로 하는 데이터 과학은 흡사함
  • 3. DEVIEW 2014 MyFitnessPal, Inc. 데이터 과학(Data Science)이란?
  • 4. 데이터 과학(Data Science)을 논의할 때 쉽게 간과하는 부분들 Engineering 적인 요소들 Data Preparation or Data Munging DEVIEW 2014 MyFitnessPal, Inc. 오늘의 주제
  • 5. DEVIEW 2014 MyFitnessPal, Inc. Data Preparation 또는 Data Munging 란? A laborious process of manually extracting, mapping, converting or generally cleaning up data in raw form. Data wranglers use algorithms (a process or set of rules to be followed in calculations or other problem-solving operations, especially by a computer) to parse disparate types of data and fit it into defined structures. The ultimate goal is to prep the data for storage and future use. ! 출처: Data Science 101: Definitions You Need to Know at 7th Annual Media Technology Summit 알고리즘 또는 데이터 서비스 개발의 전단계로, 확보한 데이터의 원형을 사용 하기에 가장 적합한 모습으로 변환시켜 주고 최소한의 품질 보장을 위해 데이 터를 깨끗하게 정리해 주는 단계
  • 6. DEVIEW 2014 MyFitnessPal, Inc. 데이터를 “준비”하는 과정의 필요성 1 집단지성을 통해 축적된 빅데이터의 효율적인 이용을 위해 사례: 건강/다이어트 관련 빅데이터
  • 7. 사례: 유사한 음식들과 철자법이 틀린 음식 이름들 유사한 음식들 틀린 철자법 DEVIEW 2014 MyFitnessPal, Inc. 데이터를 “준비”하는 과정의 필요성 2 비정형 데이터의 노이즈를 제거하기 위해 음식: 자장면 자장면 짜장면 간자짜장 자장컵라면 생짜장면 직화 생짜장 & 짜장먼 면 냉동짜장면 채식 짜장면 일품짜장면 삼선짜장면 … … 실제 데이터
  • 8. DEVIEW 2014 MyFitnessPal, Inc. 데이터를 “준비”하지 않았을 때 일어날 수 있는 문제들 • 데이터 분석 및 통계적인 접근이 원천적으로 어려워짐 ! • 데이터 서비스들의 품질 저하 및 개발의 문제 • 검색, 추천엔진, Analytics등 ! • No Ground-Truth ! • 불필요한 데이터를 처리할 때 발생할 수 있는 효율성의 저하와 비용 문제 ! • 그 외의 수많은 문제들
  • 9. DEVIEW 2014 MyFitnessPal, Inc. 오늘 발표할 내용들 • 비정형 데이터의 노이즈를 제거 하기 • 데이터 Cleaning 사례 소개 • 음식 데이터의 Cleaning, Standardization & De-duplication !!! • 집단지성을 통해 축적된 빅데이터의 효율적인 이용 • Text Classification 사례 소개 • 음식 데이터의 Classification ! Joint work with Aadhar, Joohyun, Jiang, Stu, Serge and others SNS, Content, Web 2.0, Health 2.0등의 회사에서 보편적으로 다루어야 하는 데이터 과학 문제들
  • 10. 데이터 Cleaning 사례 소개 1 음식 데이터의 Cleaning 과 Standardization
  • 11. DEVIEW 2014 MyFitnessPal, Inc. MyFitnessPal에서의 음식 기록 방식 검색 결과에 따라 음식 일지 섭취한 음식을 기록
  • 12. 회사명: McDonald’s 음식 이름: Cheese Burger 국가명: USA DEVIEW 2014 MyFitnessPal, Inc. 음식 데이터의 Cleaning과 Standardization의 예 회사명: Non-Available 음식 이름: My Mcdonnald’s Cheese Burger - USA 국가명: Non-Available 아직 정리 되지 않은 상태 정리된 상태 음식 이름 관련: • Stop-words, punctuations, unnecessary de-limiters의 제거 • 사용자들과 연관된 음식이름 제거/cleaning • 음식 이름에서 국가명 및 음식 이름과 관련이 없 는 내용들은 삭제 • 저속한 단어들 제거 회사명 관련: •Standardize •Normalize •음식 이름에 포함되어 있는 회사명은 제거
  • 13. 음식 데이터의 Cleaning과 Standardization의 구현 방식 1번째 단계 : Cleaning Library 개발 Dictionary Based Heuristic DEVIEW 2014 MyFitnessPal, Inc. •기본적인 “Cleaning” 룰들과 Workflow를 디자인함 •기획자들과의 긴밀한 대화는 필수 •필요한 dictionary와 그에 필요한 자료 구조를 구현 •필요한 regular expression이나 library를 구현 •Parsing/Tokenize할때 자연어 처리 기술의 사용을 고려함 2번째 단계 : 개발한 Cleaning Library를 서비스나 Offline flow 에 embed
  • 14. 고려해야 할 부분들 • 데이터 인프라 (data infrastructure) • Streaming setting에서 on-line으로 처리할 지, 혹은 off-line으로 처리할 지를 결정하는 것이 중요함 • On-line일 경우: message passing을 이용한 infra (e.g. Kafka & Akka Service) 를 고려해 볼 수 있음 ! • Off-line일 경우: Hadoop+Pig 또는 Spark의 사용을 고려 해 볼 수 있음 ! ! • 처리 속도 (computation speed) • 대용량 데이터를 처리함에 있어 library의 속도 및 resource의 DEVIEW 2014 MyFitnessPal, Inc. 공유가 중요함 : dictionary, data model 등
  • 15. 고려해야 할 부분들 - Cont. • 버전 관리 및 Grand-fathering (version control) • 새로운 dictionary나 데이터 모델 그리고 library에 맞게 기존 DEVIEW 2014 MyFitnessPal, Inc. 의 데이터를 변환시켜 주어야 함 ! ! • Internalization(i18n)/Localization(L10n): • 영어 vs 중국어 처리 기술
  • 16. 회사명을 Standardize & Normalize 하기 위한 기본적인 방법 회사명: Mcdonald, Mc Donalds, McDonald 회사명:McDonald's 회사명: Chipotle Restaurant, Chipotle 회사명: Chipotle 아직 정리가 되지 않은 상태 정리된 상태 DEVIEW 2014 MyFitnessPal, Inc. Standardize Normalize Approximation String Matching 문제와 밀접한 관계 ! A. String Similarity의 문제 : 주어진 2개의 다른 문자열(String)의 similarity를 어떻게 찾을 것인가? ! B. Approximate String Matching의 문제 : 문자열 A가 주어 졌을때 가장 비슷한 문자열 B를 어떻게 찾을 수 있는가?
  • 17. 문자열(String)들을 비교할 때 사용될 수 있는 Similarity Measures DEVIEW 2014 MyFitnessPal, Inc. ! •Jaccard Similarity ! •Hamming Distance ! •Edit Distance (Damerau­–Levenshtein distance) •Dynamic Programming방식을 사용함 •가장 보편적인 방식 ! •Smith­–Waterman Distance •생명과학쪽에서 많이 사용함 •바이오의 유명한 BLAST에 사용됨 ! •etc. !
  • 18. DEVIEW 2014 MyFitnessPal, Inc. Approximate String Matching 문제 (NN-Search) 사용 가능한 방식 1 ! •Tree/Trie를 사용하는 방식 •Radix Tree를 사용 •Time Complexity를 O(dnk)에서 O(dn log(k))로 획기적으로 줄일 수 있음 ! 여기서 ! •n=대조해 보고자 하는 문자열(string) 수 •d=주어진 문자열 (string) 의 글자 수 •k=문자열(string) 길이의 평균 값
  • 19. Approximate String Matching 문제 (NN-Search) - Cont. DEVIEW 2014 MyFitnessPal, Inc. 사용 가능한 방식 2 •Dimension Reduction 방식 •Locality Sensitive Hashing 같은 방법들을 사용 ! •Time complexity를 constant time 즉 O(k+d)로 줄일 수 있음 •Text에 사용하기에는 한계가 있음 •False positives의 가능성
  • 20. DEVIEW 2014 MyFitnessPal, Inc. 고려해야 할 부분들 ! • 사용되어질 다양한 자료 구조들의 concurrency 부분들에 대해서 신경을 써야함. • 예: Google에서 개발한 concurrent tree library를 사용함 ! • Metric의 정의 • Data Scientist가 되기 위한 필수 조건 • Communication 스킬이 중요함
  • 21. DEVIEW 2014 MyFitnessPal, Inc. 음식 데이터 Cleaning 결과 ! •회사명 개수를 25%으로 줄이는 데 성공 ! •25%-35%의 음식 아이템들을 “적합” 한 새로운 모습으로 변환 시킴 성공!
  • 22. DEVIEW 2014 MyFitnessPal, Inc. 데이터 Cleaning 결과를 검색에 적용했을 때 1 Brand Misspellings/Errors “mcdonals” Before After
  • 23. Not so good Better DEVIEW 2014 MyFitnessPal, Inc. 데이터 Cleaning 결과를 검색에 적용했을 때 2 검색 성능 개선 Before After
  • 24. 데이터 Cleaning 사례 소개 2 음식 데이터의 De-duplication
  • 25. DEVIEW 2014 MyFitnessPal, Inc. 음식 데이터의 De-duplication이란? 채식짜장면 자장면 짜장면 생짜장면 간짜장면 짬뽕 잠뽕 짬뽕면 자장면 짬뽕 삼선짬뽕 삼선짜장 짜파게티 De-duplication 과 Clustering는 다름 (semantics 접근하고는 다름)
  • 26. DEVIEW 2014 MyFitnessPal, Inc. Near De-duplication의 간략한 역사 • 웹페이지, 전자 상거래 데이터, 의료 데이터, 주식시장 데이터, 기 상 데이터 등에서 de-duplication문제를 해결하기 위해 다양한 방법들이 동원 되어 왔음 ! • De-duplication을 풀기 위해 필요한 similarity를 정의 하는 방 법중에 가장 쉽고 보편적으로 사용되는 방식은 k-shingling 방식 ! • De-duplication 하려는 아이템의 종류에 따른 접근 방식 • 유럽권 언어를 기초로 한 텍스트를 다룰 때에는 spotsig을 사 용하면 성능이 여러가지로 개선됨 • 멀티미디어 데이터들에서는 다양한 dimension reduction 방 법들 중 Locality Sensitive Hashing 접근들이 인기 (SimHash,MinHash, etc)
  • 27. DEVIEW 2014 MyFitnessPal, Inc. Shingling을 이용한 de-duplication 문자열 A=McDonald Cheese Burger 문자열 B=McDonald Cheese Burger with Onions ! Fingerprints를 가지고 문자열들을 비교 할 수 있음 ! • K-Shingles 들을 문자열들로부터 만들기 • K-bit (e.g. 64) fingerprints들을 만들기 • 그렇게 해서 만들어진 fingerprints들을 가지고 문자열들의 similarity들을 계산할 수 있음 ! 가장 보편적으로 사용할 수 있는 De-duplication algorithm 방식은 greedy algorithm을 incrementally하게 적용 하는 방식. ! • near real-time으로 구현하기 위해 적합 K-Shingles(A)={McDonald Cheese, Cheese Burger} K-Shingles(B)={McDonald Cheese, Cheese Burger, Burger Onions} 비교하고자 하는 2개의 문자열 비교하고자 하는 2개의 문자열의 K-Shingles
  • 28. DEVIEW 2014 MyFitnessPal, Inc. De-duplication을 구현할 때 고려해야 할 부분들 • 음식 아이템들은 짧은 텍스트이기에 shingle의 사이즈는 그렇게 중요하지 않음 !! • 처리해야 할 데이터의 양이 늘어 날수록 shingling 방법이 충분하지 않을 수 있음. ! • on-line greedy 방식으로 구현하게 되면 shingles, duplicate data info 데이 터들을 색인하는 속도와 Look-up 속도가 급속도로 (exponentially) 느려짐. ! • 1억 단위의 문자열들을 처리하기에는 확장성의 한계가 있음
  • 29. De-duplication을 구현할 때 고려해야 할 부분들 - cont. DEVIEW 2014 MyFitnessPal, Inc. ! • 최적화된 similarity 값을 찾는 것은 쉽지 않음. • 특별히 문자열에 관한 데이터만을 이용해서 Near duplicates을 가지고 찾을 때 에는 한계가 분명이 있음. • 예: McDonald Cheese Burger vs McDonald Cheese Burger with Onions, Lettuce, Cheese, Pickles, Catchup ! ! • 그래서 생각해 볼 수 있는 것이 dimension reduction의 접근 • Locality Sensitive Hashing
  • 30. Locality Sensitive Hashing (LSH)의 기본적인 아이디어 DEVIEW 2014 MyFitnessPal, Inc. • N개의 아이템들을 n차원 공간 속의 벡터들로 취급 ! • n차원 공간안에, k개의 hyper-plane들을 임의 (randomly)로 만든다 ! • 모든 hyper-plane을 상대로: • 아이템이 hyper-plane의 상위에 존재하는지 (1로 표현) 아니면 하위에 존재하는지 (0으로 표현) 를 물어 본다. ! ! • 여기서 중요한 것은 어떻게 hyper-plane을 임의 로 만들어 낼 수 있느냐 아이템 1 아이템 2 h1 h2 h3 n=2 , k =3 Hash(아이템 1) = 011 Hash(아이템 2) = 001
  • 31. DEVIEW 2014 MyFitnessPal, Inc. LSH + Shingling • 음식 아이템의 “영양 정보”를 이용함 • 음식의 영양 정보를 벡터로 취급함 영양정보 벡터에 1차로 LSH 를 적용하여 비 슷한 음식들끼리 1차로 분류함 ! 1단계 1차의 결과들을 shingling을 이용한 de-duplication으로 다시 처리 ! 2단계 벡터의 Dimension이 Finite하기 때문에 가능
  • 32. DEVIEW 2014 MyFitnessPal, Inc. De-duplication 결과를 검색에 적용 했을 때 검색 결과 개선 Before After
  • 33. 빅데이터의 효율적 이용 음식 데이터의 Classification
  • 34. 음식 데이터의 classification (supervised learning 문제) Dairy Eggs and Cheese Bread, Cereal, Rice, and Pasta Meat, Poultry, Fish, Dry Bean, Eggs, Nuts DEVIEW 2014 MyFitnessPal, Inc. Beverages Snacks and Candy Fruits Vegetables 음식 아이템을 다양한 음식 종류로 분류하기 음식 종류에 따라 분류 Classify 이런 문제를 Multi-Label Classification 이라고 함
  • 35. DEVIEW 2014 MyFitnessPal, Inc. 기계 학습(Machine Learning)의 기본 workflow 학습 데이터 학습 모델 실제 데이터 분류 Classification을 하는 기본적인 방식 • 학습 데이터의 확보가 문제! • 학습 데이터 양의 문제 • 학습 데이터 질의 문제 • Clean한 데이터를 확보 하는 것이 중요함 ! • 데이터 => 성능
  • 36. 학습 데이터 학습 DEVIEW 2014 MyFitnessPal, Inc. + Naive Bayes SVM Decision Trees KNN Ensemble Methods … 기본적인 접근 방식 다양한 알고리즘 사람이 직접 하기 Crowd-Sourcing 서비스 이용 OR
  • 37. 400만개가 넘는 음식 DB! + 고려해 볼 수 있는 방법이 Semi-Supervised Learning 방식의 접근 또는 Representation Learning의 접근 방식 (딥러닝이 가장 좋은 예) DEVIEW 2014 MyFitnessPal, Inc. 대용량 기계 학습 빅데이터 기계 학습
  • 38. DEVIEW 2014 MyFitnessPal, Inc. 빅데이터를 가지고 학습 데이터 만들기 •Word2Vec이라는 기술을 이용하여 문자열(string)들의 상호 관계성을 계산함 •Deep learning적인 접근 방법 ! •문자열(string)들의 상호 관계성을 가지고 좀 더 rich한 feature vector를 만듬 • Transductive SVM을 Big Data로 구현함 •90% 이상의 accuracy를 자랑함 (20% 이상의 성능 개선) •Word2Vec이나 transductive SVM 기술을 이용할 때 데이터를 cleaning하고 standardize 하는 것이 아주 중요함
  • 39. DEVIEW 2014 MyFitnessPal, Inc. 고려해야 할 부분들 • 특화된 cleaning과 standardization 방식의 문제 ! ! • 정화된 데이터를 feature로 전환하는 방식의 문제 ! ! • 학습 데이터를 빅데이터에서 sampling 하는 부분 ! ! • 학습 데이터의 양을 최적화 하는 부분
  • 40. 결론 • 데이터 과학 (data science) 에서 중요한 영역 중 하나 가 data preparation 분야 ! ! • 알고리즘과 heuristic 방식들을 적절하게 섞어서 사용하 는 것이 중요 (intuition이 중요) ! ! • Engineering 접근과 science 접근의 적절한 조화 ! ! • 기획자들과의 소통이 중요함 DEVIEW 2014 MyFitnessPal, Inc.
  • 41. Q & A