Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

인공지능추천시스템 airs개발기_모델링과시스템

11,129 views

Published on

인공지능추천시스템 airs개발기_모델링과시스템

Published in: Technology
  • Hello! Get Your Professional Job-Winning Resume Here - Check our website! https://vk.cc/818RFv
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

인공지능추천시스템 airs개발기_모델링과시스템

  1. 1. 1 인공지능 추천 시스템 AiRS 개발기 : 모델링과 시스템 최재호 AiRS
  2. 2. 2 CONTENTS 1. 추천 모델링이란? 2. 추천 모델 종류와 특징 3. 추천 품질 평가 방법 4. 대규모 추천 시스템 구축의 실제 5. 맺음말
  3. 3. 1.추천 모델링이란? 2. 추천 모델 종류와 특징 3. 추천 품질 평가 방법 4. 대규모 추천 시스템 구축의 실제 5. 맺음말
  4. 4. 1.1 추천 모델링 정의 유저 정보 추천 모델링 로그 데이터 아이템 정보 특정 시점에 유저가 좋아할 만한 아이템의 리스트를 찾는 것
  5. 5. 5 1.2 추천 모델링 고려사항 Key Factors 1. 유저수 2. 아이템수 3. 업데이트 양/주기 4. 모델 복잡도 5. 시스템 성능 vs. *우도할계(牛刀割鷄) 소 잡는 칼로 닭을 잡는다는 뜻
  6. 6. 6 1.3 추천 모델링 난제 아이템수 유저수 서비스 중흥기 서비스 초창기 Sparsity Problem 유저와 아이템 개수가 급증할수록 유저가 실제 소비한 아이템의 비율은 점점 줄어듦 즉, 추천 피드백 정보가 희박해짐 머신러닝/딥러닝 기술로 극복
  7. 7. 7 1.4 추천 모델링 프로세스 로그 분석 모델 선정 품질 평가모델 학습 AB테스트 서비스 적용1 2 3 5 6 44
  8. 8. 1. 추천 모델링이란? 2.추천 모델 종류와 특징 3. 추천 품질 평가 방법 4. 대규모 추천 시스템 구축의 실제 5. 맺음말
  9. 9. 9 2. 추천 모델의 종류 Question. 유저가 좋아할 만한 아이템의 정의가 뭐지? Answer. 추천 모델마다 정의가 달라요 Statistics based Collaborative Filtering Deep Learning 추천이란? 특정 시점에 유저가 좋아할 만한 아이템의 리스트를 찾는 것
  10. 10. 10 2.1 Statistics-based 좋아할 만한 = 통계적으로 유의미한 아이템 세대별 뮤직추천 Chi-Squared Cross-Entropy (KL-divergence) 예상보다 많이 본 분포가 많이 다른 Categorical Continuous
  11. 11. 11 2.1 Statistics-based Chi-Squared 개념과 활용 예측치 관측치 유저가 소비한 아이템의 예측치와 실제로 소비한 관측치의 차이를 이용 예상보다 많이 본 절대값보다는 상대적인 변화량에 주목 것이므로, Categorical Variable
  12. 12. 12 2.1 Statistics-based Cross-Entropy 개념과 활용 KL-Divergence 란? 관측치 Continuous Variable 보통 ML에서 loss function으로 사용 (c.f., 관측 엔트로피를 추가하면 KLD를 쓰는 것과 동일)예측치 분포가 많이 다른 유의미한 추천 아이템으로 활용가 능 경우 관측 엔트로피
  13. 13. 13 2.2 Collaborative Filtering 좋아할 만한 = 나와 비슷한 유저가 좋아한 아이템 User-based Item-based U1 U2 U3 D1 D2 D3 Neighborhood models 유저-유저, 아이템-아이템간의 Similarity (유사도) 구하는 문제 {U2:1} {U3:2, U1:1} {U2:2} {D3:2} {D2:2, D1:1} {D2:1, D3:1}함께 본 문서수 함께 본 유저수 U1 D2U2 U3 D1 D3
  14. 14. 14 2.2 Collaborative Filtering Co-occurrence 동시에 발생하는 이벤트에 주목하라 PMI (Pointwise Mutual Information) 함께 발생한 빈도와 함께 각 이벤트가 발생할 확률을 함께 고려한 정보량 (부록1 참고) Cosine similarity Jaccard index 교집합벡터의 내적 기존 방법
  15. 15. 15 2.2 Collaborative Filtering V W H X ≈ D1 D2 D3 D4 D5 D1 D2 D3 D4 D5 U1 U2 U3 U4 U5 U6 U1 U2 U3 U4 U5 U6 Latent factor 유저와 아이템간의 상호작용 데이 터기반으로 은닉인자를 추정 Matrix factorization models
  16. 16. 16 2.2 Collaborative Filtering Matrix factorization models Loss function Prediction 오차=(관측치-예측치) L2 
 regularization - 계산량이 많고 학습 속도가 느림 - missing data를 negative 샘플로 사용 wALS ALS: Alternating Least Squares 속도, 정확도 ALS + Weighting scheme Limitations
  17. 17. 2.3 Deep Learning 좋아할 만한 = 나의 컨텍스트 벡터와 가까운 아이템 Non-linear models U1={0.5, -2.0, 3.1, 0.42, …} D1={-1.2, 0.1, 0.9, -0.2, …} Neural Networks 인공신경망을 통한 유저-아이템 관계 추론
  18. 18. 2.3 Deep Learning RNN for News Recommendation 유저가 본 문서 시퀀스 1. 신규 뉴스의 경우 유저 로그가 없는 상태임 2. RNN을 통해 학습된 유저 임베딩 정보를 활용 3. 유저-문서간 벡터연산을 통해 뉴스를 추천 Document Sequence Doc2Vec LSTM Layer RecVec 유저가 볼 문서를 예측 유저의 문서 소비 패턴을 보고 추천
  19. 19. 19 CIKM 2017 Nov. in Singapore 여기서 잠깐!
  20. 20. 2.3 Deep Learning Word Embeddings d1 d2 d3 인공지능 추천 시스템 AiRS 개발기 모델링 시스템 최재호 DEVIEW2017 Convolutional Layer Max pooling FC layer (dropout + softmax) unanimity check 유저가 본 문서 어떤 토픽인지 판별 문서내 단어들의 배열을 보고 주제를 추론CNN for Deep Topic Tagger (부록2 참고)
  21. 21. 2.3 Deep Learning Doc. Text Doc. Image User-Doc Sequence sequence gende age body image author time location … ReLU ReLU user RNN CNN softmax training Deep CF models item 다양한 NNs을 조합한 CF 모델
  22. 22. 22 2.4 추천 모델 특징 비교 Statistics based Collaborative Filtering Deep Learning Similarity Missing data Categorica Continuou Non-linearity Neural Nets + CF Chi-squared KL-Divergence Neighborhood Matrix Factorization RNN/CNN Deep CF 통계-확률 선형-비선형
  23. 23. 1. 추천 모델링이란? 2. 추천 모델 종류와 특징 3.추천 품질 평가 방법 4. 대규모 추천 시스템 구축의 실제 5. 맺음말
  24. 24. 24 3.1 추천 품질 평가 요소 Accuracy : 유저가 실제 소비한 아이템이 상위에 추천되는지 Diversity : 다양한 주제/유형의 아이템이 잘 추천되는지 Novelty : 새로 나온 최신의 아이템이 잘 추천되는지 추천의 만족도 Accuracy Diversity Novelty 추천모델의 성능 Starvation 문제 해결
  25. 25. 25 3.2 추천 모델 평가 방법 오프라인과 온라인 테스트를 병행하여 장기적인 관점에서 평가 오프라인 정량평가 온라인 A/B 테스트 비용이 적게 든다 (low cost) 비용이 많이 든다 (high cost) 특정 모델간 비교 평가 (specific) 유저 관심사 고정 (static) 유저 관심사 변화 (dynamic) 전체 모델간 비교 평가 (general) 실서비스 적용 여부 결정온라인 테스트 모델 선정
  26. 26. 26 3.3 추천 모델 평가 지표 추천모델의 기대효과에 따라 지표를 선정하고 시간별 추이를 관찰 추천모델 정확도 평가지표 실서비스 만족도 평가지표 Precision/Recall@N 유저별 클릭수/CTR 신규 아이템 회전율 F-score/AUROC 유저별 총 체류시간 nDCG/MRR 추천 후보를 잘 찾는가? 상단에 잘 랭킹하는가? 유저가 얼마나 소비하는가? 아이템이 골고 루 nDCG : normalized Discounted Cumulative Gain AUROC : Area Under the Receiver Operating Characteristic curve MRR : Mean Reciprocal Rank CTR : Click-Though Rate
  27. 27. 0.055 0.222 0.266 0.310 + + 27 3.4 추천 모델 평가 결과 Statistics based Neighborhood Model Computing Cost Recall@10k Matrix Factorization Deep Learning
  28. 28. 1. 추천 모델링이란? 2. 추천 모델 종류와 특징 3. 추천 품질 평가 방법 4.대규모 추천 시스템 구축의 실제 5. 맺음말
  29. 29. 4.1 추천 시스템 구축 요구사항 얼마나 많은 데이터를 얼마나 빠르게 업데이트 할 것인가 Throughput 추천 시스템 ScalabilityLatency 1. 네이버 메인 트래픽 10,000 TPS 이상 2. 네이버 액티브 유저 수천만명 개인화 서빙 3. 다양한 추천 서비스에 지속적인 확대 적용
  30. 30. 4.2 추천 시스템 아키텍쳐 Data Warehouse Cuve
 kafka / Processing Cluster(C3, Brew-K) H B A S E slider A M B A R I Airflow HDFS HIVE spark H B A S E C A N A C A N A S T O R M DDK D O T Z E P P E L I N slider A M B A R I HDFS H B A S E C A N A Yarn D O T O P E N T S D B G R A F A N A Serving Cluster(Brew-C) Yarn 대규모 데이터를 실시간 처리 가능한 클러스터들의 조합 Cluster View
  31. 31. 4.2 추천 시스템 아키텍쳐 오픈소스와 네이버 솔루션의 오케스트레이션 log feedbac Cuve HBase Kafka CANA DDK nBase-ARC ... storm HBase batch stream Airflow hive spark tez M/R spark Scheduling Realtime update Batch update All containers, All instances C3 / C3 DL Monitor grafana OpenTSDB TCollector HBase coll DOT RAS Data Flow G G A T E W A Y https://deview.kr/2016/schedule/135 검색엔진 Dot의 내부 https://deview.kr/2017/schedule/193 멀티테넌트 하둡 클러스터 운영 경험기 https://deview.kr/2017/schedule/188 HBase 기반 검색 데이터 저장소 https://www.slideshare.net/deview/244-52781290 분산 환경에서 스트림과 배치 처리 통합 모델 *Cuve *C3 *DOT *DDK
  32. 32. 32 4.3 추천 시스템 구축 노하우 Keywords ContainerizationResearch+DevOps 유저 데이터를 분석하고 추천모델을 선정 및 학습하는 과정과 실서비스 개발 및 운영하는 과정을 통합 정제 및 서빙에 필요한 서버들을 컨테이너화 함으로써 확장성과 장애대처에 용이하도록 설계 Productivity Scalability
  33. 33. 33 4.3.1 Agile Development Language & Tool 통합 데이터 분석 및 추천 모델링에 사용하는 언어와 도구를 실서비스 투입이 가능하도록 통합 Airflow (scheduler), Hive (data warehouse), Spark (big data processing engine) Hadoop YARN (distributed cluster resource manager) Slider (an application to deploy existing distributed applications on Yarn cluster) OpenTSDB/Grafana (a scalable, distributed monitoring system) DOT (distributed incremental search engine) DDK/Cana (event-driven near-realtime severless compute solution) C3 (PaaS, Hadoop cluster), Cuve (PaaS, HBase, Kafka), nBase-ARC (PaaS, Redis Cluster) Airflow Hive Spark Hadoop YARN Slider OpenTSDB/Grafana DOT DDK/Cana C3 Cuve nBase-ARC
  34. 34. 34 4.3.2 Seamless Interface Cuve-Hive-DOT (c.f., HBase-Hive-Redis) 모델링 코드가 그대로 서빙 시스템에 이식될 수 있도록 시스템간 인터페이스 추상화 구현
  35. 35. 35 4.3.3 Data Catalog & Reusability Hive (Meta store) 카탈로그 기반 데이터 뷰 column type desc value id string encrypted id 1234 bcookie string browser cookie CG7GYVQMI4TFQ gdid string document id 98155edc_7b4148fe13c83f2 url string document url blog.naver.com/bbbananas/ referrer string referrer url search.naver.com demo string demographic group M40_44 query string search query a3 2016 time int access time 1486996936 duration int duration time 3230 TABLE gdid_histogram.lcs_point (PARTITIONED BY (ds STRING, ts STRING)
  36. 36. 36 4.3.4 효율적인 Task Scheduling Airflow DAGs 기반 관리 여러 추천서비스에서 공유가능 Sensor 활용
  37. 37. 37 4.3.5 Batch Job Latency Trade-off Spark vs Hive (on MR) 약 10분 소요 약 1시간 50분 소요 Low latency batch job Spark를 이용하자 1. shuffle job 2. resource 할당 3. disk I/O 단, 중간데이터 남음
  38. 38. 4.3.6 컨테이너화를 통한 Ops 효율화 서버 장애 등의 상황에 자동 failover 및 급증하는 트래픽에 대한 scailability 확보 Airflow scheduler / web 서버는 Slider를 통해 실행 Yarn Airflow Scheduler 내년 오픈소스화 예정
  39. 39. 1. 추천 모델링이란? 2. 추천 모델 종류와 특징 3. 추천 품질 평가 방법 4. 대규모 추천 시스템 구축의 실제 5.맺음말
  40. 40. 정리하면... 내 서비스에 딱 맞는 추천을 만들기 위해선, 충분한 데이터 탐색을 통한 유저와 아이템 분석 다양한 추천 모델을 비교하고 제대로 평가하기 위해선, 확률통계 및 머신/딥러닝 기술 적용과 올바른 평가지표 활용 Throughput, Latency, Scalability 라는 3마리 토끼를 잡기 위해선, 대규모 정제/서빙 시스템에 대한 깊은 이해와 협업정신
  41. 41. Q & A
  42. 42. 42 Thank you
  43. 43. 43 Normalized PMI 최대값은 1 함께 관측이 전혀 안될 때 독립적으로 관측될 때 항상 함께 관측될 때 : : : 부록. 1
  44. 44. 44 부록. 2 Depth-1 Depth-2 Depth-3 IT/Tech 인공지능 알파고 건강/운동 다이어트 뱃살운동 게임 모바일게임 모바일rpg 디자인 공간디자인 의자디자인 Done Accuracy Doc2Vec + DNN D1 분류 (3 hidden layer) D1: 78% + Data up-sampling (minor class) D1: 88% (+8%) + Xavier initializer D1: 93% (+7%) Doc2Vec + DNN D2 분류 D2: 72% Word2Vec + CNN D2 분류 D2: 83% (+11%) + Data cleansing (multi->single label) D2: 91% (+8%) Word2Vec + CNN D1 분류 D1: 96% (+3%) Word2Vec + CNN D3 분류 D3: 78% + Data synthesis (유사 문서 추가) D3: 85% (+7%) Performance MilestonesTraining Data Labels: Docs: Depth Class Train Docs Test Docs 1 16 495,378 1,440 2 145 2,826,103 1,450 3 386 2,559,014 3,860

×