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

41
Web & Health 2.0 회사에서의 데이터 과학 (Data Science) 이란? 이현철 ( Director of Data Engineering & Science) Data Preparation 중요성

Upload: naver-d2

Post on 15-Apr-2017

3.641 views

Category:

Technology


4 download

TRANSCRIPT

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

Web & Health 2.0 회사에서의 데이터 과학 (Data Science) 이란?

이현철(Director of Data Engineering & Science)

Data Preparation의중요성

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

MyFitnessPal, Inc.DEVIEW 2014

Before MyFitnessPal

Content Understanding & Personalization

SNS 회사와 Health 2.0 회사에서 필요로 하는 데이터 과학은 흡사함

3억 이상의 사용자들

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

MyFitnessPal, Inc.DEVIEW 2014

데이터 과학(Data Science)이란?

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

MyFitnessPal, Inc.DEVIEW 2014

데이터 과학(Data Science)을 논의할 때 쉽게 간과하는 부분들

Engineering 적인 요소들

Data Preparation or Data Munging

오늘의 주제

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

MyFitnessPal, Inc.DEVIEW 2014

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

알고리즘 또는 데이터 서비스 개발의 전단계로, 확보한 데이터의 원형을 사용하기에 가장 적합한 모습으로 변환시켜 주고 최소한의 품질 보장을 위해 데이터를 깨끗하게 정리해 주는 단계

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

MyFitnessPal, Inc.DEVIEW 2014

데이터를 “준비”하는 과정의 필요성 1

집단지성을 통해 축적된 빅데이터의 효율적인 이용을 위해

사례: 건강/다이어트 관련 빅데이터

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

MyFitnessPal, Inc.DEVIEW 2014

음식: 자장면

자장면짜장면

간자짜장자장컵라면생짜장면

직화 생짜장 & 짜장먼 면냉동짜장면채식 짜장면일품짜장면삼선짜장면

……

실제 데이터

데이터를 “준비”하는 과정의 필요성 2

비정형 데이터의 노이즈를 제거하기 위해

사례: 유사한 음식들과 철자법이 틀린 음식 이름들

틀린 철자법유사한 음식들

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

MyFitnessPal, Inc.DEVIEW 2014

데이터를 “준비”하지 않았을 때 일어날 수 있는 문제들

• 데이터 분석 및 통계적인 접근이 원천적으로 어려워짐!

• 데이터 서비스들의 품질 저하 및 개발의 문제

• 검색, 추천엔진, Analytics등!

• No Ground-Truth!

• 불필요한 데이터를 처리할 때 발생할 수 있는 효율성의 저하와 비용 문제!

• 그 외의 수많은 문제들

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

MyFitnessPal, Inc.DEVIEW 2014

오늘 발표할 내용들

• 비정형 데이터의 노이즈를 제거 하기• 데이터 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등의 회사에서 보편적으로 다루어야 하는 데이터 과학 문제들

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

데이터 Cleaning 사례 소개 1

음식 데이터의 Cleaning 과 Standardization

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

MyFitnessPal, Inc.DEVIEW 2014

MyFitnessPal에서의 음식 기록 방식

섭취한 음식을 기록음식 일지

검색 결과에 따라

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

MyFitnessPal, Inc.DEVIEW 2014

음식 데이터의 Cleaning과 Standardization의 예

회사명: Non-Available음식 이름: My Mcdonnald’s Cheese Burger - USA국가명: Non-Available

아직 정리 되지 않은 상태 정리된 상태

회사명: McDonald’s음식 이름: Cheese Burger국가명: USA

음식 이름 관련:• Stop-words, punctuations, unnecessary

de-limiters의 제거• 사용자들과 연관된 음식이름 제거/cleaning• 음식 이름에서 국가명 및 음식 이름과 관련이 없

는 내용들은 삭제• 저속한 단어들 제거

회사명 관련:•Standardize•Normalize•음식 이름에 포함되어 있는 회사명은 제거

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

