'RecSys'에 해당되는 글 1건

  1. 2012.02.27 검색(IR)과 추천 (RecSys) - 동전의 양면 3

최근에 산업체 연구소에 지원을 시작했습니다. 지원하는 회사 중 대형 전자상거래 업체가 있는 관계로 '추천 시스템(Recommendation System -- 이하 RecSys)'에 관심을 가지게 되었습니다. 추천 시스템이라는 분야 및 RecSys라는 컨퍼런스는 알고 있었지만, 좀더 자세히 들여다보면서 검색 분야와 재미있는 차이 및 연관성을 발견할 수 있었습니다. 오늘은 검색의 사촌(?)이라고 할 수 있는 RecSys라는 분야에 대해 소개해볼까 합니다.

추천 시스템 개관

우선 추천 시스템 및 연구의 흐름을 살펴봅시다. 넷플릭스 시스템이 사용자에게 다음에 볼 영화를 추천하는 것, 혹은 아마존이 초기화면 및 상품 페이지에 'You might be interested…'라는 식으로 구매를 유도하는  것이 추천 시스템의 대표적인 사례입니다. 더 자세한 소개는 위키피디아 아티클을 참고합시다.

최근에 읽은 Recommender Systems: An Introduction이라는 책에는 추천 시스템 연구에 대한 최근 동향이 잘 소개되어 있습니다. 이책에 따르면, 사용자 집단의 품목 선호도를 바탕으로 사용자가 아직 경험하지 못한 품목을 추천하는 문제에서 추천 분야의 연구가 시작되었다고 합니다. 사용자 집단에 대한 정보를 개별 사용자의 품목 추천을 위해 사용한다는 의미에서 이를 Collaborative Filtering이라고 통칭합니다. 

Collaborative Filtering은 결국 User-Item Matrix에서 아직 관찰되지 않은 값은 예측하는 문제로 귀결되는데, 사용자 혹은 항목간의 Similarity를 기반으로 예측하는 Memory-based Approach와 Matrix 전체를 대상으로 예측을 위한 알고리즘을 적용하는 Model-based Approach가 있습니다. Memory-based Approach가 복잡성이나 효율면에서 우위를 갖지만, Model-based Approach가 적은 데이터에서 더 잘 동작하며, 전반적으로 더 나은 성능을 내는 것으로 알려져 있습니다.

전통적인 검색 모델에서는 Query와 문서의 유사도를 바탕으로 문서를 랭킹하기에, 여기까지는 검색과 추천이 상당히 다른 이야기입니다. 하지만 추천을 하기에 충분한 양의 선호도 및 기타 정보가 존재하지 않는 경우, 사용자의 프로파일과의 매칭을 바탕으로 추천 결과를 생성하는데, 이를 Content-based Approach라고 부릅니다. 이 경우 매칭을 위해 TF-IDF, 혹은 이와 유사항 Metric을 사용하기 떄문에 결국은 사용자의 프로파일이 질의어가 되는 검색이라고 볼 수도 있습니다. 

이외에도 다양한 추천 기법이 존재하는데, 예컨데 디지털 카메라 선택과 같이 특정 도메인의 지식이 필요한 경우, 이를 직접 모델링하는 (예를들어 가격에 민감한 사용자에게 Low-pixel 카메라를 추천) Knowledge-based Approach도 눈여겨볼만 합니다. 최근에는 위에서 설명한 여러 기법을 결합하여 성능을 향상시키는 Hybrid Approach가 주로 사용되는데, 이는 검색 Feature를 기계학습을 통해 결합하는 Learning-to-Rank기법과 유사합니다. 
 

검색 vs. 추천?

이처럼 추천과 검색은 비슷하면서도 다른 문제입니다. 검색에서는 질의어와 품목(주로 문서)를, 추천에서는 사용자와 품목(주로 상품)을 매칭합니다. 검색이 사용자가 입력한 질의에 대한 응답으로 이에 적합한 문서를 찾는 반면, 추천은 사용자의 선호도 정보를 바탕으로 (굳이 사용자의 요청이 없이도) 품목을 추천하여 사용자의 의사결정을 돕는 것을 목표로 합니다. 검색과 추천 리서치 커뮤니티의 주요 컨퍼런스 역시 전혀 다릅니다. 

