Mais conteúdo relacionado Semelhante a [235]루빅스개발이야기 황지수 (20) [235]루빅스개발이야기 황지수13. MAB 콘텐츠맛집 추천에 활용
• 변수
• “맛이 예전 같지 않아”
• “위치에 비해 사람이 많은 것 같아”
• “어르신들이 좋아할만 한 집인 듯”
16. 루빅스 MAB
• Moving Average
• 변화하는 CTR 반영
• 다중 Explore
• Position, User Cluster 등의 편향 보정
• 피드백을 실시간으로 수집해서 추천에 활용
23. 모델 개선 과정
A
A’
A’’ B
B’’B’
C’’
C
C’
A’
A’’ B
C’’
C
C’ C’’
Offline
Test
Online
Bucket
Test
25. Online Bucket Test
• 실환경에서 유저들을 대상으로 테스트
• 사용자를 Bucket으로 나누고, 성과 비교
• 실시간으로 테스트 & 분석
RUBICS
APP
Bucket A
Bucket A
Bucket B
28. Data Flow v1 review
Pros
• Simple
• Response size
Cons
• Memory grid limit
• < 1H, 99%
• Abusing
• Synthetic data
• Click attack
32. Serving Layer
• Nginx
• Reverse proxy
• Play-scala
• Non blocking
• Couchbase
• Low latency, scalability
• 단순한 operation
• Zookeeper
• System config
34. 서빙에 최적화된 데이터 형태
• Content
• Meta data
• Precalculated scores
• History
• 유효한 데이터
35. 서빙에 최적화된 데이터 준비
DB
QueueConsumer
Pool BuilderApp
KV Lookup
ZK
Config
36. Data update
Get(Key) à Data, CAS
Set(Key, Data, CAS, TTL)
Mutate
• Couchbase in-place update 지원하지 않음
• CAS를 이용한 atomic update
DB
44. Micro Service
• 일부 Task의 장애가 전체 장애로 전파되지 않음
• 독립적으로 개발 가능
• 그렇지만 관리의 복잡도 증가
Validation
Item
Score
User
history
HDFS
archive
Hive
Loader
Distinct
48. 요약
• 루빅스: 카카오톡, 다음 콘텐츠 추천
• MAB 기반으로 시작
• 추천 성능 개선과 진화를 위해서
• Offline/Online Bucket Test
• 시스템 성능
• data 형태와 접근방식 개선
• 수평적 확장이 가능 구조
• 안정적인 데이터 파이프 라인
• Micro Service
• Service Orchestration
• System Tests