협업 필터링을 통한 사용자 선호도를 예측하는 방식을 나타낸 영상.
**협업 필터링**(collaborative filtering)은 많은 사용자들로부터 얻은 기호정보(taste information)에 따라 사용자들의 관심사들을 자동적으로 예측하게 해주는 방법이다. 협력 필터링 접근법의 근본적인 가정은 사용자들의 과거의 경향이 미래에서도 그대로 유지 될 것이라는 전제에 있다. 예를 들어, 음악에 관한 협력 필터링 혹은 추천시스템(recommendation system)은 사용자들의 기호(좋음, 싫음)에 대한 부분적인 목록(partial list)을 이용하여 그 사용자의 음악에 대한 기호를 예측하게 된다. 이 시스템은 특정 사용자의 정보에만 국한 된 것이 아니라 많은 사용자들로부터 수집한 정보를 사용한다는 것이 특징이다. 이것이 단순히 투표를 한 수를 기반으로 각 아이템의 관심사에 대한 평균적인 평가로 처리하는 방법과 차별화 된 것이다. 즉 고객들의 선호도와 관심 표현을 바탕으로 선호도, 관심에서 비슷한 패턴을 가진 고객들을 식별해 내는 기법이다. 비슷한 취향을 가진 고객들에게 서로 아직 구매하지 않은 상품들은 교차 추천하거나 분류된 고객의 취향이나 생활 형태에 따라 관련 상품을 추천하는 형태의 서비스를 제공하기 위해 사용된다.

방법론
---

협업 필터링은 보통 2가지 단계로 운영된다.

1. 기존의 어느 정도 예측이 가능한 고객들과 비슷한 패턴을 가진 고객들을 찾는다.
2. 기존 고객들의 행동을 예측하기 위해 첫 번째 단계에서 찾은 비슷하다고 생각된 고객들의 행동을 수치화하여 사용한다.

아니면 그 대신에, 아마존 닷컴에서 유명해진 아이템 기반의 협력 필터링은 말 그대로 아이템 중심의 방법으로 아래와 같이 운영되기도 한다.

1. 아이템 간의 상관관계를 결정하는 아이템 매트릭스(item-item matrix)를 만든다.
2. 매트릭스를 사용하여 최신 사용자의 데이터를 기반으로 그 사용자의 기호를 유추한다.

또 다른 협력 필터링의 방법은 보통 사용자들의 행동에 대한 암시적인 관찰(implicit observation)을 기반으로 한 방법이다.(이것은 인기도 등의 평판 시스템으로 이용한 인위적인 행동과는 반대되는 개념이다.) 이 시스템에서는 모든 사람들이 한 행동들(예를 들어, 무슨 음악을 들었는지, 무슨 물건을 샀는지 등)과 사용자가 무엇을 했는지 에 대하여 관찰하여 미래의 사용자 행위를 예측하는 방법이다.
이 예측들은 비즈니스 로직(business logic)을 통하여 필터링 되고 이 예측들로 인하여 비즈니스 시스템이 무엇을 해야 하는지에 대하여 결정한다. 예를 들어, 만약 이미 어떤 음악을 가지고 있는 사용자에게는 그 음악에 대하여 구입 추천을 하는 것이 유용하지 않기 때문에 추천을 하지 않는 등의 시스템 기능을 결정한다.

요즘 같은 정보의 홍수 시대에 협력 필터링 같은 기술은 매우 유용함이 입증 되고 있다. 단지 한 가지 카테고리(음악, 영화 등) 내에서도 아이템의 수는 갈수록 방대해지고 있고 어떤 한 사람이 자신과 관련된 아이템을 선택하기 위하여 모든 아이템을 다 본다는 것은 불가능하기 때문에 이와 같은 기술은 더욱 유용해진다. 모든 사용자를 통한 평균화하는 스코어링또는 레이팅 시스템은 개인 사용자의 특정 관심사를 무시하고, 특히 요즘 같이 관심사가 다양해지고 있는 시대에서는 알맞지 않다. 정보의 홍수에 대항하기 위하여 또 다른 방법에는 웹서치, 데이터 클러스터링 등이 존재한다.

역사
--

협력 필터링은 초기의 정보 필터링(information filtering: 특정 사용자의 프로필을 만들고 이전의 행동에 대해 패턴 관찰을 함으로써 특정 사용자의 관심사를 가지고 이와 관련된 정보를 만든다)과는 배치된다. 초기의 정보 필터링 시스템은 콜드스타트(cold-start) 문제를 겪게 될 뿐만 아니라 정보 홍수 시대에 대하여 도움이 되지 않는다. 즉, 필터링의 효력을 보기 전에 새로운 사용자는 경향을 형성 해야 하는 문제를 겪게 된다.

