20130815

추천 시스템

요즘 회사 내부에서 쇼핑 관련 추천이나 여러가지 고민을 해보던중에... 발견한 내용...ㅋㅋㅋ

울 회사는 외부 연구기관에다가 의뢰하여 개별 시나리오를 작성하여 상품 수명 등 여러가지를 해봤는데...

이미 이런 추천 내용이 있어... 다시 고민을 하게 만드네요...

작성자에게 다시 한번 감사의 인사를 드립니다.


원문 :Deconstructing Recommender Systems - How Amazon and Netflix predict your preferences and prod you to purchase
저자 :Joseph A. Konstan and John Riedl   는 미네소타 대학에서  컴퓨터 과학을 가르치치고 있으며  IEEE 에서 Senior Member와 Fellow로 활동중이다

들어가기전

추천분야는 1990년대에 시작된 이후 지금까지 꾸준히 발전 해오고 있습니다. 비교적 조잡하고 부정확한 형태로부터 시작 했지만, 데이타가 다양하고 많아질수록 더욱 발전 하였고 그러한 데이터와 함께 혁신적인 알고리즘을 덧붙여 갔습니다. 이러한 추천시스템은 현재 아마존 상품 추천, 넷플릭스 영화추천, 페이스북의 친구 추천 등 대형 서비스와 함께 지속적으로 영역이 확대되어가며 점점 중요성이 높아지고 있습니다. 또한 대학들은 이러한 추천을 정규 코스로 추진 해가고 있으며, 휴대폰 회사들은 다른 이통사로 이탈확률이 높은 고객들을 예측하기 위해 사용하기도 합니다 .
이러한 추천의 배경이 무엇인지 살펴보도록 하겠습니다.
[추천 효과]
  • Netflix : 대여되는 영화의 2/3가 추천으로부터 발생
  • Google News : 38% 이상의 조회가 추천에 의해 발생
  • Amazon : 판매의 35% 가 추천으로부터 발생
  • Netflix Prize (~2009) Netflix에서 주관하는 경연대회로, 영화 선호도를 가장 잘 예측하는 협업 필터링 알고리즘에 수상 (US$1,000,000)

협업 필터링(Collaborative filtering)

이런 추천의 근간이 되는 유사점을 분류하는 방식에 협업 필터링 이라 불리는 방법이 존재 합니다. 사전에 누적된 대규모의 데이터를 활용하여 이를 분류하고 분류된 데이터의 기준을 기반으로 새로운 데이터에 대입하여 분류하는 방법 입니다. 이러한 협업 필터링의 분류기준은 대표적으로 두 가지가 존재 합니다.
[출처 :Deconstructing Recommender Systems by JOSEPH A. KONSTAN, JOHN RIEDL  /  OCTOBER 2012]

사용자 기반(user-user)

두 사용자의 공통된 아이템을 기반으로 얼마나 많이 일치하는지 거리를 수치화 하는 방법을 사용합니다. 예를 들어, 짐과 제인이 각각 트론이라는 영화에 5점을 입력하였다면, 그 둘 사이의 거리는 0입니다. 반면, 한명은 5 점, 나머지 한명은 3점을 입력하였다면 거리는 증가하게 됩니다. 이러한 사용자간의 유사도를 활용하여 추천하는 방식이 사용자 기반이라고 볼 수 있겠습니다. 그러나, 사용자 기반의 필터링은 공통점을 이끌어내는 것이 쉽지 않다는 문제점이 존재합니다. 사용자 간의 공통점이 추천에 활용할 수 없을 많큼 데이터가 부족할 수 있기 때문입니다. 한가지 예를 들면, 대부분의 사람들은 블록버스터 영화에 선호도가 집중하는 경향이 있습니다. 대부분의 데이터가 블록 버스터 영화에만 데이터가 몰려있기 때문에 추천의 결과가 모든 사용자들에게 동일한 현상이 발생할 확률이 높으며, 이는 추천에 대해 무의미한 결과를 가져 오기도 합니다. 또는 웹사이트를 기준으로 볼 때 어떤 페이지의 특정 부분을 클릭하는데 많은 시간이 걸리기 때문에 데이터 수집 자체에 어려움을 겪을 수도 있습니다. 간단한 설명이라 부족한 점이 있지만 , 추천에 있어 적절한 데이터 양의 부족으로 인해 공통요소(분류기준)을 분류한다는 게 아주 단순하다고는 볼 수 없습니다. 이를 보완할 수 있는 방법 중 하나가 아이템 기반이라 할 수 있습니다.

아이템 기반 (item-item)

