검색이 무엇인지, 검색모델링이 어떤 역할을 하는지 알아보고, 쇼핑 검색을 서비스하면서 발생했던 품질 문제와 이를 해결하기 위해 시도해본 것을 이야기하고자 합니다.
목차
1. 검색이란
2. 검색모델링
3. 검색모델 유사도
4. 구조적 검색 모델
대상
검색이나 검색모델링에 대해 알고 싶거나, NHN에서 서비스 중인 쇼핑 검색에 대해 알고 싶은 개발자
8. 8 / 42
토마토로 찾았는데 왜 옷이 보이지?
브랜드에 토마토가
나왔음
상품명에 토마토가
나왔음
토마토
두 상품에서 모두 토마토가 나오긴 한다
9. 9 / 42
사용자의 검색 질의를 분석
분석된 질의에 맞는 상품을 찾음
왜 이런 검색 결과가 나올까?
쇼핑 검색 프로세스
토마토
검색 서비스
검색 엔진
10. 10 / 42
검색 질의와 관련 된 상품들을 찾기 위한 역색인 구조
상품 찾는 방법
토마토
팩토리
나무
…
토마토가 나온 문서들
색인어들
단순히 토마토를 포함하는 상품들
상품들 간의 순서는 임의적
역색인 구조
11. 11 / 42
토마토
검색 질의 색인어와 문서 색인어 간의 매칭
토마토팩토리가 보이는 이유
토마토
“토마토팩토리“
색인어 추출
색인어 추출 방식
검색 질의와 문서가 동일해야한다
어절 단위 N-gram
형태소 분석
“빛가득 일반토마토“
토마토
토마토
팩토리
빛가득 일반
12. 12 / 42
토마토팩토리
토마토팩토리를 하나의 색인어로 보는 방법
색인어 추출로 문제를 해결해 보자
“토마토팩토리“ 토마토
브랜드가 “토마토” 라면?
검색이 안 돼도 괜찮을까?
다른 문제는 없을까?
이러면 토마토팩토리는
안 보이겠다!
색인어 추출 방법으로는 한계가 있다!
색인어 추출
13. 13 / 42
검색 모델링
검색 랭킹으로 문제를 해결하자
검색결과 관련 된 상품들이 너무 많다
상품을 노출 할 수 있는 화면은 제한적인데…
어떤 상품을 먼저 보여줘야 할까?
사용자가 만족할만한 상품을 먼저 보여주자
2,263
보편성
15. 15 / 42
단순 정렬
상품이 검색 질의에 얼마나 적합한가
줄 세우기
Information
needs
사용자의 요구에 맞는 가장 적합한 상품을 찾자!
가격 순 정렬?
리뷰가 많은 순서?
신상품 먼저?
16. 16 / 42
검색 모델링
검색 질의와 문서간의 적합도 산정
산정된 적합도로 내림차순
사용자는 만족스러운 결과 얻음
검색 모델링이란
doc23
0.53
doc63
0.91
doc7
0.34
doc23
0.53
doc63
0.91
doc7
0.34
적합도 부여
내림차순로 정렬
17. 17 / 42
문서
품질
생성 날짜, 가격, 리뷰 점수 등
문서 자체의 점수
사용자의 검색에 대한
클릭, 구매 등의 점수
검색 질의 색인어와
문서 색인어 사이의 확률적 관계
NHN 검색 모델링
적합도
질의문서
유사도
사용자
피드백
문서 품질
(Quality)
사용자 피드백
(UserFeedback)
질의문서 유사도
(Similarity)
𝑹𝑹𝑹𝑹𝑹𝑹𝑹𝑹 𝑹𝑹𝑹𝑹𝑹𝑹𝑹𝑹𝑹𝑹 𝑸𝑸𝑸𝑸𝑸𝑸, 𝑫𝑫𝑫𝑫𝑫𝑫 = 𝜶𝜶𝟏𝟏 ∗ 𝑸𝑸𝑸𝑸𝑸𝑸𝑸𝑸𝑸𝑸𝑸𝑸𝑸𝑸 𝑫𝑫𝑫𝑫𝑫𝑫 + 𝜶𝜶𝟐𝟐 ∗ 𝑺𝑺𝑺𝑺 𝑺𝑺𝑺𝑺𝑺𝑺𝑺𝑺𝑺𝑺𝑺𝑺𝑺𝑺𝑺𝑺 𝑸𝑸𝒓𝒓𝒓𝒓, 𝑫𝑫𝒐𝒐𝒐𝒐 + 𝜶𝜶𝟑𝟑 ∗ 𝑼𝑼𝑼𝑼𝑼𝑼𝑼𝑼𝑼𝑼𝑼𝑼𝑼𝑼𝑼𝑼𝑼𝑼𝑼𝑼𝑼𝑼𝑼𝑼(𝑸𝑸𝑸𝑸𝑸𝑸, 𝑫𝑫𝑫𝑫𝑫𝑫)
검색 모델
24. 24 / 42
유사도 (Similarity)
“토마토“
검색 질의 색인어와
문서의 색인어가 유사하다는 건 뭘까?
여러 상품 중에 토마토와
유사한 상품을 어떻게 찾지?
25. 25 / 42
벡터 공간
모델
2포와송
모델
이진 독립
모델
초기의 유사도 모델들
• 검색 질의, 문서를 단어 벡터로 표현
• 두 단어 벡터 사이의 코사인 계산
• 단어의 분포를 단어의 유무로만 보는 모델
• 검색 질의에 적합한 단어 분포로 계산
• 단어의 분포를 포와송 분포로 보는 모델
• 문서가 색인어와 관련 있을수록 색인어 출현 빈도에 영향을 준다
베르누이 분포
Eliteness 속성
TF-IDF 기반
확률 모델
27. 27 / 42
TF-IDF
TF-IDF
역문서 빈도 IDF 문서집합에서의 희소가치를 나타낸다
색인어 빈도 TF 자주 나온다면 그 문서를 대표한다
= 𝑻𝑻𝑻𝑻 ∗ 𝒍𝒍𝒍𝒍𝒍𝒍
𝑻𝑻𝑻𝑻𝑻𝑻𝑻𝑻𝑻𝑻𝑻𝑻𝑻𝑻𝑻𝑻𝑻𝑻𝑻𝑻𝑻𝑻
𝑫𝑫𝑫𝑫
두 속성을 반영
28. 28 / 42
TF에 큰 영향을 받는다
초기 확률 모델의 문제점
“완숙 토마토 10kg”
토마토
“토마토팩토리 토마토
팩토리 토마토팩토리
토마토팩토리 …”
토마토 키워드가 한번 들어간 상품
토마토 키워드가 반복해서 들어간 상품
무의미한 키워드 반복이 유사도 계산에 영향을 준다
더 높은
유사도 점수
그렇다고 키워드 출현을 무시할 수는 없고…
29. 29 / 42
BM25
다른 문서들과 비교해
무의미한 반복 등으로 긴 문서에 페널티
키워드 출현 빈도가 계속 커지더라도
정해진 범위의 값에 들어가도록 함
초기 확률 모델의 문제점을 개선
확률 모델 - BM25
키워드 출현 비율 반영
평균 문서 길이 반영
30. 30 / 42
문서는 각각의 특성을 갖는 영역으로 구성되어 있다
확률 모델 - BM25
빛과나무
빛가득 일반토마토 10kg
식품 청과/농산물 국내산과일
단일 텍스트 문서
토마토
BM25 유사도 계산
브랜드: 빛과나무
상품명: 빛가득 일반토마토 10kg…
카테고리: 식품>청과/농산물>국내산과일
구조화된 문서
토마토
각 영역에 대해 BM25 유사도 계산
구조화 된 문서를 잘 이용하자
31. 31 / 42
검색 질의 중요도를 잘 활용하지 않았다
확률 모델 - BM25
토마토
브랜드: 토마토팩토리
상품명: 200D 유발 멀티레깅스
카테고리: 패션의류>스타킹/레깅스>레깅스
브랜드:
상품명:
카테고리:
영역 중요도
각 영역의 유사도
계산에만 집중
각 영역의 중요도는 동일하다
검색 질의 별로 중요한 영역이 다르지 않을까?
32. 32 / 42
검색 질의에 중요한 영역을 찾아 유사도 계산에 반영
확률 모델 - BM25F
토마토
브랜드: 토마토팩토리
상품명: 200D 유발 멀티레깅스
카테고리: 패션의류>스타킹/레깅스>레깅스
브랜드: 빛과나무
상품명: 빛가득 일반토마토 10kg…
카테고리: 식품>청과/농산물>국내산과일
검색 질의와
각 영역의
유사도
검색 질의
중요도 반영
구조화된 검색 모델
34. 34 / 42
구조화된 문서를 적극적으로 활용하는 모델
구조화된 검색 모델
두 상품간의 차이를 만들지 못 함
브랜드:
상품명:
카테고리:
영역 중요도
브랜드:
상품명:
카테고리:
영역 중요도
토마토
각 영역을 구분없이 동일하게 보면
상품명에 토마토가 나오면 관심있는 상품
35. 35 / 42
검색 질의 별로 각 영역의 중요도가 다르다
중요도 (Importance)
토마토
브랜드:
상품명:
카테고리:
영역 중요도
36. 36 / 42
수납장
검색 질의 별로 각 영역의 중요도가 다르다
중요도 (Importance)
브랜드:
상품명:
카테고리:
영역 중요도
39. 39 / 42
하나 하나
손으로 입력
검색 질의 별 중요도 선택 방법
중요도 (Importance)
토마토
수납장
나이키 견과류
아디다스
바나나
청바지
사람이 하기에는 너무 많다
40. 40 / 42
하나 하나
손으로 입력
검색 질의 별 중요도 선택 방법
중요도 (Importance)
토마토
수납장
나이키 견과류
아디다스
바나나
청바지
자동화된
선택 방법
필요하다
사람이 하기에는 너무 많다
41. 41 / 42
베이즈
분류기
각 영역의 색인어 빈도를 이용
검색 질의의 영역 분류 확률 계산
계산된 분류 확률을 중요도로 사용
검색 질의를 통해 상품에 대한 요구를 전달한다
질의 분석을 통한 중요도 할당
사용자의 요구를 문서에 맞춰 분류해보자
42. 42 / 42
베이즈
분류기
검색 질의 별로 각 영역의 분류 확률을 계산
질의 분석을 통한 중요도 할당
토마토
수납장
아디다스
브랜드:
상품명:
카테고리:
영역 중요도
25%
75%
0%
브랜드:
상품명:
카테고리:
영역 중요도
43%
57%
0%
브랜드:
상품명:
카테고리:
영역 중요도
37%
63%
0%
계산된 분류 확률을
각 영역의 중요도로 사용
43. 43 / 42
중요도를 반영해서 검색 질의와 상품들 간의 유사도 계산
중요도를 반영해 유사도 계산
토마토
브랜드: 토마토팩토리
상품명: 200D 유발 멀티레깅스
카테고리: 패션의류>
스타킹/레깅스>레깅스
브랜드: 빛과나무
상품명: 빛가득 일반토마토 10kg…
카테고리: 식품>청과/농산물>
국내산과일
브랜드:
상품명:
카테고리:
영역 중요도
44. 44 / 42
중요도를 반영해서 검색 질의와 상품들 간의 유사도 계산
중요도를 반영해 유사도 계산
토마토
브랜드: 토마토팩토리
상품명: 200D 유발 멀티레깅스
카테고리: 패션의류>
스타킹/레깅스>레깅스
브랜드: 빛과나무
상품명: 빛가득 일반토마토 10kg…
카테고리: 식품>청과/농산물>
국내산과일
브랜드:
상품명:
카테고리:
영역 중요도
유사도 유사도
45. 45 / 42
중요도를 반영해서 검색 질의와 상품들 간의 유사도 계산
중요도를 반영해 유사도 계산
토마토
브랜드: 토마토팩토리
상품명: 200D 유발 멀티레깅스
카테고리: 패션의류>
스타킹/레깅스>레깅스
브랜드: 빛과나무
상품명: 빛가득 일반토마토 10kg…
카테고리: 식품>청과/농산물>
국내산과일
브랜드:
상품명:
카테고리:
영역 중요도
유사도 유사도
빨간 토마토를 찾을 수 있을 것이다
46. 46 / 42
현실과 이상의 괴리
(https://www.uniquepavingmaterials.com/how-a-road-is-paved/)
(https://www.dirtandgravel.psu.edu/pa-program-resources/scc-program-overview/program-history)
47. 47 / 42
많은 검색 질의의 중요도가 상품명에 높게 나온다
기대했던 검색 결과가 나오지 않는다
수납장
아디다스
브랜드:
상품명:
카테고리:
영역 중요도
브랜드:
상품명:
카테고리:
영역 중요도
브랜드인데 상품명이 가장 높다
카테고리 종류인데 상품명이 가장 높다
0.26
0.43
0.31
중요도
평균 중요도
브랜드 상품명 카테고리
48. 48 / 42
상품명에 브랜드도 나오네?
상품명에 다른 영역의 키워드들이 들어가 있다.
학습 문서 품질 문제 1
상품명에 카테고리도 나오네?
[버커루] 남성용 데님 팬츠 청바지
[아디다스] 클래식 삼선 트레이닝복
[토마토팩토리] 200D 유발 멀티레깅스
여러 상품명들
49. 49 / 42
상품명에 브랜드도 나오네?
상품명에 다른 영역의 키워드들이 들어가 있다.
학습 문서 품질 문제 1
상품명에 카테고리도 나오네?
[버커루] 남성용 데님 팬츠 청바지
[아디다스] 클래식 삼선 트레이닝복
[토마토팩토리] 200D 유발 멀티레깅스
상품명의 분류 확률이 높게 계산된다
쇼핑 문서의 상품명에 브랜드도 있고 카테고리도 있다
여러 상품명들
50. 50 / 42
여러 내용이 묶여 있다
하나의 카테고리에 여러 내용이 들어가 있다
학습 문서 품질 문제 2
식품>쌀/청과/농수축산물>채소/근채류>감자/고구마/호박
스포츠/레저>자전거/스키/보드>스키/스노우보드>스키복
여러 카테고리들
서로 다른 내용이 묶여 있다
51. 51 / 42
여러 내용이 묶여 있다
하나의 카테고리에 여러 내용이 들어가 있다
학습 문서 품질 문제 2
식품>쌀/청과/농수축산물>채소/근채류>감자/고구마/호박
스포츠/레저>자전거/스키/보드>스키/스노우보드>스키복
여러 카테고리들
서로 다른 내용이 묶여 있다
빈도 기반의 확률 계산에 영향을 준다
52. 52 / 42
문서 품질
개선
검색 모델
고도화
질의 분석
고도화
쇼핑 검색 품질을 높이기 위해 하고 있는 일들
• 유사도 계산을 위한 상품 문서내용 정제
• 유니크한 상품 카테고리 정보 부여
• 기존의 질의 분석 문제를 해결한 새로운 질의 분석 기법
• 검색 질의에 포함 된 속성 정보 추출
• 정제 된 문서, 질의 분석을 활용한 쇼핑 검색 모델 고도화
• 검색 질의의 의도를 최대한 정확히 검색결과에 반영
53. 53 / 42
Christopher D. Manning, Prabhakar Raghavan & Hinrich Schütze. An Introduction to InformationRetrieval
Jinyoung Kim, Xiaobing Xue and W. Bruce Croft. A Probabilistic Retrieval Model for Semistructured Data
Aman Berhane Ghirmatsion and Krisztian Balog. Probabilistic Field Mapping for Product Search
Stephen Robertson and Hugo Zaragoza. The Probabilistic Relevance Framework: BM25 and Beyond
참고 자료