본문 바로가기

recommender system

(17)
추천 시스템에 대한 잡다한 생각들 (PR시리즈.12) 총 11번에 걸쳐서 추천 시스템과 관련된 다양한 알고리즘, measure, 고려사항 등을 다뤘습니다. 이 글에서는 미쳐 다루지 못했던 내용이나 그외 추천 시스템에 대한 잡다한 생각들을 두서없이 적으려고 합니다. 외국의 경우 아마존이나 넷플릭스, 구글유튜브 등이 추천으로 유명한 회사/서비스들이지만, 국내에는 여전히 추천 또는 데이터기반이 여전히 미약합니다. 최근에 영화 추천 서비스인 왓차, 그리고 그것을 만든 프로그래밍스가 조금 유명세를 타고 있습니다. 이전의 모든 글의 공통된 밑바탕은 추천 알고리즘 및 서비스는 별개 아니다 입니다. 현존하는 데이터마이닝 방법 중에서 추천보다 더 쉬운 것은 없다는 것이 저의 기본 가정입니다. (물론 엄청 잘하는 것은 매우 어렵습니다.) 왓차 서비스도 전혀 새로운 것이 없는..
추천 시스템의 레퍼런스 (PR시리즈.11) 총 10개의 글을 통해서 추천 시스템의 일반적인 내용을 대부분 다룬 것같습니다. 더 자세히 다뤄야할 세부적인 것들이 여전히 많이 있지만, 기존의 다른 논문들을 읽어보시면 쉽게 이해가 될 것입니다. PR시리즈를 통한 추천 시스템의 소개 및 설명은 이것으로 마치겠지만, 다른 관련 이슈가 발견되면 그때마다 내용을 추가하도록 하겠습니다. 모든 연구논문들이 그렇듯이, 추천 시스템의 글을 마치면서 추천 알고리즘 관련 참고 논문들을 아래와 같이 명시합니다. 검색서비스에서 '추천 시스템' 'recommender system' 'collaborative filtering' 등과 같은 키워드로 검색해보시면 다양한 논문들이 나옵니다. 아래에는 추천 시스템의 State of the art를 다룬 리뷰논문들을 주로 나열합니다...
추천 시스템의 부작용 - 필터버블 (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의 역..