6.1. 적합성 피드백
사용자의 정보 요구를 질의로 표현하는 과정에서 정보가 손실이 일어나는 경우에 대해서 어떻게 처리 할까요?
사용자가 일반적으로 질의를 만들 때, 온전하게 표현을 못해서 생기는 경우도 존재하지만,
검색 대상에 대한 사용자의 이해가 아직 부족하거나 문서 작성자와 사용자의 어휘 사용이 서로 다르게 정의 된다면,
같은 의미이지만, 검색이 되지 않는 경우도 있습니다.
위의 이유로 사용자 질의의 “불완전/불충분성”을 해결하는 방법을 다음 두 가지로 분류 할 수 있습니다.
1). “전역기법”(Global Techniques) : 사용자의 질문이 불완전/불충분 할 가능성이 높은 결과들을 통계적으로 분석하여,
문서의 관련성을 토대로 미리 문서끼리 연결하여 보관하는 방법입니다.
대표적으로 “질의확장”(Query Expansion)방법이 있고, 구체적으로 “유의어 사전”(Thesaurus)이 있습니다.
유의어 사전은 유의어를 미리 테이블로 정리하여,
이를 참고하여 적합 문서를 재 정의해서 정확도를 높이는 방법입니다.
2). “지역기법”(Local Techniques) : 사용자의 질문이 불완전/불충분 할 경우에 해당 질문에 대해서만
일시적으로 해결하는 방법입니다.
대표적으로 “적합성 피드백”(Relevance Feedback)방법이 있고,
구체적으로 “사용자 적합성 피드백”(User Relevance Feedback) 과 “의사 적합성 피드백”(Pseudo Relevance Feedback)이 있습니다.
사용자 적합성 피드백은 사용자로부터 피드백을 물어보고 직접 피드백을 받아,
사용자의 질의에 대한 적합 문서 결과를 개선하는 방법입니다.
의사 적합성 피드백은 사용자의 피드백 없이 기계 학습이나, 제약 기반 방법등의 자동화 기법들을 사용하여
사용자의 질의에 대한 적합 문서 결과를 개선하는 방법입니다.
적합성 피드백은 사용자의 질의의 최초 검색 결과에 대해서 사용자가 피드백을 제공하는 방법입니다.
1). 사용자가 먼저 질의 Q를 작성하고 검색 명령을 내립니다.
2). 시스템이 Q에 대한 최소 검색 결과를 제시합니다.
3). 사용자는 해당 검색 결과에 대해 적합한지, 적합하지 않은지 알려줍니다.
4). 시스템은 피드백을 반영하여 질의 Q를 Q’로 변경하여 Q’에 대해 검색합니다.
6.2. 중심
문서들의 “중심”(Centroid)은 해당 문서 집합의 대표성을 표현할 때 유용하게 쓰입니다.
어떠한 문서들의 집합 C가 존재할 때, 각 문서는 각 가중치에 대한 벡터 \(\vec{c_i}\)로 정의한다면,
C의 중심벡터 \(\vec{c}\)는 \(\vec{c} = \frac{1}{|C|} \sigma_{i = 1}^{|C|}\vec{c_i}\) 가 성립합니다.
적합 문서 중심에서 부적합 문서 중심을 빼서 나온 결과로 질의를 수정하는 방법인
“로치오”(Rocchio)알고리즘이 존재합니다. 로치오 알고리즘의 식은 다음과 같습니다.
\(\vec{q_m} \)\(= \alpha\vec{q_0} \)\(+ \beta\frac{1}{|D_r|}\Sigma_{i = 1}^{|D_r|}\vec{d_i} \)\(– \gamma\frac{1}{D_{nr}}\Sigma_{i=1}^{|D_{nr}|}\vec{d_i}\)
\(\vec{q_m}\)은 수정된 질의 이고, \(\vec{q_0}\)는 처음 받은 질의 값 입니다.
\(\alpha, \beta, \gamma\)는 상수 값이고, \(D_{r}\)은 적합 문서 집합, \(D_{nr}\)는 부적합 문서 집합입니다.
로치오 알고리즘 식에서 \(\alpha, \beta, \gamma\)들을 모두 1로 고정하면,
\(\vec{q_m} \)\(= \vec{q_0} \)\(+ \frac{1}{|D_r|}\Sigma_{i = 1}^{|D_r|}\vec{d_i} \)\(– \frac{1}{D_{nr}}\Sigma_{i=1}^{|D_{nr}|}\vec{d_i}\) 가 되고,
이를, “Ide_Regular” 알고리즘 이라고 표현합니다.
또한, Ide_Regular 알고리즘 에서 \(\frac{1}{D_{nr}}\Sigma_{i=1}^{|D_{nr}|}\vec{d_i}\)를 부적합 문서 중에서 가장 부적합한 하나의 문서인 \(\vec{d_{nr_1}}\)으로 바꾼 식
\(\vec{q_m} \)\(= \vec{q_0} \)\(+ \frac{1}{|D_r|}\Sigma_{i = 1}^{|D_r|}\vec{d_i} \)\(– \vec{d_{nr_1}}\) 를
“Ide_Dec_Hi” 알고리즘 이라고 표현합니다.
로치오 알고리즘에서 \(\beta\frac{1}{|D_r|}\Sigma_{i = 1}^{|D_r|}\vec{d_i} \)를 “긍정”(Positive)피드백,
\(-\gamma\frac{1}{D_{nr}}\Sigma_{i=1}^{|D_{nr}|}\vec{d_i}\)를 “부정”(Negative)피드백 이라고 표현하기도 합니다.
보통 긍정 피드백의 가중치 \(\beta\)가 부정 피드백의 가중치 \(\gamma\)보다 크게 설정하여 사용됩니다.
그 이유는 긍정 피드백은 값을 특정하는 방향으로 이어나가지만, 부정 피드백은 값을 밀어내기 때문에,
가중치가 커지면 커질수록 값이 특정되지 않고 점점 희미한 형태가 될 수 있어,
이는 성능이 하락하는 결과로 이어질 수 있기 때문입니다.