SlideShare a Scribd company logo
1 of 98
Download to read offline
TOROS N2 - lightweight
Approximate k-Nearest Neighbor
library
김성진(nick.kim)
kakao corp.(추천팀)
유사한 아이템
( Nearest Neighbor )
출처: https://brunch.co.kr/@notepetinbnet/88
이 글을 읽은 유저에게 어떤 글을 추천할 수 있을까?
출처: https://brunch.co.kr/@notepetinbnet/88
여러 가지 방법으로 추천할 수 있겠지만,
1. 이 글과 유사한 글을 추천한다.
2. 이 글을 읽은 사람들이 읽은 글을 추천한다.
3.
출처: https://brunch.co.kr/@notepetinbnet/88
이번 발표에서는 1번 케이스에 집중
1. 이 글과 유사한 글을 추천한다.
2. 이 글을 읽은 사람들이 읽은 글을 추천한다.
3.
유사한 글
출처 (왼쪽부터)
- https://brunch.co.kr/@me7686/7
- https://brunch.co.kr/@theka6/323
- https://brunch.co.kr/@caroute/153
유사하지 않은 글
유사한 아이템 찾기
( Nearest Neighbor Search )
벡터 모델
• 각 아이템을 f-차원의 벡터로 표현
• 벡터로 표현하면, 각 아이템 간의 거리를 계산할 수 있음
• 거리 계산이 가능해지면, 거리가 가장 가까운 아이템을 찾으면 됨
벡터로 표현?
• 텍스트
• Word embedding (word2vec, )
• 이미지
• 학습된 네트웤에서 특정 레이어 가져오기
앞의 예시 글들을 2차원 벡터로 표현했다고 하면
[0.2, 0.8] [0.15, 0.7] [0.1, 0.9] [0.7, 0.3]
벡터로 표현된 글들은 2차원 평면에 점으로 그릴 수 있겠죠
각 글 간의 거리를 계산할 수도 있겠죠
거리가 가까우면 유사한 것
0.112
거리가 멀면 유사하지 않은 것
0.707
k개의 유사한 아이템 찾기
( k-Nearest Neighbor Search )
kNN 활용 예시
• 글 A 와 유사한 것 10개 찾아줘
• 유저 B 와 서비스 이용패턴이 비슷한 사람 1000명 찾아줘
=> 유사 아이템(글, 사진, 유저) 찾아야 하는 것을
벡터로 표현 한 뒤, 인접한 이웃을 찾아주면 끝
주어진 임의의 벡터에 대해
k개의 가장 인접한 벡터를 찾는 것
실제로 구하려면 (Brute force version)
모든 아이템과의 거리를 계산한 뒤
가장 거리가 가까운 k개 선택
Brute Force kNN
100차원 벡터 100만개가 있을때
여기서부터
여기까지 수행하는데
AWS c5.4xlarge 기준
0.1초
모든아이템(100만건)의최근접이웃을찾으려면?
> 0.1초 * 100만 = 27.7시간
모든아이템(100만건)의최근접이웃을찾으려면?
> 0.1초 * 100만 = 27.7시간
> 현실적으로 사용 불가능
Brute force보다 빠른 속도로 찾는 방법은 없을까?
최근접 이웃 중 일부는 못 찾아도 괜찮으니,
Brute force보다 훨씬 빠른 속도로 찾는 방법은 없을까?
근사해서 k개의 유사한 아이템 찾기
( Approximate k-Nearest Neighbor Search )
k=5 라면, 이게 정답이지만
이렇게 찾더라도, 100배 빠르면 괜찮다!
이 경우, 정확도는 80% (= 4/5)
근사해서 찾기 때문에,
이 접근 방법을
Approximate k-Nearest Neighbor (AkNN)
라고 부릅니다.
모든아이템(100만건)의최근접이웃을찾으려면?
Brute Force > 0.1초 * 100만 = 27.7시간
AkNN > 0.001초 * 100만 = 16.6분
https://github.com/erikbern/ann-benchmarks#glove-100-angular
https://github.com/erikbern/ann-benchmarks#glove-100-angular
Queries per second ( 1 / s )
> 초당 수행한 쿼리 수
쿼리 1건: 벡터 하나의 최근접 이웃을 찾는 것
여기서부터
여기까지 수행하는게
쿼리 1건
https://github.com/erikbern/ann-benchmarks#glove-100-angular
Recall
> 맞춘 개수 / 정답 개수
정답 개수: 5개
맞춘 개수: 4개
정답 개수: 5개
맞춘 개수: 4개
> Recall = 4/5 = 0.8
https://github.com/erikbern/ann-benchmarks#glove-100-angular
Brute Force
https://github.com/erikbern/ann-benchmarks#glove-100-angular
HNSW (Approximate kNN 알고리즘 중 하나)
https://github.com/erikbern/ann-benchmarks#glove-100-angular
https://github.com/erikbern/ann-benchmarks#glove-100-angular
0.93
Recall 7%를 잃는 대신
https://github.com/erikbern/ann-benchmarks#glove-100-angular
0.93
Recall 7%를 잃는 대신
속도는 100배 이상 빨라집니다
정리: Approximate k-Nearest Neighbor Search
• 아이템을 벡터로 표현하면 아이템 간 거리를 계산할 수 있음
• 아이템 간 거리 계산을 통해 가장 가까운 이웃을 찾을 수 있음
• 거리를 계산해야 할 대상이 너무 많으면 근사해서 빠르게 찾을 수 있음
• 대략 90%의 정확도로 100배 빠르게 찾을 수 있음
AkNN 패키지들
(Approximate k-Nearest Neighbor Search)
Annoy nmslib
장점
• MMAP 지원
• 쓰기 쉬움
• HNSW 알고리즘 지원
단점 • 성능이 아쉬움
• MMAP 미지원
• 불편한 interface
• 복잡한 설치과정
Annoy
• https://github.com/spotify/annoy
• Random projection + Tree
• 장점
• 적은 수의 hyper parameter
• Read-only MMaped data structure 지원
• 다수의 프로세스가 모델 파일을 공유할 수 있음
• 사용하기 쉬움
• 단점
• 최신 라이브러리들에 비해 떨어지는 성능(속도, 정확도)
Disk
Mem
MMap이 지원되지 않는 경우
MMap이 지원되지 않는 경우
Disk
Mem
Load
Process1
Disk
Mem
Load
Process1 Process2
MMap이 지원되지 않는 경우
Disk
Mem
Load
Process1 Process2
MMap이 지원되지 않는 경우
Process3
Disk
Mem
MMap이 지원되는 경우
Disk
Mem
MMap이 지원되는 경우
Process1
Mapping
Disk
Mem
MMap이 지원되는 경우
Process1 Process2
Mapping
Disk
Mem
MMap이 지원되는 경우
Process1 Process2
Mapping
Process3
nmslib
• https://github.com/nmslib/nmslib
• 장점
• 속도, 정확도 우수한 HNSW 알고리즘 지원
• 단점
• MMap 미지원
• 초기 버전은 설치 복잡했음 (Boost, GSL, )
• 현재는 개선됨
https://github.com/erikbern/ann-benchmarks#glove-100-angular
속도, 정확도에서는 Annoy < HNSW
Annoy
hnsw(nmslib)
Annoy nmslib
장점
• MMAP 지원
• 쓰기 쉬움
• HNSW 알고리즘 지원
단점 • 성능이 아쉬움
• MMAP 미지원
• 불편한 interface
• 복잡한 설치과정
Annoy nmslib
장점
• MMAP 지원
• 쓰기 쉬움
• HNSW 알고리즘 지원
단점 • 성능이 아쉬움
• MMAP 미지원
• 불편한 interface
• 복잡한 설치과정
장점만 가져올 수는 없을까?
> 만들어 보자!
TOROS N2
TOROS N2
• https://github.com/kakao/n2
• 장점
• HNSW 알고리즘 지원
• MMAP 지원
• 빠른 Index Build 속도 (nmslib 대비 55% 빠름)
• 설치 & 사용 간편
• Python, Go binding
• 단점
• Search 속도는 nmslib이 빠름 (빌드 속도와 trade-off 가능)
Why N2? - N이 2개라서…
Approximate k-Nearest Neighbor
Timeline
annoy (2013)
HNSW 페이퍼 (2016)
HNSW (nmslib) (2016.04)
n2 개발 (2016.12)
n2 오픈소스화 (2017.09)
nmslib (2017) nmslib(2018) n2(2017)
장점 • HNSW 알고리즘 지원
• HNSW 구현체 중 가
장 빠른 Search 속도
• HNSW 알고리즘 지원
• 빠른 Build 속도
• MMAP 지원
• 설치/인터페이스 간편
단점
• MMAP 미지원
• 불편한 interface
• 복잡한 설치과정
• MMAP 미지원
그 사이에 nmslib도 많이 좋아졌어요
https://github.com/erikbern/ann-benchmarks#glove-100-angular
HNSW 구현체들
hnsw(faiss)
hnsw(nmslib)
hnswlib
Yu. A. Malkov, D. A. Yashunin. Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small World graphs. 2016.
Yu. A. Malkov, A. Ponomarenko, V. Krylov. Approximate nearest neighbor algorithm based on navigable small world graphs. 2014
HNSW (Hierarchical Navigable Small World graphs)
Navigable Small World graph (NSW)
Hierarchical NSW (HNSW)
https://github.com/erikbern/ann-benchmarks#glove-100-angular
SW-graph, HNSW
SW-graph(nmslib)
hnsw(nmslib)
Yu. A. Malkov, D. A. Yashunin. Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small
World graphs. 2016. https://arxiv.org/abs/1603.09320
Layer = 0
Layer = 1
Layer = 2
• 노드 밀집도 증가
• 노드간 거리 감소
Yu. A. Malkov, D. A. Yashunin. Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small
World graphs. 2016. https://arxiv.org/abs/1603.09320
Layer = 0
Layer = 1
Layer = 2
• 각 노드에 연결되는 엣지
최대 개수가 제한됨
> 로그 스케일 복잡도를 보장해줌
Yu. A. Malkov, D. A. Yashunin. Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small
World graphs. 2016. https://arxiv.org/abs/1603.09320
Layer = 0
Layer = 1
Layer = 2
• 각 노드의 레벨은 Index build
타이밍에 랜덤으로 결정됨
• Layer=0에는 모든 노드가 존재
• 그 중 일부가 상위 레벨에도 존재
Yu. A. Malkov, D. A. Yashunin. Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small
World graphs. 2016. https://arxiv.org/abs/1603.09320
Layer = 0
Layer = 1
Layer = 2
Level = 2 인 노드
Level = 1, 0 에도 노드가 존재함
Yu. A. Malkov, D. A. Yashunin. Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small
World graphs. 2016. https://arxiv.org/abs/1603.09320
Layer = 0
Layer = 1
Layer = 2
Level = 1 인 노드
Level = 0 에도 노드가 존재함
Yu. A. Malkov, D. A. Yashunin. Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small
World graphs. 2016. https://arxiv.org/abs/1603.09320
Layer = 0
Layer = 1
Layer = 2
Enter point
• Graph Traverse는
최상위 레이어에 있는
Enter point부터 시작
Yu. A. Malkov, D. A. Yashunin. Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small
World graphs. 2016. https://arxiv.org/abs/1603.09320
Layer = 0
Layer = 1
Layer = 2
Query Vector
여기서부터 Traverse 시작
Yu. A. Malkov, D. A. Yashunin. Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small
World graphs. 2016. https://arxiv.org/abs/1603.09320
Layer = 0
Layer = 1
Layer = 2
현재 Layer에서
Query vector와 가장 인접한
노드까지 이동
Yu. A. Malkov, D. A. Yashunin. Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small
World graphs. 2016. https://arxiv.org/abs/1603.09320
Layer = 0
Layer = 1
Layer = 2
아래 Layer로 이동
Yu. A. Malkov, D. A. Yashunin. Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small
World graphs. 2016. https://arxiv.org/abs/1603.09320
Layer = 0
Layer = 1
Layer = 2
현재 Layer에서
Query vector와 가장 인접한
노드까지 이동
Yu. A. Malkov, D. A. Yashunin. Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small
World graphs. 2016. https://arxiv.org/abs/1603.09320
Layer = 0
Layer = 1
Layer = 2
아래 Layer로 이동
Yu. A. Malkov, D. A. Yashunin. Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small
World graphs. 2016. https://arxiv.org/abs/1603.09320
Layer = 0
Layer = 1
Layer = 2
현재 Layer에서
Query vector와 가장 인접한
노드까지 이동
Yu. A. Malkov, D. A. Yashunin. Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small
World graphs. 2016. https://arxiv.org/abs/1603.09320
Layer = 0
Layer = 1
Layer = 2
서울
부산
자갈치 시장
Yu. A. Malkov, D. A. Yashunin. Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small
World graphs. 2016. https://arxiv.org/abs/1603.09320
Layer = 0
Layer = 1
Layer = 2
서울
부산
자갈치 시장
Yu. A. Malkov, D. A. Yashunin. Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small
World graphs. 2016. https://arxiv.org/abs/1603.09320
Layer = 0
Layer = 1
Layer = 2
서울
부산
자갈치 시장
Yu. A. Malkov, D. A. Yashunin. Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small
World graphs. 2016. https://arxiv.org/abs/1603.09320
Layer = 0
Layer = 1
Layer = 2
서울
부산
자갈치 시장
Benchmark - Build time
• glove 100D data, 8 thread 기준, n2가 55% 빠름
Indexbuildingtime(seconds)
0
1,250
2,500
3,750
5,000
Index building parameter setting
M32,post0 M48,post0 M32,post2 M48,post2
hnsw(n2) hnsw(nmslib)
Index Build Time 최적화
• 코드 리펙토링
• Memory Prefetch
데이터1만개당insert소요시간(sec)
0.0
4.0
8.0
12.0
16.0
데이터 개수
0 300,000 600,000 900,000 1,200,000
nmslib N2 (프로토 타입) N2 (최적화)
위 차트는 glove 100D 데이터(120만건)로 측정한 결과
Data source: http://vectors.erikbern.com/glove-25-angular.hdf5
Memory Prefetch
• CPU에서 사용할 데이터를 메인 메모리에서 캐시 메모리로 미리 올려놓는 방식
https://en.wikipedia.org/wiki/Cache_hierarchy
Memory Prefetch (software prefetching)
https://en.wikipedia.org/wiki/Cache_prefetching
Prefetching 을 하지 않은 경우
Prefetching 을 한 경우
Benchmark - Search speed
Queriespersecond(1/s)
1
10
100
1000
10000
Recall
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
hnsw(n2) hnsw(nmslib) annoy
성능 요약
• Index build time은 n2 우세
• Search time 은 nmslib 우세
• trade-off 가능한 수준
MMAP
프로세스 1개 띄웠을 때
프로세스 21개 띄웠을 때
간편한 설치 & 사용 (python)
https://github.com/kakao/n2#n2
Go binding
https://github.com/kakao/n2/blob/dev/docs/Go_API.rst#go-code-example
정리: TOROS N2
• https://github.com/kakao/n2
• 장점
• HNSW 알고리즘 지원
• 빠른 Index Build 속도 (nmslib 대비 55% 빠름)
• MMAP 지원
• 설치 & 사용 간편
• Python, Go binding
• Future work
• Search 속도 개선
• Build 할 때 메모리 더블링 이슈 해결
• 항상 k개 결과 보장하도록 개선
감사합니다!

