[1] Introducing Ranked Retrieval
Boolean query는 사용되는 연산자에 따라 반환되는 자료의 수가 민감하게 바뀌므로 훈련되지 못한 일반 사용자들이 사용하기 어려우며 Ranked Retrieval Model의 경우, 질의의 결과를 문서 집합으로 반환하는 것이 아닌, 상위부터 정렬된 문의 집합으로 반환하며, 질의어는 자연어 형태로 작성되기에 일반 사용자가 사용하기에 용이하다.
[2] Scoring with Jaccard Coefficient
자카드 계수는 일반적으로 중첩된 두 집합에서 사용되며, 두 집합의 크기가 같을 필요는 없으며, 항상 0 또는 1로 값이 설정된다. 자카드 계수의 경우 용어의 빈도를 고려하지 않기 때문에 거리 계산을 위한 정규화 방법이 필요하며, 자카드 계수 계산식은 다음과 같다. Jaccard(A,B) =|A∩B|/|A∪B|, Jaccard(A,A) = 1, Jaccard(A,B) = 0 if A∩B = 0
[3] Term Frequency Weighting
Term-document count matrices는 각 문서에 대한 벡터는 아래와 같이 해당 용어가 등장한 빈도수로 이루어진다. 벡터는 문서내의 단어에 대한 정렬을 고려하지 않기 때문에 동일한 벡터를 가지는 문서가 존재 할 수 있다는 한계점을 갖고 있다. 는 문서내의 용어의 빈도를 의미한다. t는 등장 빈도수이며, d는 문서이다. 로그-빈도 가중치 식과 문서와 쿼리간의 점수 계산은 다음과 같다.
[4] (Inverse)Document Frequency Weighting
등장 빈도가 낮은 용어는 빈도가 잦은 용어보다 좀 더 유용하며 이를 포함하고 있는 문서는 그렇지 않은 문서보다 질의에 대하여 관련성이 상대적으로 높다. 이를 위해 idf 가중치를 사용하는데, 로 표기되며, 는 문서 d에서 t가 나타난 빈도수를 의미한다. idf 는 두 가지 이상의 용어를 가진 질의에서의 문서들의 순위에 영향을 미친다.
[5] TF-IDF Weighting
tf-idf 가중치는 정보 검색에서 가장 잘 알려진 가중치 설정 방법으로, tf 가중치와 해당idf의 곱으로, 와 같은 식을 만족한다. 이에 질의에 따른 문서의 최종 순위는 와 같이 계산이 가능하다.
[6] The Vector Space Model
문서를 벡터로 생각할 때, 용어는 축이 되고, 문서는 해당 공간내의 점 또는 벡터가 된다.
질의를 벡터로 생각할 때, 동일한 작업을 수행하는 쿼리는 공간내의 벡터로 표현되며, 이 공간에서 질의(벡터)의 근접성에 따라 문서에 순위를 매길 수 있다. 벡터간의 각도를 이용하여 순위를 선정하는 것이 좋으며, 단조감소함수인 코사인을 이용하여 계산한다. 벡터 길이 정규화를 위한 식은 이다.
[7] Calculating, TF-IDF Cosine Scores
tf 값을 계산하는 방법으로, log, augmented, boolean등이 있으며, idf 값을 계산하는 방법으로는 log 등이 있다. 질의와 문서를 각각 가중치가 계산된 tf-idf 벡터로 나타내고, 각 벡터에 대하여 코사인 유사도를 계산하며, 질의에 대한 유사도 값에 따라 각 문서에 순위를 정하며, 상위 10개의 문서를 사용자에게 전달한다.
[8] Evaluating Search Engine
검색엔진에 대하여 speed/size를 통해 정량적으로 평가가 가능하다. 순위가 매겨진 문서 결과 집합에 대해서는 각 문서의 recall 값에 따라 precision-recall 선을 생성하여 평가가 가능하다. 검색 결과에 대한 평가방법으로는 MAP(Mean average precision)을 이용하며, 여기서 AP는 관련 문서가 검색될 때마다 상위 K개의 문서에 대해 얻은 precision 값의 평균이다.
'Programming > ETC' 카테고리의 다른 글
Intellij 단축키 꿀팁 (1) | 2021.01.28 |
---|---|
[Micro Software Architecture] Netflix OSS - 1 (0) | 2019.12.13 |
WebRTC 개요 (0) | 2019.02.28 |
Boolean 정보 검색 요약 (0) | 2017.11.27 |