Time-Based Language Models – CIKM 2003

by SL

2003년 CIKM(Conference on Information and Knowledge Management)에 나온 Time-Based Language Models라는 논문을 보면, Language Model에 기반한 기존의 검색 랭킹 연구를 소개하고, 거기에 시간이라는 요소를 추가한 새로운 모델을 설명하고 있다.

우선 기본적인 방식은 Query Likelihood Model이다. 1999년 CIKM에 나온 A General Language Model for Information Retrieval에 따르면, 글의 내용에 따라 그 문서의 모델 Md를 만들고, 그 모델로부터 쿼리 Q가 생성될 확률을 계산한다.

2년 후 SIGIR에 등장한 Relevance-based Language Models에서는 여기에 새로운 아이디어를 덧붙였다. 적합성 피드백(Relevance Feedback)에 기초해 쿼리확장(Query Expansion)을 해보자는 것인데, 자세히 살펴보자.

검색 의도에 부합하는(Relevant) 문서의 집합 R이라는 게 있다고 치자. 그리고 R에 속하는 문서에 (원래 검색어에는 없었던) 새로운 단어 w가 들어 있을 확률을 P(w|R)이라고 하자. 그러면, P(w|R)은 “사용자가 쿼리 Q ={q1, q2, …,qn}를 날렸을 때, Q에 w가 포함되어야 할 확률”이라고도 생각할 수 있다. 즉, P(w|R)과 P(w|Q)는 같다고 봐도 무방하다.

단어 w와 질의어 q1, q2, …, qn이 서로 독립이고, w도 다른 쿼리와 동일하게 샘플링된다고 가정하면,

이제 우리는 P(w|R)을 구할 수 있게 되었다. 그래서 어떡하냐고? 어떡하긴, 문서와 R이 얼마나 유사한지 계산해서 많이 비슷할수록 문서에 높은 랭킹 점수를 주면 되지.

이럴 때 쓸 만한 방법이 KL Divergence다. 두 분포 사이의 거리가 얼마나 되는지에 대한 척도로서, 값이 작을수록 두 분포는 서로 비슷다는 의미다. 따라서 아래와 같이 계산하는 KL(R || Md)가 작을수록 문서 d가 더 사용자의 검색 의도에 부합한다고 판단, 순위를 높여준다.

질의어와 자주 같이 등장하는 새로운 단어가 검색 랭킹에 반영되므로 결국 쿼리확장인 셈이다.

쿼리와 문서의 직접적인 관계만 따지는 Query Likelihood Model에 비해 두 번째 방식은 Relevance를 고려해서 쿼리확장을 하기 때문에 Relevance Model이라고 부른다. ((원본 논문을 안 읽어서 추측으로 쓴 부분이 조금 있다. 흥미가 동한다면 링크한 논문을 읽어보자.))

자, 그럼 이 두 모델에 시간이라는 요소를 어떻게 결합할 수 있을까?
여기까지 왔으면 간단하다. 위의 수식에서 P(d)와 P(M)을 각각 P(d|Td)와 P(M|TD)로 갈아끼우면 된다. 다시 말하면, 이전의 모델에서는 시간에 상관없이 문서의 확률 P(d) ((P(d)의 의미는 해석하기 나름이다. 문서 d의 인기도라고 해도 좋고, 문서품질이라고 봐도 좋고, 그냥 다 똑같다고 가정해도 된다.))가 동일하다고 가정했는데, 이제는 문서 d가 생성된 시각 Td에 따라 각기 다른 값을 부여하는 것이다.

그러면 P(d|Td)를 어떻게 구할지가 중요하겠군?
그렇지! 그런데 사실 그게 간단하지만은 않다. 이전글에서도 얘기했지만, 시의성이 중요하다는 것이 무조건 최신 문서를 보여줘야 한다는 뜻은 아니기 때문이다. 저자들 역시 그것을 모르지는 않지만, 이 연구에서는 어쨌거나 최신성이 중요한 질의어에 집중했다고 밝혔다. 논문에서는 그런 것들을 특별히 최신성 쿼리(Recency Query)라고 부른다. 문제를 이렇게 한정하면 P(d|Td)를 구하는 게 한결 수월해진다. 문서의 나이가 많을수록 P(d|Td)가 작아지도록 하면 되니까. 저자들은 아래와 같이 Exponential Distribution으로 모델링하는 방법을 썼다.

논문의 Time-based Language Model 설명 중 특히 인상적인 건, 시간이 흐르면서 달라지는 사용자 모델을 반영해 쿼리를 다르게 해석하는 것이라며 그 의미를 친절하게 설명해주는 부분이었다. 더 쉽게 풀어쓰면, 똑같은 검색어가 입력되어도 검색 시점에 따라 최신 문서가 달라지기 때문에 자연스럽게 이슈에 맞게 쿼리확장이 이루어지고, 결과적으로 최근 문서가 검색되어 나온다는 얘기다.

Language Model이라는 프레임워크에 Relevancy, 그리고 Recency라는 요소를 녹여넣는 과정이 이론적으로 무척 깔끔하다는 생각이 들었다. 그러니 성능도 어련히 알아서 잘 나왔겠지 싶어서 평가 결과는 읽어보지 않았다.