More Related Content

What's hot

Recommendation Systems Basics
Recommendation Systems BasicsRecommendation Systems Basics
Recommendation Systems BasicsJarin Tasnim Khan
 
Recommender systems using collaborative filtering
Recommender systems using collaborative filteringRecommender systems using collaborative filtering
Recommender systems using collaborative filteringD Yogendra Rao
 
AWS Personalize 중심으로 살펴본 추천 시스템 원리와 구축
AWS Personalize 중심으로 살펴본 추천 시스템 원리와 구축AWS Personalize 중심으로 살펴본 추천 시스템 원리와 구축
AWS Personalize 중심으로 살펴본 추천 시스템 원리와 구축Sungmin Kim
 
Recommender system algorithm and architecture
Recommender system algorithm and architectureRecommender system algorithm and architecture
Recommender system algorithm and architectureLiang Xiang
 
An introduction to Recommender Systems
An introduction to Recommender SystemsAn introduction to Recommender Systems
An introduction to Recommender SystemsDavid Zibriczky
 
Recommendation system
Recommendation systemRecommendation system
Recommendation systemRishabh Mehta
 
[215]네이버콘텐츠통계서비스소개 김기영
[215]네이버콘텐츠통계서비스소개 김기영[215]네이버콘텐츠통계서비스소개 김기영
[215]네이버콘텐츠통계서비스소개 김기영NAVER D2
 
