2. 문서이력
날자 버전 작성자 설명
2017.09.06 0.5 전득진 1차 초안
2017.09.06 0.9 전득진 2차 초안
2017.09.07 1.0 전득진 3차 개정
2
3. 목차
1 Architecture & Flow
2 Model Management Layer – Admin
3 Data Serving Layer – API
4 Data Processing Layer – Mining / ML / 형태소분석기
5 Model Evaluate Layer – Query / Report
6 Issue
3
4. Architecture
도서 추천 시스템 아키텍처
• Logical View
4
Source
Data
DataMart
ComDB
BookDB
EGS
Data
Processin
g
Layer
Data
MGMT
Layer
Model
Evaluatin
g Layer
Data
Serving
Layer
Mining
ML
형태소분석기
Admin API Query
Report
WorkFlow
Crawling
Target
Channel
추천 시스템
5. Architecture
5
도서 추천 시스템 아키텍처
• Logical View
Spark
Spark
Submit Spark
Spark
Submit . .
.
Spark
Spark
Submit
Mining
CF-Item
Spark
Submit . .
.
ML
Book
Meta
Storage
도메인
사전
집계
DB
Admin
DB
Model
DB
API
Admin
Spark
Spring
Boot
Spark
Spring
Boot
WorkFlow
Source
Data
Target
Channel
Reco
Cache
Reco
DB
.
.
. CF-User
Spark
Submit
CBF-Item
Spark
Submit
.
.
.
추천 시스템
6. Flow
도서 추천 시스템 Flow
6
Mining ML API
Admin | Query | Report
Off Line On Line
노출 결과
WorkFlow
Build & Deploy
EGS
DataMart
ComDB
BookDB
Crawling
Back Office
Target
Channel
Storage
Data Set Catalog| Book Meta | Dic |Admin DB | Model DB | Reco
Cache
형태소 분석
7. Model Management Layer – Admin
7
기능 모듈
• Admin
- Spring Boot / WEB UI / JPA
- 사용자 관리 / 메타데이터 관리 / 특징 관리 / 모델 등록-관리 / 스케쥴링
Book
Meta
Storage
도메인
사전
집계
DB
Admin
DB
Model
DB
Reco
Cache
Reco
DB
Admin
Spring Boot WorkFlow
Mining ML
8. Data Processing Layer – Mining
기능 모듈
• Mining
ETL(EGS / DataMart / ComDB) / Crawling / Parquet / Kudu / Spark / Book Meta / Member / Order History
8
Data
Set
Catalog
Work Flow
Trigger
Source Data
Mining
1
2
Mining
Spark
Submit
Mining
Spark
Submit
3
Content Join /
Merge
Book
Meta
Order
4
5
9. Data Processing Layer – ML (CBF)
기능 모듈
• ML
Spark Mllib - CF / CBF / Model (LDA, Word2Vec, FP Growth) / Serendipity
• 형태소 분석기
Spark Natural Korean Processor - NLP / Mecap Base / Dictionary(Stop/Synom/User Dic)
9
ML
Catalog
Work Flow
Trigger
ML
1
2
Mining
Spark
Submit
ML
Spark
Submit
3
Word2Vec
형태소 분석
Model
DB
TF/IDF
Cosine
5
4
Book
Meta
도메인
사전
6
Reco
Cache
10. Data Processing Layer – ML (CF)
기능 모듈
• ML
Spark Mllib - CF / CBF / Model (LDA, Word2Vec, FastText, FP Growth) / Hybrid / Serendipity
• 형태소 분석기
Spark Natural Korean Processor - NLP / Mecap Base / Dictionary(Stop/Synom/User Dic)
10
ML
Catalog
Work Flow
Trigger
ML
1
2
Mining
Spark
Submit
ML
Spark
Submit
3
CF Item
CF User
5
Book
Meta
도메인
사전
6
Similarity
Model
DB
Reco
Cache
11. Data Serving Layer – API
11
기능 모듈
• API
- Restful / Spring Boot / JPA / Json format / Filtering / 피로도
Target Channel
API
Spring Boot
Reco
Cache
Delivery Log
Cache
1 UID, Item
Recmd Items
ML Model
3
2
5
Exposure
Filtering
4
EGS
6
추천 상품 클릭
로그
12. Model Evaluate Layer – Query / Report
기능 모듈
• Query
모델 테스트 / ML / 추천 데이터 맛보기 / Feature(특징) Selection
• Report
A/B Test / 집계-통계 / Click_구매 전환율 / 모델 적용 성과
12
Included Admin
13. RoadMap
13
8월 9월 10월 11월 12월
자료조사 EGS 데이터 확인/검토
DataMart Shema 확인/설계
알고리즘 파일럿/구
현
CF (K-means)
CBF (TF/IDF, Word2Vec)
개발 Mining (CF, CBF data set)
ML (CF/CBF)
Admin (모델 성능 집계)
WorkFlow 통합
API
구축 개발계 (App, DB, Monitoring, Deploy)
스테이징계 (상동)
운영계 (상동)
통합 테스트 통합 테스트
성능 테스트
설계
파일럿
파일럿
구현
설계
설계
구현
설치/연동
파일럿 구현
설치/연동
설치/연동
설치/연동
구현
구현
설계 구현
14. Issue
14
이슈 사항
• Book Meta 수집
- Book 상세 데이터 수집 방안 (EP 데이터
- 누락된 데이터 (서평, 줄거리, 작가 소개) ➔ Crawling
- Book Meta 수집 대상 : Active 한 도서 상품 60만 건 정도 or 전체(참고서, 문제집, 정기 간행물, 잡지)
• Data Sparsity 문제
• 큰 사이즈의 Matrix 연산 문제
- User Side : User Group화 동일 그룹내 유사 유저 검색 ( 계층형 클러스터 )
- Item Side : Item Category 로 Group화 동일 그룹 내 유사 상품 검색 ( 카테고리 상위 3Depth, LDA, LSI )
• Recommendation 노이즈 제거 정책
- 개인별 추천 상품 노출 횟수 산정 및 Reco DB에서 제외 된 상품의 차기 후보 상품 노출 정책.
- 봇, 크롤러 등에 의한 노출 무효 적용.