요즘 Coursera에서 추천 시스템 입문(Introduction to Recommender Systems) 강의가 9월 3일에 개강하여 듣고 있다.

우선 이런 우수한 대학 과목을 온라인으로 무료 수강한다는 데 대해 대단히 감사하고 있다. 이 강의는 미국 미네소타 대학의 정규 과목을 옮겨 놓은 것으로 학부 학생도 온라인으로 똑같이 수강하는 과목이다. 미국에 가지 않고도 미국 대학의 정규 과목을 그대로 수강한다는 건 참 감격스러운 일이다. 물론 이미 몇 년 전부터 MIT 오픈코스웨어 등이 있었지만 수강생으로서 과제도 제출하고 시험도 볼 수 있게 정말 학생처럼 그것도 무료로 관리 받는 것으로서는 또 한번 새로운 변화라 할 수 있다.

추천 시스템은 쇼핑몰 같은 웹사이트에서 상품 정보를 볼 때 관련 상품 정보 등을 제공하는 서브시스템을 말한다. 책이나 영화 사이트에서 개인의 취향이나 과거 구매 패턴에 따라 추천하는 경우를 일반적으로 접해봤을 것이다.

한 학기 동안 비디오 보는 데 3시간, 필기 숙제 및 프로그래밍 숙제가 1주일에 10시간은 될 예정이라 만만치 않은 투자다. 또 이것 말고도 수강 중인 게 하나 더 있어 부담은 더 하다.

이러한 투자가 헛되지 않도록 강의 내용도 정리하고 숙제도 잘 해볼 예정이다. 아래는 제1강 추천 시스템 입문(Introduction to Recommender Systems)을 내가 요약한 내용이다. 영어 표현을 그대로 쓰고 싶진 않았지만 의미 전달에 있어 어쩔 수 없는 면이 있었다. 강의 개요 및 진행 방식에 대한 요약은 넣지 않았다.

추천 시스템의 개념 체계(taxonomy)

추천에 있어서 다음 영역(dimension)을 고려해야 한다.

추천의 도메인

구글도 어떤 면에서는 검색 결과를 추천하는 것이라고 볼 수 있다.

추천의 목적

추천 컨텍스트

누구의 의견인가?

기타

추천 시스템의 기본 모형

추천 시스템 모형
추천 시스템 모형

추천 시스템 유형

아마존(amazon.com) 사례로 본 추천 시스템 분석

분석 프레임웍 - 분석 영역(dimensions)으로는 도메인, 목적, 추천 컨텍스트, 누구의 의견인가, 개인화 수준, 프라이버시 및 신뢰성, 인터페이스, 추천 앨거리듬이 있다.

아마존에서 페이지를 들여다보면 다른 사람들이 지금 보는 것, 다른 사람들이 본 것, 함께 살 것, 함께 산 것, 관련 상품 추천 등 몇 가지 추천을 찾을 수 있다.

다른 사람들이 지금 보는 것 관련 상품 메일 추천
도메인 상품
목적 판매
추천 컨텍스트 시간 상품 연관성
누구의 의견인가 다른 고객(일반인) 상품을 봤거나 산 사람 알 수 없음
개인화 정도 없음 순간적 영속적(과거 구매, 평가, 브라우징 기반)
프라이버시 및 신뢰성 저위험
인터페이스 단순 상품 설명 투명(왜 추천하는지 밝힘)
추천 앨거리듬 aggregation + 비즈니스 룰 상품 연관성 개인화되지 않은 요약 및 상품-상품 필터링

아마존에는 Improve your recommendations가 있어서 내가 산 상품, 가지고 있는 상품, 평가한 항목, 좋아한 항목, 선물로 표시한 항목 등 다양한 상품별로 평점을 관리할 수 있다. 또한 Betterizer라는 게 있어서 책, 영화, 음악 등을 추천해준다. 또한 Deals에서도 여러 가지 상품을 추천해준다.

아래는 사실 위보다 앞서 진행된 "강의 개요"인데 본 수업 내용을 벗어나거나 어려운 개념도 포함돼 있어서 별도로 빼놓았다. 본 내용을 이해하는 것과 별개로 봐도 될 것 같아서 아래로 뺐다.

강의 개요

추천 시스템의 배경에는 정보 재사용, 보관되는 취향(persistent preference)이 있다.

야구 경기가 끝나면 다른 사람을 따라 출구를 찾아가는 것 같은 social navigation은 사회적 정보 재사용으로 이어진다. 또한 혈거인이 처음 보는 과실을 먹을 때 다른 사람들이 안전하게 먹었는지 의견을 듣는 것은 비평가의 출현으로 이어진다. (하나의 사실에 대해 비평가는 각자 자기 관점에서 의견을 제시한다.)

정보 조회(retrieval)는 수많은 데이터에서 원하는 것을 찾는 것인데 이를 위해 TFIDF(term frequency inverse document frequency) 접근법이 있다. 정보 필터링은 컨텐트 스트림에서 필요한 것을 가려내는 것인데 계속 변화하는 데이터를 인덱싱하는 것보다는 사용자가 원하는 또는 원하지 않는 것을 프로파일링하는 것이 낫다.

수동 협업적(collaborative) 필터링은 사람들의 정보 취향(preference)이 단순한 검색 키워드들로 나타낼 수 없게 복잡한 경우를 전제로 하는 것으로 예를 들어 월드컵 경기에 관심 있더라도 월드컵에 대한 우수한 기사에 더 관심 있는 경우 이것은 키워드로만은 찾아낼 수 없다. 작은 집단이라면 컨텐트와 댓글을 함께 묶어 찾아보게 한 Xerox의 Tapestry, 컨텐트를 관련 독자에게 전달하는 Active CF가 있었다.

자동 협업적 필터링은 미네소타 대학의 GroupLens 프로젝트가 있는데 Nearest-Neighbor 접근법 등이 있었다.

(중략)

MovieLens.org 사이트의 추천 시스템을 보자면,

  1. 개인들의 평점을 C.F. Engine을 통해 저장. 또한 개인간의 취향이 얼마나 비슷한가를 pair-wise correlation으로 저장함. 비슷하면 1, 반대면 -1, 겹치는 게 없으면 0에 가까운 값임.
  2. 이제 요청이 들어오면 비슷한 취향의 사람들을 통해 추천, 예측이 가능함

추천 시스템을 만드는 데 있어서 Historical Challenges