Real-Time Recommendations with Hopsworks and OpenSearch - MLOps World 2022
Real-Time Recommendations  with Hopsworks and OpenSearch - MLOps World 2022Real-Time Recommendations  with Hopsworks and OpenSearch - MLOps World 2022
Real-Time Recommendations with Hopsworks and OpenSearch - MLOps World 2022Jim Dowling
 
아이템 추천의 다양성을 높이기 위한 후처리 방법(논문 리뷰)
아이템 추천의 다양성을 높이기 위한 후처리 방법(논문 리뷰)아이템 추천의 다양성을 높이기 위한 후처리 방법(논문 리뷰)
아이템 추천의 다양성을 높이기 위한 후처리 방법(논문 리뷰)hyunsung lee
 
파이썬을 활용한 챗봇 서비스 개발 3일차
파이썬을 활용한 챗봇 서비스 개발 3일차파이썬을 활용한 챗봇 서비스 개발 3일차
파이썬을 활용한 챗봇 서비스 개발 3일차Taekyung Han
 
Recommender systems: Content-based and collaborative filtering
Recommender systems: Content-based and collaborative filteringRecommender systems: Content-based and collaborative filtering
Recommender systems: Content-based and collaborative filteringViet-Trung TRAN
 
Pinterest - Big Data Machine Learning Platform at Pinterest
Pinterest - Big Data Machine Learning Platform at PinterestPinterest - Big Data Machine Learning Platform at Pinterest
Pinterest - Big Data Machine Learning Platform at PinterestAlluxio, Inc.
 
