좋은 검색서비스를 만들기 위한 기계학습의 활용사례 김상범 2016. 6.
Contents 1. 네이버? 2. 검색서비스? 3. 기계학습 활용사례 Ranking Sequence Labeling Text/Query Mining Vision-Text Collaboration Recommendation
검색서비스? Coverage Efficiency Effectiveness Policy
Vector Space Model Ranking : Old Approaches http://nlp.stanford.edu/ir-book/pdf/06vect.pdf
Ranking : Old Approaches Probabilistic Ranking Model
Language Model based IR Ranking : Old Approaches üsimple smoothing ülda http://maroo.cs.umass.edu/pdf/ir-464.pdf
Ranking : 실제상황 단어의 빈도만 갖고 랭킹을 하기에는 signal이 너무 많음 - 질의와 매치된 단어의 폰트가 어떠한가? - 많은 사람들이 보았거나 링크를 걸었는가? - 다른 사람이 어떤 단어로 링크를 걸었는가? - 문서를 작성한 사람이 과거에 스팸작성자로 경고조치 됐었는가? - 언제 만들어진 문서인가? - 몇 명이 조회한 문서인가? - 문서의 제목과 본문의 관련성은 높은가? 상당수의 질의들에 대해서는 자동평가집합구축이 가능 - 클릭수? - 위치를 고려한 클릭수? - 체류시간? Feature가 많아지고 Evaluation Set확보가 비교적 쉬워짐 è 기계학습 기반 랭킹을 안 할 수 없음
Ranking : Learning-to-Rank Overview 검색의 핵심은 체계적으로 줄세우기 = 한국 경제 전망 = [ 0.66, 2, 0.08, 1, 3, 1, 0, 4.2, 25, 0.43 ] 질의 단어 중 제목에 나타난 단어의 비율 제목에 출현한 질의 단어의 총 합 질의 단어별 본문출현빈도/본문길이 의 합 질의 단어 중 본문에 나타난 단어의 비율 질의의 단어수 전문정보를 찾는 질의인가? 질의에 연예인 이름이 포함되어 있나? 문서가 포함된 사이트의 Site Authority 문서의 나이(Age) 문서의 품질(Quality)
Ranking : Learning-to-Rank Overview 검색의 핵심은 체계적으로 줄세우기 http://research.microsoft.com/en-us/people/hangli/acml-tutorial.pdf
Ranking : Learning-to-Rank Overview Training Data - Query : Document(URL) : Feature-Value-List : Grade Feature List - Matching Feature ü Sum of tf*idf, Match term Ratio, etc - Document-specific Feature ü Visit Count, Quality, Create Time, etc - Query-specific Feature ü Length of query, HasPersonName, etc Grade - Perfect / Excellent / Good / Fair / Bad
Ranking : Learning-to-Rank Overview Evaluation Measure : ndcg http://web.stanford.edu/class/cs276/handouts/lecture8-evaluation_2014-one-per-page.pdf
Problem Definition Ranking SVM
Solution Ranking SVM
Ranking SVM Problems - Error 에도 그 중요도가 있는데 반영을 못한다 (검색랭킹 specific한 평가척도를 직접 최적화하지는 못함) - Query별 labeled 문서수에 따라 bias가 생길 수 있다 개선된 RankSVM이나 Listwise 접근법 등 다양한 연구가 진행됨
Ranking만 잘하면 되나? Ranking만 잘 하면 될까? 무조건 5개까지 보여주면 될까?
Ranking and Regression : GBRT Regression Tree Regression Tree Ensemble SVM, NN, LR같이 학습방법이 잘 연구되어온 Numerical vector/matrix기반 classifier가 아니라서 학습방법 자체가 큰 연구토픽 https://homes.cs.washington.edu/~tqchen/pdf/boostedtree.pdf
Ranking and Regression : GBRT GBRT (Gradient Boosted Regression Tree)
Ranking and Regression : GBRT GBRT (Gradient Boosted Regression Tree)
Sequence Labeling : 일반적인 적용분야 Word Segmentation 검 색 시 스 템 용 단 어 분 할 기 B I B I I B O B I B I B Named Entity Tagging Information Extraction
Sequence Labeling : 실제 적용사례 자동번역기를 위한 분석기 즉답제공을 위한 관계추출
Sequence Labeling : HMM / MEMM / CRF
Sequence Labeling : HMM / MEMM / CRF
새로운 강자 LSTM Sequence Labeling : LSTM http://arxiv.org/pdf/1508.01991v1.pdf
Sequence Labeling : LSTM Motivation : RNN의 원거리 의존관계 문제 - 이전상태를 기억하면서 현재 입력을 바탕으로 결과를 내놓는 다는 점에 서 많은 진보를 가져다 줌 - the clouds are in the - I grew up in France where my mother still lives. So I speak fluent à 원거리 의존관계 문제 ( long-term dependency)
RNN vs LSTM Sequence Labeling : LSTM RNN LSTM http://colah.github.io/posts/2015-08-understanding-lstms/
Sequence Labeling : LSTM Cell state 의 도입 기존의 RNN에 없던 C는 이전 히스토리 중 의미있는 정보들을 갖 고 있는 벡터. 예를 들어 문장을 계속 읽어나가면서 다 음 단어를 예측하는 LSTM이라면, 가장 최근에 나타난 주어의 성별정보를 C 의 k번째 원소에 저장 (He, She 등을 적절히 생성해내려고) http://colah.github.io/posts/2015-08-understanding-lstms/ - 이전셀상태에 뭔가 곱해지고 더해져서 최종 셀상태가 됨 - 곱해질때는 이전셀상태 각 원소의 유지여부가 결정되고, 더해질 때는 셀 걸러진 이전셀상태에 뭔가 새로운 것(정보)이 추가되는 것 - 출력(h)은 계산된 이번셀상태에 따라 결정됨
Sequence Labeling : LSTM Forgot gate 를 통한 이전셀상태 억제장치 준비 http://colah.github.io/posts/2015-08-understanding-lstms/ - 이전출력(h)과 현재입력(x)을 받아 f를 계산해서 이전셀상태에 곱함 - f에 따라 이전 셀상태벡터의 어떤 값은 리셋되고 어떤 값은 살아남음 이전출력+현재입력을 보아 새로운 주어 라는 판단이 들면 f의 k번째 원소는 0
Sequence Labeling : LSTM Input gate 를 통한 이번입력의 반영정도 준비 - 이전출력(h)과 현재입력(x)으로 i를 계산함 - 이전출력(h)과 현재입력(x)으로 이번입력에 기반한 셀상태를 계산함 이전출력+현재입력을 보아 새로운 주어 라는 판단이 들면 i는 1이고 셀상태의 k번째 원소는 새로운 성별값 http://colah.github.io/posts/2015-08-understanding-lstms/
최종셀상태 G의 계산 Sequence Labeling : LSTM http://colah.github.io/posts/2015-08-understanding-lstms/ - f로 이전셀상태의 유지정도를 결정 - i로 단순 셀상태값이 최종 셀상태값에 끼치는 영향력을 결정 앞에서 구한 f와 i 및 셀상태를 사용하여 최종셀상태를 업데이트 ( 최근에 본 주어의 성별 )
Sequence Labeling : LSTM 최종출력(h)계산을 위한 셀상태와 output gate 의 활용 - 최종출력(h)은 최종셀상태(C)의 일부 http://colah.github.io/posts/2015-08-understanding-lstms/ 다음 단어가 무엇인지를 예측하기 위해서는, 최종셀상태 정보 중 방금 바뀐 최근 주어의 성별정보는 필요 없고 대신 동사의 단/복수 형 결정을 위해 주어의 수 정보가 필요하므로 C의 k번째 정보는 내보내지 않는 대신 k+1번째 정보만 내보낼 수 있다.
Text/Query Mining Query Suggestion & Reformulation 번역모델 언어모델 Parallel corpus Monolingual corpus 번역모델 언어모델 q à q ( search log ) query log
Product Categorization Text/Query Mining 4억여개의 상품 4천여개의 카테고리 예) 스포츠/레저 > 수영 > 비치웨어 > 커플비치웨어 디지털/가전 > 음향가전 > 홈시어터 > 조합형홈시어터 카테고리 등록정보 신뢰도도 낮고 더 나은 쇼핑서비스를 위해 카테고리를 개편하기도 하고
Text/Query Mining Place Analysis S1: 아이들과 당일치기로 전주를 다녀왔어요 S2: 아이들 교육에도 최적의 장소 S3: 비오는날 운치있는 전주여행 S4: 운치있고 여유로운 곳이었어요 S5: 야간에 산책하면서 다니는 재미 S6: 날씨 즐기며 천천히 걸어다니는 것도 S1: 아이들과 당일치기로 전주를 다녀왔어요 S2: 아이들 교육에도 최적의 장소 S3: 비오는날 운치있는 전주여행 S4: 운치있고 여유로운 곳이었어요 S5: 야간에 산책하면서 다니는 재미 S6: 날씨 즐기며 천천히 걸어다니는 것도
스타 타임라인 Vision-Text Integration
Vision-Text Integration 음식점 포토요약
스타일 서치 Vision-Text Integration
Recommendation 어떻게 하면 네이버에서 더 오래 즐거운 시간을 보내실까? 투유프로젝트-슈가맨 이라는 방송의 클립을 보고 난 사용자에게 어떤 동영상을 추천해주면 좋을까? 슈가맨같은 동영상 의외의 다른 동영상
Recommendation Collaborative Filtering + Diversity https://databricks-training.s3.amazonaws.com/movie-recommendation-with-mllib.html Novelty factor
감사합니다