오늘날 대부분의 추천시스템은 사용자 기반 대신 아이템간이 거리를 사용하는 아이템 기반을 활용합니다. 넷플릭스와 아마존이 세부적인 내용은 공개하진 않지만, 아이템 기반의 다양한 알고리즘을 사용한다고 공개적으로 언급하고 있습니다. 아이템 기반에 대해 예를 들어 설명을 간략히 하면, 톰클랜시의 책을 좋아하는 사람들이 Clive Cussler의 책도 아주 좋아한다면,Clancy 와 Cussler는 아주 가깝다고 볼 수 있습니다. 즉, 사용자기반과 동일하게 유사도를 기준으로 아이템 간의 거리를 측정한 후 유사한 아이템을 추천하는 방식을 취한다고 볼 수 있습니다. 대부분 사용자대비 아이템이 적은 수를 차지하고 있기 때문에 아이템을 기준으로 볼 때 아주 다양한 관계 데이터가 발생할 확률이 높다고 볼 수 있습니다. 이러한 방식은 데이터가 누적 될수록 추천의 정확도가 높일 수 있는 가능성이 있습니다.
참고로, 원하는 전화번호를 쉽게 찾아 전화 할 수 있는 대표적인 114전국전화 앱에서도 아이템 기반의 분석을 통해, 추천 검색어, 검색품질 개선에 사용되고 있다.

문제점


비율의 일관성(inconsistency of ratings)

위에서 언급된 두가지 방식을 사용한다고 해도 여러가지 추가적인 문제점이 존재 합니다. 우선 첫번째로 비율의 일관성 문제 입니다. 다시 말해, 같은 아이템에 같은 방법일 지라도 재 측정시 값이 변할수 있으며, 원인은 사용자의 취향 이라는게 항상 고정되어 있는 것이 아니기 때문입니다. 1990년대 후반에 MIT에서 진행한 한 실험은 하나의 원본 비율이 1년후 7가지 형태로 변화 될 수 있음을 증명한 사례가 있다고 합니다. 이렇듯 축적된 데이터라고 하더라도 여러가지 요인에 의해 변동이 가능하다는 사실은 염두 해야만 합니다..

유사 아이템 추천

추가적으로 사용자 및 아이템 기반의 알고리즘은 일관성보다 더욱 큰 문제가 존재합니다. 적용 기준이 엄격하기 때문에, 동일한 아이템이 아닌 유사한 아이템을 기반으로는 적용 불가 하다는 것입니다. 예를 들어 설명 하자면, 모네의 수련 그림에 대한 팬이라고 가정 봅시다. 250 개의 작품중 사용자마다 정말 좋아하거나 또는 좋아하지 않는 작품이 존재 할수 있습니다. 이러한 상세 취향은 기본 알고리즘만 가지고는 각자 그들의 취향을 알수 없습니다. 그래서 이러한 유사취향 문제를 해결할 수 있는 차원 축소라 불리는 방법이 존재 합니다. 이 방법은 사용자 아이템 기반의 알고리즘보단 많은  계산량이 요구되기 때문에 실제 적용하기 까지 상당한 시간이 소요됬지만, 컴퓨터의 성능이 나날이 발전함에 따라 적용 가능하게 됐습니다.

차원축소(dimensionality reduction)

차원축소를 이해하기 위해 다른 수많은 사람들과 음식 취향을 비교하는 것으로 예를 들어보자. 거대한 메트릭스로 취향을 표현할 수 있다. 각각의 사람들의 취향과 수천가지 음식을 표로 만들어볼 수 있습니다. gave grille 5점, braised short rib 4.5점, s, fried chicken wing 2점,cold tofu rolls 1점,roasted portobello mushroom 5점, steamed edamame with sea salt 4점,등..이렇게 각각의 음식에 대해 점수를 부여한 데이터를 기반으로 , 추상화 단계를 거쳐 (예를들어, 짠음식,생선요리등) 유사한 기준으로 분류한 후 , 새로운 아이템을 유사도 분류 기준에 대입하여 적용하면 어느정도 같은 취향으로 분류가 가능하게 됩니다.
이러한 차원 축소를 적용한 추천은 상세한, 특정음식에 대한 점수가 그리 큰 영향을 미치지는 않습니다. 그렇지만 다양한 음식에 대해 차원감소를 적용함으로서 발생하는 일반화 현상은 이해하고 있어야 합니다.  예를 들면, beef, salty things, and grilled dishes는 좋아한다 로 정의 될수 있고, chicken and anything fried는 싫어한다로 정의 될 수 있으며, vegetable은 보통으로 정의 될수 있습니다. 이러한 형태로 축소시 약 50에서 100개의 차원으로 축소가 가능하게 되며, 차원을 보는 것만으로도 ,추천자는 새로운 음식이 속하는 범위를 빠르게 결정하는게 가능하게 됩니다. 이는 아직 분류되진 않은 유사한 아이템을 특정 사용자 에게 추천할수있게 하는 더욱 일반화된 방법이라고 볼수 있습니다. 차원 축소가 많이 적용될수록 추천이 더욱 효율적이라 할 수 있으며, 이러한 차원축소를 적용하기 위해 사용되는 방법중 특이값 분해 (Singular Value Decomposition, SVD)를 사용할수 있습니다.

