2. 엔터프라이즈 검색에 적합한 랭킹모델 구현 방법
2
목 차
• 엔터프라이즈 검색과 랭킹모델
• 검색 랭킹 모델 트렌드
• 기존 검색 랭크 모델
• 검색 랭킹 모델링 예제 및 적용
• 결론
3. 엔터프라이즈 검색에 적합한 랭킹모델 구현 방법
3
엔터프라이즈 검색
• 기업에서의 검색에 관한 요구 사항
-검색 결과가 별로야! 개선할 방법이 없나?
-Web 2.0, semantic Web, personal search
등의 트렌드 반영에 대해 검토 좀 해봐
알겠습니다…???
모두 가능합니다…???
-KMS에 있는 자료를 이사진 과 실무자 등 사용자
레벨에 따라 검색 결과가 다르게 해주세요
-저희가 밀고 있는 상품이 있는데 검색엔진을 이용해
효과적으로 마케팅 할 방법이 없나요?
4. 엔터프라이즈 검색에 적합한 랭킹모델 구현 방법
4
엔터프라이즈 검색
• Not Web Search
– 일반적으로 포털의 웹페이지 검색을 의미
– Google, Naver, Daum 등
• Enterprise Search
– 기업 내의 컨텐츠를 사용
– 기업의 비즈니스 로직을 반영
– 정부/공공기관, 기업, 쇼핑몰, 학교 등
– 외국업체 : autonomy, fast search 등
– 국내업체 : Diquest 등 오늘 참가업체
5. 엔터프라이즈 검색에 적합한 랭킹모델 구현 방법
5
엔터프라이즈 검색
• Current Issue
안정성
Rank
Model
Rank
Model
검색속도
다기능
보안
관리도구
시스템 유연성
시
스
템
성
취
도
실무에서 보는 중요도
편의성
검색정확도
시스템안정성
6. 엔터프라이즈 검색에 적합한 랭킹모델 구현 방법
6
랭킹 모델
– 새로운 기술을 사용
• Semantic Web, Personal Search, Sentiment Analysis 등
• 적용의 문제점
– 환경의 미성숙
– 투자 비용이 많이 듬
– 효과가 검증되지 못함
• 검색 정확도를 높이기 위한 방법
– 기존의 검색엔진을 활용
• 기존 환경에서 투자 대비 최적의 효과를 얻을 수 있으나, 여러가지 한계를 노출
• 활용 방법
– 언어 지식의 보강
– Ranking Model Tunning
» 각 사이트의 컨텐츠 및 내부자료 분석을 통해 검색 결과의 성능을 높일
수 있는 새로운 속성을 찾아내어 검색 결과에 반영
예) Link analysis (Google PageRank), 사용자 추천수 (상품) 등
7. 엔터프라이즈 검색에 적합한 랭킹모델 구현 방법
7
랭킹 모델
• 랭킹 모델의 정의
사용자 질의
(2.3단어 이하)
구글 검색엔진
사용자 질의를 분석
하여 검색 대상 컨텐
츠들을 사용자 의도
와 관련된 순서대로
순위화하여 제공
8. 엔터프라이즈 검색에 적합한 랭킹모델 구현 방법
8
랭킹 모델
• 랭킹 모델의 정의 (Google 의 예)
구글 검색엔진
첫 페이지 이외에
는 검색 결과를
보지 않음
(Top 5)
PageRank
짧은 사용자 질의로부터 상위에 좋은
결과를 전시하기 위한 방법
사용자 질의
(2,3단어 이하)
9. 엔터프라이즈 검색에 적합한 랭킹모델 구현 방법
9
랭킹 모델
• 굳이 나누어 살펴 보자면 (설명을 위해 굳이 분류해 보자면…)
– Information Retrieval
• 사용자의 질의와 검색 대상인 컨텐츠 사이의 언어적 통계정보를 이용하여
Relevance를 측정
예) Boolean, TF*IDF Model 등
• Contents based Rank model
– Information Filtering
• 컨텐츠 및 도메인의 특성을 이용하여 컨텐츠의 quality 측정하고 이를 이용
해 컨텐츠를 순위화
예) PageRank, Snowrank 등
• ad-hoc based Rank model
• 현재의 검색 랭킹 모델은 이 두 가지가 혼용되며 이것을 Relevance
Model 또는 Ranking Model 이라고 이야기 한다.
10. 엔터프라이즈 검색에 적합한 랭킹모델 구현 방법
10
검색 랭킹 모델 트렌드
• 사용자 요구사항
– Relevance è high quality
검색엔진 검색
디렉토리 서치 이전 검색엔진 현재 검색엔진
Not Relevant Relevant but
Low quality
Relevant and
High quality
11. 엔터프라이즈 검색에 적합한 랭킹모델 구현 방법
11
• 각 사이트에 적합한 Ranking Model 사용
– Information Retrieval è Information Filtering
검색 랭킹 모델 트렌드
– Boolean Search èTF*IDF (Vector Space Model) è Google
Pagerank, 첫눈 Snowrank, Technorati Authotity, 나루검색
Attention Search (…+Information Filtering)
• Connectivity(in-link, out-link) 의 개수 및 중요도
• 최신성 및 중복도
• 사용자의 대한 주목도 (많이 읽은 글, 북마킹이 많은 글)
• 저작자의 권위 (댓글의 수, 참조된 포스트의 수)
• 사용자의 피드백 (명시적 추천도, 로그분석을 활용한 피드백 분석)
12. 엔터프라이즈 검색에 적합한 랭킹모델 구현 방법
12
검색 랭킹 모델 트렌드
• 왜 변화하는가?
– 사용자 의도 파악이 어려움
• Poor query
– 평균 2.3 단어 정도로 매우 짧음 (Google, 영문)
– 사용자가 의도를 정확히 표현하지 못함
» 실제의도 : “검색에 나타난 랭킹 모델 및 트렌드의 변화”
» 사용자 질의 : “검색엔진”
• 언어의 통계적 사용의 한계
– TF*IDF 만으로는 컨텐츠의 quality를 측정하기 어려움
» 컨텐츠에 많이 나타난 단어와 여러 컨텐츠에 많이 나타나지 않은 단어가 그
컨텐츠의 질을 말해 줄 수 있을까?
– SPAM data
• 시스템적 한계
– 검색 시간을 줄이기 위한 query independent technique 사용
– Pagerank VS HITs
13. 엔터프라이즈 검색에 적합한 랭킹모델 구현 방법
13
검색 랭킹 모델 트렌드
• 검색 대상의 다양화
– 초기 : Web 문서
– 현재 : Blog, café data, 지식 data, 상품, 리뷰 등
• 검색에서 이용할 수 있는 정보의 다양화
– Semantic web : ontology, topic map
– 언어 자원 : wordnet
– 사용자 피드백, 로그 분석 데이터
14. 엔터프라이즈 검색에 적합한 랭킹모델 구현 방법
14
검색 랭킹 모델 트렌드
• 컨텐츠 활용의 다양화
– 같은 컨텐츠를 사용하더라도 각 상황에 맞는 다양한 활용을 원함
• 개인별, 그룹별 등으로 다른 검색 모델을 사용
• 각 페이지의 뷰별로 다른 검색 모델을 사용
15. 엔터프라이즈 검색에 적합한 랭킹모델 구현 방법
15
검색 랭킹 모델 트렌드
• 어떻게 대처할 것인가?
– 각 사이트의 특성을 파악하고 비즈니스 로직을 반영한 Ranking Model
을 만들어야 한다.
• 1 Step : 기존 Ranking Model 에 대한 지식 습득
• 2 Step : 사이트 내의 컨텐츠 와 이용할 수 있는 정보 파악
• 3 Step : 비즈니스 로직 확립
• 4 Step : 적절한 Ranking Model 작성
• 5 Step : Ranking Model 적용 및 검증
16. 엔터프라이즈 검색에 적합한 랭킹모델 구현 방법
16
• 1 Step : 기존 Ranking Model 에 대한 지식 습득
• 2 Step : 사이트 내의 컨텐츠 와 이용할 수 있는 정보 파악
• 3 Step : 비즈니스 로직 확립
• 4 Step : 적절한 Ranking Model 작성
• 5 Step : Ranking Model 적용 및 검증
검색 랭킹 모델 트렌드
• 누가 할 것인가?
– 사이트 기획(사이트 분석 및 회사 비즈니스 로직 확립)은 이를 제일 잘
아는 사이트 담당자가 검색엔진에 반영은 검색 업체에서 한다.
사
이
트
담
당
자
검
색
업
체
17. 엔터프라이즈 검색에 적합한 랭킹모델 구현 방법
17
기존 검색 랭킹 모델
• 기존 정보 검색 모델
– 불리언 모델 – 집합론적 모델
• 일반 불리언 모델, 확장 불리언 모델, 퍼지 집합 모델
– 벡터 모델 – 대수론적 모델
• 벡터 공간 모델, Latent Semantic Indexing, 신경망 모델
– 확률론적 모델
• 추론망 모델, 신념망 모델
– Others
• PageRank (Google)
• Slope one (Amazon)
18. 엔터프라이즈 검색에 적합한 랭킹모델 구현 방법
18
기존 검색 랭킹 모델
• 불리언 모델
– 사용자의 의도를 단어와 Boolean operator를 이용한 질의로 표시
– 집합론적 방법에 따라 처리
예) “A and B and C”
– 장점
• 질의가 직관적이며 단순, 명확하여 이해나 처리가 쉬움
– 단점
• 사용자의 의도를 모두 표현하지는 못함
• 단어에 가중치를 반영하지 못함
– 검색 결과 크기에 대한 통제가 어려움
• 부분 정합이 불가능
– 순위화 불가능
예) “A and B and C”를 검색할 때 사용자 의도
è “A, B, C”가 모두 나타난 것이 없으면 중요단어인 “A” 는 꼭 나오면서 “B” 나 “C”가 나온 문서
è “A, B, C”가 나왔다면 중요단어 “A”가 포함된 문서가 먼저 …
A B
C
19. 엔터프라이즈 검색에 적합한 랭킹모델 구현 방법
19
기존 검색 랭킹 모델
• 벡터공간모델 (Information Retrieval)
– 불리언 모델의 단점을 극복
• 부분정합이 가능
• 단어 가중치 적용이 가능
– 사용자 질의와 검색대상 컨텐츠를 단어의 가중치 벡터로 표현
• 단어 가중치 부여 방법 (TF*IDF)
– TF(Term Frequency) : 컨텐츠에 많이 출현한 단어 일수록 이 컨텐츠를 다른 컨텐츠와 구별하는데 유리
예)
– IDF(Inverted Document Frequency) : 적은 수의 컨텐츠에 나타난 단어 일수록 그 컨텐츠의 특성을 잘 표
현
예)
– 사용자 질의 벡터와 컨텐츠 벡터들 간의 유사도를 이용하여 Relevance를
측정
)
document
in the
term
of
frequency
Raw
:
(
max
j
i
ij
lj
l
ij
ij d
k
freq
freq
freq
f =
documents
of
number
Total
:
appears
index term
he
in which t
documents
of
Number
:
log
N
k
n
n
N
idf
i
i
i
i =
20. 엔터프라이즈 검색에 적합한 랭킹모델 구현 방법
20
기존 검색 랭킹 모델
• 벡터공간모델 예제
– 문서-단어 Metrics
T1
T2
T3 문서1
0.2
0.8
0.5
0.6
문서2
질의
0.4
0.3
0.8
– Inner Product를 이용한 유사도 측정
Sim(문서1, 질의) = 0.48
= 0.2 * 0.8 + 0 * 0.3 + 0.8 * 0.4 + …
Sim(문서2, 질의) = 0.58
= 0.5 * 0.8 + 0.6 * 0.3 + 0 * 0.4 + …
21. 엔터프라이즈 검색에 적합한 랭킹모델 구현 방법
21
기존 검색 랭킹 모델
• 벡터공간모델
– TF*IDF 가중치 모델의 단점
• 적은 수의 컨텐츠에서 추출된 언어 통계는 TF*IDF의 가정을 왜곡할
수 있다.
• 컨텐츠의 quality는 언어 통계에만 의존 하지 않는다.
• 악의적인 SPAM에 취약하다.
22. 엔터프라이즈 검색에 적합한 랭킹모델 구현 방법
22
기존 검색 랭킹 모델
• PageRanking (Information Filtering)
– Link 정보를 활용하여 수집 가능한 모든 Web Page를 순위화
예)
– 장점
• 양질의 컨텐츠를 사용자에게 제공
• SPAM에 관한 취약성을 일정 수준 보정
– 단점
• Link가 없는 도메인에서는 사용 불가능
23. 엔터프라이즈 검색에 적합한 랭킹모델 구현 방법
23
기존 검색 랭킹 모델
• Slope one (Collaborative Filtering)
– 다른 사람들과 다른 아이템에 대한 정보를 이용하여 특정인의 특정아이
템에 대한 정보를 추정
– 아마존의 상품 추천시스템에서 사용
* http://en.wikipedia.org/wiki/Slope_One 참조
= Item2 와 Item1 사이의 평균편차 + Item2
= ((5 - 3) + (3 – 4) / 2) + 2 = 2.5
= Item3 와 Item1 사이의 평균편차 + Item3
= ((5 - 2) / 1) + 5 = 8
= 평가에 참여한 Item2 의 평가자수
= 평가에 참여한 Item3 의 평가자수
1
2
3
4
1
2
3
4
24. 엔터프라이즈 검색에 적합한 랭킹모델 구현 방법
24
검색 랭킹 모델링 예제 및 적용
• 랭킹 모델링 예제
검색을 통해 매출을
올렸으면 하는데 좋은
방법이 없는가?
다 됩니다.
25. 엔터프라이즈 검색에 적합한 랭킹모델 구현 방법
25
검색 랭킹 모델링 예제 및 적용
• 검색 랭킹 모델 최적화 프로세스
Like Six Sigma DMAIC
Optimizing
Rank Model
검색시스템 분석
• 현재 검색시스템 문제 분석
• 기존 검색 모델에 대한 이해
• 컨텐츠 특성 파악
• 기타 이용 가능한 정보 파악
• 검색 Simulation Tool
검색시스템 정의
• 비즈니스 로직 정의
• 서비스 환경 정의
• 서비스 컨텐츠 정의
검색시스템 개선
• 개선된 서비스 기획
• 최적의 검색 랭킹 모델 구성 및 적용
• Ranking Model Applier
검색시스템 평가
• 검색시스템 평가 방법
• 검색 시스템 평가 Tool
Analyze
Measure
Improve
Define
26. 엔터프라이즈 검색에 적합한 랭킹모델 구현 방법
26
• 검색 시스템 정의
– 서비스 정의
• 일반인을 대상으로 한 와인 판매 포털
• 와인에 관한 블로그 및 커뮤니티 제공
– 서비스 컨텐츠 정의
• 블로그 : 제목, 본문, 태그, 날짜 등
• 커뮤니티 : 제목, 본문, 작성자, 작성일, 조회수 등
• 와인상품 : 와인명(한,영), 국가, 지역, 생산년도, 타입(레드/화이트),
포도품종, 도수, 세일여부 등
– 비즈니스 로직 정의
• 고객에게 적합한 와인 상품을 추천하여 매출을 증대 시킴
검색 랭킹 모델링 예제 및 적용
Analyze
Measure
Improve
Define
27. 엔터프라이즈 검색에 적합한 랭킹모델 구현 방법
27
• 검색 시스템 평가
– 평가 방법
• Precision and Recall (고전적인 평가방법)
– Test Set 구성에 어려움이 있어 실무에 적용하기 어려움
• Precision at top N in Popular Keywords
– 사용자가 최상위 N개 이후의 결과는 보지 않음
– 가장 많은 커버리지를 갖는 테스트 질의 선정
• 사용자 클릭 정보
– 페이지 상에서 발생하는 사용자의 클릭 정보를 활용
» 사용자의 검색결과 클릭 여부
» 사용자의 “next page” 클릭 수
» 사용자가 많이 클릭한 결과의 위치
검색 랭킹 모델링 예제 및 적용
Define
Analyze
Measure
Improve
28. 엔터프라이즈 검색에 적합한 랭킹모델 구현 방법
28
• 검색 시스템 평가 결과
– Precision at top N 결과
• 100개의 질의어에 대해 5개가 검색 결과 없음
– 형태소 사전, 유사어 확장 등의 오류
• 100개의 질의어에 대해 40개가 원하는 검색 결과가 나오지 않음
– 검색 랭킹 모델이 잘못 되어 있음
검색 랭킹 모델링 예제 및 적용
– 사용자 클릭 정보 결과
• 첫 페이지에서의 검색결과 클릭 수가 떨어짐
– 현재 검색 시스템 문제가 있음
• 고객의 검색 결과 클릭 분포 비교
– Top 5~8 위 사이의 검색 결과 클릭이 많음
– 고객의 기호를 검색에 적절히 반영하지 못함 – 검색 랭킹 모델
이 잘못 되어 있음
Define
Analyze
Measure
Improve
29. 엔터프라이즈 검색에 적합한 랭킹모델 구현 방법
29
• 검색 시스템 분석
– 컨텐츠 특성 분석
• 검색 시스템 평가 이용
– 고객이 많이 클릭한 5~8위는 판매량이 많은 것임
• 고객에 대한 설문 결과
– 국가, 생산년도와 가격을 중요한 기준으로 생각함
– Data Mining을 통한 고객 구매 이력 분석
• 판매량, 국가, 생산년도, 가격을 기준으로 분석
– 고객들의 기호를 기준으로 세그멘테이션이 가능
– 각 그룹간의 기호에 대한 가중치(Weight) 측정
– 수치화된 분석 결과 산출
검색 랭킹 모델링 예제 및 적용
생산 국가 연도 가격 판매량
그룹 A 10 8 9 7
그룹 B 0 0 10 8
그룹 C 5 10 7 10
Define
Analyze
Measure
Improve
30. 엔터프라이즈 검색에 적합한 랭킹모델 구현 방법
30
• 검색 시스템 개선
– 고객의 기호를 반영한 랭킹 모델 구성
• 국가(C), 생산연도(Y), 가격(P), 판매량(S) 을 이용하여
랭킹 모델 작성
• W1, W2, W3 , W4 에 마이닝 결과 적용
– 랭킹 모델을 각 그룹별 고객을 위한 개인화 서비스에 적용
• 검색 시스템 개선
– 고객의 기호를 반영한 랭킹 모델 구성
• 국가(C), 생산연도(Y), 가격(P), 판매량(S) 을 이용하여
랭킹 모델 작성
• W1, W2, W3 , W4 에 마이닝 결과 적용
– 랭킹 모델을 각 그룹별 고객을 위한 개인화 서비스에 적용
• 검색 시스템 개선
– 고객의 기호를 반영한 랭킹 모델 구성
• 국가(C), 생산연도(Y), 가격(P), 판매량(S) 을 이용하여
랭킹 모델 작성
• W1, W2, W3 , W4 에 마이닝 결과 적용
– 랭킹 모델을 각 그룹별 고객을 위한 개인화 서비스에 적용
검색 랭킹 모델링 예제 및 적용
F = W1 * C + W2 * Y + W3 * P + W4 * S
그룹A= 10 * C + 8 * Y +9 * P + 7 * S
F = W1 * C + W2 * Y + W3 * P + W4 * S
F = W1 * C + W2 * Y + W3 * P + W4 * S
F = W1 * C + W2 * Y + W3 * P + W4 * S
F = W1 * C + W2 * Y + W3 * P + W4 * S
그룹A= 10 * C + 8 * Y +9 * P + 7 * S
Define
Improve
Analyze
Measure
31. 엔터프라이즈 검색에 적합한 랭킹모델 구현 방법
31
검색 랭킹 모델링 예제 및 적용
그룹A= 10 * C + 8 * Y + 9 * P + 7 * S
그룹A= 10 * C + 7 * Y + 9 * P + 7 * S
그룹A = W1 * C + W2 * Y + W3 * P + W4 * S
Define
Improve
Analyze
Measure
• 검색 랭킹 모델 튜닝
– 랭킹 모델에 대한 검증 및 최적화
• W1, W2, W3 , W4 에 대한 검증 및 실제 필드에서의 최적화
32. 엔터프라이즈 검색에 적합한 랭킹모델 구현 방법
32
검색 랭킹 모델링 예제 및 적용
• 랭킹 모델링을 위한 도구들 (Search Tool)
– Search Profile
• 개인별, 그룹별 다른 랭킹 모델을 적용
– Ranking Model Applier
• 수식화된 랭킹 모델을 검색 엔진에 적용하는 도구
– 검색 Simulation Tool
• 질의 입력에서 검색 결과 생성까지의 모든 상황을 모니터링 하기 위한 도구
33. 엔터프라이즈 검색에 적합한 랭킹모델 구현 방법
33
결론
• 랭킹 모델은 사용자에게 적절한 결과를 생성하기 위해 가장 중요한 요소이다.
• 엔터프라이즈 검색에서 랭킹 모델에 정답은 없으며, 각 사이트의 서비스 환경
과 비즈니스 로직에 따라 최적의 랭킹 모델을 구성해야 한다.
• 랭킹 모델링을 위해서는
– 기존 랭킹 모델에 대한 지식을 기반으로 각 사이트의 특성에 따라 최적의 랭킹 모
델을 구성 할 수 있는 검색 관리자의 능력과
– 이를 검색 시스템에 빠르고 쉽게 적용할 수 있는 검색 솔루션 업체의 기술력,
– 반복적으로 튜닝하고 개선하려는 노력이 필요하다.