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

NAVER D2
NAVER D2NAVER D2
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
1 of 41

More Related Content

What's hot(20)

Process for Big Data AnalysisProcess for Big Data Analysis
Process for Big Data Analysis
Myunggoon Choi2.1K views
빅데이터 기본개념빅데이터 기본개념
빅데이터 기본개념
현주 유4.5K views
오픈 데이터와 인공지능오픈 데이터와 인공지능
오픈 데이터와 인공지능
Myungjin Lee886 views
UNUS BEANs 소개서 20141015UNUS BEANs 소개서 20141015
UNUS BEANs 소개서 20141015
YoungMin Jeon1.2K views
빅데이터_ISP수업빅데이터_ISP수업
빅데이터_ISP수업
jrim Choi1.8K views
Meetup historyMeetup history
Meetup history
Mk Kim1.8K views
빅데이터 기술 및 시장동향빅데이터 기술 및 시장동향
빅데이터 기술 및 시장동향
atelier t*h8.9K views
Big Data 대충 알아보기Big Data 대충 알아보기
Big Data 대충 알아보기
iron han1.7K views
Big data 20111203_배포판Big data 20111203_배포판
Big data 20111203_배포판
Hyoungjun Kim4.7K views
2012 빅데이터 big data 발표자료2012 빅데이터 big data 발표자료
2012 빅데이터 big data 발표자료
Wooseung Kim22.6K views

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

데이터를 얻으려는 노오오력데이터를 얻으려는 노오오력
데이터를 얻으려는 노오오력
Youngjae Kim20.1K views
빅데이터전문가교육 2학기빅데이터전문가교육 2학기
빅데이터전문가교육 2학기
Kangwook Lee623 views
Eleven units사업계획서Eleven units사업계획서
Eleven units사업계획서
Sun Kuk Kim2.1K views
Learning dataanalyst 2020oct_yonseiLearning dataanalyst 2020oct_yonsei
Learning dataanalyst 2020oct_yonsei
Isabel Myeongju Han242 views
Big Data OverviewBig Data Overview
Big Data Overview
Keeyong Han2.9K views
digital archivingdigital archiving
digital archiving
Hansung University1.3K views

More from NAVER D2(20)

[235]Wikipedia-scale Q&A[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A
NAVER D21.5K views
[213] Fashion Visual Search[213] Fashion Visual Search
[213] Fashion Visual Search
NAVER D21.5K views

[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