Homepage Personalization at Spotify
Homepage Personalization at SpotifyHomepage Personalization at Spotify
Homepage Personalization at SpotifyOguz Semerci
 
[Final]collaborative filtering and recommender systems
[Final]collaborative filtering and recommender systems[Final]collaborative filtering and recommender systems
[Final]collaborative filtering and recommender systemsFalitokiniaina Rabearison
 
Introduction to Recommendation Systems
Introduction to Recommendation SystemsIntroduction to Recommendation Systems
Introduction to Recommendation SystemsTrieu Nguyen
 
인공지능추천시스템 airs개발기_모델링과시스템
인공지능추천시스템 airs개발기_모델링과시스템인공지능추천시스템 airs개발기_모델링과시스템
인공지능추천시스템 airs개발기_모델링과시스템NAVER D2
 
데이터 기반 성장을 위한 선결 조건: Product-Market Fit, Instrumentation, 그리고 프로세스
데이터 기반 성장을 위한 선결 조건: Product-Market Fit, Instrumentation, 그리고 프로세스데이터 기반 성장을 위한 선결 조건: Product-Market Fit, Instrumentation, 그리고 프로세스
데이터 기반 성장을 위한 선결 조건: Product-Market Fit, Instrumentation, 그리고 프로세스Minwoo Kim
 