협력 필터링을 사용한 초기 시스템은 제록스 팔로 알토 리서치 센터(Xerox PARC)에서 개발한 정보 태피스트리 프로젝트이다.(the Information Tapestry project) 이 시스템에서는 다른 사용자가 이전에 코멘트한 것을 기반으로 사용자가 문서를 찾을 수 있게 해준다. 하지만 이 시스템에도 약점이 있는데, 첫째로 단지 작은 집단에서만 사용될 수밖에 없다는 것이고, 둘째로 협력적 필터링의 목적에 크게 배치되는 word specific queries을 통하여 접근하기 때문이다.

나아가 유즈넷 넷뉴스(USENET Net news)는 대중이 기사를 간단한 방법으로 접근하게 하면서 사용자들의 인기도를 기반으로 기사에 대한 평가(Rate)를 하게 하면서 다른 사용자들이 이 평가를 기반으로 검색을 할 수 있게 끔 한 협업 필터링이다.

종류
--

### 능동적 필터링

능동적 필터링은 최근에 인기가 증가한 방법이다. 그 이유는 WWW(World Wide Web)의 유저들이 사용할 수 있는 정보 기반이 계속 증가 하고 있기 때문이다. 하지만 인터넷을 통하여 기하급수적으로 증가하고 있는 정보의 양으로 인해 가치있는 정보의 검색 효율성은 갈수록 어려워 지고 있다. 최근에 WWW을 통한 기본적인 정보 검색은 수많은 결과를 찾아 주지만 그 결과의 검색방법이 효과적이지도 않고 관계도도 떨어지고 있다. 오늘날 시장에서 수많은 데이터와 검색 엔진들이 검색을 위해 사용되고 있지만 대부분의 사람들은 검색을 위한 모든 옵션의 사용에 대하여 익숙하지가 않다. 이런 환경에서 능동적 필터링이 효과적인 방법으로 대두되고 있는 것이다.

능동적인 필터링은 P2P 방식이기 때문에 다른 협업 필터링과도 차별화 된다. 이것은 비슷한 관심사를 가진 동료, 친구 등의 사람들이 상품 등을 평가하고 또한 웹에서 이런 정보들을 공유하고 서로 볼 수 있다. 이 시스템은 사람들이 다른 비슷한 사람들과 함께 구매한 물건에 대한 정보를 공유하기를 원한다는 사실에 기초로 하고 있다. 능동적인 필터링은 웹을 통하여 정보를 보낸 다른 사용자들의 상품의 평가를 볼 수 있고 그것을 기반으로 자신만의 구매 결정을 하게 해준다.

능동적인 필터링은 많은 경우에 많은 사람들에게 유용하다. 이 능동적인 필터링은 유도 웹 검색기반이 없는 경우(non-guided web search)에 가장 중요하고 효율적이다. 유도 웹 검색기반이 없는 것(non-guided web search)은 단지 수많은 정보만을 생산하기 때문에 정보에 정확하게 접근하려고 하는 사람에게는 효율적이도 유용하지도 않다.

#### 장점

능동적인 협업 필터링을 사용하는 것에는 여러 장점이 있다. 장점 중에 하나는 이 방법이 어떤 상품과 주제에 대한 관심사를 가진 사람들이 실제 평가를 했다는 것이다. 이 시스템은 근거있는 설명과 순위를 신뢰성 있는 정보로부터 생성한다. 다른 장점은 사람들이 궁극적으로 직접 그 문제를 고려하여 정보를 공급한다는 것이다.

#### 단점

능동적인 협업 필터링에는 여러 단점들도 있다. 그 중에 하나는 의견이 편견을 가질 수 있다는 것이다. 또한 피드백의 생성의 경우는 사용자의 직접적인 행동이 요구되기 때문에 수동적인 필터링에 비하여 적은 데이터만이 사용될 것이다. 그리고 사용자 기대가 맞아 떨어지지 않을 수도 있다. 협업 필터링의 주요 특징 중 하나는 콘텐츠 기반의 필터링과 비교하여 실제 아이템의 내용과 그것이 무엇에 관한 것인지에 관한 내용을 전혀 알지 못한 상태에서의 방법이라는 것이다. 이 의미는 단지 기호 가치들(preference values)에만 의존한다는 것이다. 이것은 각 상품에 대한 성능에 대한 통찰력이 다른 사람들의 평가에 높게 의존하게 되고 결국 평준화 효과를 가져 오게 된다. 평준화 효과는 전체적으로 가장 많이 추천된 상품에 결과적으로 사람들이 더욱 많이 소비하고 더 많이 평가를 하게 되면서 그 상품이 더욱 추천되는 결과를 가져온다.

