박사 과정을 마치면서, 그동안 했던 연구 및 앞으로의 계획에 대해 발표할 기회가 종종 주어집니다. 올해 초에 Job Talk이 있었고, 최근에 한국에서도 제 연구에 대한 한 시간 분량으로 소개할 자리가 있었습니다. 오늘은 그 행사에서 썼던 발표자료와 동영상을 공유할까 합니다. 원래 한글로 발표할 계획이었습니다만, 청중 가운데 외국인이 계서서 영어로 진행하였습니다.


저의 발표는 '검색'이라는 분야 및 저의 주요 연구내용, 그리고 앞으로의 트렌드에 대한 전망으로 마무리됩니다. 대부분 검색 연구경험이 없는 학생들을 대상으로, 한 시간동안 진행한 발표라, 전체적으로 기술적인 내용을 깊게 다루지는 않습니다. 하지만, 검색 연구가 어떤 식으로 진행되는지에 대한 감을 드리는 차원에서, 저의 논문중 구조화된 문서의 검색에 사용되는 검색모델에 대해 (PRM-S / FRM) 자세히 설명합니다. 


발표자료는 아래 SlideShare에서 보실 수 있지만, 중간중간 삽입된 애니메이션이 제대로 보이지 앖기 때문에, 여기서 다운로드 받으실 것을 권장합니다.


위에서 주최측에서 준비해주신 발표 동영상을 보실수도 있습니다. 조금 어둡게 쵤영되기는 했지만, 내용 전달에 큰 무리는 없으리라 봅니다. HD버튼을 누르시면 훨씬 더 선명한 영상을 보실 수 있습니다.


아직 갈길이 멀지만, 배움의 여정 중간중간 이렇게 그동안의 여정을 공유할 자리가 있다는 것은 감사한 일입니다. 자료를 보시고 더 궁금하신 내용이나, comment가 있으신 분은 답글로 남겨주시면 감사하겠습니다. ^^


이번 달 Wired에 실린 구글의 검색 품질에 관한 기사입니다. 수많은 도전에도 불구하고 구글의 검색 품질은 따라잡기 힘들 것이라고 전망하고 있군요. 그리고 이를 뒷받침하는 핵심 역량은 유연성이라고 지적합니다. 경쟁사에서 새로운 기술을 선보여도 구글은 곧 이를 자사의 검색 알고리즘에 통합시킬 수 있을 테니까요. 저자는 이렇게 결론짓고 있습니다.
Still, even if there is such a shift, Google’s algorithms will probably be able to incorporate that, too. That’s why Google is such a fearsome competitor; it has built a machine nimble enough to absorb almost any approach that threatens it — all while returning high-quality results that its competitors can’t match.
물론 이는 말처럼 쉬운 일이 아닙니다. 수백개의 속성(feature)의 조합으로 이루어지는 검색 알고리즘을 잘못 고쳤다가는 그동안 쌓아올린 향상이 모두 무너질 수도 있기 때문이죠. 말하자면 검색은 균형의 예술(balancing act)인 것입니다. 구글의 검색 책임자인 Amit Sighal의 말을 들어봅시다.
Throughout its history, Google has devised ways of adding more signals, all without disrupting its users’ core experience. Every couple of years there’s a major change in the system — sort of equivalent to a new version of Windows — that’s a big deal in Mountain View but not discussed publicly. “Our job is to basically change the engines on a plane that is flying at 1,000 kilometers an hour, 30,000 feet above Earth,” Singhal says.
운항중인 항공기의 엔진을 고치는 일이라 -- 실감나는 비유입니다. 그리고 이정도 규모와 복잡성을 지닌 시스템을 튜닝하는 것은 과학에 가깝습니다. 더이상 '감'에 의존하는 것이 불가능하기 때문입니다. 이를 잘 아는 구글은 입력되는 모든 쿼리를 하나 이상의 실험을 위해 활용한다고 합니다.
 Every time engineers want to test a tweak, they run the new algorithm on a tiny percentage of random users, letting the rest of the site’s searchers serve as a massive control group. There are so many changes to measure that Google has discarded the traditional scientific nostrum that only one experiment should be conducted at a time. “On most Google queries, you’re actually in multiple control or experimental groups simultaneously,” says search quality engineer Patrick Riley.
인터넷 검색과 같은 Winner-takes-all Market에서 독보적인 1위를 추격하는 것은 어려운 일입니다. 특히, 이처럼 선두가 방심하고 있지 않다면 더욱 그렇습니다. 흔히 구글 검색의 품질은 PageRank에 기인한 것으로 알려져 있지만, 그들의 진짜 경쟁력은 끊임없이 바뀌는 환경에 적응할 수 있는 능력, 이를 뒷받침하는 실험 인프라와 노하우일 것입니다.

또한, 이 기사는 지난 10년간 구글이 선보인 검색 기술상의 혁신과 구글 검색이 경쟁사에 비해 나은 점을 구체적인 질의(query)를 들어 설명하고 있습니다. 예컨데, 구글은 'new york', 'new york times', 'new york times square'가 모두 다른 대상을 가리키는 질의라는 사실을 알아냅니다. 기사를 좀더 읽어보시면, 구글 역시 문서보다는 사용자의 질의를 좀더 잘 이해하는 쪽에 연구 초점을 맞추고 있다는 것을 알 수 있습니다. 예전에 이곳에 올린 검색 연구의 흐름에 관한 글과 비교해 보시면 흥미로울 것 같습니다. 