[Partner TechForum] 딥러닝 기반의 챗봇 기술을 활용한 구축 사례
[Partner TechForum] 딥러닝 기반의 챗봇 기술을 활용한 구축 사례[Partner TechForum] 딥러닝 기반의 챗봇 기술을 활용한 구축 사례
[Partner TechForum] 딥러닝 기반의 챗봇 기술을 활용한 구축 사례Amazon Web Services Korea
 
Lessons Learned from Building Machine Learning Software at Netflix
Lessons Learned from Building Machine Learning Software at NetflixLessons Learned from Building Machine Learning Software at Netflix
Lessons Learned from Building Machine Learning Software at NetflixJustin Basilico
 
실무에서 활용하는 A/B테스트
실무에서 활용하는 A/B테스트실무에서 활용하는 A/B테스트
실무에서 활용하는 A/B테스트JeongMin Kwon
 

What's hot (20)

Recommendation Systems Basics
Recommendation Systems BasicsRecommendation Systems Basics
Recommendation Systems Basics
 
Recommender systems using collaborative filtering
Recommender systems using collaborative filteringRecommender systems using collaborative filtering
Recommender systems using collaborative filtering
 
AWS Personalize 중심으로 살펴본 추천 시스템 원리와 구축
AWS Personalize 중심으로 살펴본 추천 시스템 원리와 구축AWS Personalize 중심으로 살펴본 추천 시스템 원리와 구축
AWS Personalize 중심으로 살펴본 추천 시스템 원리와 구축
 
