Posts Recommendation System
Post
Cancel

Recommendation System


Contents



추천 시스템

기본 용어

  • Item(documents)

추천하고자 하는 항목들을 의미한다.
예를 들어, 영상 추천 시스템이라면 Item은 영상이 되고, 음악 추천 시스템이라면 Item은 음악이 된다.

  • Query(context)

추천을 위해 사용하는 정보를 의미한다.
이 때 쿼리들은 결합될 수 있다.
일반적으로 사용하는 정보들은 다음과 같다.

유저 정보(유저 ID, 해당 유저가 이전에 흥미롭게 이용한 Item 정보 등),
추가 정보(날짜, 사용 기기 등)

Overview

추천 시스템은 일반적으로 크게 세 단계로 구성되어 있다.
여기서는 각 단계들을 전반적으로 살펴본다.

  • Candidate generation

추천 시스템의 데이터가 크면 클수록, 전체 데이터를 확인하고 추천해주는데 시간이 오래걸린다.
이 시간을 효율적으로 감소시키기 위해서 전체 데이터에서 일부 데이터들을 묶어 하위 집합을 생성한다.
쿼리가 들어오면 관련된 후보군의 집합을 생성하는 과정을 의미한다.

  • Scoring

두 번째로, 선별된 후보군의 점수를 산정하고 순위를 매긴다.
이 떄 우리는 위에서 작은 후보군으로 추려놨기 때문에, 빠른 시간내에 추가적인 쿼리를 활용하여 더 정확한 점수를 산정할 수 있다.

  • Re-ranking

마지막으로, 시스템은 추가적인 제약 사항들을 고려하여 최종 순위를 측정한다.
제약 사항에는 사용자가 싫어하는 항목을 제거하거나, 최신 항목에 대한 점수를 올리는 등 다양한 방식이 존재한다.
이를 통하여 항목의 다양성, 신선도, 공정성 등을 보장하는데 도움을 줄 수 있다.

Candidate Generation

후보군을 생성하는 방식은 일반적으로 두 가지가 존재한다.

첫 번째는 content-based filtering으로, 사용자가 선호하는 item을 기반으로 유사한 item을 추천하는 방식이다.
두 번째는 collaborative filtering으로, item과 query의 유사도를 동시에 사용하여 item을 추천하는 방식이다.
예를 들어, A, B라는 사용자가 비슷한 취향을 가졌을 때, B 사용자가 1번 아이템을 선호한다면, A 사용자에게 1번을 추천해줄 수 있다.

Embedding Space

위에서 어떤 방식을 사용하던 일반적으로 Item이나 Query는 공통된 임베딩 공간의 벡터로 매핑된다.
일반적으로 유사한 Item은 임베딩 공간에서 서로 가깝게 배치되어, 가까움이라는 개념은 유사도 측정으로 정의된다.

Similarity Measures

유사도 측정은 두 개의 임베딩 벡터를 이용하여 유사성을 측정하는 스칼라를 반환한다.
임베딩은 다음과 같이 후보 생성에 사용될 수 있다.
Query에 대한 임베딩 벡터가 주어지면, 시스템은 이와 근접한 Item 임베딩 벡터를 찾는다.
즉, 유사성이 높은 임베딩 벡터를 찾는 것이다.

이러한 유사도를 측정하는 방법은 대표적으로 다음의 세 가지가 있다.

  • Cosine

코사인 유사도는 두 벡터의 각도를 이용하여 유사도를 측정하는 방식이다.

  • Dot Product

두 벡터의 내적 값을 이용하여 유사도를 측정하는 방식이다.
이는 두 벡터사이의 각도에 norm의 product 값을 곱한 값이다.
따라서, 임베딩 차원이 정규화되면, 코사인 유사도와 값이 같아진다.

  • Euclidean distance


This post is licensed under CC BY 4.0 by the author.