[논문이야기] NGCF의 소개 ②

콘텐츠 기반 필터링, 사용자가 소비한 아이템과 비슷하거나 특별한 관계가 있는 다른 아이템을 추천하는 방법
콘텐츠 기반 필터링의 '콜드 스타트' 문제 극복을 위한 '협업 필터링'
협업 필터링 위해서는 유저와 아이템 간 관계 먼저 정의해야

[논문이야기] NGCF의 소개 ①에서 이어집니다

추천 알고리즘이란 사용자의 선호도 및 과거 행동을 바탕으로 사용자가 흥미를 느낄 만한 콘텐츠를 제공하는 알고리즘을 뜻합니다. 제가 추천 알고리즘을 접한 맨 처음 계기는 SIAI MBA 과정의 첫 번째 비즈니스 수업인 BUS501(AI in Digital Marketing)입니다.

해당 수업에서는 기본적인 추천 알고리즘인 콘텐츠 기반 필터링(Contents Based filtering)과 협업 필터링(Collaborative Filtering)을 배우고, 좀 더 상위 수준의 잠재 요인 모델(Latent Factor Model)을 배우게 됩니다. 특히 교수님께서는 Term Paper에서 치밀한 문제 구성을 통해 학생들이 문제를 풀면서 배운 기법들을 체화할 수 있도록 하셨고, 다른 주제를 맡은 팀들과 rebuttal을 통해 미처 채우지 못한 논리들을 메워 넣을 수 있도록 수업을 구성하셨습니다.

위 관련 내용에 대해서는 교수님께서 좀 더 직관적인 내용으로 쓰신 글이 파비 연구소 홈페이지에 있으니 참고 부탁드립니다. 교수님의 글을 읽어볼 시간이 없으신 분들을 위해 해당 내용에 대해 기본적인 계층적 개념만을 요약하면 아래 그림으로 설명할 수 있겠습니다.

추천 시스템의 구분

추천 알고리즘의 가장 기본적 형태 – 콘텐츠 기반 필터링

추천 시스템에 대해 전혀 배경이 없으신 분들은 다소 생소할 수 있으시겠지만, 상위 카테고리 개념부터 차근히 챙겨서 이해해 보겠습니다. 먼저 추천 시스템의 가장 기본적인 내용인 ‘콘텐츠 기반 필터링’은 사용자가 소비한 아이템의 내용(contents)과 비슷하거나, 특별한 관계가 있는 다른 아이템을 추천하는 방법을 말합니다. 사실 이는 우리가 상대방에게 어떤 것을 추천해줄 때 무의식적으로 선택하는 방식이기도 합니다.

평소에 내가 친구와 무의식적으로 하는 대화 속에서도 자신도 모르게 사용하는 방법으로 이해하시면 될 것 같습니다. 제가 최근에 재밌게 본 드라마를 A라고 한다면 그전에 제가 재밌게 봤던 드라마 B와 C에 취향이 있는 친구에게 A라는 드라마를 추천해 주는 것과 같은 내용입니다.

콘텐츠 기반 필터링의 단점은 기존에 특성 유저(User)에 대한 선호 이력이 있는 아이템만을 추천해 줄 수 있다는 것입니다. 이에 따라 새로운 아이템이나 유저에 대한 정보가 없는 신규 아이템이나 사용자가 나타나면 적용하기 힘든 방식입니다. 이를 일반적으로 콜드 스타트 문제(Cold Start Problem)라고 합니다.

유저와 아이템 간 관계를 기반으로 – 협업 필터링

이를 극복하기 위해 나온 방법이 ‘협업 필터링’입니다. 이는 콘텐츠 기반 필터링에서 예를 들었던 A,B,C가 아닌 D 나 E가 데이터에 있을 때를 가정한 추천 알고리즘입니다. 좀더 상세한 예를 들면 B와 C에 취향이 있는 친구에게 비슷한 벡터(vector) 성분을 지닌 D나 E를 추천해주는 것을 의미합니다. 이를 위해서는 기존 데이터에 없었던 D와 E를 기존에 가지고 있었던 A,B,C 벡터를 기반으로 표현해주는 데이터 전처리 작업을 먼저 거쳐야만 합니다.

위의 데이터 전처리 작업을 위해서는 어떤 방식으로든 유저와 아이템 간의 관계를 정의 해야 하는데, 유저와 아이템 간의 관계를 어떻게 정의하느냐에 따라 ‘이웃 방식(Neighborhood method)’과 ‘잠재 요인 모델(Latent Factor Model)’로 나눌 수 있습니다.

잠재 요인 모델의 구분(Linear or Non-linear)

다양한 방식의 협업 필터링

이때 단순한 코사인 유사도(Cosine Similarity)와 같은 수학적 행렬로 표현해서 기존 벡터와 유사한 성질을 가진 아이템과 유저들간의 관계를 정의하는 방법을 Neighborhood Method로 지칭하며, 행렬 분해(Matrix Factorization)를 통해 D나 E를 정의하면 Latent Factor Model로 분류할 수 있습니다.

여기에서 더 나아가 유저와 아이템 간의 관계를 선형적인(Linear) 영역에서 정의할 수 있다면 Latent Factor Model을 사용하고, 해당 관계를 비선형적(Non-linear) 영역으로 확장하고 싶다면 딥 러닝(Deep Learning)을 활용할 수 있습니다. 이때 딥 러닝 방식의 추천 알고리즘 중 가장 기본적인 방법이 신경망 협업 필터링(Neural Collaborative Filtering, NCF)입니다.

[논문이야기] NGCF의 소개 ③에서 이어집니다