Recommender system algorithm and architecture
Recommender system algorithm and architectureRecommender system algorithm and architecture
Recommender system algorithm and architecture
 
An introduction to Recommender Systems
An introduction to Recommender SystemsAn introduction to Recommender Systems
An introduction to Recommender Systems
 
Recommendation system
Recommendation systemRecommendation system
Recommendation system
 
[215]네이버콘텐츠통계서비스소개 김기영
[215]네이버콘텐츠통계서비스소개 김기영[215]네이버콘텐츠통계서비스소개 김기영
[215]네이버콘텐츠통계서비스소개 김기영
 
Real-Time Recommendations with Hopsworks and OpenSearch - MLOps World 2022
Real-Time Recommendations  with Hopsworks and OpenSearch - MLOps World 2022Real-Time Recommendations  with Hopsworks and OpenSearch - MLOps World 2022
Real-Time Recommendations with Hopsworks and OpenSearch - MLOps World 2022
 
아이템 추천의 다양성을 높이기 위한 후처리 방법(논문 리뷰)
아이템 추천의 다양성을 높이기 위한 후처리 방법(논문 리뷰)아이템 추천의 다양성을 높이기 위한 후처리 방법(논문 리뷰)
아이템 추천의 다양성을 높이기 위한 후처리 방법(논문 리뷰)
 
파이썬을 활용한 챗봇 서비스 개발 3일차
파이썬을 활용한 챗봇 서비스 개발 3일차파이썬을 활용한 챗봇 서비스 개발 3일차
파이썬을 활용한 챗봇 서비스 개발 3일차
 
Recommender systems: Content-based and collaborative filtering
Recommender systems: Content-based and collaborative filteringRecommender systems: Content-based and collaborative filtering
Recommender systems: Content-based and collaborative filtering
 
Pinterest - Big Data Machine Learning Platform at Pinterest
Pinterest - Big Data Machine Learning Platform at PinterestPinterest - Big Data Machine Learning Platform at Pinterest
Pinterest - Big Data Machine Learning Platform at Pinterest
 
Homepage Personalization at Spotify
Homepage Personalization at SpotifyHomepage Personalization at Spotify
Homepage Personalization at Spotify
 
[Final]collaborative filtering and recommender systems
[Final]collaborative filtering and recommender systems[Final]collaborative filtering and recommender systems
[Final]collaborative filtering and recommender systems
 
Introduction to Recommendation Systems
Introduction to Recommendation SystemsIntroduction to Recommendation Systems
Introduction to Recommendation Systems
 
인공지능추천시스템 airs개발기_모델링과시스템
인공지능추천시스템 airs개발기_모델링과시스템인공지능추천시스템 airs개발기_모델링과시스템
인공지능추천시스템 airs개발기_모델링과시스템
 
데이터 기반 성장을 위한 선결 조건: Product-Market Fit, Instrumentation, 그리고 프로세스
데이터 기반 성장을 위한 선결 조건: Product-Market Fit, Instrumentation, 그리고 프로세스데이터 기반 성장을 위한 선결 조건: Product-Market Fit, Instrumentation, 그리고 프로세스
데이터 기반 성장을 위한 선결 조건: Product-Market Fit, Instrumentation, 그리고 프로세스
 
[Partner TechForum] 딥러닝 기반의 챗봇 기술을 활용한 구축 사례
[Partner TechForum] 딥러닝 기반의 챗봇 기술을 활용한 구축 사례[Partner TechForum] 딥러닝 기반의 챗봇 기술을 활용한 구축 사례
[Partner TechForum] 딥러닝 기반의 챗봇 기술을 활용한 구축 사례
 
