본문 바로가기

추천시스템

(17)
추천 시스템의 부작용 - 필터버블 (PR시리즈.10) 처음에는 계획하지 않았던 글이지만, MIT 테크리뷰에 올라온 글 (참고, How to Burst the Filter Bubble that Protects Us from Opposing Views)를 읽은 후에 추천시스템 글에 함께 제시할 필요가 있다고 생각해서 적습니다. 위의 글에서 소개되었듯이 필터버블 Filter Bubble은 2011년도에 인터넷 활동가인 Eli Pariser가 처음 사용한 용어로, 강력한 추천 시스템이 사람들을 실세계의 특정 측면을 인지하는 것을 가로막는 현상을 뜻합니다. 검색 서비스를 만들면서 종종 Java를 검색했을 때 어떤 결과를 보여주면 좋을까?라는 질문을 합니다. Java는 잘 알려졌듯이 Sun에서 만들어서 현재는 (거의, 적어도 한국에서는) 인터넷 표준이 된 프로그래밍 ..
개인화 추천 시스템에 대하여 (PR시리즈.9) 불특정 다수를 위한 추천을 제외하면, 대부분의 추천은 개인화에 바탕을 두고 있습니다. 개인의 선호도를 바탕으로 명시점수를 예측하거나 특정 아이템을 선호할 확률을 계산해서 보여주기 때문입니다. 그리고 나와 유사한 사용자들이 좋아하는 제품들이나 내가 좋아하는 제품의 관련 제품들도 개인의 선호에 바탕으로 맺어지는 것입니다. 그렇기에 추천 개인화라는 타이틀이 조금 어색하지만, 최근에 제가 고민하는 플랫폼/프로세스에 대한 간략한 스케치만 다루겠습니다. 그리고, 추천 개인화에 관심이 있으신 분들은 Netflix에서 나온 Mining Large Streams of User Data for Personalized Recommendations를 읽어보시기 바랍니다. 제가 생각하는 추천 시스템 또는 추천 개인화는 1. 개..
추천 시스템의 쇼핑하우 적용예 (PR시리즈.8) 이전 글들에서 추천 시스템과 관련된 기본적인 사항들은 대부분 다룬 듯합니다. 실서비스에서 추천 시스템이 어떻게 적용되었는지 예시를 들어보겠습니다. 추천 알고리즘 자체도 복잡하지도 않고 적용가능한 방법이 뻔해서 쇼핑하우를 조금만 사용해보시면 어떻게 적용되었는지 쉽게 유추가 가능합니다. 이 글에서는 앞서 설명드린 알고리즘들이 어떻게 적용되었는지를 간략히 보여줄뿐, (여러 이유로) 상세 내용을 다룰 수 없음을 양해바랍니다. 쇼핑하우는 포털 다음에서 제공하는 쇼핑메타검색 서비스입니다. 예전에는 D&shop이라는 쇼핑몰도 직접 운영했지만, 지금은 여러 쇼핑몰들의 상품 데이터를 가져와서 상품을 찾고 가격비교를 해주는 서비스만 제공하고 있습니다. 현재 다양한 곳에 추천 상품들을 배치하려고 준비중이지만, 시작은 쇼핑하..
추천 시스템에서의 랭킹과 필터링 문제 (PR시리즈.7) 일곱번째 주제는 랭킹으로 정했습니다. 보통 추천 시스템은 Top N개의 아이템을 추천해줍니다. Top N을 결정하는 것은 일반적인 의미에서 랭킹 문제로 볼 수 있습니다. 그리고 추천 시스템을 검색엔진의 특수형/변형이라고 볼 수도 있습니다. 검색엔진은 사용자가 입력한 키워드 (쿼리)에 대해서 가장 적합한 (매칭률, 인기도, 최신성, 다양성 등 고려) 문서들을 제공하는 것이지만, 추천 시스템에서의 쿼리는 키워드가 아니라 유저 또는 아이템 그 자체입니다. 즉, 어떤 사용자를 쿼리해서 그/그녀에게 가장 적합한 아이템을 검색결과로 던져주거나 특정 아이템에 대해서 가장 연관성이 높은 것을 제시하는 것이 추천 시스템입니다. 입력의 형태만 키워드에서 유저 또는 아이템으로 바뀌었을 뿐, 기본 작동원리는 검색엔진의 그것과..
추천 시스템의 성능 평가방법 및 고려사항 (PR시리즈.6) 지난 글들에서 CF 알고리즘과 CF에서 가장 중요한 유사도를 구하는 방식에 대해서 간략히 설명을 드렸습니다. 이번에는 그런 추천 알고리즘들이 잘 개발되었는지를 측정하는 성능지표에 대해서 다루겠습니다. 평가지표에 더해서 추천 시스템을 개발할 때 고려해야할 사항도 함께 적겠습니다. 다른 대부분의 데이터마이닝 기술들이 그렇듯이 첫번째 성능지표는 정확도입니다. 제안된 방법이 얼마나 사용자의 선호도를 잘 예측해서 레이팅값을 제대로 예측하느냐 또는 추천된 아이템을 선택할/좋아할 가능성이 높은가를 측정합니다. 정확도는 보통 두가지 방법으로 계산됩니다. 가장 흔히 사용하는 방식은 예측된 레이팅과 실제 레이팅 사이의 차이, 즉 Error 텀을 측정하는 것입니다. MAE (Mean Absolute Error)와 RMSE ..
추천 시스템을 위한 유사도 측정 방법 (PR시리즈.5) 이전 글에서 CF를 중심으로 추천 알고리즘을 설명했습니다. CF 방식은 나와 유사한 사용자의 아이템을 추천하거나 내가 관심있어하는 아이템의 관련 아이템을 추천해주는 방식입니다. 관련 아이템이라는 것도 결국 그 아이템에 관심있어하는 다른 사용자들이 공통적으로 본 아이템들로 정의가 됩니다. 유사 사용자 또는 관련 아이템에서 공통적으로 '유사성 = 관련성'이라는 개념이 등장합니다. CF가 매우 간단한 알고리즘이기 때문에, 초기의 많은 추천 시스템에서는 어떻게 유사도를 잘 구할 것인가가 주요 연구주제였습니다. 오늘은 이 유사성 또는 유사도를 어떻게 구하느냐에 대한 설명을 하겠습니다. 일반적으로 유사도 similarity measure는 두 오브젝트 사이의 거리 distance 또는 차이 difference의 역..
알고리즘에 따른 추천 시스템의 분류 (PR시리즈.4) 앞으로 다양한 주제의 글이 남아있지만, 이번 포스팅이 추천 시스템에서는 가장 핵심이 되는 추천 알고리즘에 대한 글입니다. 본격적으로 추천 알고리즘이 개발된 것은 20여 년 밖에 되지 않지만, 실 서비스에서 쉽게/바로 적용이 가능하고 그 효과도 즉각적으로 측정이 가능하기 때문에 다양한 방법들이 개발되었습니다. 밑에서 자세히 설명하겠지만 대부분의 알고리즘들이 매우 간단하여, 데이터마이닝에 큰 지식이 없는 이들도 쉽게 구현, 적용할 수 있어서 다양한 분야의 전문가들이 추천 알고리즘에 살을 붙여서 개념의 간단성에 비해서 매우 다양한 방법들이 존재합니다. 가장 원시적인 추천 알고리즘은 컨텐츠 기반의 필터링 (CBF)이 될 듯합니다. 아이템의 속성/메타데이터를 이용해서 연관 아이템을 묶어주기 때문에 별로 어렵지 않..
추천대상에 따른 추천 시스템의 분류 (PR시리즈.3) 이번 글에서 추천 알고리즘에 따른 분류는 아닙니다. CF, 유저기반, 아이템기반 등의 일반적인 알고리즘의 설명은 다음 글에서 자세히 다룰 예정입니다. 이 글에서는 -- 적당한 표현이 떠오르지 않는데 -- 추천대상 또는 형태상의 분류를 다루고 있습니다. (아래는 그냥 '하다'체로 적겠습니다. 처음에 그렇게 적어놨었었네요.) 추천 시스템을 크게 나누면 전체추천, 그룹추천, 개인추천 (개인화), 및 연관아이템추천으로 나눌 수 있을 것같다. 전체추천은 말 그대로 불특정 다수에게 추천하는 형태다. 일반적으로 다음이나 네이버에 접속했을 때 첫화면에 보여지는 무수한 글/이미지/상품들이 전체추천이다. 일반적으로 에디터 또는 운영자들이 그날의 이슈에 따라서 선별해서 보여준다 (보통 featuring한다고 표현함). 조금..