내용 기반 필터링(content-based filtering)과 협조필터링(collaborate filtering) 2가지로 나눌 수 있다.
내용 기반 필터링은 책의 제목, 저자, 장르 등과 같이 아이템의 내용을 나타내는 정보를 사용
사용자가 선호하는 정보를 기반으로 내용이 비슷한 아이템을 계산함으로써 추천을 수행하는 알고리즘
협조 필터링의 경우 자신과 선호도가 비슷한 지인이 재미있게 읽은 책을 알려주며 '입소문'을 내는 과정처럼 서비스 내에 있는 다르 낫용자의 과거 행동 등을 통해 얻어진 기호 경향을 활용하여 추천하는 알고리즘
협조 필터링은 예측을 실행하는 방법 관점에서 메모리 기반 방법, 모델 기반 방법으로 나뉜다.
협조 필터링에서는 서비스 내 다른 사용자의 과거 행동 이력 등으로 부터 선호도 경향을 추정하여 추천에 사용
이렇게 사용자로부터 얻은 아이템에 대한 선호도 정보를 기호 데이터라 부른다.
기호 데이터를 획득하는 방법은 크게 명시적 피드백(explicit feedback)과 암묵적 피드백(preference data)으로 나눌 수 있다.
명시적 피드백은 사용자에게 5단계 평가로 아이템을 리뷰하도록 하거나 선호하는 아이템의 장르 등을 물어서 대답하도록 하는 등 사용자에게 아이템의 좋고 싫음이나 관심 여부에 관해 질문하고 답변을 받아 기호 데이터를 획득하는 방법
암묵적 피드백은 사용자가 아이템을 구입하거나 찜으로 등록하고 열람하는 등 서비스 내 사용자의 행동 이력으로 부터 아이템에 대한 관심을 추정해 기호 데이터로 간주하는 방법
수집한 기호 데이터 등에 기반해 사용자가 해당 아이템의 선호도 정도를 정량적으로 나타낸 것을 평가값(rating)이라고 한다.
그 평가값을 성분으로 하는 사용자 x 아이템 행렬을 평가값 행렬 (rating matrix)라고 한다.
전형적인 추천 시스템 문제 설정에서는 평가값 행렬이 주어진 상태에서 대상 사용자의 특정 아이템에 대한 미지의 평갓값ㅇ르 예측해 계산한다.
| 아이템A | 아이템B | 아이템C | 아이템D | 아이템E | 아이템F | |
|---|---|---|---|---|---|---|
| 사용자1 | - | 3 | 4 | 4 | - | - |
| 사용자2 | - | 2 | - | - | - | 3 |
| 사용자3 | 3 | - | - | 5 | - | - |
| 사용자4 | - | - | - | 4 | - | - |
| 사용자5 | 2 | - | 1 | 2 | - | - |
추천 결과의 다양성을 높이려는 경우 내용 기반 필터링보다 협조 필터링의 효과가 좋다고 말할 수 있다.
협조 필터링에서는 설령 추천받은 사용자 자신이 모르더라도 서비스 내의 다른 사용자가 알고 평가하면 그 정보를 기반으로 추천할 수 있다.
예를 들어 추천을 받는 사용자가 읽어본 적 없는 장르의 책이나 모르는 신인 작가의 책이라도 추천 대상이 될 수 있다.
내용 기반 필터링에서 추천받을 사용자의 사용자 프로필은 해당 사용자가 모르는 작가나 장르 정보를 반영할 수 없다
미지의 아이템이므로 서비스 내 과거의 기호 정보에도 없으며 직접 기호를 지정하는 것도 불가능 하기 때문
추천받을 사용자가 모르는 정보를 아이템 특징으로 가진 아이템과 사용자 프로필의 유사도는 높아지기 어려우며 추천 역시 어려워진다.
추천 받을 사용자가 모르는 정보를 사용해 추천할 수 있다는 점 때문에 내용 기반 필터링보다 협조 필터링 쪽이 추천 결과의 다양성을 높이기 쉽다
협조 필터링과 내용 기반 필터링을 비용 측면에서 비교해볼 때, 서비스 운영자가 추천 시스템을 구축할 때 책의 장르나 출판사, 사용자 성별, 나이와 같은 서비스 내 아이템이나 사용자 고유의 지식 및 콘텍스트라는 도메인 지식을 적절하게 다루고 관리하는 데 드는 비용을 비교해 보면 협조 필터링 쪽의 비용이 낮다고 할 수 있다.
협조 필터링은 추천 받은 사용자와 과거의 기호 데이터에 기반해 비슷하다고 판단되 사용자가 선호하는 아이템 정보를 기반으로 추천하므로 아이템 자체에 관한 정보나 사용자 자체의 속성 정보 등은 기본적으로 필요하지 않음
내용 기반 필터링은 아이템 특징이나 사용자 프로필 작성 시 도메인 지식을 적절하게 사용해야 좋은 추천을 할 수 있다.
내용 기반 필터링으로 도메인 지식 없이 추천하게 되면 실제 관심을 가진 아이템을 선택하기 어렵다
적절하게 도메인 지식을 사용해 가급적 사용자가 선호할 만한 아이템을 추천하는 것이 바람직하지만 다양한 도메인 지식을 관리하는 데이터 베이스를 유지 및 관리하는 데는 비용이 많이 든다.
해당 도메인 지식을 잘 다뤄야 좋은 아이템을 추천할 수 있다는 것 자체에도 큰 비용이 필요
콜드 스타트 문제는 서비스에 사용자나 아이템에 관한 정보가 적은 경우 특히 신규 사용자나 신규 아이템에 관해 적절한 것을 추천하기 어려운 문제를 가리킨다
콜드 스타트 문제를 대응하는 데는 내용 기반 필터링이 바람직한 설징을 갖고 있다고 할 수 있다.
사용자의 과거 기호 데이터가 없으면 추천할 수 없는 협조 필터링에서 콜드 스타트 문제는 심각한 영향을 미친다.
서비스에 이제 막 등록한 신규 사용자는 과거 행동 이력 등의 정보가 없기 때문에 선호도가 비슷한 사용자를 찾기 어렵다
내용 기반 필터링에서는 아이템 특징이나 사용자 프로필만 얻을 수 있다면 추천이 가능하다.
신규 사용자 및 아이템 또한 특징만 파악 한다면 추천을 할 수 있음
하지만 충분한 정보를 얻는 것이 힘들기 때문에 콜드 스타트 문제에 완벽하게 대응하는 것은 어렵다
협조 필터링보다는 내용 기반 필터링 쪽이 콜드 스타트 문제에 대응하기 쉽지만 내용 기반 필터링을 사용하더라도 충분히 대응하는 것은 어렵다
시스템 사용자 수가 적은 경우에도 적절한 추천을 수행할 수 있는가 하는 관점에서 비교
신규 서비스 등에서는 중요한 관점, 이런 경우에는 내용 기반 필터링 쪽이 바람직한 성질을 갖는다고 할 수 있다
서비스 내 다른 사용자의 행동 이력을 기반으로 추천하는 협조 필터링에서는 사용자 수가 적을 경우 비슷한 사용자를 충분히 얻거나 비슷한 사용자의 행동 이력으로부터 추천 대상 사용자가 관심을 가질만한 아이템을 추천하기 어려움
내용 기반 필터링에서는 아이템의 특징이나 사용자 프로필만 획득하면 추천할 수 있기 때문에 사용자 수는 영향을 미치지 않는다.
커버리지는 서비스에 있는 모든 아이템 중 추천 시스템으로 사용자에게 추천할 수 있는 아이템의 비율을 나타낸다
커버리지가 낮은 상황이란 일부 아이템에 치우쳐 추천되는 상황이며 서비스를 사용하는 사용자에게는 물론 제공자에게도 좋은 상태라고 할 수 없다
이 관점에서는 내용 기반 필터링 쪽이 바람직하다
시스템 내에 있는 다른 사용자의 행동 이력을 기반으로 추천하는 협조 필터링으로는 추천을 받을 사용자와 비슷한 사용자가 아무도 시도하지 않은, 평가하지 않은 아이템은 추천할 수 없다
아이템 특징 활용 측면에서도 내용 기반 필터링이 바람직한 성질을 가지고 있다
도메인 지식을 사용하지 않고 사용자의 과거 기호 데이터에만 기초해 추천하는 협조 필터링에서는 기본적으로 옷의 색상 등과 같은 아이템 속성 정보를 고려할 수 없다.
같은 상품의 크기나 색상 차이 또는 목적이 같은 경쟁 상품 등도 전혀 다른 아이템으로 간주하게 된다
내용 기반 필터링에서는 아이템의 다양한 특징을 명시적으로 고려해 추천하므로 색만 다른 같은 옷은 동시에 추천하지 않으며 사용자가 선호하는 색상을 알게 되면 같은 색의 다른 옷을 유연하게 추천할 수 있다
아이템의 특징을 활용한다는 점에서 협조 필터링보다 내용 기반 필터링 쪽이 제대로 추천한다고 할 수 있다