본문 바로가기

Tech Story

(151)
추천 시스템의 성능 평가방법 및 고려사항 (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한다고 표현함). 조금..
추천 시스템을 위한 데이터 준비 (PR시리즈.2) 두번째로 추천에 사용되는 데이터에 대해서 간단히 설명하겠습니다. 추천방식에 따라서 필요한 데이터가 달라지지만, 가장 일반적인 내용을 설명하고 추후에 특정 알고리즘이나 방식에 맞는 데이터는 별도로 설명하겠습니다. (특정 용어가 특정/다른 상황에서 적절하지 않을 수도 있습니다.) 추천의 기본 원리는 과거는 곧 미래다입니다. 그렇기에 추천을 위해서 필요한 데이터는 유저들의 행위 behavior 기록입니다. 상품 구매 이력, 이벤트 참석 이력, 기사를 공유했거나 like를 한 이력, 영화나 드라마를 보거나 평점을 남긴 이력 등의 모든 것들이 추천시스템에서 활용합니다. 그런 모든 이력들이 제품이나 컨텐츠에 대한 사용자의 선호/관심을 나타내는 지표로 사용합니다. 좀 더 구체적으로 쇼핑 추천을 예로 들겠습니다. A라..
추천 시스템과의 조우 (PR시리즈.1) 최근에 제주 사진 위주의 가벼운 주제의 글을 적거나 좀 맥락이 없는 지나친 시니컬한 글만 적은 것같아서, 앞으로 -- 언제까지 진행될지는 모르겠으나 -- 업무와 연관성이 있는 조금 기술적인 그러나 쉬운 글을 시리즈로 적으려 합니다. 시작은 간단하게 요즘 맡고 있는 추천 Recommender System으로 시작하겠습니다. 첫 글이니 약속과는 다르지만 기술적인 내용은 몽땅 빼버리겠습니다. 제가 어떻게 해서 처음 추천시스템을 연구하게 되었는지에 대한 정확한 기억이 없습니다. 대학원 연구실이 데이터마이닝 또는 데이터분석을 전문으로 하는 곳이 아니었기 때문에 따로 추천시스템을 접할 기회가 없었습니다. 다른 연구실에서도 추천을 전문적으로 다루지 않았고, (옆 연구실에서) 나보다 2년정도 전에 추천 논문이 한편 제..
페이스북 소셜그래프에서 연결 다양성을 통한 연인 관계 판별/예측 지난 주에 외신의 관심을 받은 논문이 arxiv.org에 올라왔습니다. 페이스북의 데이터사이언스팀과 코넬대학이 공동으로 수행해서 제출한 'Romantic Partnerships and the Dispersion of Social Ties: A Network Analysis of Relationship Status on Facebook'이라는 제목의 논문입니다. 제목과 같이 페이스북의 소셜그래프를 분석해서 많은 친구들 중에서 연인 또는 부부 관계인 연결을 테스트 데이터 상에서는 60%의 정확도로 판별이 가능하다는 논문입니다. 논문/연구에 사용된 몇 가지 가정들이 옳으냐 그러냐에 따라서 결과를 달리 해석할 수 있지만, 일단 그 가정들이 일반성을 띈다고 가정하겠습니다. 두 사람이 친구일 개연성은 그들이 공유하..
Netflix 조직 및 개발 문화 지난 주에 Deview에서 'Real-time insights into application events'라는 제목으로 발표하셨던 Netflix의 배재현님께서 오늘 같은 주제로 제주 다음 스페이스에서 발표를 해주셨습니다. 발표 내용과는 큰 관련이 없지만, Q&A 시간에 넷플릭스의 기업/조직 및 개발 문화가 어떻냐?고 질문을 했고, 그때 답변해주셨던 것 중에 기억 남는 것만 몇 가지 정리하겠습니다. 넷플릭스의 개발 문화를 한마디로 표현하면 '개발자 혼자서 모든 것을 다 한다'로 요약될 수 있습니다. 개별 개발자들에게 절대 권력과 자유를 보장하면서 또 그에 따른 모든 책임도 진다고 합니다. 일을 할 때 국내에서는 보통 기획, 개발, 운영 등이 따로 분리되어있는데, 넷플릭스에서는 개발자 한명이 기획부터 개발,..