일반적으로 잘 알려진 협력 필터링에 대한 두가지 이슈는 다음과 같다. 첫 번째는 초기 평가자 문제 (First-Rater Problem)이고 두 번째는 콜드 스타트 문제(Cold-Start Problem)이다. 초기 평가자 문제 (First-Rater Problem)는 어느 사용자에게도 평가받지 못한 새로운 아이템이 있을 경우에 일어난다. 이런 경우에는 시스템에서 이들의 아이템에서는 의미 상호작용 (semantic interconnection)을 생성 시킬 수도 없기 때문에 당연히 절대 추천 될 수 도 없다. 유사하게 콜드 스타트 문제(Cold-Start Problem)는 지금까지 한번도 평가를 하지 않은 사용자들이 있을 경우에 일어난다. 이런 경우에는 시스템은 사용자의 어느 정보도 없기 때문에 사용자의 기호도 예측과 추천을 할 수가 없다.

### 수동적 필터링

미래의 가장 잠재력있는 협업 필터링 방법은 정보를 함축적으로 수집하는 수동적 필터링(passive filtering)이라고 여겨지고 있다. 여기서 웹 브라우저는 사람들의 행동을 추적하고(following) 평가에 의해 사용자들의 기호도를 저장하기 위하여 사용된다. 이 필터는 사용자들이 좋아할만하고 추천받을 만한 관심사 중의 다른 상품을 구매 결정하기 위하여 사용된다.

수동적인 협업 필터링의 중요한 특징은 사용자가 문서를 단순히 스캐닝 할 것인지 정독을 할 것 인지에 대한 결정을 하기 위한 측면에서 시간을 사용한다. 이 시스템의 가장 큰 장점은 능동적인 필터링에서 일반적으로 나타나는 분석들로부터 특정한 변화를 제거할 수 있다는 것이다. 예를 들어, 단지 특정한 종류의 사람만이 사이트의 평가를 하기 위해 시간을 보내는 것과는 달리 수동적 협업필터링에서는 모든 사람이 자동적으로 주어진 데이터를 가지고 접근할 수 있다.

### 아이템 기반 필터링

아이템 기반 필터링은 협업 필터링의 또 다른 방법으로서 사용자들 대신에 평가된 아이템이 파라미터(parameter)로 사용된다.
아이템 기반 협동적 필터링은 대부분의 사람들이 과거에 자신이 좋아했던 상품과 비슷한 상품이면 좋아하는 경향이 있고 반대로 싫어했었던 상품과 비슷한 상품이면 싫어하는 경향이 있다는 점을 기반으로 하고 있다. 이 필터링 방법은 고객이 선호도를 입력한 기존의 상품들과 예측하고자 하는 상품과의 유사도(similarity)를 계산하여 고객의 선호도를 예측하는 방법이다. 즉, 예측하고자 하는 상품과 비슷한 상품들에 대하여 고객이 높은 평가를 하였다면 그 상품도 높게 평가를 할 것이라고 예측하고, 낮은 평가를 하였다면 그 상품도 낮게 평가를 할 것이라고 예측하는 것이다. 아이템 기반 협동적 필터링 방법은 상품들간의 유사도를 계산하기 위하여 두 상품에 모두 선호도를 입력한 고객들의 선호도를 사용한다. 그러나 고객들간의 유사도가 전혀 고려되지 않기 때문에 만약 특정 고객과 전혀 선호도가 비슷하지 않은 사용자들의 평가를 기반으로 한다면 상품들간의 상관 관계의 정확도가 떨어지고, 아울러 추천 시스템의 예측 능력과 추천 능력이 저하될 수 있다.

능동적 필터링과 수동적 필터링
----------------

적극적 필터링과 소극적 필터링 내에는 사용자의 선호도를 결정하기 위한 명시적 방법과 암시적 방법이 있다. 사용자 선호도의 명시적인 수집은 평가자로 하여금 그 컨텐트에 대한 점수를 부여하게 만든다. 이는 협업 필터링에 인식적인 측면을 부여하지만, 피드백이 더욱 정확하다는 것을 의미할 수도 있다.
암시적인 수집은 사용자에 의한 직접적인 의견을 포함하지 않지만, 대신 그들의 의견이 행동에 의해 암시된다고 가정한다. 이는 사용자간의 다양성을 줄이고 사용자의 요구를 줄이며, 이는 곧 더 많은 데이터를 사용할 수 있다는 것을 의미한다. 하지만, 이러한 행동 데이터가 꼭 아이템에 대한 사용자의 진정한 의견을 정확히 대변한다고 할 수는 없다.