reommender system

[추천 시스템#1] 추천 시스템이란?

j.d 2023. 4. 25. 10:54

과거에는 대부분 매장에서 직접 물건을 구매하고 판매자와의 직접적인 소통을 통해 원하는 물건을 보고 체험한 뒤 구매를 결정하였습니다. 하지만 최근에는 TV나 컴퓨터, 핸드폰 등 각종 스마트 기기들의 발전에 따라 고객들은 다양한 방법을 통해 언제 어디서나 간편하게 물건을 구매할 수 있게 되었습니다. 그러나 정보 기술의 발전 또한 급격해짐에 따라 많은 양의 정보들이 생성되어 사용자들은 관심 있는 상품에 대한 선택이 어려워지는 상황에 직면하고 있습니다. 

 

이를 위해 개인을 위한 맞춤 추천 시스템 개발의 중요성이 대두되고 있습니다.

 

추천 시스템은 우리가 사용하는 대부분의 매체에서 사용되고 있는데요.

youtube를 예로 들어보겠습니다.

제가 최근 youtube에서 드라마 '미생' 영상과 재즈 영상을 많이 보았더니 

 

 

위와 같이 재즈, 미생 영상과 더불어 비슷한 장르의 음악, 영화 영상까지 추천해 주고 있는 것을 볼 수 있습니다.

이번 카테고리에서는 여러 플랫폼에서 사용되는 추천 시스템에 대해서 차근차근 알아보겠습니다.

추천 시스템이란?

추천 시스템이란, 사용자의 과거 선호도를 바탕으로 개인에게 알맞는 item을 제공하는 시스템을 말합니다.

이를 잘 활용하면 사용자에게는 취향에 맞는 item을 얻을 수 있고, 판매자 입장에서는 이윤 창출과 직결되므로 모두에게 이득이 될수 있어 그 중요성이 커지고 있습니다.

 

사용자의 선호도를 알아내기 위해서는 feedback 데이터가 필요합니다. 이는 명시적 피드백(Explicit feedback), 암시적 피드백(Implicit feedback)으로 나눌 수 있습니다.


Explicit feedback은 평점과 같이 user의 선호도를 바로 알아볼 수 있는 데이터를 말합니다. 따라서 직관적이지만 데이터를 구하기 어렵고 sparse하다는 단점이 존재합니다.

 

Implicit feedback은 클릭수, 페이지 유지 시간 등 사용자가 아이템과 얼마나 상호작용했는지를 기록한 데이터를 일컷습니다. 상호작용이 무조건 선호도와 직결되지는 않지만(실수로 클릭할수도 있으니까요), 간접적으로 파악할 수 있습니다. 그러므로 Explicit feedback과는 반대로 직관적이지 않고 여러 노이즈가 있다는 단점도 있지만 최근에는 이러한 Implicit feedback을 이용한 추천 시스템 모델들이 다수 등장하고 있습니다. 

 

추천 시스템의 종류

추천 시스템은 크게 콘텐츠 기반 필터링(Contents-based Filtering, CB), 협력 필터링(Collaborative Filtering, CF), 하이브리드(Hybrid)방식이 있습니다. 이외에도 가장 간단한 추천 방법으로는 판매량이 많은 순서대로 상품을 추천하는 베스트셀러기반 추천, 최소질의대상 상품결정 방법등이 존재합니다.

 

Contents-based Filtering

CB는 아이템의 도메인을 직접 분석하여 사용자가 관심있는 아이템의 속성을 통해 추천하는 방식입니다.

사용자가 아이템에 대해 펑가한 점수 혹은 과거 구매내역을 바탕으로 생성된 정보를 통해 선호하는 아이템을 파악한 다음, 미리 선정된 기준을 통해 분류된 카테고리와 사용자의 선호 아이템 중 유사도가 가장 높게 나오는 카테고리의 아이템을 추천 하는 순서로 진행됩니다.

이처럼 CB는 추천 대상 고객의 데이터만을 사용하기 때문에 다른 사용자의 정보가 부족할 경우에도 유용하게 쓰일 수 있는 추천 기법으로 알려져 있습니다.

또한 누군가 점수를 주기 전가지는 해당 아이템이 추천 리스트에 포함될수 없는 First rater 문제가 발생하지 않는다는 장점도 가지고 있습니다. 

 

하지만 충분한 양의 사용자 정보가 필요하며, 구매이력과 프로필 정보가 모두 존재하지 않는다면 구현이 불가능하다는 단점이 있습니다. 더불어 카테고리간의 유사성을 비교하기 때문에 추천되는 제품의 다양성이 떨어질수 있습니다. 

 

Collaborative Filtering

CF는 '특정 아이템에 대해 선호도가 유사한 고객들은 다른 아이템에 대해서도 비슷한 선호도를 보일 것'이라는 가정을 바탕으로 사용자 혹은 아이템간 유사도를 기반으로 선호도를 예측하는 방법입니다.

 

비슷한 선호도를 가지는 다른 고객들의 데이터를 통해서 추천 리스트를 생성하기 때문에 item의 다양성을 확보할 수 있습니다.  

 

하지만 이러한 특징으로 인해 CB와 반대로 다른 사용자들이 어떤 item에 점수를 주기 전까지는 추천 리스트에 포함 될 수 없다는 문제를 지니고 있습니다. 더불어 평점데이터 같이 Explicit feedback는 구하기 어렵고 sparse(모든 사용자가 모든 item에 평점을 남기는 것이 아니기 때문입니다.)하다는 단점이 있기 때문에 최근에는 Implict feedback을 이용한 CF기반 모델들의 연구가 진행되고 있습니다. 

 

Hybrid model

앞에서 살펴본 바와 같이 추천 시스템 모델들은 모델마다 각각의 장단점을 가지고 있습니다. 따라서 최근에는 각 방식의 장점을 극대화하면서 단점은 보완하고 다양한 정보를 효과적으로 활용할 수 있는 하이브리드 추천 시스템에 대한 연구가 중요시 되고 있습니다. 

예를 들어, 딥러닝의 모델과 추천 시스템의 접근 방식을 합친 모델 등이 있습니다.

 

추천 시스템이 적용되는 상황은 일정하지 않기 때문에 그만큼 해결할 수 있는 알고리즘 조합 방법도 다양합니다.  따라서 현재 상황을 인지하고 선호도의 특성을 정확히 파악한 뒤, 이에 적합한 모델을 구상해야 합니다.


지금까지 추천 시스템의 등장 배경과 정의, 종류에 대해서 알아보았습니다. 다음 포스팅부터는 추천 시스템의 각 방식에 대해서 좀더 깊게 알아보도록 하겠습니다. 더불어 가능하다면 구현 코드도 첨부하도록 하겠습니다

 

포스팅 내용중  다른 생각이 있는 분 혹은 수정해야할 부분이 있으시면 댓글을 통해 그 의견을 나눠보면 너무 좋을 것 같습니다.