Realtime Contents Based Blog Recommend System
차례
블로그 글은 많은데
이 글과 비슷한 주제의 글은?
기존의 시스템
Recommend System
구글이 아닌 이상 collaborative 데이터를 얻을 수 없다.
collaborative based 는 사용자의 click, 이용 데이터 없이 추천해 줄 수 없음
Contents Based로 간다.
이렇게 된 이상
비슷한 블로그 글이란?
비슷한 구문 vs 비슷한 단어
자주 쓰는 단어(TF-IDF)
자주 쓰는 단어(TF-IDF)
유사도
비슷한 주제의 글
결국...
문제를 재정의 하면,
A글과 TF-IDF의 cosine 유사도가 높은 블로그 글을 찾는 것으로 정의할 수 있다.
Houston,
We Have Problem!
60,000,000
네이버, 다음, 티스토리, 구글 등에서 크롤링한 블로그 데이터
510,000
한국어 사전의 표제 단어수
6000만 x 51만
전체 TF-IDF 테이블의 크기
LSH(Local Sensitive Hashing)
Random Hyperplane
Random Hyperplane
64개의 Hyperplane
두 블로그 사이의 유사도
두 블로그 사이의 유사도 빠른 계산
A | 1 | -1 | 1 | -1 | 1 | -1 | 1 | -1 |
B | -1 | -1 | -1 | -1 | 1 | 1 | 1 | 1 |
A | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 |
B | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 |
A⊗B | 1 | 0 | 1 | 0 | 0 | 1 | 0 | 1 |
Mapping
CPU 효율성
메모리 효율성
그래서 단일 머신에 올려서 시스템을 돌릴 수 있다.
Random Hyperplane Normal
Random Hyperplane의 어려운 점
Generate Random Hyperplane Normal Vector
| Term #1 | Term #2 | Term #3 | ... | Term #n |
v1 | 1 | -1 | 2 | ... | k |
| Term #1 | Term #2 | Term #3 | ... | Term #n |
h1~2 | 0x1 | 0x3 | 0x2 | ... | k1 |
h3~4 | 0x2 | 0x1 | 0x3 | ... | k2 |
h5~6 | 0x0 | 0x3 | 0x0 | ... | k3 |
h7~8 | 0x1 | 0x0 | 0x1 | ... | k4 |
⋮ | ⋮ | ⋮ | ⋮ | ⋱ | ... |
sha-512
법선 벡터
Generate Random Hyperplane Normal Vector
v•x
TF-IDF to LSH Value
DocID | Term1 | ... | TermN |
255237 | 1.342 | ... | 0.772 |
255777 | 2.132 | ... | 1.332 |
255893 | 0.459 | ... | 0.546 |
121247 | 1.324 | ... | 2.332 |
기존 TF-IDF
DocID | LSH value |
255237 | 67e6aa6ae4039a27 |
255777 | 47b6aa4ae4038f27 |
255893 | e6f62a6860038f2d |
121247 | e6d5be28c4039a6d |
LSH(Random Hyperplane)
단어 추출
단어 추출
분산처리(TF-IDF 추출, LSH 연산)
연산의 독립성
변환 과정
문서
TF/Doc
DF
(Cluster)
Map
Noun
Extraction
Reduce
DF
(Total)
TF-IDF
Map
빈도 계산
Map�Side-join
LSH
Value
Recommender�Engine
Map
Reduce
병합
One More Things
Docker
Docker
Docker Image
Docker Cluster
실제 구현
좌측목록 클릭
Future Works
새로 추가되는 글에 대한 값들을 모델에 실시간으로 추가.
제목에 나타나는 키워드에 높은 가중치 부여, 이를 통한 추천 품질 향상.
유사도 검사 알고리즘을 이용한 블로그 글 검색.
추천 서비스를 기반으로, 기존에 수집할 수 없었던 Collaborative 정보 수집.
Reference