MyFitnessPal, Inc.DEVIEW 2014

Dictionary Based Heuristic

•기본적인 “Cleaning” 룰들과 Workflow를 디자인함

•기획자들과의 긴밀한 대화는 필수

•필요한 dictionary와 그에 필요한 자료 구조를 구현

•필요한 regular expression이나 library를 구현

•Parsing/Tokenize할때 자연어 처리 기술의 사용을 고려함

1번째 단계 : Cleaning Library 개발

음식 데이터의 Cleaning과 Standardization의 구현 방식

2번째 단계 : 개발한 Cleaning Library를 서비스나 Offline flow 에 embed

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

MyFitnessPal, Inc.DEVIEW 2014

• 데이터 인프라 (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의

공유가 중요함 : dictionary, data model 등

고려해야 할 부분들

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

MyFitnessPal, Inc.DEVIEW 2014

• 버전 관리 및 Grand-fathering (version control)• 새로운 dictionary나 데이터 모델 그리고 library에 맞게 기존

의 데이터를 변환시켜 주어야 함 !!

• Internalization(i18n)/Localization(L10n): • 영어 vs 중국어 처리 기술

고려해야 할 부분들 - Cont.

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

MyFitnessPal, Inc.DEVIEW 2014

회사명: Mcdonald, Mc Donalds, McDonald 회사명:McDonald's

회사명: Chipotle Restaurant, Chipotle 회사명: Chipotle

Standardize

Normalize

Approximation String Matching 문제와 밀접한 관계!

A. String Similarity의 문제 : 주어진 2개의 다른 문자열(String)의 similarity를 어떻게 찾을 것인가?

!B. Approximate String Matching의 문제 : 문자열 A가 주어 졌을때

가장 비슷한 문자열 B를 어떻게 찾을 수 있는가?

회사명을 Standardize & Normalize 하기 위한 기본적인 방법

아직 정리가 되지 않은 상태 정리된 상태

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

MyFitnessPal, Inc.DEVIEW 2014

문자열(String)들을 비교할 때 사용될 수 있는 Similarity Measures

!•Jaccard Similarity!

•Hamming Distance!

•Edit Distance (Damerau­–Levenshtein distance)•Dynamic Programming방식을 사용함•가장 보편적인 방식!

•Smith­–Waterman Distance•생명과학쪽에서 많이 사용함•바이오의 유명한 BLAST에 사용됨!

•etc.!

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

MyFitnessPal, Inc.DEVIEW 2014

Approximate String Matching 문제 (NN-Search)

!•Tree/Trie를 사용하는 방식

•Radix Tree를 사용•Time Complexity를 O(dnk)에서

O(dn log(k))로 획기적으로 줄일 수 있음

!여기서 !•n=대조해 보고자 하는 문자열(string) 수 •d=주어진 문자열 (string) 의 글자 수•k=문자열(string) 길이의 평균 값

사용 가능한 방식 1

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

MyFitnessPal, Inc.DEVIEW 2014

Approximate String Matching 문제 (NN-Search) - Cont.

•Dimension Reduction 방식•Locality Sensitive Hashing 같은 방법들을 사용

!•Time complexity를 constant time 즉 O(k+d)로

줄일 수 있음•Text에 사용하기에는 한계가 있음•False positives의 가능성

사용 가능한 방식 2

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

MyFitnessPal, Inc.DEVIEW 2014

고려해야 할 부분들

!• 사용되어질 다양한 자료 구조들의 concurrency 부분들에 대해서

신경을 써야함. • 예: Google에서 개발한 concurrent tree library를 사용함!

• Metric의 정의• Data Scientist가 되기 위한 필수 조건• Communication 스킬이 중요함

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

MyFitnessPal, Inc.DEVIEW 2014

음식 데이터 Cleaning 결과

!•회사명 개수를 25%으로 줄이는 데 성공 !

•25%-35%의 음식 아이템들을 “적합”한 새로운 모습으로 변환 시킴

성공!

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

MyFitnessPal, Inc.DEVIEW 2014

데이터 Cleaning 결과를 검색에 적용했을 때 1

Before After

Brand Misspellings/Errors “mcdonals”

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

MyFitnessPal, Inc.DEVIEW 2014

데이터 Cleaning 결과를 검색에 적용했을 때 2

Before After

검색 성능 개선

Not so good Better

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

데이터 Cleaning 사례 소개 2

음식 데이터의 De-duplication

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

MyFitnessPal, Inc.DEVIEW 2014

음식 데이터의 De-duplication이란?

자장면

짜장면

간짜장면

생짜장면짬뽕 잠뽕

짬뽕면

자장면

짬뽕

De-duplication 과 Clustering는 다름(semantics 접근하고는 다름)

채식짜장면삼선짬뽕

삼선짜장

짜파게티

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

MyFitnessPal, Inc.DEVIEW 2014

Near De-duplication의 간략한 역사

• 웹페이지, 전자 상거래 데이터, 의료 데이터, 주식시장 데이터, 기상 데이터 등에서 de-duplication문제를 해결하기 위해 다양한 방법들이 동원 되어 왔음!

• De-duplication을 풀기 위해 필요한 similarity를 정의 하는 방법중에 가장 쉽고 보편적으로 사용되는 방식은 k-shingling 방식!

• De-duplication 하려는 아이템의 종류에 따른 접근 방식• 유럽권 언어를 기초로 한 텍스트를 다룰 때에는 spotsig을 사

용하면 성능이 여러가지로 개선됨• 멀티미디어 데이터들에서는 다양한 dimension reduction 방

법들 중 Locality Sensitive Hashing 접근들이 인기 (SimHash,MinHash, etc)

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

MyFitnessPal, Inc.DEVIEW 2014

Shingling을 이용한 de-duplication

!Fingerprints를 가지고 문자열들을 비교 할 수 있음!

• K-Shingles 들을 문자열들로부터 만들기• K-bit (e.g. 64) fingerprints들을 만들기• 그렇게 해서 만들어진 fingerprints들을 가지고 문자열들의 similarity들을 계산할 수 있음!

가장 보편적으로 사용할 수 있는 De-duplication algorithm 방식은 greedy algorithm을 incrementally하게 적용 하는 방식. !

• near real-time으로 구현하기 위해 적합

문자열 A=McDonald Cheese Burger

문자열 B=McDonald Cheese Burger with Onions

K-Shingles(A)={McDonald Cheese, Cheese Burger}

K-Shingles(B)={McDonald Cheese, Cheese Burger, Burger Onions}

비교하고자 하는 2개의 문자열 비교하고자 하는 2개의 문자열의 K-Shingles

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

MyFitnessPal, Inc.DEVIEW 2014

De-duplication을 구현할 때 고려해야 할 부분들

• 음식 아이템들은 짧은 텍스트이기에 shingle의 사이즈는 그렇게 중요하지 않음!!

• 처리해야 할 데이터의 양이 늘어 날수록 shingling 방법이 충분하지 않을 수 있음. !

• on-line greedy 방식으로 구현하게 되면 shingles, duplicate data info 데이터들을 색인하는 속도와 Look-up 속도가 급속도로 (exponentially) 느려짐. !

• 1억 단위의 문자열들을 처리하기에는 확장성의 한계가 있음

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

MyFitnessPal, Inc.DEVIEW 2014

De-duplication을 구현할 때 고려해야 할 부분들 - cont.

!• 최적화된 similarity 값을 찾는 것은 쉽지 않음.• 특별히 문자열에 관한 데이터만을 이용해서 Near duplicates을 가지고 찾을 때

에는 한계가 분명이 있음.• 예: McDonald Cheese Burger vs McDonald Cheese Burger with

Onions, Lettuce, Cheese, Pickles, Catchup !!

• 그래서 생각해 볼 수 있는 것이 dimension reduction의 접근 • Locality Sensitive Hashing

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

MyFitnessPal, Inc.DEVIEW 2014

Locality Sensitive Hashing (LSH)의 기본적인 아이디어

• 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) = 011Hash(아이템 2) = 001

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