원본
윤석찬님 블로그에 소개된 소셜 검색엔진 Aardvark(아드박이라고 읽는군요;)에 관한 논문을 읽어 보았습니다. 아드박은 사용자의 질문에 대한 대답을 주는 문서를 찾는 대신에 가장 적절한 답변자를 찾아준다는 아이디어를 기반으로 합니다. 수십년간 지속되었으나 아직도 상용화되지 못한 자동 QA시스템 연구에 멋진 카운터를 먹인 셈이라고나 할까요. 

'Anatomy of a Large-Scale Social Search Engine'이라는 제목의 논문 역시 이론과 응용이 조화를 이룬 수작입니다. '문서'를 찾는 검색 모델을 '사람'을 찾는 용도로 변형시켰다는 측면에서 학문적으로 새로운 내용은 아니지만, 검색 모델의 구성요소를 요목조목 잘 설명하고 있습니다. 산업체 출신의 저자가 쓴 이유에선지 기술적인 내용을 쉽게 소개하고 있어, 검색 공부를 하시는 분들께 일독을 권합니다.

개괄적인 내용은 앞서 소개한 포스팅에 잘 소개되어 있으니, 여기서는 아드박의 검색 모델을 분석해볼까 합니다. 

검색 모델 분석
아드박의 검색 모델은 질문자(u_j)와 질문(q)에 대하여 잠재적인 답변자(u_i)를 랭킹하는 다음 수식으로 요약됩니다.


언뜻 복잡해보이는 이 수식은 사실 간단한 메시지를 담고 있습니다. 1) 질문자와 가장 가깝고 p(u_i | u_j) 2) 해당 질문을 가장 잘 아는 p(u_i | q) 답변자를 선택하라는 것입니다. 또한 질문에 대한 잠재 답변자의 지식을 평가하기 위해서 사용자가 어떤 주제(t)에 정통한지 p(u_i | t)와 질문이 어떤 주제에 해당하는지 p(t | q)를 고려하고 있습니다. 

이번에는 문서를 찾는 전통적인 검색 모델의 관점에서 위 검색 모델을 생각해 봅시다. 전통적 검색 모델에서는 문서의 품질 및 질의와의 관련성을 평가합니다. 또한 문서와 질의의 관련성을 평가하기 위해 질의를 다양한 토픽에 매핑시키는 기법이 사용됩니다. [1] 요약하면, 아드박의 검색 모델은 기존 검색 모델의 뼈대를 유지한 채 사용자 검색이라는 컨텍스트에 맞게 변형시킨 결과입니다. 

1) 사용자간의 친화성
사용자간의 친화성은 프로필 / 소셜 그래프 / 행동 패턴 등 다양한 기준(feature)에서 평가될 수 있으며, 실제 평가는 이 모든 요소를 적절한 Weight로 결합하여 이루어집니다. 재미있는 것은 행동 패턴 부분인데, 사용자가 얼마나 수다스러운지, 공손한지, 신속하게 응답하는지까지 고려합니다. 이는 단순히 유사한 관심사를 갖는 사용자를 매칭시키는 기존의 소셜 네트워크 검색 기법을 뛰어넘는 것이라고 볼 수 있습니다.

2) 답변자와 질문의 관련성
질문과 답변자의 관련성을 평가하기 위해서는 답변자의 프로필과 질문이 각각 어느 주제에 매칭되는지를 알아야 합니다. 우선 답변자의 프로필은 사용자의 정보 및 홈페이지 등을 통해 만들어지는데, 이 과정에서 해당 사용자의 소셜 네트워크가 해당 사용자의 프로필에 반영되는 점이 이채롭습니다. 즉, 내 친구들이 컴퓨터 전문가라면 나 역시 컴퓨터에 정통할 확률이 높아진다는 점을 고려하는 것입니다. 질문을 주제에 매칭하는 과정은 1)에서와 유사하게 Linear Combination을 활용하고 있습니다.

마치며
Aardbark은 인간과 기계를 한 시스템에서 조화시킨(Humans-in-the-loop) 좋은 사례입니다. 이처럼 사용자의 적극적인 참여를 유도하고, 이를 알고리즘과 결합하여 다시 사용자에게 고품질의 결과를 제공하는 어프로치는 최근 '핫'한 토픽인 것 같습니다. 아울러 전통적인 검색 모델이 이처럼 새로운 문제에 활용될 수 있다는 점이 주목할만합니다.  문서 대신에 '사람'을 검색한다는 아이디어 역시 이미 Expert Search라는 연구 분야에서 다루어진 바가 있지만, QA 서비스라는 문제에 적용시킨 점이 참신합니다. 구인/구직, Matchmaking(e.g. 듀오) 등에 폭넓게 활용될 수 있지 않을까 합니다. 

[1] 관련성 부분은 Relevance-based Language Model 이라는 논문에서 소개된 것과 거의 같습니다.