Lessons Learned from Building Machine Learning Software at Netflix
Lessons Learned from Building Machine Learning Software at NetflixLessons Learned from Building Machine Learning Software at Netflix
Lessons Learned from Building Machine Learning Software at Netflix
 
실무에서 활용하는 A/B테스트
실무에서 활용하는 A/B테스트실무에서 활용하는 A/B테스트
실무에서 활용하는 A/B테스트
 

More from if kakao

바닥부터 시작하는 Vue 테스트와 리팩토링
바닥부터 시작하는 Vue 테스트와 리팩토링바닥부터 시작하는 Vue 테스트와 리팩토링
바닥부터 시작하는 Vue 테스트와 리팩토링if kakao
 
카카오커머스를 지탱하는 Angular
카카오커머스를 지탱하는 Angular카카오커머스를 지탱하는 Angular
카카오커머스를 지탱하는 Angularif kakao
 
프렌즈타임 웹앱 삽질기
프렌즈타임 웹앱 삽질기프렌즈타임 웹앱 삽질기
프렌즈타임 웹앱 삽질기if kakao
 
카프카 기반의 대규모 모니터링 플랫폼 개발이야기
카프카 기반의 대규모 모니터링 플랫폼 개발이야기카프카 기반의 대규모 모니터링 플랫폼 개발이야기
카프카 기반의 대규모 모니터링 플랫폼 개발이야기if kakao
 
딥러닝을 이용한 얼굴 인식
딥러닝을 이용한 얼굴 인식딥러닝을 이용한 얼굴 인식
딥러닝을 이용한 얼굴 인식if kakao
 
딥러닝을 활용한 뉴스 메타 태깅
딥러닝을 활용한 뉴스 메타 태깅딥러닝을 활용한 뉴스 메타 태깅
딥러닝을 활용한 뉴스 메타 태깅if kakao
 
눈으로 듣는 음악 추천 시스템
눈으로 듣는 음악 추천 시스템눈으로 듣는 음악 추천 시스템
눈으로 듣는 음악 추천 시스템if kakao
 
Keynote / 2018
Keynote / 2018Keynote / 2018
Keynote / 2018if kakao
 
카카오 봇 플랫폼 소개
카카오 봇 플랫폼 소개카카오 봇 플랫폼 소개
카카오 봇 플랫폼 소개if kakao
 
다음웹툰의 UX(Animation, Transition, Custom View)
다음웹툰의 UX(Animation, Transition, Custom View)다음웹툰의 UX(Animation, Transition, Custom View)
다음웹툰의 UX(Animation, Transition, Custom View)if kakao
 
모바일 게임플랫폼과 인프라 구축 경험기
모바일 게임플랫폼과 인프라 구축 경험기모바일 게임플랫폼과 인프라 구축 경험기
모바일 게임플랫폼과 인프라 구축 경험기if kakao
 
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개if kakao
 
카카오뱅크 모바일앱 개발 이야기
카카오뱅크 모바일앱 개발 이야기카카오뱅크 모바일앱 개발 이야기
카카오뱅크 모바일앱 개발 이야기if kakao
 
다음 모바일 첫 화면 개선기
다음 모바일 첫 화면 개선기다음 모바일 첫 화면 개선기
다음 모바일 첫 화면 개선기if kakao
 
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례if kakao
 
액티브X 없는 블록체인 기반 PKI 시스템
액티브X 없는 블록체인 기반 PKI 시스템액티브X 없는 블록체인 기반 PKI 시스템
액티브X 없는 블록체인 기반 PKI 시스템if kakao
 
Klaytn: Service-Oriented Enterprise-Grade Public Blockchain Platform
Klaytn: Service-Oriented Enterprise-Grade Public Blockchain PlatformKlaytn: Service-Oriented Enterprise-Grade Public Blockchain Platform
Klaytn: Service-Oriented Enterprise-Grade Public Blockchain Platformif kakao
 
Kakao Cloud Native Platform, 9rum
Kakao Cloud Native Platform, 9rumKakao Cloud Native Platform, 9rum
Kakao Cloud Native Platform, 9rumif kakao
 
카프카, 산전수전 노하우
카프카, 산전수전 노하우카프카, 산전수전 노하우
카프카, 산전수전 노하우if kakao
 