MyFitnessPal, Inc.DEVIEW 2014

LSH + Shingling

• 음식 아이템의 “영양 정보”를 이용함• 음식의 영양 정보를 벡터로 취급함

영양정보 벡터에 1차로 LSH 를 적용하여 비슷한 음식들끼리 1차로 분류함

!1단계

1차의 결과들을 shingling을 이용한 de-duplication으로 다시 처리

!2단계

벡터의 Dimension이 Finite하기 때문에 가능

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

MyFitnessPal, Inc.DEVIEW 2014

De-duplication 결과를 검색에 적용 했을 때

Before After

검색 결과 개선

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

빅데이터의 효율적 이용

음식 데이터의 Classification

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

MyFitnessPal, Inc.DEVIEW 2014

음식 데이터의 classification (supervised learning 문제)

음식 아이템을 다양한 음식 종류로 분류하기

Beverages

Snacks and Candy

Fruits

Vegetables

Dairy Eggs and Cheese

Bread, Cereal, Rice, and Pasta

Meat, Poultry, Fish, Dry Bean, Eggs, Nuts

음식 종류에 따라분류

Classify

이런 문제를 Multi-Label Classification 이라고 함

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

MyFitnessPal, Inc.DEVIEW 2014

기계 학습(Machine Learning)의 기본 workflow

