추천시스템/Recommender Systems

Recommender Systems [1.1 Introduction]

알맹리 2021. 7. 27. 21:47

1.1 Introduction

    추천 시스템의 등장 배경

  Web의 중요성이 높아지면서 추천 시스템이 등장하게 됐다. Web을 사용하면서 user들의 피드백을 likes/dislikes로 받을 수 있게 됐다. 예를 들어, 넷플릭스의 user들은 마우스 클릭 한 번을 통해 손쉽게 피드백을 제공할 수 있다. 이 피드백은 ratings를 통해 하는데, user들이 여러가지 item에 대해 직접 별 다섯개 등으로 수치 값을 매기거나 likes/dislikes같이 2가지 중 선택해 클릭하는 방식이 있다.

  위의 예시처럼 확실한 피드백 값은 아니지만 Web-centric paradigm에서는 더 쉬운 방법의 피드백을 얻을 수 있다. 예를 들어, 아마존 같은 온라인 쇼핑몰에서 특정한 item을 클릭해보거나 검색해보는 것을 해당 아이템에 대해 좋은 평가를 한다고 반영할 수 있다. 이러한 방식으로 수집한 데이터는 user가 어떤 item에 관심이 있는지 파악하기에 훨씬 수월하다.   

  추천시스템의 기본 아이디어는 이런 다양한 데이터 소스를 활용해 user의 관심사를 추론하는 것이다. 여기서 추천을 받는 주체를 user, 추천되는 상품을 item이라고 한다. 과거의 관심사와 성향은 대체로 미래의 선택에 영향을 미치기 때문에 recommendation analysis는 주로 user와 item간의 "이전"의 상호작용을 기반으로 이루어진다. 예외도 있는데, 지식기반 추천시스템은 사용자의 과거 이력이 아닌 사용자가 "직접 지정"한 요구사항을 기반으로 추천해준다.

 

    그럼 추천 알고리즘의 기본 원리는 무엇일까?

추천은 user와 item 사이의 활동에 상당히 의존적이다. 예를 들어, 역사에 관심이 있는 user는 액션영화 보다는 또 다른 역사나 혹은 교육프로그램을 더 관심있어할 것이다. 이처럼 특정한 카테고리에 속한 아이템끼리 서로 유의미한 상관관계가 있는 카테고리들은 보다 더 정확한 추천을 위해 활용될 수 있다.

하지만 dependency는 카테고리 때문에 나타날 수도 있지만, 개별 item들의 항목을 세분화하기 때문에 나타날 수도 있다. 이러한 dependency들은 ratings matrix같은 data-driven manner에서 학습될 수 있고, 해당 모델은 target user에 대한 예측을 수행한다.

가지고 있는 item 평가 데이터가 많을수록 user가 앞으로 어떻게 행동할 지 예측하기 쉬워진다. 예를 들어, 다양한 user들의 구매이력이나 평가점수 데이터를 합한 데이터는 유사한(비슷한 관심사를 가진) user들끼리 그룹을 만드는 데 영향을 미칠 수 있다. 그리고 해당 그룹의 관심사과 행동은 그룹에 포함된 각각의 멤버들에게 어떤 걸 추천해줄 지 결정하는 데도 영향을 미친다.

 

    추천 시스템의 종류는 뭐가 있을까?

앞에서 말한 건 neighborhood models라는 아주 심플한 추천 알고리즘들에 기반한다. neighborhood model은 collaborative filtering이라는 광범위한 모델 클래스에 속한다. "collaborative filtering"이라는 말은 여러 user들의 평가를 기반으로 협업을 통해 아직 하지 않은 평가를 예측한다는 뜻이다.

연습할 때는 추천 시스템이 더 복잡하고, 다양한 보조 데이터 유형을 사용해 데이터가 많을 수 있다. 예를 들어, content based recommender system에서는 추천을 할 때 content가 user에 의해 받은 평가와 content의 속성이 중요한 역할을 한다. 기본적인 아이디어는 user의 관심사는 과거에 평가했거나 access했던 item들을 기반으로 모델링한다는 것이다.

조금 다른 프레임워크로는 knowledge-based system이 있다. 이 시스템에서는 user가 대화식으로 관심사를 직접 지정하고, user의 특성을 도메인 지식과 결합해 추천을 제공한다. 더 나아가서 시간 정보, 외부지식, 위치 정보, 사회적 정보, 네트워크 정보와 같은 contexdual data가 사용될 수도 있다.