스프링5 웹플럭스와 테스트 전략
스프링5 웹플럭스와 테스트 전략스프링5 웹플럭스와 테스트 전략
스프링5 웹플럭스와 테스트 전략if kakao
 

More from if kakao (20)

바닥부터 시작하는 Vue 테스트와 리팩토링
바닥부터 시작하는 Vue 테스트와 리팩토링바닥부터 시작하는 Vue 테스트와 리팩토링
바닥부터 시작하는 Vue 테스트와 리팩토링
 
카카오커머스를 지탱하는 Angular
카카오커머스를 지탱하는 Angular카카오커머스를 지탱하는 Angular
카카오커머스를 지탱하는 Angular
 
프렌즈타임 웹앱 삽질기
프렌즈타임 웹앱 삽질기프렌즈타임 웹앱 삽질기
프렌즈타임 웹앱 삽질기
 
카프카 기반의 대규모 모니터링 플랫폼 개발이야기
카프카 기반의 대규모 모니터링 플랫폼 개발이야기카프카 기반의 대규모 모니터링 플랫폼 개발이야기
카프카 기반의 대규모 모니터링 플랫폼 개발이야기
 
딥러닝을 이용한 얼굴 인식
딥러닝을 이용한 얼굴 인식딥러닝을 이용한 얼굴 인식
딥러닝을 이용한 얼굴 인식
 
딥러닝을 활용한 뉴스 메타 태깅
딥러닝을 활용한 뉴스 메타 태깅딥러닝을 활용한 뉴스 메타 태깅
딥러닝을 활용한 뉴스 메타 태깅
 
눈으로 듣는 음악 추천 시스템
눈으로 듣는 음악 추천 시스템눈으로 듣는 음악 추천 시스템
눈으로 듣는 음악 추천 시스템
 
Keynote / 2018
Keynote / 2018Keynote / 2018
Keynote / 2018
 
카카오 봇 플랫폼 소개
카카오 봇 플랫폼 소개카카오 봇 플랫폼 소개
카카오 봇 플랫폼 소개
 
다음웹툰의 UX(Animation, Transition, Custom View)
다음웹툰의 UX(Animation, Transition, Custom View)다음웹툰의 UX(Animation, Transition, Custom View)
다음웹툰의 UX(Animation, Transition, Custom View)
 
모바일 게임플랫폼과 인프라 구축 경험기
모바일 게임플랫폼과 인프라 구축 경험기모바일 게임플랫폼과 인프라 구축 경험기
모바일 게임플랫폼과 인프라 구축 경험기
 
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
 
카카오뱅크 모바일앱 개발 이야기
카카오뱅크 모바일앱 개발 이야기카카오뱅크 모바일앱 개발 이야기
카카오뱅크 모바일앱 개발 이야기
 
다음 모바일 첫 화면 개선기
다음 모바일 첫 화면 개선기다음 모바일 첫 화면 개선기
다음 모바일 첫 화면 개선기
 
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
 
액티브X 없는 블록체인 기반 PKI 시스템
액티브X 없는 블록체인 기반 PKI 시스템액티브X 없는 블록체인 기반 PKI 시스템
액티브X 없는 블록체인 기반 PKI 시스템
 
Klaytn: Service-Oriented Enterprise-Grade Public Blockchain Platform
Klaytn: Service-Oriented Enterprise-Grade Public Blockchain PlatformKlaytn: Service-Oriented Enterprise-Grade Public Blockchain Platform
Klaytn: Service-Oriented Enterprise-Grade Public Blockchain Platform
 
Kakao Cloud Native Platform, 9rum
Kakao Cloud Native Platform, 9rumKakao Cloud Native Platform, 9rum
Kakao Cloud Native Platform, 9rum
 
카프카, 산전수전 노하우
카프카, 산전수전 노하우카프카, 산전수전 노하우
카프카, 산전수전 노하우
 
스프링5 웹플럭스와 테스트 전략
스프링5 웹플럭스와 테스트 전략스프링5 웹플럭스와 테스트 전략
스프링5 웹플럭스와 테스트 전략
 

TOROS N2 - lightweight approximate Nearest Neighbor library