추가 고려 사항

지금까지 추천의 기본적인 배경지식에 대해 살펴보았습니다. 추가적으로 알아두어야 할 몇 가지 부분을 좀더 알아보도록 하겠습니다.
만약, 이메일로 어떤 물건을 추천한다고 가정해 봅시다. 사용자가 이메일을 확인 후 쓸모 없는 내용이라 판단된다면, 그리고 이런 결과가 지속적으로 반복 된다면, 사용자로부터 신뢰를 잃을 것이며, 스팸으로 분류되어 사용자에게 어떠한 정보도 전달할 수 없는 상태로 이어질 수 있습니다. 이렇듯 정확한 정보를 전달하는 것은 매우 중요한 요소이며, 정확한 정보 전달 이후에 사용자와 판매자 둘 다 이익이 발생 해야 한다는 것 입니다.

정확성

정확한 추천이 어떻게 이루어 질 수 있는지 아마존의 온라인 스토어를 예를 들어 설명해보도록 하겠습니다.
아마존은 사용자에게 적절한 추천을 하기 위해 몇가지 방법으로 사용자의 성향을 파악합니다. 대부분 사용자가 해당 페이지에 접근한 후 활동한 내역들 기반이라 볼 수 있습니다. 예를 들면 제품에 대한 별점 적용수치, 방문한 페이지중 상세페이지까지 확인 했는지, 반복해서 접속한 페이지, 구매의향이 있는지, 실제 제품을 구매했는지, 동일한 세션 안에서 확인했던 목록 정보등, 클릭했던 모든 사용자 행동을 기반으로 성향을 파악 합니다. 이런 모든 사용자 데이터를 차후에 활용하기 위해 모아 둘 것입니다. 심지어 로그인 하지 않은 사용자 데이터 까지 모아서 활용하기도 합니다. 이런 대량의 데이터 수집활동은 온라인 스토어에서만 이루어 지는 것이 아니며 월마트와 같은곳 에서도 사용자 영수증 데이터(구매목록)를 활용 중에 있습니다. 나아가 전세계에서 지금도 진행되고 있는 중입니다. 단 유럽의 경우 법적으로 데이터 수집범위에 따라 제약을 받을 수 있습니다.

business rules

시스템이 잘못된 추천을 방지하고 사용자의 신뢰를 잃지 않으며 판매자의 수익을 최고로 하기위해 추가 적용된 부분이 business rules 입니다. 예를 들어 , 비틀즈와 같은 유명한 음악가들의 앨범을 모든 방문자에게 추천을 하고 있다고 가정해 보면, 통계적으로 옳은 수치가 적용됐다고 볼 수 있지만, 실제 구매는 거의 이루어 지지 않을 가능성이 있습니다. 모는 방문자들이 앨범에 대해 실제 높은 별점을 부여하기는 하지만 대부분 앨범을 소유 했기 때문입니다. 또 하나의 예로, Netflix의 영화추천 시스템의 사례를 설명하면 액션 영화를 좋아하는 사람에게 The Avengers(액션영화) 라는 영화를 추천 할 수도 있습니다. 그러나 실제론 Netflix에서는 대여 불가 항목 이라면, 추천 해야 될 영화 일지라도 서비스에서 허용하는 한계를 고려하고, 이러한 점들이 시스템에 당연히 반영 되야 할 것입니다. 그리고 기타 비즈니스 적인 요인들이 접목 되 야할 부분은 각 서비스별도 무수히 존재할 것이며 이를 잘 반영 해야 된다는 점은 중요한 부분 이라 생각 됩니다.
마지막으로 추천시스템을  검토 중이라면 아래 오픈소스들을 활용해보는 것을 추천 합니다.
참고로, kth 데이터지능팀의 대용량 실시간 분석 솔루션인 DAISY(Data Intelligence System)에서는 Apache Mahout 기반으로 추천엔진을 구성하고 있습니다!


출처 : http://dev.kthcorp.com/2013/01/23/deconstructing-recommender-systems/

댓글 없음:

Articles