일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- React
- 도커
- 프로세스
- DB
- 파싱테이블
- 웹소프트웨어
- docker
- 객체지향설계
- 자료구조
- 자연어처리
- 컴파일러
- 정보검색
- OS
- 데이터베이스
- 가상메모리
- 클래스
- 랩실일기
- 파싱
- C언어
- 스케줄러
- 836
- 소프트웨어공학
- 컴파일
- css
- 데이터분석
- 오픈소스웹소프트웨어
- Linear Algebra
- NLP
- 언어모델
- 운영체제
- Today
- Total
observe_db
[정보 검색] 6. Scoring, Term Weighting, The Vector Space Model 본문
10/29
주요 용어
Term frequency: 용어의 빈도(instance의 수). ranking의 핵심
tf-idf ranking: term frequency와 id frequency(Document frequency의 inverse).
Vector space model: 벡터 공간에 넣어서 용어간의 유사도를 알아낼 수 있음.
Ranked retrieval
지금까지의 Boolean 방식은 용어의 유무만 알려준다.
숙련자는 and/or의 조합으로 원하는 정보를 쉽게 찾지만, 일반인이 이런 테크닉을 하는 것은 어렵다.
rank를 매겨서 상위 10개 정도만 보여준다면 쉬워진다.
<전제> 관련된 것들을 먼저(상위에) 나오게 한다.
relevance ranking을 위해서 query-document 짝에 대해 0~1의 값으로 점수를 매긴다.
간단한 예시
- query term이 없다면 0점
- query term의 빈도가 높으면 점수도 높아짐
- 여러 query term 중 다수가 발생할 수록 점수도 높아짐.
방식 1: Jaccard coefficiend
두개의 집합(set)의 overlab을 측정
A, B라는 두 집합에 대해 JACCARD(A,B) = |A AND B| / |A OR B|
<전제> A와 B는 공집합이 아님.
JACCARD(A,A) = 1, JACCARD(A,B) = 0 (A AND B가 공집합)
문제점
- 단어의 빈도를 고려하지 않음
- 단어의 중요도를 고려하지 않음
3. Term frequency
Binary incidence matrix
: 빈도는 없이 유무만 따져서 1/0으로 나타냈다
=> {0, 1}로 이루어진 |V|차원 (V는 term 집)
Count matrix
: 유무가 아니라 빈도를 따짐.
=> N으로 이루어진 |V|차원의 자연수 집합
Bag of words model
- 순서 고려 안함.
ex) <John is quicker than Mary>와 <Mary is quicker than John>은 같은 취급.
postional index를 이용하면 구분이 가능하긴 함.
Term frequency(tf)
tf_t,d는 term t가 document d에서 몇번 등장했는지 나타낸다.
그러나 이 비율이 10:1이라고 해서 확률을 10:1 비 라고 보기는 어려움.
그래서 log 스케일 이용.
w_t,d = 1+log_10(tf_t,d) (tf!=0) 또는 0 (tf=0)
4. tf-idf weighting
Rare term이 frequent term보다 imformative하다.(정보가 많다.)
ex. <알츠하이머 병> 이라고 하면 '병'이란 단어가 더 frequency하겠지만, '알츠하이머'가 더욱 유효한 단어 일 것이다.
=>Frequent term이 rare term보다 덜 informative하다
df(document frequency): 용어 t가 발생한 document의 수.(중복X)
idf: df의 inverse. informativeness를 측정하는데에 사용.
(N은 전체 document의 수)
cf(collection frequency)도 사용하긴 한다.(collection 내에 용어 t가 등장하는 token의 수)
tf-idf weighting
w_t,d = (1+log(tf_t,d)) * log(N/df_t)
5. The vector space model
이전의 incidence matrix는 => {0, 1}로 이루어진 |V|차원 (V는 term 집)
Count matrix에서는 => N(자연수)으로 이루어진 |V|차원의 집합
weight matrix에서는 => R(실수)로 이루어진 |V|차원 집합
term은 하나의 축이 된다.
ex. 그러므로 영어의 경우 약 50만 차원을 가진다.
document는 하나의 점 또는 벡터가 된다.(원점이 정해지면 하나의 점은 벡터로 표현 가능하니, 같은 이야기다.)
Query as vector
1. 고차원 공간에서 쿼리를 벡터로 나타낸다
2. 쿼리에 대해 그들의 유사도(proximity = similarity)를 랭킹한다.
유사도 측정은?
유클리드 거리(Euclidean distance)
-> 서로간의 거리가 벡터 크기에 영향을 받음.
ex) query A에 대해 2A라는 내용을 담은 문서는 |A|라는 거리를 가지게 되는데, 둘의 내용은 동일하다.
각도 이용-> cosine similarity
cosine은 0에서 1, pi/2에서 0의 값을 가진다.
벡터의 전체 크기 = 각 성분의 제곱합.이다.(L2 norm)
(피타고라스 정리 응용)
단 여기서 사용할 때에는 length-normalize를 해야한다.(크기를 1로 맞추어서, 위와 같은 문제가 발생하지 않게)
'학교 공부 > 정보검색(4-2)' 카테고리의 다른 글
[정보 검색] 8. Evaluation & Result Summaries (0) | 2024.11.16 |
---|---|
[정보검색] 7. Scores in a Complete Search System (0) | 2024.11.08 |
[정보 검색] 5. Index Compression (2) | 2024.10.18 |
[정보검색]4. Index Construction (3) | 2024.10.18 |
[정보검색] 3. Dictionaries and tolerant retrieval (0) | 2024.10.11 |