추천 시스템의 정의와 추천 방식에 따른 분류에 관하여
안녕하세요, 이동희입니다! 이번 글에서는 추천 시스템이 무엇인지, 추천 시스템을 어떻게 분류할 수 있는지 글에 담아보고자 합니다. 추천 시스템을 처음 공부할 때, 가장 흔하게 볼 수 있는 내용으로 추천 시스템의 기본이 되는 내용이라고 볼 수 있을 것 같습니다. 아래와 같은 순서로 글을 정리했습니다.
[INDEX]
추천 시스템이란?
추천 시스템의 분류(연관성 규칙 분석 / 협업 필터링 / 콘텐츠 기반 필터링 / 하이브리드)
추천 시스템(Recommendation System)은 정보 필터링 기술의 일종으로, 특정 고객이 관심을 가질만한 정보를 추천하는 시스템입니다. 영화, 음악, 책, 뉴스, 이미지, 웹 페이지 등을 추천해주는 초기 서비스를 넘어 현재는 쇼핑, 광고, 검색어, SNS 등에도 추천 시스템이 적용되어 있습니다. 이러한 추천 시스템은 고객이 원하는 콘텐츠를 매번 검색하는 수고를 덜어주고, 심지어 예측하지 못한 콘텐츠를 접할 수 있는 기회도 제공합니다.
사실 추천 시스템은 산업 환경마다 사용하는 추천 알고리즘이 조금씩 다르기 때문에 명확하게 분류하기가 어렵습니다. 그럼에도 불구하고, 추천 시스템은 몇 가지 알고리즘 동작 방식을 토대로 각 산업 특성에 맞게끔 변형되거나 새로운 기술이 추가된 형태이기 때문에 해당 알고리즘에 따라 분류할 수 있습니다.
개인적으로 참조 사이트에서 추천 시스템을 '연관성 규칙 분석(장바구니 알고리즘, Association Rules)', '협업 필터링(Collaborative Filtering)', '콘텐츠 기반 필터링(Contents-based Filtering)', '하이브리드(Hybird)'로 분류한 방식이 알고리즘 동작 방식에 따라 명확하게 분류한 것이라 생각했습니다. 각 추천 알고리즘을 간단히 설명하면 다음과 같습니다.
'고객의 장바구니에 함께 담긴 상품들은 서로 연관이 있을 것이다'라고 가정하고, 이를 토대로 특정 상품을 선택한 고객에게 연관 있는 다른 상품을 추천하는 방법입니다. 흔히 인터넷 쇼핑몰 등에서 볼 수 있는 '해당 상품을 구매한 고객이 함께 구매한 상품'이라고 이해할 수 있습니다.
고객의 인터넷에서 상품을 클릭해보거나 구매하거나 평점을 부여하기도 합니다. 협업 필터링 방식은 이와 같이 다양한 고객의 행동(클릭, 상품 구매, 평점 부여) 데이터에 기반하여 아직 접하지 않은 상품에 대한 행동을 예측하여 추천하는 것입니다.
협업 필터링은 Neighborhood model과 Latent Factor model로 분류할 수 있습니다. 가장 기본적인 Neighborhood model에는 나와 유사한 상품들을 구매하거나 상품들에 비슷한 평점을 부여한 다른 고객을 찾고, 해당 고객이 선호하는 상품들 중에 내가 아직 접하지 않은 상품을 추천하는 방식(User-based CF)과 내가 평점을 매긴 상품의 평점들과 유사한 패턴으로 평점이 부여된 상품을 추천하는 방식(Item-based CF)이 있습니다.
또한, 협업 필터링은 기존에 고객이 취했던 행동 데이터를 기반으로 추천하기 때문에 신규 고객 또는 신규 상품에 대해서는 추천할 수 없는 콜드 스타트(cold start) 문제가 있습니다.
상품의 특성(예를 들어, 책 줄거리, 책 제목 등)만을 비교하여 가장 비슷한 상품을 추천하는 방법입니다. 고객의 상품에 대한 행동(클릭, 상품 구매, 평점 부여)을 고려하지 않고, 상품의 특성만을 가지고 추천을 수행하기 때문에 상품의 특성만을 고려하여 추천하기 때문에 신규 고객 또는 신규 상품에 대한 콜드 스타트(cold start) 현상이 없습니다.
위에서 말씀드린 협업 필터링과 콘텐츠 기반 필터링 방식을 조합하여 상호 보완하는 방식으로 추천하는 방법입니다. 협업 필터링의 콜드 스타트(cold start) 문제를 해결하기 위해 콘텐츠 기반 필터링 기술로 분석하고, 충분한 데이터가 쌓이면 협업 필터링으로 추천 정확성을 높이는 방식입니다.
지금까지 추천 시스템과 알고리즘에 따른 분류에 대하여 간단하게 알아보았습니다. 다음에는 위 추천 시스템 방식들을 토대로 도서 추천 시스템을 개발했던 내용에 관한 내용을 담아보겠습니다.
읽어주셔서 감사합니다 :)