하지만, 검색과 추천이라는 전통적인 사고의 틀을 조금만 벗어나면 이 둘의 유사성이 눈에 들어옵니다. 우선 검색과 추천 둘다 대상은 다르지만 (Query-Item / User-Item) 유사도 분석을 필요로 하는 매칭의 문제입니다. 또한 개인화 검색에서는 사용자의 선호도를 직접 모델링하니, 추천과 검색의 Hybrid라고 볼 수 있습니다. 반면에, 많은 추천 시스템에서 키워드 검색을 함께 제공하고 있습니다. 아래 표는 검색과 추천의 유사점과 차이점을 요약합니다. 


검색 + 추천

여기까지 읽으신 분이라면 어느정도 감을 잡으셨겠지만, 검색과 추천은 목표에 있어서나 기법상으로나 연관성이 많은 분야입니다. 위에서 언급한 Content-based Recommendation이나 Personalized Search같은 경우에는 이미 검색과 추천의 구분이 별 의미가 없습니다.

굳이 나누자면, 사용자에 대해 별 정보가 없고 사용자의 정보욕구가 질의어를 통해 잘 표현되는 경우 검색 기법이, 사용자에 대한 정보가 많이 존재하여 사용자의 정보욕구에 대한 좀더 정확한 예측이 가능할수록 추천 기법이 유용하다고 볼 수 있습니다. 아래 다이어그램은 어떤 상황에서 검색과 추천 기법이 적용가능한지를 나타냅니다.


시스템 관점에서는 이렇게 검색과 추천을 구분할 수 있습니다만, 사용자의 입장에서는 시스템이 자신이 찾는 정보를 보여주는 것과 알아서 자신에게 정보를 보내주는 것이 둘 다 중요할 것입니다. 따라서, 제대로 된 서비스를 위해서는 검색과 추천 기능이 모두 필요할 텐데, 여기서 중요한 것이 검색과 추천 기능의 통합입니다. 

여기서 통합은 단순히 두 기능을 동시에 제공하는 것이 아니라, 두 기능의 동작을 유기적으로 결합하는 것을 뜻합니다. 예컨데, 사용자가 추천 알고리즘의 결과에서 어떤 항목을 선택했다면, 이를 검색 결과에도 반영하고, 반면에 검색 질의어 및 선택결과가 추천 결과에도 반영되는 것입니다. 검색을 검색으로, 추천을 추천으로 바라보는 기존 시각으로는 이렇게 검색과 추천을 아우르는 사용자 경험을 제공할 수 없을 것입니다.



마치며 & 관련자료

오늘은 검색과 사촌간이라고 할 수 있는 추천 시스템 연구를 검색과의 비교를 통해 알아보았습니다. 궁극적으로는 사용자와 시스템의 모든 인터렉션을 바탕으로 프로파일을 구성하고, Siri와 같은 사용자에게 친화적인 인터페이스를 통해 개인화된 서비스를 제공하는 것이 검색 및 추천 연구의 비전일 것입니다. 위에서 언급한대로, 이런 비전을 현실화하기 위해서는 여러 분야로 파펀화된 연구성과를 융합해야 할 것입니다.

RecSys 역시 검색처럼 상업 애플리케이션이 활발한 분야라 관련 Tutorial이나 Survey가 많습니다.  더 자세한 소개는 위에 언급한 책 및 다음에 소개하는 주요 논문을 참고하시기 바랍니다. 

  • Evaluating collaborative filtering recommender systems
    Beyond Algorithms: An HCI Perspective on Recommender Systems
    Collaborative Prediction and Ranking with Non-Random Missing Data

p.s. 강민석( @minsuk1015 )님께서 CACM에 나온 관련기사를 추천해 주셨습니다.