본문 바로가기
IT 기록/추천 시스템

#1 추천 시스템 - 소개 및 배경지식

by Lazy Quant 2019. 6. 28.
반응형

1. 소개(Introduction)

 추천 시스템이란 특정 사용자가 특정 시점에 관심을 가질만한 정보(영화, 음악, 책, 뉴스, 이미지, 웹 페이지 등)를 먼저 제시하는 시스템을 말한다. 우리가 일상적으로 접하는 유튜브, 페이스 북, 아마존 등의 다양한 서비스들이 딥러닝을 활용한 추천 시스템의 사례들이다. 이런 추천 시스템을 활용한 서비스들은 단순히 사용자들을 만족도를 높이는데서 그치지 않고, 높은 매출로 이어진다. Netflix 영상 시청의 80%가 추천 시스템에서 비롯된 것(2017년)이고, 아마존의 추천 시스템은 전체 매출의 35%를 발생(2015년)시켰다. 이미지/영상 인식, 자연어 처리 등 화려하고 놀랄만한 기술은 아니지만, 추천 시스템은 비즈니스에 가장 광범위하게 적용이 가능한 실용적인 기술임이 틀림없다.

 

 구글 머신러닝 추천 시스템 과정을 중심으로 공부하면서 아래와 같은 역량을 갖추는 것을 목표로 한다.

- 추천 시스템의 목적을 설명할 수 있다.

- 후보 생성(Candidate generation), 평가(Scoring), 재순위(Re-ranking)을 포함한 추천 시스템의 구성을 이해할 수 있다.

- Embedding을 사용해 Item과 Query를 표현할 수 있다.

- 후보군 생성(Candidate generation)에서 사용되는 기술들을 더욱 깊게 이해할 수 있다.

- Tensorflow를 사용해 두 가지 모델을 구현(Matrix Factorizations & Softmax)할 수 있다.


2. 배경지식(Background)

 대규모 추천 시스템은 (Large-Scale Recommendation System)은 일반적으로 두 가지 형태로 자주 사용된다. 첫 번째는 사용자의 관심을 기반으로 개인화된 페이지를 생성하는 메인 페이지 추천이다. 구글 플레이 스토어나 유튜브의 메인 화면에서 사용자가 관심 가질만한 어플이나 영상을 추천해주는 것이다. 두 번째는 유사 아이템 추천으로 특정 아이템과 유사한 아이템을 추천해주는 시스템을 말한다. 특정 어플이나 영상을 선택하였을 때 이와 관련된 어플이나 영상을 추천해준다. 특정 수학 어플을 찾는 사용자에게 다른 수학 어플 또는 과학 어플을 디스플레이해주는 것이다.

 

 추천 시스템을 적용할 때 세 가지 기대효과가 예상된다. 첫 번째는 사용자의 관심을 기반으로 하여 찾고자 하는 아이템을 더 빠르고 정확하게 찾을 수 있다. 두 번째 기대효과는 사용자가 찾아볼 생각을 하지 못한 아이템들을 디스플레이하여 추가적인 사용을 유도한다. 세 번째 기대효과는 다른 사용자들이 더 좋게 평가한 아이템을 추천함으로써 검증된 아이템을 먼저 제시할 수 있다.

 

 본격적으로 학습 내용에 들어가기에 앞서 자주 사용되는 용어에 대해 정리하고자 한다. 

 - Items (also known as documents)은 시스템이 추천하는 개체를 말한다. 예를 들어 구글 플레이 스토어의 추천의 경우 어플리케이션(App), 유튜브의 경우에는 영상(Video)를 지칭한다.
 - Query (also known as context)은 시스템이 추천을 위해 사용하는 정보를 말하며, 사용자 정보(사용자 ID, 이전에 사용했던 Item 등)와 추가 정보(사용 시간, 사용 기기 등)의 조합으로 이루어진다.

 - Embeddings은 연속 값 특성으로 표현된 범주형 특성를 말하며, 일반적으로 임베딩(embeddings)은 고차원 벡터를 저차원 공간으로 변환한 결과이다.

   범주형 자료를 연속형 벡터 형태로 변환시키는 것을 embedding이라고 한다. 주로 인공신경망 학습을 통해 범주형 자료를 벡터 형태로 바꾼다. 인공신경망 학습 과정을 통해 각 벡터에 가장 알맞는 값을 할당하게 된다. 이 과정에서 각 범주(category)는 각각의 특징을 가장 잘 표현할 수 있는 형태의 벡터값을 가지게 된다. t-SNE와 같은 방법을 활용하면 이 벡터들을 시각화해서 표현할 수도 있으며, 매우 직관적으로 표현된다. 

 

 일반적으로 추천 시스템은 3가지 컴포넌트로 구성된다.

추천 시스템의 3가지 컴포넌트

후보 생성(Cadidate Generation)추천 시스템의 첫 단계로, 거대한 코퍼스(corpus)에서 훨씬 작은 후보군으로 추려낸다. 예를 들어, Youtube의 Candidate Generator는 수십억 개의 비디오를 수백, 수천개로 줄인다. 모델은 거대한 코퍼스(corpus)를 빠르게 평가하며, 여러 개의 Candidate Generator가 각각의 후보군을 추천한다.

 

평가(Scoring)는 다음 단계로 또 다른 모델이 사용자에게 보여줄 Item을 선정하기 위해 점수와 순위를 매긴다. 이 모델은 상대적으로 적은 Item 군을 평가하기 때문에, 시스템은 추가적인 정보를 반영한 더 정확한 모델을 사용할 수 있다.

 

순위 다시 매기기(Re-ranking)는 마지막 랭킹 작업을 위해 추가적인 제약 사항들을 거치는 과정이다. 사용자가 명시적으로 싫다고 한 아이템들을 제외시키고, 최신 콘텐츠의 점수를 높인다. 순위를 다시 매기는 것은 다양성과 최신성, 공평성을 보장한다.


[출처] 위키백과 : 추천시스템

[출처] 구글 머신러닝 추천시스템


공감댓글, 그리고 공유는 큰 힘이 됩니다 : )

반응형

댓글