학습 데이터 학습 모델 실제 데이터 분류

Classification을 하는 기본적인 방식

• 학습 데이터의 확보가 문제!• 학습 데이터 양의 문제 • 학습 데이터 질의 문제

• Clean한 데이터를 확보 하는 것이 중요함!

• 데이터 => 성능

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

MyFitnessPal, Inc.DEVIEW 2014

학습 데이터 학습

+

Naive BayesSVMDecision TreesKNNEnsemble Methods…

기본적인 접근 방식

다양한 알고리즘

사람이 직접 하기

Crowd-Sourcing 서비스 이용

OR

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

MyFitnessPal, Inc.DEVIEW 2014

고려해 볼 수 있는 방법이 Semi-Supervised Learning 방식의 접근 또는 Representation Learning의 접근 방식 (딥러닝이 가장 좋은 예)

대용량 기계 학습

빅데이터

기계 학습

+

400만개가 넘는 음식 DB!

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

MyFitnessPal, Inc.DEVIEW 2014

빅데이터를 가지고 학습 데이터 만들기

•Word2Vec이라는 기술을 이용하여 문자열(string)들의 상호 관계성을 계산함•Deep learning적인 접근 방법!

•문자열(string)들의 상호 관계성을 가지고 좀 더 rich한 feature vector를 만듬

• Transductive SVM을 Big Data로 구현함

•90% 이상의 accuracy를 자랑함 (20% 이상의 성능 개선)

•Word2Vec이나 transductive SVM 기술을 이용할 때 데이터를 cleaning하고 standardize 하는 것이 아주 중요함

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

MyFitnessPal, Inc.DEVIEW 2014

고려해야 할 부분들

• 특화된 cleaning과 standardization 방식의 문제!!

• 정화된 데이터를 feature로 전환하는 방식의 문제!!

• 학습 데이터를 빅데이터에서 sampling 하는 부분!!

• 학습 데이터의 양을 최적화 하는 부분

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

MyFitnessPal, Inc.DEVIEW 2014

결론

• 데이터 과학 (data science) 에서 중요한 영역 중 하나가 data preparation 분야!!• 알고리즘과 heuristic 방식들을 적절하게 섞어서 사용하

는 것이 중요 (intuition이 중요) !!• Engineering 접근과 science 접근의 적절한 조화!!• 기획자들과의 소통이 중요함

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

Q & A